Ty kopiujesz wszystko na pałę. Żeby zmienić kolory nieba, tekstury itp. starczy KRÓCIUTKI skrypcik. Ty skopiowałeś całe skrypty z CZ, w których to trzeba robić wszystko na około.
class zCSkyState
{
var int time; //zREAL
var int polyColor[3]; //zVEC3
var int fogColor[3]; //zVEC3
var int domeColor1[3]; //zVEC3
var int domeColor0[3]; //zVEC3
var int fogDist; //zREAL
var int sunOn; //zBOOL
var int cloudShadowOn; //int
var int layer0_skyMode; //zESkyLayerMode
var int layer0_tex; //zCTexture*
var string layer0_texName; //zSTRING
var int layer0_texAlpha; //zREAL
var int layer0_texScale; //zREAL
var int layer0_texSpeed[2]; //zVEC2
var int layer1_skyMode; //zESkyLayerMode
var int layer1_tex; //zCTexture*
var string layer1_texName; //zSTRING
var int layer1_texAlpha; //zREAL
var int layer1_texScale; //zREAL
var int layer1_texSpeed[2]; //zVEC2
};
layer0 i layer1 odpowiadają za tekstury.
Zmienne z color zmieniają kolor.
Funkcja Splasha, która zmienia kolory chmur i nieba:
func void SetFogColor (var int day_time, var int R, var int G, var int B)
{
var int ptr; ptr = MEM_ReadInt (MEM_SkyController.stateList_array + day_time * 4);
var zCSkyState state; state = MEM_PtrToInst (ptr);
state.fogColor[0] = mkf (R);
state.fogColor[1] = mkf (G);
state.fogColor[2] = mkf (B);
};
func void SetLightningColor (var int day_time, var int R, var int G, var int B)
{
var int ptr; ptr = MEM_ReadInt (MEM_SkyController.stateList_array + day_time * 4);
var zCSkyState state; state = MEM_PtrToInst (ptr);
state.polyColor[0] = mkf (R);
state.polyColor[1] = mkf (G);
state.polyColor[2] = mkf (B);
};
// 0 - 12:00
// 1 - 17:00
// 2 - 19:12
// 3 - 20:24
// 4 - 0:00
// 5 - 3:20
// 6 - 4:30
// 7 - 6:00
func void SetSunnyWeatherPreset ()
{
SetFogColor (0, 82, 109, 198);
SetLightningColor (0, 255, 255, 255);
SetFogColor (1, 150, 90, 60);
SetLightningColor (1, 196, 133, 106);
SetFogColor (2, 150, 90, 60);
SetLightningColor (2, 140, 87, 60);
SetFogColor (3, 10, 11, 18);
SetLightningColor (3, 65, 65, 100);
SetFogColor (4, 0, 0, 0);
SetLightningColor (4, 0, 0, 0);
SetFogColor (5, 0, 0, 0);
SetLightningColor (5, 0, 0, 0);
SetFogColor (6, 26, 36, 85);
SetLightningColor (6, 120, 79, 55);
SetFogColor (7, 70, 98, 193);
SetLightningColor (7, 202, 202, 200);
};
Starczy dodać jeszcze zmienianie tekstur i gotowe. Zamierzony efekt otrzymany JEDNYM kodem.