1
0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-06-30 16:38:29 +02:00
VVVVVV/desktop_version/src/BlockV.cpp
Dav999-v 689d6e3e97 Print activity zone text in correct font, remove Graphics::drawtextbox
Activity zones need to be in the interface font if the message is from
the system (like Press ENTER to activate terminal, which may be in a
different language) and in the level font if it's a customized message
(setactivitytext).

Graphics::drawtextbox was counting the textbox width and height in
8x8 characters, even including the borders as characters, so it'd need
to be told what the font for the textbox is, and then probably only the
height needs to be adapted to the font and not the width because that's
adapted to the screen width... So just call Graphics::drawpixeltextbox
directly instead. It was already weird enough how actual cutscene
textboxes called Graphics::drawtextbox with x/8, y/8 before the
previous commit, (when you already have the pixel width and height!)
only to have that be a wrapper for drawpixeltextbox by doing x*8, y*8.
2023-02-13 23:27:00 -08:00

119 lines
1.9 KiB
C++

#include "BlockV.h"
#include <SDL_stdinc.h>
#include "Font.h"
blockclass::blockclass(void)
{
clear();
}
void blockclass::clear(void)
{
type = 0;
trigger = 0;
xp = 0;
yp = 0;
wp = 0;
hp = 0;
rect.x = xp;
rect.y = yp;
rect.w = wp;
rect.h = hp;
r = 0;
g = 0;
b = 0;
activity_x = 0;
activity_y = 0;
/* std::strings get initialized automatically, but this is
* in case this function gets called again after construction */
script.clear();
prompt.clear();
print_flags = PR_FONT_INTERFACE;
}
void blockclass::rectset(const int xi, const int yi, const int wi, const int hi)
{
rect.x = xi;
rect.y = yi;
rect.w = wi;
rect.h = hi;
}
void blockclass::setblockcolour(const char* col)
{
if (SDL_strcmp(col, "cyan") == 0)
{
r = 164;
g = 164;
b = 255;
}
else if (SDL_strcmp(col, "red") == 0)
{
r = 255;
g = 60;
b = 60;
}
else if (SDL_strcmp(col, "green") == 0)
{
r = 144;
g = 255;
b = 144;
}
else if (SDL_strcmp(col, "yellow") == 0)
{
r = 255;
g = 255;
b = 134;
}
else if (SDL_strcmp(col, "blue") == 0)
{
r = 95;
g = 95;
b = 255;
}
else if (SDL_strcmp(col, "purple") == 0)
{
r = 255;
g = 134;
b = 255;
}
else if (SDL_strcmp(col, "white") == 0)
{
r = 244;
g = 244;
b = 244;
}
else if (SDL_strcmp(col, "gray") == 0)
{
r = 174;
g = 174;
b = 174;
}
else if (SDL_strcmp(col, "orange") == 0)
{
r = 255;
g = 130;
b = 20;
}
else if (SDL_strcmp(col, "transparent") == 0)
{
r = 0;
g = 0;
b = 0;
}
else
{
//use a gray
r = 174;
g = 174;
b = 174;
}
}