Replace colour IDs with an enum

Entity colors are just integers. Their colour ID gets passed through a
big switch, returning different RGB values depending on the colour ID
(and can also get affected by randomness or other game state.)

But because of this, there's a bunch of random numbers floating around,
with no actual description on what they are other than comments which,
while most of the time are accurate, only exist in the switch.

To fix this, this commit adds a new enum which labels every colour.
While we can't use it as a type (as we need to allow colours outside of
what are defined, in case people want a "pure white", and scripting can
set any colour ID they want), colours have to stay as `int`.
This commit is contained in:
NyakoFox
2025-04-04 16:57:50 -03:00
committed by Ethan Lee
parent b8bcdf39df
commit 0e9c4f98a6
11 changed files with 286 additions and 254 deletions

View File

@@ -146,7 +146,7 @@ void Game::init(void)
prevroomy = 0;
saverx = 0;
savery = 0;
savecolour = 0;
savecolour = EntityColour_CREW_CYAN;
mutebutton = 0;
muted = false;
@@ -2563,7 +2563,7 @@ void Game::updatestate(void)
int i = obj.getplayer();
if (INBOUNDS_VEC(i, obj.entities))
{
obj.entities[i].colour = 0;
obj.entities[i].colour = EntityColour_CREW_CYAN;
obj.entities[i].invis = false;
int j = obj.getteleporter();
@@ -2584,7 +2584,7 @@ void Game::updatestate(void)
if (INBOUNDS_VEC(i, obj.entities))
{
obj.entities[i].tile = 1;
obj.entities[i].colour = 101;
obj.entities[i].colour = EntityColour_TELEPORTER_ACTIVE;
}
break;
}
@@ -2757,7 +2757,7 @@ void Game::updatestate(void)
int i = obj.getplayer();
if (INBOUNDS_VEC(i, obj.entities))
{
obj.entities[i].colour = 0;
obj.entities[i].colour = EntityColour_CREW_CYAN;
obj.entities[i].invis = true;
}
@@ -2771,7 +2771,7 @@ void Game::updatestate(void)
if (INBOUNDS_VEC(i, obj.entities))
{
obj.entities[i].tile = 1;
obj.entities[i].colour = 100;
obj.entities[i].colour = EntityColour_TELEPORTER_INACTIVE;
}
break;
}
@@ -3365,7 +3365,7 @@ void Game::updatestate(void)
int i = obj.getplayer();
if (INBOUNDS_VEC(i, obj.entities))
{
obj.entities[i].colour = 102;
obj.entities[i].colour = EntityColour_TELEPORTER_FLASHING;
}
incstate();
@@ -3407,7 +3407,7 @@ void Game::updatestate(void)
int i = obj.getplayer();
if (INBOUNDS_VEC(i, obj.entities))
{
obj.entities[i].colour = 0;
obj.entities[i].colour = EntityColour_CREW_CYAN;
obj.entities[i].invis = true;
}
@@ -3492,7 +3492,7 @@ void Game::updatestate(void)
int i = obj.getplayer();
if (INBOUNDS_VEC(i, obj.entities))
{
obj.entities[i].colour = 0;
obj.entities[i].colour = EntityColour_CREW_CYAN;
obj.entities[i].invis = true;
}
@@ -3500,7 +3500,7 @@ void Game::updatestate(void)
if(INBOUNDS_VEC(i, obj.entities))
{
obj.entities[i].tile = 1;
obj.entities[i].colour = 100;
obj.entities[i].colour = EntityColour_TELEPORTER_INACTIVE;
}
break;
}
@@ -3544,9 +3544,9 @@ void Game::updatestate(void)
obj.entities[i].lerpoldxp = obj.entities[i].xp;
obj.entities[i].lerpoldyp = obj.entities[i].yp;
obj.entities[j].tile = 2;
obj.entities[j].colour = 101;
obj.entities[j].colour = EntityColour_TELEPORTER_ACTIVE;
}
obj.entities[i].colour = 0;
obj.entities[i].colour = EntityColour_CREW_CYAN;
obj.entities[i].invis = false;
obj.entities[i].dir = 1;
@@ -3675,9 +3675,9 @@ void Game::updatestate(void)
obj.entities[i].lerpoldxp = obj.entities[i].xp;
obj.entities[i].lerpoldyp = obj.entities[i].yp;
obj.entities[j].tile = 2;
obj.entities[j].colour = 101;
obj.entities[j].colour = EntityColour_TELEPORTER_ACTIVE;
}
obj.entities[i].colour = 0;
obj.entities[i].colour = EntityColour_CREW_CYAN;
obj.entities[i].invis = false;
obj.entities[i].dir = 1;
@@ -3788,9 +3788,9 @@ void Game::updatestate(void)
obj.entities[i].lerpoldxp = obj.entities[i].xp;
obj.entities[i].lerpoldyp = obj.entities[i].yp;
obj.entities[j].tile = 2;
obj.entities[j].colour = 101;
obj.entities[j].colour = EntityColour_TELEPORTER_ACTIVE;
}
obj.entities[i].colour = 0;
obj.entities[i].colour = EntityColour_CREW_CYAN;
obj.entities[i].invis = false;
obj.entities[i].dir = 0;
@@ -3901,9 +3901,9 @@ void Game::updatestate(void)
obj.entities[i].lerpoldxp = obj.entities[i].xp;
obj.entities[i].lerpoldyp = obj.entities[i].yp;
obj.entities[j].tile = 2;
obj.entities[j].colour = 101;
obj.entities[j].colour = EntityColour_TELEPORTER_ACTIVE;
}
obj.entities[i].colour = 0;
obj.entities[i].colour = EntityColour_CREW_CYAN;
obj.entities[i].invis = false;
obj.entities[i].dir = 1;
@@ -4019,9 +4019,9 @@ void Game::updatestate(void)
obj.entities[i].lerpoldxp = obj.entities[i].xp;
obj.entities[i].lerpoldyp = obj.entities[i].yp;
obj.entities[j].tile = 2;
obj.entities[j].colour = 101;
obj.entities[j].colour = EntityColour_TELEPORTER_ACTIVE;
}
obj.entities[i].colour = 0;
obj.entities[i].colour = EntityColour_CREW_CYAN;
obj.entities[i].invis = false;
obj.entities[i].dir = 1;
@@ -4137,9 +4137,9 @@ void Game::updatestate(void)
obj.entities[i].lerpoldxp = obj.entities[i].xp;
obj.entities[i].lerpoldyp = obj.entities[i].yp;
obj.entities[j].tile = 2;
obj.entities[j].colour = 101;
obj.entities[j].colour = EntityColour_TELEPORTER_ACTIVE;
}
obj.entities[i].colour = 0;
obj.entities[i].colour = EntityColour_CREW_CYAN;
obj.entities[i].invis = false;
obj.entities[i].dir = 0;
@@ -4253,7 +4253,7 @@ void Game::updatestate(void)
obj.entities[i].lerpoldxp = obj.entities[i].xp;
obj.entities[i].lerpoldyp = obj.entities[i].yp;
obj.entities[j].tile = 2;
obj.entities[j].colour = 101;
obj.entities[j].colour = EntityColour_TELEPORTER_ACTIVE;
}
obj.entities[i].invis = false;
obj.entities[i].dir = 1;
@@ -4366,9 +4366,9 @@ void Game::updatestate(void)
obj.entities[i].lerpoldxp = obj.entities[i].xp;
obj.entities[i].lerpoldyp = obj.entities[i].yp;
obj.entities[j].tile = 2;
obj.entities[j].colour = 101;
obj.entities[j].colour = EntityColour_TELEPORTER_ACTIVE;
}
obj.entities[i].colour = 0;
obj.entities[i].colour = EntityColour_CREW_CYAN;
obj.entities[i].invis = false;
obj.entities[i].dir = 1;
@@ -4479,9 +4479,9 @@ void Game::updatestate(void)
obj.entities[i].lerpoldxp = obj.entities[i].xp;
obj.entities[i].lerpoldyp = obj.entities[i].yp;
obj.entities[j].tile = 2;
obj.entities[j].colour = 101;
obj.entities[j].colour = EntityColour_TELEPORTER_ACTIVE;
}
obj.entities[i].colour = 0;
obj.entities[i].colour = EntityColour_CREW_CYAN;
obj.entities[i].invis = false;
obj.entities[i].dir = 1;
@@ -5363,7 +5363,7 @@ void Game::deathsequence(void)
}
if (INBOUNDS_VEC(i, obj.entities))
{
obj.entities[i].colour = 1;
obj.entities[i].colour = EntityColour_DEAD;
obj.entities[i].invis = false;
}