Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //=============================================================================
- // EXInnersky.
- // fixed major bug which cause clients to crash online
- // added viewtarget support
- // minor other adjustments
- //=============================================================================
- class EXInnersky extends EXOutersky;
- var() vector origin;
- var() float scaling;
- var vector startloc;
- var playerpawn localplayer;
- var vector eye, oldeye, eyerelorigin;
- simulated function playerpawn getlocalplayer()
- {
- foreach allactors(class'playerpawn', localplayer)
- {
- if(localplayer.player.isa('viewport'))
- break;
- }
- return localplayer;
- }
- simulated function postbeginplay()
- {
- startloc = location;
- localplayer = getlocalplayer(); //aww heeeew dis gettin nuked-awrrrrrrrrfgh
- }
- simulated function LinkToSkybox()
- {
- local exoutersky TempSkyZone;
- // SkyZone.
- foreach AllActors( class'exoutersky', TempSkyZone, event)
- {
- if(tempskyzone!=self)
- SkyZone = TempSkyZone;
- }
- if(skyzone==none)
- super.linktoskybox();
- }
- simulated function tick(float dt)
- {
- local actor viewactor;
- if(level.netmode==nm_dedicatedserver)
- {
- disable('tick');
- return;
- }
- if(localplayer==none)
- {
- //localplayer = class'exustaticfuncs'.static.getlocalplayer(level); //aww heeeew dis gettin nuked-awrrrrrrrrfgh
- localplayer = getlocalplayer();
- return;
- }
- if(localplayer.viewtarget!=none)
- viewactor=localplayer.viewtarget;
- else
- viewactor=localplayer;
- oldeye = eye;
- eye = viewactor.location;
- eye += viewactor.velocity*dt; //compensate for frame lag
- if(viewactor.bIsPawn)
- {
- eye.z+=pawn(viewactor).eyeheight;
- eye+=pawn(viewactor).walkbob; //compensate for walkbob
- }
- if(eye!=oldeye) //changed
- {
- eyerelorigin = eye-origin;
- //scale offset and reposition to local origin (startloc)
- eyerelorigin *= scaling;
- eyerelorigin += startloc;
- setlocation(eyerelorigin);
- }
- }
- /************************/
- /** Default Properties **/
- /************************/
- defaultproperties
- {
- bcollideworld=false
- bmovable=true
- bnodelete=true
- bstasis=false
- bStatic=False
- scaling=0.25
- remoterole=role_none
- }
- //========================================================================================================
- //=============================================================================
- // EXOutersky.
- //=============================================================================
- class EXOutersky extends SkyZoneInfo;
- simulated function LinkToSkybox()
- {
- local skyzoneinfo TempSkyZone;
- // SkyZone.
- foreach AllActors( class 'SkyZoneInfo', TempSkyZone, event )
- SkyZone = TempSkyZone;
- if(skyzone==none)
- super.linktoskybox();
- }
- /************************/
- /** Default Properties **/
- /************************/
- defaultproperties
- {
- bcollideworld=false
- collisionradius=0
- collisionheight0
- bmovable=true
- bnodelete=true
- bstasis=false
- bStatic=False
- remoterole=role_simulatedproxy
- }
- //========================================================================================================
- class ExMobileOuterSky extends EXOutersky;
- /************************/
- /** Default Properties **/
- /************************/
- defaultproperties
- {
- bStatic=False
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement