- [NEW] Esquemes de colors

This commit is contained in:
2024-07-02 18:20:16 +02:00
parent 33cfc7ee99
commit af6c5f43ef
4 changed files with 27 additions and 19 deletions

View File

@@ -20,8 +20,8 @@ namespace room
static int doors = NO_DOOR; // Portes obertes
static int door_height[4]; // Altura de cada porta
static int exits[6]; // Habitació destí a la que du cada porta (piso i sostre inclosos)
static int color = 5; // Color de l'habitació
static int exits[6]; // Habitació destí a la que du cada porta (piso i sostre inclosos)
static int color = 0; // Esquema de color de l'habitació
static int floor_type = 0; // Tile per al piso
static int walls_type = 0; // Tile per a les pareds
@@ -36,6 +36,14 @@ namespace room
static draw::surface *doors_surf = nullptr;
static draw::surface *aux_surf = nullptr;
static uint8_t color_schemes[5][4] = {
{7, 11, 10, 9},
{8, 11, 9, 7},
{9, 11, 10, 8},
{10, 11, 8, 7},
{11, 10, 9, 8},
};
void init()
{
actor::clear();
@@ -141,7 +149,7 @@ namespace room
door_height[YN] = SDL_clamp(val, -1, 5);
} else if (util::strcomp(key, "color:")) {
color = util::stringToInt(file::readString(&buffer), {"purple", "green", "cyan", "yellow", "white"}, {7, 8, 9, 10, 11});
color = util::stringToInt(file::readString(&buffer), {"purple", "green", "cyan", "yellow", "white"}, {0, 1, 2, 3, 4});
} else if (util::strcomp(key, "floor-texture:")) {
floor_type = file::readInt(&buffer);
@@ -209,7 +217,7 @@ namespace room
void draw()
{
draw::pushSource();
draw::swapcol(1, color);
draw::swapcol(1, color_schemes[color][0]);
const int floor_row_tiles = int(floor_surf->w/32);
const int floor_x = (floor_type%floor_row_tiles)*32;
@@ -306,7 +314,7 @@ namespace room
void draw2()
{
draw::pushSource();
draw::swapcol(1, color);
draw::swapcol(1, color_schemes[color][0]);
const int doors_row_tiles = int(doors_surf->w/40);
const int doors_x = (doors_type%doors_row_tiles)*40;
@@ -383,9 +391,9 @@ namespace room
return exits[d];
}
int getColor()
int getColor(int which)
{
return color;
return color_schemes[color][which];
}
int getFloorCount()
@@ -440,7 +448,7 @@ namespace room
const char *numToColor(uint8_t value)
{
const char* colors[5] = {"PURPLE", "GREEN", "CYAN", "YELLOW", "WHITE"};
return colors[value-7];
return colors[value];
}
void modify() { modified = true; }