| 07-16-2005, 03:00 PM | #1 |
I have some troubles with my fog fading function, when it tries to fade white to nothing, its gets blue on the way :\ Here the functions: Code:
function Fade takes integer from, integer to, integer alpha returns integer
local real diff = 0
if to > from then
set diff = to-from
else
set diff = from-to
endif
set diff = ((diff/255)*alpha)
if to > from then
return R2I( from + diff )
else
return R2I( from - diff )
endif
endfunction
function FogFade takes integer s, integer e, integer d, integer r, integer g, integer b returns nothing
local integer steps = 255
local integer cur = 0
local integer setr
local integer setg
local integer setb
local integer sets
local integer sete
local integer setd
local integer fromred
local integer fromgreen
local integer fromblue
local integer froms
local integer frome
local integer fromd
call StoreInteger(udg_WeatherSystem, "General", "ExitFogFade", 1)
call PolledWait(0.5)
call StoreInteger(udg_WeatherSystem, "General", "ExitFogFade", 0)
set fromred = GetStoredInteger(udg_WeatherSystem, "General", "FogR")
set fromgreen = GetStoredInteger(udg_WeatherSystem, "General", "FogG")
set fromblue = GetStoredInteger(udg_WeatherSystem, "General", "FogB")
set froms = GetStoredInteger(udg_WeatherSystem, "General", "FogS")
set frome = GetStoredInteger(udg_WeatherSystem, "General", "FogE")
set fromd = GetStoredInteger(udg_WeatherSystem, "General", "FogD")
loop
exitwhen ((cur > steps) or (GetStoredInteger(udg_WeatherSystem, "General", "ExitFogFade") == 1 ))
set setr = Fade(fromred, r, cur)
set setg = Fade(fromgreen, g, cur)
set setb = Fade(fromblue, b, cur)
set sets = Fade(froms, s, cur)
set sete = Fade(frome, e, cur)
set setd = Fade(fromd, d, cur)
call SetTerrainFogExBJ(0, sets, sete, setd, setr,setg,setb)
call SetFogColor(setr,setg,setb,sets, sete, setd)
call TriggerSleepAction(0.005)
set cur = cur+1
endloop
endfunction
Here is the SetFogColor function if you wondered was that was: Code:
function SetFogColor takes integer r, integer g, integer b , integer s, integer e, integer d returns nothing
call StoreInteger(udg_WeatherSystem, "General", "FogR", r)
call StoreInteger(udg_WeatherSystem, "General", "FogG", g)
call StoreInteger(udg_WeatherSystem, "General", "FogB", b)
call StoreInteger(udg_WeatherSystem, "General", "FogS", s)
call StoreInteger(udg_WeatherSystem, "General", "FogE", e)
call StoreInteger(udg_WeatherSystem, "General", "FogD", d)
endfunctionHope I can get some help here! ( I never come along with fading codes :P ) |
| 07-16-2005, 07:20 PM | #2 |
FYI call TriggerSleepAction(0.005) Sleep is inaccurate and always sleeps at least about .25. you need to use timers if you want such short waits. i don't know why it goes blue. are you sure you're starting with actual white? 255,255,255 another thing is double check you are giving arguments to functions in the correct order everywhere like call SetTerrainFogExBJ(0, sets, sete, setd, setr,setg,setb) call SetFogColor(setr,setg,setb,sets, sete, setd) |
| 07-17-2005, 10:03 AM | #3 |
I don't need that short sleep, and I've checked all the arguments. Still when fading from white to white its goes white blue and white agian |
| 07-19-2005, 10:06 PM | #4 |
I remember I did something like this but It faded the water color not the fog color. |
| 07-19-2005, 10:11 PM | #5 |
I made a water fading. It uses the same way and works :-/ |
