diff options
| author | Jan <> | 2015-02-18 16:10:34 +0100 |
|---|---|---|
| committer | Mittendrein Markus <maxmitti@gmx.net> | 2015-08-16 18:57:55 +0200 |
| commit | f6494135099e65b6bb36dfbffb4c7d5a3df2a3b6 (patch) | |
| tree | 43c88c26112eb6f6f81ed1d0575962f574501db1 /TemplePushing.c4s | |
| parent | 231f6362538dbd7e17a329849e33ca58d4627dbd (diff) | |
| download | tempelschubsen-f6494135099e65b6bb36dfbffb4c7d5a3df2a3b6.tar.gz tempelschubsen-f6494135099e65b6bb36dfbffb4c7d5a3df2a3b6.zip | |
Lenseflare: Disable gamma change
Diffstat (limited to 'TemplePushing.c4s')
| -rw-r--r-- | TemplePushing.c4s/System.c4g/Lenseflare.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/TemplePushing.c4s/System.c4g/Lenseflare.c b/TemplePushing.c4s/System.c4g/Lenseflare.c new file mode 100644 index 0000000..6de037a --- /dev/null +++ b/TemplePushing.c4s/System.c4g/Lenseflare.c @@ -0,0 +1,65 @@ +/* Lenseflare */ + +#strict + +#appendto LENS + +protected func TuWasBraves() +{ + // Hat es seinen Besitzer verloren? :( + if((!GetPlayerName(GetOwner())) || GetOwner()==-1) + { + for(var i=0; i<MIJON(); ++i) + RemoveObject(Local(i)); + RemoveObject(this()); + return(); + } + // Sonnenposition anpassen + BerechneSonne(); + SetPosition(SonneX,SonneY); + // unskalierten Vektor ermitteln + var VektorX=GibVektorX(GetOwner()); + var VektorY=GibVektorY(GetOwner()); + var VektorDist=GibVektorDist(GetOwner()); + // Die Modulation ist für alle Flares gleich + var FarbModulation = RGBa(GibFarbMod(),GibFarbMod(),GibFarbMod(),GibAlphaMod(VektorDist)); + // Genauso auch die Abstandsangabe + var Abstaende = 1000-BoundBy((3000-VektorDist*10)/3,0,1000); // Promilleangabe 0 = nahe, 1000 = weit weg; 300 Pixel sind dabei "weit weg" + var AbstaendeAbsolut = (50*Abstaende)/10; // Wieviele 1/100 Pixel zwischen den einzelnen Lenseflares sind + // Ist unsere liebe Sonne überhaupt sichtbar (also Tag + unverdeckt) + var SonneSichtbar = IsDay() && (!GBackSemiSolid(0,0)); + // Tagsüber die Sonne einblenden + if(IsDay()) + { + SetVisibility (VIS_Owner()); + } + else + { + SetVisibility (VIS_None()); + } + // Alle Lenseflares durchgehen + for(var i=0; i<MIJON(); ++i) + { + if(SonneSichtbar) + { + // Tags sichtbar + SetVisibility (VIS_Owner(), Local(i)); + SetClrModulation(FarbModulation,Local(i)); + var LensDist = (i*AbstaendeAbsolut)/100; + SetPosition(GibLensPosX(LensDist,VektorX,VektorDist), GibLensPosY(LensDist,VektorY,VektorDist),Local(i)); + } + else + // Nachts unsichtbar ODER bei verdeckter Sonne + SetVisibility (VIS_None(), Local(i)); + } + return; // Gamma-Aenderung deaktiviert fuer Tempelschubsen + // Sofern der Spieler alleine ist + if(GetPlayerCount()==1) + if(IsDay()) + { + var Gelbstich = BoundBy((500-VektorDist)/5,0,100); // Prozentangabe 0 = weit weg, 100 = nahe; 500 Pixel sind dabei "weit weg" + SetGamma (RGB(000+(30*Gelbstich)/100,000+(30*Gelbstich)/100,000), + RGB(128+(60*Gelbstich)/100,128+(60*Gelbstich)/100,128), + RGB(255,255,255), GammaRampe_Lenseflare()); + } +}
\ No newline at end of file |
