Merge pull request #1031 from tomangelo2/dev
Added fonts configurability by a separate file1008-fix
commit
5080cb46b1
|
@ -149,6 +149,8 @@ set(BASE_SOURCES
|
|||
common/error.h
|
||||
common/event.cpp
|
||||
common/event.h
|
||||
common/font_loader.h
|
||||
common/font_loader.cpp
|
||||
common/global.h
|
||||
common/image.cpp
|
||||
common/image.h
|
||||
|
|
|
@ -0,0 +1,115 @@
|
|||
/*
|
||||
* This file is part of the Colobot: Gold Edition source code
|
||||
* Copyright (C) 2001-2018, Daniel Roux, EPSITEC SA & TerranovaTeam
|
||||
* http://epsitec.ch; http://colobot.info; http://github.com/colobot
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see http://gnu.org/licenses
|
||||
*/
|
||||
|
||||
#include "common/font_loader.h"
|
||||
|
||||
#include "common/logger.h"
|
||||
#include "common/make_unique.h"
|
||||
|
||||
#include "common/resources/inputstream.h"
|
||||
#include "common/resources/outputstream.h"
|
||||
|
||||
#include "common/system/system.h"
|
||||
|
||||
#include "graphics/engine/text.h"
|
||||
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
#include <cstring>
|
||||
#include <boost/property_tree/ini_parser.hpp>
|
||||
#include <boost/regex.hpp>
|
||||
|
||||
namespace bp = boost::property_tree;
|
||||
|
||||
const std::map<Gfx::FontType, std::string> DEFAULT_FONT =
|
||||
{
|
||||
{ Gfx::FONT_COMMON, "dvu_sans.ttf" },
|
||||
{ Gfx::FONT_COMMON_BOLD, "dvu_sans_bold.ttf" },
|
||||
{ Gfx::FONT_COMMON_ITALIC, "dvu_sans_italic.ttf" },
|
||||
{ Gfx::FONT_STUDIO, "dvu_sans_mono.ttf" },
|
||||
{ Gfx::FONT_STUDIO_BOLD, "dvu_sans_mono_bold.ttf" },
|
||||
{ Gfx::FONT_STUDIO_ITALIC, "dvu_sans_mono.ttf" }, //placeholder for future use, DejaVu Sans Mono doesn't have italic variant
|
||||
{ Gfx::FONT_SATCOM, "dvu_sans.ttf" },
|
||||
{ Gfx::FONT_SATCOM_BOLD, "dvu_sans_bold.ttf" },
|
||||
{ Gfx::FONT_SATCOM_ITALIC, "dvu_sans_italic.ttf" },
|
||||
};
|
||||
|
||||
const std::map<Gfx::FontType, std::string> FONT_TYPE =
|
||||
{
|
||||
{ Gfx::FONT_COMMON, "FontCommon" },
|
||||
{ Gfx::FONT_COMMON_BOLD, "FontCommonBold" },
|
||||
{ Gfx::FONT_COMMON_ITALIC, "FontCommonItalic" },
|
||||
{ Gfx::FONT_STUDIO, "FontStudio" },
|
||||
{ Gfx::FONT_STUDIO_BOLD, "FontStudioBold" },
|
||||
{ Gfx::FONT_STUDIO_ITALIC, "FontStudioItalic" },
|
||||
{ Gfx::FONT_SATCOM, "FontSatCom" },
|
||||
{ Gfx::FONT_SATCOM_BOLD, "FontSatComBold" },
|
||||
{ Gfx::FONT_SATCOM_ITALIC, "FontSatComItalic" },
|
||||
};
|
||||
|
||||
CFontLoader::CFontLoader()
|
||||
{
|
||||
}
|
||||
|
||||
CFontLoader::~CFontLoader()
|
||||
{
|
||||
}
|
||||
|
||||
bool CFontLoader::Init()
|
||||
{
|
||||
try
|
||||
{
|
||||
std::unique_ptr<std::istream> stream;
|
||||
auto inputStream = MakeUnique<CInputStream>("/fonts/fonts.ini");
|
||||
bool good = inputStream->is_open();
|
||||
stream = std::move(inputStream);
|
||||
|
||||
if (good)
|
||||
{
|
||||
bp::ini_parser::read_ini(*stream, m_propertyTree);
|
||||
GetLogger()->Debug("Fonts config file loaded correctly. \n");
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (std::exception & e)
|
||||
{
|
||||
GetLogger()->Error("Error on parsing config file: %s\n", e.what());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
std::string CFontLoader::GetFont(Gfx::FontType type)
|
||||
{
|
||||
return std::string("/fonts/") + m_propertyTree.get<std::string>(GetFontType(type), GetDefaultFont(type));
|
||||
}
|
||||
|
||||
std::string CFontLoader::GetDefaultFont(Gfx::FontType type) const
|
||||
{
|
||||
return DEFAULT_FONT.at(type);
|
||||
}
|
||||
|
||||
std::string CFontLoader::GetFontType(Gfx::FontType type) const
|
||||
{
|
||||
return FONT_TYPE.at(type);
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
/*
|
||||
* This file is part of the Colobot: Gold Edition source code
|
||||
* Copyright (C) 2001-2018, Daniel Roux, EPSITEC SA & TerranovaTeam
|
||||
* http://epsitec.ch; http://colobot.info; http://github.com/colobot
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see http://gnu.org/licenses
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file common/font_loader.h
|
||||
* \brief Class for loading fonts from /data/fonts/fonts.ini
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "common/singleton.h"
|
||||
|
||||
#include "graphics/engine/text.h"
|
||||
|
||||
#include <boost/property_tree/ptree.hpp>
|
||||
|
||||
#include <string>
|
||||
|
||||
/**
|
||||
* \class CFontLoader
|
||||
*
|
||||
* \brief Class for loading config file
|
||||
*
|
||||
*/
|
||||
|
||||
class CFontLoader
|
||||
{
|
||||
public:
|
||||
CFontLoader();
|
||||
virtual ~CFontLoader();
|
||||
|
||||
/** Loads fonts.ini
|
||||
* \return return true on success
|
||||
*/
|
||||
bool Init();
|
||||
|
||||
/** Reads given font from file
|
||||
* \return return path to font file
|
||||
*/
|
||||
std::string GetFont(Gfx::FontType type);
|
||||
|
||||
/** Const type method to read filenames of fonts from defaultFont map
|
||||
* used as a fallback if it wasn't possible to read font from fonts.ini
|
||||
* \return return filename of default path
|
||||
*/
|
||||
std::string GetDefaultFont(Gfx::FontType type) const;
|
||||
|
||||
/** Const type method converting Gfx::FontType to string
|
||||
* \return return id of font used in fonts.ini file
|
||||
*/
|
||||
|
||||
std::string GetFontType(Gfx::FontType type) const;
|
||||
|
||||
private:
|
||||
boost::property_tree::ptree m_propertyTree;
|
||||
};
|
|
@ -5118,7 +5118,7 @@ void CEngine::DrawStats()
|
|||
if (!m_showStats)
|
||||
return;
|
||||
|
||||
float height = m_text->GetAscent(FONT_COLOBOT, 13.0f);
|
||||
float height = m_text->GetAscent(FONT_COMMON, 13.0f);
|
||||
float width = 0.4f;
|
||||
const int TOTAL_LINES = 22;
|
||||
|
||||
|
@ -5145,13 +5145,13 @@ void CEngine::DrawStats()
|
|||
auto drawStatsLine = [&](const std::string& name, const std::string& value, const std::string& value2)
|
||||
{
|
||||
if (!name.empty())
|
||||
m_text->DrawText(name+":", FONT_COLOBOT, 12.0f, pos, 1.0f, TEXT_ALIGN_LEFT, 0, Color(1.0f, 1.0f, 1.0f, 1.0f));
|
||||
m_text->DrawText(name+":", FONT_COMMON, 12.0f, pos, 1.0f, TEXT_ALIGN_LEFT, 0, Color(1.0f, 1.0f, 1.0f, 1.0f));
|
||||
pos.x += 0.25f;
|
||||
if (!value.empty())
|
||||
m_text->DrawText(value, FONT_COLOBOT, 12.0f, pos, 1.0f, TEXT_ALIGN_LEFT, 0, Color(1.0f, 1.0f, 1.0f, 1.0f));
|
||||
m_text->DrawText(value, FONT_COMMON, 12.0f, pos, 1.0f, TEXT_ALIGN_LEFT, 0, Color(1.0f, 1.0f, 1.0f, 1.0f));
|
||||
pos.x += 0.15f;
|
||||
if (!value2.empty())
|
||||
m_text->DrawText(value2, FONT_COLOBOT, 12.0f, pos, 1.0f, TEXT_ALIGN_RIGHT, 0, Color(1.0f, 1.0f, 1.0f, 1.0f));
|
||||
m_text->DrawText(value2, FONT_COMMON, 12.0f, pos, 1.0f, TEXT_ALIGN_RIGHT, 0, Color(1.0f, 1.0f, 1.0f, 1.0f));
|
||||
pos.x -= 0.4f;
|
||||
pos.y -= height;
|
||||
};
|
||||
|
@ -5219,8 +5219,8 @@ void CEngine::DrawTimer()
|
|||
{
|
||||
SetState(ENG_RSTATE_TEXT);
|
||||
|
||||
Math::Point pos(0.98f, 0.98f-m_text->GetAscent(FONT_COLOBOT, 15.0f));
|
||||
m_text->DrawText(m_timerText, FONT_COLOBOT, 15.0f, pos, 1.0f, TEXT_ALIGN_RIGHT, 0, Color(1.0f, 1.0f, 1.0f, 1.0f));
|
||||
Math::Point pos(0.98f, 0.98f-m_text->GetAscent(FONT_COMMON, 15.0f));
|
||||
m_text->DrawText(m_timerText, FONT_COMMON, 15.0f, pos, 1.0f, TEXT_ALIGN_RIGHT, 0, Color(1.0f, 1.0f, 1.0f, 1.0f));
|
||||
}
|
||||
|
||||
void CEngine::AddBaseObjTriangles(int baseObjRank, const std::vector<Gfx::ModelTriangle>& triangles)
|
||||
|
|
|
@ -3301,7 +3301,7 @@ void CParticle::DrawParticleCylinder(int i)
|
|||
|
||||
void CParticle::DrawParticleText(int i)
|
||||
{
|
||||
CharTexture tex = m_engine->GetText()->GetCharTexture(static_cast<UTF8Char>(m_particle[i].text), FONT_COURIER, FONT_SIZE_BIG*2.0f);
|
||||
CharTexture tex = m_engine->GetText()->GetCharTexture(static_cast<UTF8Char>(m_particle[i].text), FONT_STUDIO, FONT_SIZE_BIG*2.0f);
|
||||
if (tex.id == 0) return;
|
||||
|
||||
m_device->SetTexture(0, tex.id);
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
|
||||
#include "app/app.h"
|
||||
|
||||
#include "common/font_loader.h"
|
||||
#include "common/image.h"
|
||||
#include "common/logger.h"
|
||||
#include "common/stringutils.h"
|
||||
|
@ -174,7 +175,7 @@ CText::CText(CEngine* engine)
|
|||
m_defaultSize = 12.0f;
|
||||
m_tabSize = 4;
|
||||
|
||||
m_lastFontType = FONT_COLOBOT;
|
||||
m_lastFontType = FONT_COMMON;
|
||||
m_lastFontSize = 0;
|
||||
m_lastCachedFont = nullptr;
|
||||
|
||||
|
@ -189,18 +190,23 @@ CText::~CText()
|
|||
|
||||
bool CText::Create()
|
||||
{
|
||||
CFontLoader fontLoader;
|
||||
if (!fontLoader.Init())
|
||||
{
|
||||
GetLogger()->Warn("Error on parsing fonts config file: failed to open file\n");
|
||||
}
|
||||
if (TTF_Init() != 0)
|
||||
{
|
||||
m_error = std::string("TTF_Init error: ") + std::string(TTF_GetError());
|
||||
return false;
|
||||
}
|
||||
|
||||
m_fonts[FONT_COLOBOT] = MakeUnique<MultisizeFont>("fonts/dvu_sans.ttf");
|
||||
m_fonts[FONT_COLOBOT_BOLD] = MakeUnique<MultisizeFont>("fonts/dvu_sans_bold.ttf");
|
||||
m_fonts[FONT_COLOBOT_ITALIC] = MakeUnique<MultisizeFont>("fonts/dvu_sans_italic.ttf");
|
||||
|
||||
m_fonts[FONT_COURIER] = MakeUnique<MultisizeFont>("fonts/dvu_sans_mono.ttf");
|
||||
m_fonts[FONT_COURIER_BOLD] = MakeUnique<MultisizeFont>("fonts/dvu_sans_mono_bold.ttf");
|
||||
for (auto type : {FONT_COMMON, FONT_STUDIO, FONT_SATCOM})
|
||||
{
|
||||
m_fonts[static_cast<Gfx::FontType>(type)] = MakeUnique<MultisizeFont>(fontLoader.GetFont(type));
|
||||
m_fonts[static_cast<Gfx::FontType>(type|FONT_BOLD)] = MakeUnique<MultisizeFont>(fontLoader.GetFont(static_cast<Gfx::FontType>(type|FONT_BOLD)));
|
||||
m_fonts[static_cast<Gfx::FontType>(type|FONT_ITALIC)] = MakeUnique<MultisizeFont>(fontLoader.GetFont(static_cast<Gfx::FontType>(type|FONT_ITALIC)));
|
||||
}
|
||||
|
||||
for (auto it = m_fonts.begin(); it != m_fonts.end(); ++it)
|
||||
{
|
||||
|
@ -218,7 +224,7 @@ void CText::Destroy()
|
|||
m_fonts.clear();
|
||||
|
||||
m_lastCachedFont = nullptr;
|
||||
m_lastFontType = FONT_COLOBOT;
|
||||
m_lastFontType = FONT_COMMON;
|
||||
m_lastFontSize = 0;
|
||||
|
||||
TTF_Quit();
|
||||
|
@ -253,7 +259,7 @@ void CText::FlushCache()
|
|||
}
|
||||
|
||||
m_lastCachedFont = nullptr;
|
||||
m_lastFontType = FONT_COLOBOT;
|
||||
m_lastFontType = FONT_COMMON;
|
||||
m_lastFontSize = 0;
|
||||
}
|
||||
|
||||
|
@ -336,8 +342,8 @@ void CText::SizeText(const std::string &text, std::vector<FontMetaChar>::iterato
|
|||
end.x -= sw;
|
||||
}
|
||||
|
||||
start.y -= GetDescent(FONT_COLOBOT, size);
|
||||
end.y += GetAscent(FONT_COLOBOT, size);
|
||||
start.y -= GetDescent(FONT_COMMON, size);
|
||||
end.y += GetAscent(FONT_COMMON, size);
|
||||
}
|
||||
|
||||
void CText::SizeText(const std::string &text, FontType font,
|
||||
|
@ -417,7 +423,7 @@ float CText::GetStringWidth(const std::string &text,
|
|||
unsigned int fmtIndex = 0;
|
||||
while (index < text.length())
|
||||
{
|
||||
FontType font = FONT_COLOBOT;
|
||||
FontType font = FONT_COMMON;
|
||||
if (format + fmtIndex != end)
|
||||
font = static_cast<FontType>(*(format + fmtIndex) & FONT_MASK_FONT);
|
||||
|
||||
|
@ -464,7 +470,7 @@ float CText::GetCharWidth(UTF8Char ch, FontType font, float size, float offset)
|
|||
if (font == FONT_BUTTON)
|
||||
{
|
||||
Math::IntPoint windowSize = m_engine->GetWindowSize();
|
||||
float height = GetHeight(FONT_COLOBOT, size);
|
||||
float height = GetHeight(FONT_COMMON, size);
|
||||
float width = height*(static_cast<float>(windowSize.y)/windowSize.x);
|
||||
return width;
|
||||
}
|
||||
|
@ -506,7 +512,7 @@ int CText::GetCharWidthInt(UTF8Char ch, FontType font, float size, float offset)
|
|||
if (font == FONT_BUTTON)
|
||||
{
|
||||
Math::IntPoint windowSize = m_engine->GetWindowSize();
|
||||
int height = GetHeightInt(FONT_COLOBOT, size);
|
||||
int height = GetHeightInt(FONT_COMMON, size);
|
||||
int width = height*(static_cast<float>(windowSize.y)/windowSize.x);
|
||||
return width;
|
||||
}
|
||||
|
@ -552,7 +558,7 @@ int CText::Justify(const std::string &text, std::vector<FontMetaChar>::iterator
|
|||
unsigned int fmtIndex = 0;
|
||||
while (index < text.length())
|
||||
{
|
||||
FontType font = FONT_COLOBOT;
|
||||
FontType font = FONT_COMMON;
|
||||
if (format + fmtIndex != end)
|
||||
font = static_cast<FontType>(*(format + fmtIndex) & FONT_MASK_FONT);
|
||||
|
||||
|
@ -636,7 +642,7 @@ int CText::Detect(const std::string &text, std::vector<FontMetaChar>::iterator f
|
|||
unsigned int fmtIndex = 0;
|
||||
while (index < text.length())
|
||||
{
|
||||
FontType font = FONT_COLOBOT;
|
||||
FontType font = FONT_COMMON;
|
||||
|
||||
if (format + fmtIndex != end)
|
||||
font = static_cast<FontType>(*(format + fmtIndex) & FONT_MASK_FONT);
|
||||
|
@ -773,7 +779,7 @@ void CText::DrawString(const std::string &text, std::vector<FontMetaChar>::itera
|
|||
StringToUTFCharList(text, chars, format, end);
|
||||
for (auto it = chars.begin(); it != chars.end(); ++it)
|
||||
{
|
||||
FontType font = FONT_COLOBOT;
|
||||
FontType font = FONT_COMMON;
|
||||
if (format + fmtIndex != end)
|
||||
font = static_cast<FontType>(*(format + fmtIndex) & FONT_MASK_FONT);
|
||||
|
||||
|
@ -846,7 +852,7 @@ void CText::DrawString(const std::string &text, std::vector<FontMetaChar>::itera
|
|||
|
||||
if (eol != 0)
|
||||
{
|
||||
FontType font = FONT_COLOBOT;
|
||||
FontType font = FONT_COMMON;
|
||||
UTF8Char ch = TranslateSpecialChar(eol);
|
||||
color = Color(1.0f, 0.0f, 0.0f);
|
||||
DrawCharAndAdjustPos(ch, font, size, pos, color);
|
||||
|
@ -887,7 +893,7 @@ void CText::StringToUTFCharList(const std::string &text, std::vector<UTF8Char> &
|
|||
{
|
||||
UTF8Char ch;
|
||||
|
||||
FontType font = FONT_COLOBOT;
|
||||
FontType font = FONT_COMMON;
|
||||
if (format + index != end)
|
||||
font = static_cast<FontType>(*(format + index) & FONT_MASK_FONT);
|
||||
|
||||
|
@ -993,7 +999,7 @@ void CText::DrawCharAndAdjustPos(UTF8Char ch, FontType font, float size, Math::I
|
|||
if (font == FONT_BUTTON)
|
||||
{
|
||||
Math::IntPoint windowSize = m_engine->GetWindowSize();
|
||||
int height = GetHeightInt(FONT_COLOBOT, size);
|
||||
int height = GetHeightInt(FONT_COMMON, size);
|
||||
int width = height * (static_cast<float>(windowSize.y)/windowSize.x);
|
||||
|
||||
Math::IntPoint p1(pos.x, pos.y - height);
|
||||
|
|
|
@ -77,18 +77,25 @@ enum FontType
|
|||
FONT_ITALIC = 0x08,
|
||||
|
||||
//! Default colobot font used for interface
|
||||
FONT_COLOBOT = 0x00,
|
||||
FONT_COMMON = 0x00,
|
||||
//! Alias for bold colobot font
|
||||
FONT_COLOBOT_BOLD = FONT_COLOBOT | FONT_BOLD,
|
||||
FONT_COMMON_BOLD = FONT_COMMON | FONT_BOLD,
|
||||
//! Alias for italic colobot font
|
||||
FONT_COLOBOT_ITALIC = FONT_COLOBOT | FONT_ITALIC,
|
||||
FONT_COMMON_ITALIC = FONT_COMMON | FONT_ITALIC,
|
||||
|
||||
//! Courier (monospace) font used mainly in code editor (only regular & bold)
|
||||
FONT_COURIER = 0x01,
|
||||
//! Alias for bold courier font
|
||||
FONT_COURIER_BOLD = FONT_COURIER | FONT_BOLD,
|
||||
//! Studio font used mainly in code editor
|
||||
FONT_STUDIO = 0x01,
|
||||
//! Alias for bold studio font
|
||||
FONT_STUDIO_BOLD = FONT_STUDIO | FONT_BOLD,
|
||||
//! Alias for italic studio font (at this point not used anywhere)
|
||||
FONT_STUDIO_ITALIC = FONT_STUDIO | FONT_ITALIC,
|
||||
|
||||
// 0x02 left for possible another font
|
||||
//! SatCom font used for interface (currently bold and italic wariants aren't used anywhere)
|
||||
FONT_SATCOM = 0x02,
|
||||
//! Alias for bold satcom font
|
||||
FONT_SATCOM_BOLD = FONT_SATCOM | FONT_BOLD,
|
||||
//! Alias for italic satcom font
|
||||
FONT_SATCOM_ITALIC = FONT_SATCOM | FONT_ITALIC,
|
||||
|
||||
//! Pseudo-font loaded from textures for buttons, icons, etc.
|
||||
FONT_BUTTON = 0x03,
|
||||
|
|
|
@ -589,7 +589,7 @@ void CRobotMain::ChangePhase(Phase phase)
|
|||
ddim.x = dim.x*15; ddim.y = dim.y*3.0f;
|
||||
pe = m_interface->CreateEdit(pos, ddim, 0, EVENT_EDIT0);
|
||||
pe->SetGenericMode(true);
|
||||
pe->SetFontType(Gfx::FONT_COLOBOT);
|
||||
pe->SetFontType(Gfx::FONT_COMMON);
|
||||
pe->SetEditCap(false);
|
||||
pe->SetHighlightCap(false);
|
||||
pe->ReadText(std::string("help/") + m_app->GetLanguageChar() + std::string("/win.txt"));
|
||||
|
@ -2127,7 +2127,7 @@ void CRobotMain::CreateTooltip(Math::Point pos, const std::string& text)
|
|||
|
||||
Math::Point start, end;
|
||||
|
||||
m_engine->GetText()->SizeText(text, Gfx::FONT_COLOBOT, Gfx::FONT_SIZE_SMALL,
|
||||
m_engine->GetText()->SizeText(text, Gfx::FONT_COMMON, Gfx::FONT_SIZE_SMALL,
|
||||
corner, Gfx::TEXT_ALIGN_LEFT,
|
||||
start, end);
|
||||
|
||||
|
@ -2162,7 +2162,7 @@ void CRobotMain::CreateTooltip(Math::Point pos, const std::string& text)
|
|||
pw->SetState(Ui::STATE_SHADOW);
|
||||
pw->SetTrashEvent(false);
|
||||
|
||||
pos.y -= m_engine->GetText()->GetHeight(Gfx::FONT_COLOBOT, Gfx::FONT_SIZE_SMALL) / 2.0f;
|
||||
pos.y -= m_engine->GetText()->GetHeight(Gfx::FONT_COMMON, Gfx::FONT_SIZE_SMALL) / 2.0f;
|
||||
pw->CreateLabel(pos, dim, -1, EVENT_LABEL2, text);
|
||||
}
|
||||
}
|
||||
|
@ -5913,7 +5913,7 @@ void CRobotMain::CreateCodeBattleInterface()
|
|||
|
||||
int numTeams = m_scoreboard ? GetAllTeams().size() : 0;
|
||||
assert(numTeams < EVENT_SCOREBOARD_MAX-EVENT_SCOREBOARD+1);
|
||||
float textHeight = m_engine->GetText()->GetHeight(Gfx::FONT_COLOBOT, Gfx::FONT_SIZE_SMALL);
|
||||
float textHeight = m_engine->GetText()->GetHeight(Gfx::FONT_COMMON, Gfx::FONT_SIZE_SMALL);
|
||||
|
||||
//window
|
||||
ddim.x = 100.0f/640.0f;
|
||||
|
|
|
@ -44,7 +44,7 @@ CControl::CControl()
|
|||
m_eventType = EVENT_NULL;
|
||||
m_state = STATE_ENABLE|STATE_VISIBLE|STATE_GLINT;
|
||||
m_fontSize = Gfx::FONT_SIZE_SMALL;
|
||||
m_fontType = Gfx::FONT_COLOBOT;
|
||||
m_fontType = Gfx::FONT_COMMON;
|
||||
m_textAlign = Gfx::TEXT_ALIGN_CENTER; //instead m_justify
|
||||
m_bFocus = false;
|
||||
m_bCapture = false;
|
||||
|
|
|
@ -109,7 +109,7 @@ CEdit::CEdit()
|
|||
{
|
||||
m_len = 0;
|
||||
|
||||
m_fontType = Gfx::FONT_COURIER;
|
||||
m_fontType = Gfx::FONT_STUDIO;
|
||||
m_bEdit = true;
|
||||
m_bHilite = true;
|
||||
m_bInsideScroll = true;
|
||||
|
@ -1326,13 +1326,13 @@ void CEdit::SetText(const std::string& text, bool bNew)
|
|||
if ( text[i+1] == 'n' ) // normal ?
|
||||
{
|
||||
font &= ~Gfx::FONT_MASK_FONT;
|
||||
font |= Gfx::FONT_COLOBOT;
|
||||
font |= Gfx::FONT_COMMON;
|
||||
i += 2;
|
||||
}
|
||||
else if ( text[i+1] == 'c' ) // cbot ?
|
||||
{
|
||||
font &= ~Gfx::FONT_MASK_FONT;
|
||||
font |= Gfx::FONT_COURIER;
|
||||
font |= Gfx::FONT_STUDIO;
|
||||
i += 2;
|
||||
}
|
||||
else if ( text[i+1] == 'b' ) // big title ?
|
||||
|
@ -1522,7 +1522,7 @@ bool CEdit::ReadText(std::string filename)
|
|||
if ( m_bSoluce || !bInSoluce )
|
||||
{
|
||||
font &= ~Gfx::FONT_MASK_FONT;
|
||||
font |= Gfx::FONT_COLOBOT;
|
||||
font |= Gfx::FONT_COMMON;
|
||||
inCbot = false;
|
||||
}
|
||||
i += 3;
|
||||
|
@ -1532,7 +1532,7 @@ bool CEdit::ReadText(std::string filename)
|
|||
if ( m_bSoluce || !bInSoluce )
|
||||
{
|
||||
font &= ~Gfx::FONT_MASK_FONT;
|
||||
font |= Gfx::FONT_COURIER;
|
||||
font |= Gfx::FONT_STUDIO;
|
||||
if (!inCbot)
|
||||
{
|
||||
if (inCbotBackground)
|
||||
|
@ -1636,7 +1636,7 @@ bool CEdit::ReadText(std::string filename)
|
|||
|
||||
//? iWidth = m_lineHeight*RetValueParam(buffer.data()+i+7, 1);
|
||||
iWidth = static_cast<float>(GetValueParam(buffer.data()+i+7, 1));
|
||||
iWidth *= m_engine->GetText()->GetHeight(Gfx::FONT_COLOBOT, Gfx::FONT_SIZE_SMALL);
|
||||
iWidth *= m_engine->GetText()->GetHeight(Gfx::FONT_COMMON, Gfx::FONT_SIZE_SMALL);
|
||||
iLines = GetValueParam(buffer.data()+i+7, 2);
|
||||
|
||||
// A part of image per line of text.
|
||||
|
|
|
@ -65,7 +65,7 @@ void CDebugMenu::ToggleInterface()
|
|||
{
|
||||
CreateInterface();
|
||||
CLabel* pl = m_interface->CreateLabel(Math::Point(0.0f, 0.9f), Math::Point(1.0f, 0.1f), -1, EVENT_LABEL19, "??");
|
||||
pl->SetFontType(Gfx::FONT_COURIER);
|
||||
pl->SetFontType(Gfx::FONT_STUDIO);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -383,7 +383,7 @@ void CDisplayInfo::StartDisplayInfo(std::string filename, int index, bool bSoluc
|
|||
edit->SetState(STATE_SHADOW);
|
||||
edit->SetMultiFont(true);
|
||||
edit->SetMaxChar(10000);
|
||||
edit->SetFontType(Gfx::FONT_COLOBOT);
|
||||
edit->SetFontType(Gfx::FONT_SATCOM);
|
||||
edit->SetSoluceMode(bSoluce);
|
||||
edit->ReadText(filename.c_str());
|
||||
edit->HyperHome(filename.c_str());
|
||||
|
|
|
@ -197,7 +197,7 @@ void CDisplayText::DisplayText(const char *text, Math::Vector goal, float height
|
|||
}
|
||||
|
||||
hBox = 0.045f;
|
||||
hLine = m_engine->GetText()->GetHeight(Gfx::FONT_COLOBOT, FONTSIZE);
|
||||
hLine = m_engine->GetText()->GetHeight(Gfx::FONT_COMMON, FONTSIZE);
|
||||
|
||||
nLine = 0;
|
||||
for ( i=0 ; i<MAXDTLINE ; i++ )
|
||||
|
|
|
@ -323,7 +323,7 @@ void CMainDialog::StartInformation(const std::string& title, const std::string&
|
|||
ddim.x = 1.00f;
|
||||
ddim.y = 0.05f;
|
||||
pl = pw->CreateLabel(pos, ddim, -1, EVENT_DIALOG_LABEL, text);
|
||||
pl->SetFontType(Gfx::FONT_COLOBOT_BOLD);
|
||||
pl->SetFontType(Gfx::FONT_COMMON_BOLD);
|
||||
//TODO: Add \n support in CLabel
|
||||
pos.y -= ddim.y;
|
||||
pl = pw->CreateLabel(pos, ddim, -1, EVENT_DIALOG_LABEL1, details);
|
||||
|
|
|
@ -71,7 +71,7 @@ void CScreen::CreateVersionDisplay()
|
|||
ddim.x = 90.0f/640.0f;
|
||||
ddim.y = 10.0f/480.0f;
|
||||
CLabel* pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL1, COLOBOT_VERSION_DISPLAY);
|
||||
pl->SetFontType(Gfx::FONT_COURIER);
|
||||
pl->SetFontType(Gfx::FONT_STUDIO);
|
||||
pl->SetFontSize(9.0f);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -85,7 +85,7 @@ void CScreenIOWrite::CreateInterface()
|
|||
ddim.y = 18.0f/480.0f;
|
||||
pe = pw->CreateEdit(pos, ddim, 0, EVENT_INTERFACE_IONAME);
|
||||
pe->SetState(STATE_SHADOW);
|
||||
pe->SetFontType(Gfx::FONT_COLOBOT);
|
||||
pe->SetFontType(Gfx::FONT_COMMON);
|
||||
pe->SetMaxChar(35);
|
||||
IOReadName();
|
||||
|
||||
|
|
|
@ -159,7 +159,7 @@ void CScreenMainMenu::CreateInterface()
|
|||
pg->SetState(STATE_SHADOW);
|
||||
pos.y -= 5.0f/480.0f;
|
||||
pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL1, "TerranovaTeam");
|
||||
pl->SetFontType(Gfx::FONT_COURIER);
|
||||
pl->SetFontType(Gfx::FONT_STUDIO);
|
||||
pl->SetFontSize(Gfx::FONT_SIZE_SMALL);
|
||||
|
||||
// SatCom button
|
||||
|
|
|
@ -61,7 +61,7 @@ void CScreenQuit::CreateInterface()
|
|||
pe->SetGenericMode(true);
|
||||
pe->SetEditCap(false);
|
||||
pe->SetHighlightCap(false);
|
||||
pe->SetFontType(Gfx::FONT_COURIER);
|
||||
pe->SetFontType(Gfx::FONT_STUDIO);
|
||||
pe->SetFontSize(Gfx::FONT_SIZE_SMALL);
|
||||
pe->ReadText(std::string("help/") + m_app->GetLanguageChar() + std::string("/authors.txt"));
|
||||
|
||||
|
@ -71,13 +71,13 @@ void CScreenQuit::CreateInterface()
|
|||
ddim.y = 16.0f/480.0f;
|
||||
GetResource(RES_TEXT, RT_GENERIC_DEV1, name);
|
||||
pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL1, name);
|
||||
pl->SetFontType(Gfx::FONT_COURIER);
|
||||
pl->SetFontType(Gfx::FONT_STUDIO);
|
||||
pl->SetFontSize(Gfx::FONT_SIZE_SMALL);
|
||||
|
||||
pos.y = 13.0f/480.0f;
|
||||
GetResource(RES_TEXT, RT_GENERIC_DEV2, name);
|
||||
pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL2, name);
|
||||
pl->SetFontType(Gfx::FONT_COURIER);
|
||||
pl->SetFontType(Gfx::FONT_STUDIO);
|
||||
pl->SetFontSize(Gfx::FONT_SIZE_SMALL);
|
||||
|
||||
pos.x = 355.0f/640.0f;
|
||||
|
@ -86,13 +86,13 @@ void CScreenQuit::CreateInterface()
|
|||
ddim.y = 16.0f/480.0f;
|
||||
GetResource(RES_TEXT, RT_GENERIC_EDIT1, name);
|
||||
pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL3, name);
|
||||
pl->SetFontType(Gfx::FONT_COURIER);
|
||||
pl->SetFontType(Gfx::FONT_STUDIO);
|
||||
pl->SetFontSize(Gfx::FONT_SIZE_SMALL);
|
||||
|
||||
pos.y = 13.0f/480.0f;
|
||||
GetResource(RES_TEXT, RT_GENERIC_EDIT2, name);
|
||||
pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL4, name);
|
||||
pl->SetFontType(Gfx::FONT_COURIER);
|
||||
pl->SetFontType(Gfx::FONT_STUDIO);
|
||||
pl->SetFontSize(Gfx::FONT_SIZE_SMALL);
|
||||
|
||||
pos.x = 306.0f/640.0f;
|
||||
|
|
|
@ -627,7 +627,7 @@ void CStudio::StartEditScript(CScript *script, std::string name, Program* progra
|
|||
edit->SetState(STATE_SHADOW);
|
||||
edit->SetInsideScroll(false);
|
||||
//? if ( m_bRunning ) edit->SetEdit(false);
|
||||
edit->SetFontType(Gfx::FONT_COURIER);
|
||||
edit->SetFontType(Gfx::FONT_STUDIO);
|
||||
edit->SetFontStretch(1.0f);
|
||||
edit->SetDisplaySpec(true);
|
||||
edit->SetAutoIndent(m_engine->GetEditIndentMode());
|
||||
|
@ -639,7 +639,7 @@ void CStudio::StartEditScript(CScript *script, std::string name, Program* progra
|
|||
|
||||
list = pw->CreateList(pos, dim, 1, EVENT_STUDIO_LIST, 1.2f);
|
||||
list->SetState(STATE_SHADOW);
|
||||
list->SetFontType(Gfx::FONT_COURIER);
|
||||
list->SetFontType(Gfx::FONT_STUDIO);
|
||||
list->SetSelectCap(false);
|
||||
list->SetFontSize(Gfx::FONT_SIZE_SMALL*0.85f);
|
||||
//? list->SetFontStretch(1.0f);
|
||||
|
|
Loading…
Reference in New Issue