forked from jaildesigner-jailgames/jaildoctors_dilemma
Ya cambia el color de los enemigos al cambiar la paleta
This commit is contained in:
@@ -18,7 +18,9 @@ Enemy::Enemy(enemy_t enemy)
|
||||
x2 = enemy.x2;
|
||||
y1 = enemy.y1;
|
||||
y2 = enemy.y2;
|
||||
color = enemy.color;
|
||||
palette = enemy.palette;
|
||||
colorString = enemy.color;
|
||||
color = stringToColor(palette, colorString);
|
||||
sprite->setPosX(enemy.x);
|
||||
sprite->setPosY(enemy.y);
|
||||
sprite->setVelX(enemy.vx);
|
||||
@@ -102,3 +104,10 @@ void Enemy::reLoadTexture()
|
||||
{
|
||||
texture->reLoad();
|
||||
}
|
||||
|
||||
// Asigna la paleta
|
||||
void Enemy::setPalette(palette_e pal)
|
||||
{
|
||||
palette = pal;
|
||||
color = stringToColor(palette, colorString);
|
||||
}
|
||||
@@ -26,7 +26,8 @@ struct enemy_t
|
||||
int y1; // Limite superior de la ruta en el eje Y
|
||||
int y2; // Limite inferior de la ruta en el eje Y
|
||||
bool flip; // Indica si el enemigo hace flip al terminar su ruta
|
||||
color_t color; // Color del enemigo
|
||||
std::string color; // Color del enemigo
|
||||
palette_e palette; // Paleta de colores
|
||||
};
|
||||
|
||||
class Enemy
|
||||
@@ -40,6 +41,8 @@ private:
|
||||
|
||||
// Variables
|
||||
color_t color; // Color del enemigo
|
||||
std::string colorString; // Color del enemigo en formato texto
|
||||
palette_e palette; // Paleta de colores
|
||||
int x1; // Limite izquierdo de la ruta en el eje X
|
||||
int x2; // Limite derecho de la ruta en el eje X
|
||||
int y1; // Limite superior de la ruta en el eje Y
|
||||
@@ -71,6 +74,9 @@ public:
|
||||
|
||||
// Recarga la textura
|
||||
void reLoadTexture();
|
||||
|
||||
// Asigna la paleta
|
||||
void setPalette(palette_e pal);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -105,6 +105,7 @@ bool Room::loadMapFile(std::string file_path)
|
||||
enemy.asset = asset;
|
||||
enemy.renderer = renderer;
|
||||
enemy.flip = false;
|
||||
enemy.palette = options->palette;
|
||||
|
||||
do
|
||||
{
|
||||
@@ -397,7 +398,7 @@ bool Room::setEnemy(enemy_t *enemy, std::string var, std::string value)
|
||||
|
||||
else if (var == "color")
|
||||
{
|
||||
enemy->color = stringToColor(options->palette, value);
|
||||
enemy->color = value;
|
||||
}
|
||||
|
||||
else if (var == "[/enemy]")
|
||||
@@ -800,6 +801,12 @@ void Room::reLoadPalette()
|
||||
item->setColors(stringToColor(options->palette, itemColor1), stringToColor(options->palette, itemColor2));
|
||||
}
|
||||
|
||||
// Cambia el color de los enemigos
|
||||
for (auto enemy:enemies)
|
||||
{
|
||||
enemy->setPalette(options->palette);
|
||||
}
|
||||
|
||||
// Establece el color del borde
|
||||
screen->setBorderColor(stringToColor(options->palette, borderColor));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user