Make default env colours constants instead of const variables

This commit is contained in:
UnknownShadow200 2019-10-03 16:58:54 +10:00
parent d98584f898
commit 387ff702b6
7 changed files with 36 additions and 37 deletions

View File

@ -18,6 +18,8 @@ typedef union BitmapCol_ {
/* Whether components of two colours are all equal. */
#define BitmapCol_Equals(a,b) ((a)._raw == (b)._raw)
#define PackedCol_ARGB(r, g, b, a) (((cc_uint32)(r) << 16) | ((cc_uint32)(g) << 8) | ((cc_uint32)(b)) | ((cc_uint32)(a) << 24))
/* A 2D array of BitmapCol pixels */
typedef struct Bitmap_ { cc_uint8* Scan0; int Width, Height; } Bitmap;

View File

@ -568,15 +568,15 @@ static void Cw_Callback_4(struct NbtTag* tag) {
/* Callback for compound tag is called after all its children have been processed */
if (IsTag(tag->parent, "EnvColors")) {
if (IsTag(tag, "Sky")) {
Env.SkyCol = Cw_ParseCol(Env_DefaultSkyCol); return;
Env.SkyCol = Cw_ParseCol(ENV_DEFAULT_SKY_COL); return;
} else if (IsTag(tag, "Cloud")) {
Env.CloudsCol = Cw_ParseCol(Env_DefaultCloudsCol); return;
Env.CloudsCol = Cw_ParseCol(ENV_DEFAULT_CLOUDS_COL); return;
} else if (IsTag(tag, "Fog")) {
Env.FogCol = Cw_ParseCol(Env_DefaultFogCol); return;
Env.FogCol = Cw_ParseCol(ENV_DEFAULT_FOG_COL); return;
} else if (IsTag(tag, "Sunlight")) {
Env_SetSunCol(Cw_ParseCol(Env_DefaultSunCol)); return;
Env_SetSunCol(Cw_ParseCol(ENV_DEFAULT_SUN_COL)); return;
} else if (IsTag(tag, "Ambient")) {
Env_SetShadowCol(Cw_ParseCol(Env_DefaultShadowCol)); return;
Env_SetShadowCol(Cw_ParseCol(ENV_DEFAULT_SHADOW_COL)); return;
}
}

View File

@ -2278,14 +2278,14 @@ static void EnvSettingsScreen_InitWidgets(struct MenuOptionsScreen* s) {
void EnvSettingsScreen_Show(void) {
static struct MenuInputDesc descs[11];
MenuInput_Hex(descs[0], Env_DefaultCloudsCol);
MenuInput_Hex(descs[1], Env_DefaultSkyCol);
MenuInput_Hex(descs[2], Env_DefaultFogCol);
MenuInput_Hex(descs[0], ENV_DEFAULT_CLOUDS_COL);
MenuInput_Hex(descs[1], ENV_DEFAULT_SKY_COL);
MenuInput_Hex(descs[2], ENV_DEFAULT_FOG_COL);
MenuInput_Float(descs[3], 0, 1000, 1);
MenuInput_Int(descs[4], -10000, 10000, World.Height + 2);
MenuInput_Hex(descs[5], Env_DefaultSunCol);
MenuInput_Hex(descs[6], Env_DefaultShadowCol);
MenuInput_Hex(descs[5], ENV_DEFAULT_SUN_COL);
MenuInput_Hex(descs[6], ENV_DEFAULT_SHADOW_COL);
MenuInput_Enum(descs[7], Weather_Names, Array_Elems(Weather_Names));
MenuInput_Float(descs[8], -100, 100, 1);
MenuInput_Int(descs[9], -2048, 2048, World.Height / 2);

View File

@ -35,7 +35,6 @@ typedef cc_uint32 PackedCol;
#define PackedCol_Make(r, g, b, a) (PackedCol_R_Bits(r) | PackedCol_G_Bits(g) | PackedCol_B_Bits(b) | PackedCol_A_Bits(a))
#define PACKEDCOL_WHITE PackedCol_Make(255, 255, 255, 255)
#define PackedCol_ARGB(r, g, b, a) (((cc_uint32)(r) << 16) | ((cc_uint32)(g) << 8) | ((cc_uint32)(b)) | ((cc_uint32)(a) << 24))
#define PACKEDCOL_RGB_MASK (PACKEDCOL_R_MASK | PACKEDCOL_G_MASK | PACKEDCOL_B_MASK)
/* Scales RGB components of the given colour. */

View File

@ -263,13 +263,13 @@ static void WoM_ParseConfig(struct HttpRequest* item) {
if (!String_UNSAFE_Separate(&line, '=', &key, &value)) continue;
if (String_CaselessEqualsConst(&key, "environment.cloud")) {
col = WoM_ParseCol(&value, Env_DefaultCloudsCol);
col = WoM_ParseCol(&value, ENV_DEFAULT_CLOUDS_COL);
Env_SetCloudsCol(col);
} else if (String_CaselessEqualsConst(&key, "environment.sky")) {
col = WoM_ParseCol(&value, Env_DefaultSkyCol);
col = WoM_ParseCol(&value, ENV_DEFAULT_SKY_COL);
Env_SetSkyCol(col);
} else if (String_CaselessEqualsConst(&key, "environment.fog")) {
col = WoM_ParseCol(&value, Env_DefaultFogCol);
col = WoM_ParseCol(&value, ENV_DEFAULT_FOG_COL);
Env_SetFogCol(col);
} else if (String_CaselessEqualsConst(&key, "environment.level")) {
if (Convert_ParseInt(&value, &waterLevel)) {
@ -1030,17 +1030,17 @@ static void CPE_SetEnvCol(cc_uint8* data) {
c = PackedCol_Make(data[1], data[3], data[5], 255);
if (variable == 0) {
Env_SetSkyCol(invalid ? Env_DefaultSkyCol : c);
Env_SetSkyCol(invalid ? ENV_DEFAULT_SKY_COL : c);
} else if (variable == 1) {
Env_SetCloudsCol(invalid ? Env_DefaultCloudsCol : c);
Env_SetCloudsCol(invalid ? ENV_DEFAULT_CLOUDS_COL : c);
} else if (variable == 2) {
Env_SetFogCol(invalid ? Env_DefaultFogCol : c);
Env_SetFogCol(invalid ? ENV_DEFAULT_FOG_COL : c);
} else if (variable == 3) {
Env_SetShadowCol(invalid ? Env_DefaultShadowCol : c);
Env_SetShadowCol(invalid ? ENV_DEFAULT_SHADOW_COL : c);
} else if (variable == 4) {
Env_SetSunCol(invalid ? Env_DefaultSunCol : c);
Env_SetSunCol(invalid ? ENV_DEFAULT_SUN_COL : c);
} else if (variable == 5) {
Env_SetSkyboxCol(invalid ? Env_DefaultSkyboxCol : c);
Env_SetSkyboxCol(invalid ? ENV_DEFAULT_SKYBOX_COL : c);
}
}

View File

@ -123,13 +123,6 @@ if (src != dst) { dst = src; Event_RaiseInt(&WorldEvents.EnvVarChanged, var); }
struct _EnvData Env;
const char* const Weather_Names[3] = { "Sunny", "Rainy", "Snowy" };
const PackedCol Env_DefaultSkyCol = PackedCol_Make(0x99, 0xCC, 0xFF, 0xFF);
const PackedCol Env_DefaultFogCol = PackedCol_Make(0xFF, 0xFF, 0xFF, 0xFF);
const PackedCol Env_DefaultCloudsCol = PackedCol_Make(0xFF, 0xFF, 0xFF, 0xFF);
const PackedCol Env_DefaultSkyboxCol = PackedCol_Make(0xFF, 0xFF, 0xFF, 0xFF);
const PackedCol Env_DefaultSunCol = PackedCol_Make(0xFF, 0xFF, 0xFF, 0xFF);
const PackedCol Env_DefaultShadowCol = PackedCol_Make(0x9B, 0x9B, 0x9B, 0xFF);
static char World_TextureUrlBuffer[STRING_SIZE];
String World_TextureUrl = String_FromArray(World_TextureUrlBuffer);
@ -156,20 +149,20 @@ void Env_Reset(void) {
Env.SkyboxHorSpeed = 0.0f;
Env.SkyboxVerSpeed = 0.0f;
Env.ShadowCol = Env_DefaultShadowCol;
Env.ShadowCol = ENV_DEFAULT_SHADOW_COL;
PackedCol_GetShaded(Env.ShadowCol, &Env.ShadowXSide,
&Env.ShadowZSide, &Env.ShadowYMin);
Env.SunCol = Env_DefaultSunCol;
Env.SunCol = ENV_DEFAULT_SUN_COL;
PackedCol_GetShaded(Env.SunCol, &Env.SunXSide,
&Env.SunZSide, &Env.SunYMin);
Env.SkyCol = Env_DefaultSkyCol;
Env.FogCol = Env_DefaultFogCol;
Env.CloudsCol = Env_DefaultCloudsCol;
Env.SkyboxCol = Env_DefaultSkyboxCol;
Env.Weather = WEATHER_SUNNY;
Env.ExpFog = false;
Env.SkyCol = ENV_DEFAULT_SKY_COL;
Env.FogCol = ENV_DEFAULT_FOG_COL;
Env.CloudsCol = ENV_DEFAULT_CLOUDS_COL;
Env.SkyboxCol = ENV_DEFAULT_SKYBOX_COL;
Env.Weather = WEATHER_SUNNY;
Env.ExpFog = false;
}

View File

@ -114,8 +114,13 @@ CC_VAR extern struct _EnvData {
enum Weather_ { WEATHER_SUNNY, WEATHER_RAINY, WEATHER_SNOWY };
extern const char* const Weather_Names[3];
extern const PackedCol Env_DefaultSkyCol, Env_DefaultFogCol, Env_DefaultCloudsCol, Env_DefaultSkyboxCol;
extern const PackedCol Env_DefaultSunCol, Env_DefaultShadowCol;
#define ENV_DEFAULT_SKY_COL PackedCol_Make(0x99, 0xCC, 0xFF, 0xFF)
#define ENV_DEFAULT_FOG_COL PackedCol_Make(0xFF, 0xFF, 0xFF, 0xFF)
#define ENV_DEFAULT_CLOUDS_COL PackedCol_Make(0xFF, 0xFF, 0xFF, 0xFF)
#define ENV_DEFAULT_SKYBOX_COL PackedCol_Make(0xFF, 0xFF, 0xFF, 0xFF)
#define ENV_DEFAULT_SUN_COL PackedCol_Make(0xFF, 0xFF, 0xFF, 0xFF)
#define ENV_DEFAULT_SHADOW_COL PackedCol_Make(0x9B, 0x9B, 0x9B, 0xFF)
/* If url is empty, extracts default texture pack. */
/* Else tries extracting cached texture pack for the given URL, */