W Gothicu 2 działa poprawnie. Gothic 1 natomiast się crashuje. Nie wiem czy tylko ja tak mam z Ikarusem w G1, że nie działa mi funkcja MEM_PtrToInst. Obszedłem to wskaźnikami do obiektów w klasie zCSkyState i działa (chwalmy Orca):
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);
MEM_WriteInt (ptr+16, mkf(R));
MEM_WriteInt (ptr+20, mkf(G));
MEM_WriteInt (ptr+24, 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);
MEM_WriteInt(ptr+4, mkf(R));
MEM_WriteInt(ptr+8, mkf(G));
MEM_WriteInt(ptr+12, mkf(B));
};