using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using FistVR;
using H3VRUtils.MonoScripts.VisualModifiers;
using HarmonyLib;
using OtherLoader;
using Sodalite.Api;
using UnityEditor;
using UnityEngine;
using UnityEngine.AI;
using UnityEngine.UI;
using UnityEngine.Windows.Speech;
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
namespace JerryComponent
{
public class GunShipLeave : MonoBehaviour
{
public GameObject planeprop;
private void Start()
{
}
private void Update()
{
}
private void OnDestroy()
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
Object.Instantiate<GameObject>(planeprop, ((Component)this).transform.position, ((Component)this).transform.rotation);
}
}
public class GunShipScript : MonoBehaviour
{
public GameObject marker;
public Transform markerholder;
public GameObject markerswitch;
public GameObject dots;
public GameObject penref1;
public GameObject penref2;
public GameObject penref3;
public GameObject pengeoonpaper1;
public GameObject pengeoonpaper2;
public GameObject pengeoonpaper3;
public GameObject parentfordots;
public float X = 30f;
public float Y = 30f;
public Camera cam;
public GameObject fovSwitch;
public KillAfter k1;
public KillAfter k2;
public KillAfter k3;
public KillAfter k4;
public KillAfter k5;
public KillAfter k6;
public Transform parent;
public OpenBoltReceiver g_40mmCannon;
public OpenBoltReceiver g_105mmCannon;
public JoyStickJetSuit jsjs;
public GameObject g_40mmRot;
public GameObject g_105mmRot;
public GameObject c_CameraRot;
public GameObject laser;
public GameObject shutdown;
public Transform sitpos;
public bool backtoplyer = false;
public GameObject gunSwitch;
public Vector3 vel = Vector3.zero;
private void Start()
{
((Component)GM.CurrentMovementManager).transform.SetParent(parent);
}
private void Update()
{
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
//IL_0011: Unknown result type (might be due to invalid IL or missing references)
//IL_0192: Unknown result type (might be due to invalid IL or missing references)
//IL_0197: Unknown result type (might be due to invalid IL or missing references)
//IL_01b6: Unknown result type (might be due to invalid IL or missing references)
//IL_01bb: Unknown result type (might be due to invalid IL or missing references)
//IL_0060: Unknown result type (might be due to invalid IL or missing references)
//IL_0084: Unknown result type (might be due to invalid IL or missing references)
//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
//IL_0114: Unknown result type (might be due to invalid IL or missing references)
//IL_0119: Unknown result type (might be due to invalid IL or missing references)
//IL_0127: Unknown result type (might be due to invalid IL or missing references)
//IL_06d1: Unknown result type (might be due to invalid IL or missing references)
//IL_06f5: Unknown result type (might be due to invalid IL or missing references)
//IL_0208: Unknown result type (might be due to invalid IL or missing references)
//IL_022c: Unknown result type (might be due to invalid IL or missing references)
//IL_0250: Unknown result type (might be due to invalid IL or missing references)
//IL_0274: Unknown result type (might be due to invalid IL or missing references)
//IL_0298: Unknown result type (might be due to invalid IL or missing references)
//IL_02b8: Unknown result type (might be due to invalid IL or missing references)
//IL_02bd: Unknown result type (might be due to invalid IL or missing references)
//IL_02e0: Unknown result type (might be due to invalid IL or missing references)
//IL_02e5: Unknown result type (might be due to invalid IL or missing references)
//IL_0302: Unknown result type (might be due to invalid IL or missing references)
//IL_0322: Unknown result type (might be due to invalid IL or missing references)
//IL_0327: Unknown result type (might be due to invalid IL or missing references)
//IL_034a: Unknown result type (might be due to invalid IL or missing references)
//IL_034f: Unknown result type (might be due to invalid IL or missing references)
//IL_036c: Unknown result type (might be due to invalid IL or missing references)
//IL_038c: Unknown result type (might be due to invalid IL or missing references)
//IL_0391: Unknown result type (might be due to invalid IL or missing references)
//IL_03b4: Unknown result type (might be due to invalid IL or missing references)
//IL_03b9: Unknown result type (might be due to invalid IL or missing references)
//IL_03d6: Unknown result type (might be due to invalid IL or missing references)
//IL_070b: Unknown result type (might be due to invalid IL or missing references)
//IL_0710: Unknown result type (might be due to invalid IL or missing references)
//IL_040b: Unknown result type (might be due to invalid IL or missing references)
//IL_041b: Unknown result type (might be due to invalid IL or missing references)
//IL_0494: Unknown result type (might be due to invalid IL or missing references)
//IL_04a4: Unknown result type (might be due to invalid IL or missing references)
//IL_0459: Unknown result type (might be due to invalid IL or missing references)
//IL_0469: Unknown result type (might be due to invalid IL or missing references)
//IL_0761: Unknown result type (might be due to invalid IL or missing references)
//IL_0780: Unknown result type (might be due to invalid IL or missing references)
//IL_051d: Unknown result type (might be due to invalid IL or missing references)
//IL_052d: Unknown result type (might be due to invalid IL or missing references)
//IL_04e2: Unknown result type (might be due to invalid IL or missing references)
//IL_04f2: Unknown result type (might be due to invalid IL or missing references)
//IL_05a6: Unknown result type (might be due to invalid IL or missing references)
//IL_05b6: Unknown result type (might be due to invalid IL or missing references)
//IL_056b: Unknown result type (might be due to invalid IL or missing references)
//IL_057b: Unknown result type (might be due to invalid IL or missing references)
//IL_07c7: Unknown result type (might be due to invalid IL or missing references)
//IL_07cc: Unknown result type (might be due to invalid IL or missing references)
//IL_05d9: Unknown result type (might be due to invalid IL or missing references)
//IL_05e9: Unknown result type (might be due to invalid IL or missing references)
//IL_060c: Unknown result type (might be due to invalid IL or missing references)
//IL_061c: Unknown result type (might be due to invalid IL or missing references)
//IL_08fe: Unknown result type (might be due to invalid IL or missing references)
//IL_0930: Unknown result type (might be due to invalid IL or missing references)
//IL_0935: Unknown result type (might be due to invalid IL or missing references)
//IL_0956: Unknown result type (might be due to invalid IL or missing references)
//IL_095b: Unknown result type (might be due to invalid IL or missing references)
if (shutdown.transform.localEulerAngles.x > 45f)
{
if (!backtoplyer)
{
marker.transform.SetParent(markerholder);
marker.transform.localPosition = new Vector3(0f, 0f, 0f);
marker.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
((Component)GM.CurrentMovementManager).transform.SetParent((Transform)null);
((Component)GM.CurrentMovementManager).transform.position = new Vector3(((Component)this).gameObject.transform.position.x, ((Component)this).gameObject.transform.position.y, ((Component)this).gameObject.transform.position.z);
((Component)GM.CurrentMovementManager).transform.eulerAngles = new Vector3(0f, ((Component)this).gameObject.transform.localEulerAngles.y, 0f);
backtoplyer = true;
((Behaviour)k1).enabled = true;
((Behaviour)k2).enabled = true;
((Behaviour)k3).enabled = true;
((Behaviour)k4).enabled = true;
((Behaviour)k5).enabled = true;
((Behaviour)k6).enabled = true;
}
}
else
{
if (!(shutdown.transform.localEulerAngles.x < 45f))
{
return;
}
if (markerswitch.transform.localEulerAngles.x > 45f)
{
marker.transform.SetParent(((Component)GM.CurrentMovementManager.RightHand).transform);
marker.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
marker.transform.localPosition = new Vector3(0f, 0f, 0f);
penref1.transform.position = ((Component)GM.CurrentMovementManager.RightHand).transform.position;
penref2.transform.position = ((Component)GM.CurrentMovementManager.RightHand).transform.position;
penref3.transform.position = ((Component)GM.CurrentMovementManager.RightHand).transform.position;
penref1.transform.localPosition = new Vector3(Mathf.Clamp(penref1.transform.localPosition.x, -0.25f, 0.25f), Mathf.Clamp(penref1.transform.localPosition.y, -0.15f, 0.15f), 0f);
penref2.transform.localPosition = new Vector3(Mathf.Clamp(penref2.transform.localPosition.x, -0.25f, 0.25f), Mathf.Clamp(penref2.transform.localPosition.y, -0.15f, 0.15f), 0f);
penref3.transform.localPosition = new Vector3(Mathf.Clamp(penref3.transform.localPosition.x, -0.2f, 0.2f), Mathf.Clamp(penref3.transform.localPosition.y, -0.1f, 0.1f), 0f);
if (GM.CurrentMovementManager.Hands[1].Input.TriggerPressed)
{
if (Vector3.Distance(((Component)GM.CurrentMovementManager.RightHand).transform.position, penref1.transform.position) < 0.05f)
{
marker.SetActive(false);
pengeoonpaper1.SetActive(true);
Object.Instantiate<GameObject>(dots, penref1.transform.position, penref1.transform.rotation, parentfordots.transform);
}
else if (Vector3.Distance(((Component)GM.CurrentMovementManager.RightHand).transform.position, penref2.transform.position) < 0.05f)
{
marker.SetActive(false);
pengeoonpaper2.SetActive(true);
Object.Instantiate<GameObject>(dots, penref2.transform.position, penref2.transform.rotation, parentfordots.transform);
}
else if (Vector3.Distance(((Component)GM.CurrentMovementManager.RightHand).transform.position, penref3.transform.position) < 0.05f)
{
marker.SetActive(false);
pengeoonpaper3.SetActive(true);
Object.Instantiate<GameObject>(dots, penref3.transform.position, penref3.transform.rotation, parentfordots.transform);
}
else if (Vector3.Distance(((Component)GM.CurrentMovementManager.RightHand).transform.position, penref1.transform.position) > 0.05f && Vector3.Distance(((Component)GM.CurrentMovementManager.RightHand).transform.position, penref2.transform.position) > 0.05f && Vector3.Distance(((Component)GM.CurrentMovementManager.RightHand).transform.position, penref3.transform.position) > 0.05f)
{
marker.SetActive(true);
pengeoonpaper1.SetActive(false);
pengeoonpaper2.SetActive(false);
pengeoonpaper3.SetActive(false);
}
}
else
{
marker.SetActive(true);
pengeoonpaper1.SetActive(false);
pengeoonpaper2.SetActive(false);
pengeoonpaper3.SetActive(false);
}
}
else
{
marker.transform.SetParent(markerholder);
marker.transform.localPosition = new Vector3(0f, 0f, 0f);
marker.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
}
if (fovSwitch.transform.localEulerAngles.x < 45f)
{
cam.fieldOfView = 60f;
}
else
{
cam.fieldOfView = 15f;
}
((Component)GM.CurrentMovementManager).transform.position = ((Component)sitpos).transform.position;
((Component)GM.CurrentMovementManager).transform.eulerAngles = ((Component)sitpos).transform.eulerAngles;
if (!((Object)(object)((FVRInteractiveObject)jsjs).m_hand != (Object)null))
{
return;
}
if (((FVRInteractiveObject)jsjs).m_hand.Input.TriggerPressed)
{
if (gunSwitch.transform.localEulerAngles.x > 45f)
{
g_105mmCannon.ReleaseSeer();
}
else
{
g_40mmCannon.ReleaseSeer();
}
}
else
{
g_40mmCannon.EngageSeer();
g_105mmCannon.EngageSeer();
}
X -= 5f * jsjs.num1 * Time.deltaTime;
Y -= 5f * jsjs.num2 * Time.deltaTime;
if (X > 60f)
{
X = 60f;
}
else if (X < 0f)
{
X = 0f;
}
if (Y > 60f)
{
Y = 60f;
}
else if (Y < 0f)
{
Y = 0f;
}
c_CameraRot.transform.localEulerAngles = new Vector3(X, Y, 0f);
if (laser.activeInHierarchy)
{
AxisLookAt(g_40mmRot.transform, laser.transform.position, Vector3.forward);
AxisLookAt(g_105mmRot.transform, laser.transform.position, Vector3.forward);
}
}
}
private void AxisLookAt(Transform tr_self, Vector3 lookPos, Vector3 directionAxis)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_001b: Unknown result type (might be due to invalid IL or missing references)
//IL_001c: Unknown result type (might be due to invalid IL or missing references)
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
//IL_0022: Unknown result type (might be due to invalid IL or missing references)
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_0029: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0034: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_0040: Unknown result type (might be due to invalid IL or missing references)
//IL_0045: Unknown result type (might be due to invalid IL or missing references)
//IL_0046: Unknown result type (might be due to invalid IL or missing references)
//IL_0052: Unknown result type (might be due to invalid IL or missing references)
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
//IL_0061: Unknown result type (might be due to invalid IL or missing references)
//IL_0066: Unknown result type (might be due to invalid IL or missing references)
//IL_0074: Unknown result type (might be due to invalid IL or missing references)
Quaternion rotation = tr_self.rotation;
Vector3 val = lookPos - tr_self.position;
Vector3 val2 = tr_self.rotation * directionAxis;
Vector3 val3 = Vector3.Cross(val2, val);
Vector3 normalized = ((Vector3)(ref val3)).normalized;
float num = Vector3.Angle(val2, val);
tr_self.rotation = Quaternion.AngleAxis(num, normalized) * rotation;
tr_self.localEulerAngles = new Vector3(tr_self.localEulerAngles.x, tr_self.localEulerAngles.y, 0f);
}
}
public class GunshipActivate : MonoBehaviour
{
public GameObject switchAct;
public GameObject AC;
private void Start()
{
}
private void Update()
{
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
//IL_0011: Unknown result type (might be due to invalid IL or missing references)
//IL_0034: Unknown result type (might be due to invalid IL or missing references)
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
if (switchAct.transform.localEulerAngles.x > 45f)
{
Object.Instantiate<GameObject>(AC, ((Component)GM.CurrentMovementManager).transform.position, ((Component)GM.CurrentMovementManager).transform.rotation);
Object.Destroy((Object)(object)this);
}
}
private void OnDestroy()
{
Object.Destroy((Object)(object)((Component)this).gameObject);
}
}
public class CPGScript : MonoBehaviour
{
public AircraftSeat seat;
public HeadRotate HR;
private void Start()
{
}
private void FixedUpdate()
{
if ((Object)(object)seat.hand != (Object)null)
{
((Behaviour)HR).enabled = true;
}
else if ((Object)(object)seat.hand == (Object)null)
{
((Behaviour)HR).enabled = false;
}
}
}
public class CannonPod : FVRPhysicalObject
{
public string targetObj = "AH64CannonBase";
public string targetRig = "AH64CannonY";
public string targetGrip = "AH64 Gun Grip(Clone)";
public Transform muzzle;
public HingeJoint HJ;
public bool spawned = false;
private void Update()
{
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_0064: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)GameObject.Find(targetObj) != (Object)null && !spawned)
{
((Component)this).gameObject.transform.position = GameObject.Find(targetObj).transform.position;
((Component)this).gameObject.transform.eulerAngles = GameObject.Find(targetObj).transform.eulerAngles;
((Joint)HJ).connectedBody = GameObject.Find(targetRig).GetComponent<Rigidbody>();
spawned = true;
}
if ((Object)(object)GameObject.Find(targetGrip) != (Object)null && (Object)(object)GameObject.Find(targetGrip).GetComponent<OpenBoltReceiver>() != (Object)null)
{
((FVRFireArm)GameObject.Find(targetGrip).GetComponent<OpenBoltReceiver>()).MuzzlePos = muzzle;
}
}
}
public class FireRopeOB2 : MonoBehaviour
{
public OpenBoltReceiver OB;
public GameObject rot;
private void Start()
{
}
private void FixedUpdate()
{
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
//IL_0011: Unknown result type (might be due to invalid IL or missing references)
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
//IL_0067: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0084: Unknown result type (might be due to invalid IL or missing references)
//IL_0089: Unknown result type (might be due to invalid IL or missing references)
if (rot.transform.localEulerAngles.x > 25f && rot.transform.localEulerAngles.x < 75f)
{
OB.ReleaseSeer();
}
else if (rot.transform.localEulerAngles.x < 25f || rot.transform.localEulerAngles.x > 75f)
{
OB.EngageSeer();
}
}
}
public class GunGrip : MonoBehaviour
{
public GameObject realmuzzle;
public string muzzle = "AH64CannonMuzzle";
public string targetObj = "AH64GunGripBase";
public string eject = "AH64CannonEject";
public string heli = "AH-64D_BLKII(Clone)";
public string tailrotor = "AH64TailRotorForce";
public OpenBoltReceiver OBR;
public SnapToPointRigidbody STPR;
public bool spawned = false;
private void Start()
{
}
private void Update()
{
//IL_0033: Unknown result type (might be due to invalid IL or missing references)
//IL_0058: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)GameObject.Find(muzzle) != (Object)null)
{
realmuzzle.transform.position = GameObject.Find(muzzle).transform.position;
realmuzzle.transform.eulerAngles = GameObject.Find(muzzle).transform.eulerAngles;
}
if ((Object)(object)GameObject.Find(targetObj) != (Object)null && !spawned)
{
STPR.snapTo = GameObject.Find(targetObj).transform;
OBR.RoundPos_Ejecting = GameObject.Find(eject).transform;
OBR.RoundPos_Ejection = GameObject.Find(eject).transform;
spawned = true;
}
if ((Object)(object)GameObject.Find(heli) != (Object)null)
{
GameObject.Find(heli).GetComponent<RealStick>().stickobj = (FVRInteractiveObject)(object)OBR;
}
if ((Object)(object)GameObject.Find(tailrotor) != (Object)null)
{
GameObject.Find(tailrotor).GetComponent<TailRotorControl>().Stick = (FVRPhysicalObject)(object)OBR;
}
}
}
public class M4ForCrews : MonoBehaviour
{
public string GUNID;
public GameObject GUN;
public FVRPhysicalObject grab;
public Transform gunpos;
public Rigidbody gunrig;
private void Start()
{
}
private void Update()
{
//IL_0109: Unknown result type (might be due to invalid IL or missing references)
//IL_012d: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)GUN == (Object)null)
{
if (IM.OD.ContainsKey(GUNID))
{
AnvilCallback<GameObject> gameObjectAsync = ((AnvilAsset)IM.OD[GUNID]).GetGameObjectAsync();
if (Object.op_Implicit((Object)(object)gameObjectAsync.Result))
{
GUN = Object.Instantiate<GameObject>(gameObjectAsync.Result, ((Component)gunpos).transform);
grab = GUN.gameObject.GetComponent<FVRPhysicalObject>();
gunrig = GUN.gameObject.GetComponent<Rigidbody>();
}
}
}
else if ((Object)(object)GUN != (Object)null && (Object)(object)((FVRInteractiveObject)grab).m_hand == (Object)null)
{
gunrig.useGravity = false;
GUN.transform.SetParent(gunpos);
GUN.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
GUN.transform.localPosition = new Vector3(0f, 0f, 0f);
}
}
}
public class M4ForCrews2 : MonoBehaviour
{
public string GUNID;
public GameObject GUNPILOT;
public GameObject GUNCPG;
public ClosedBoltWeapon grabPilot;
public ClosedBoltWeapon grabCPG;
public Transform gunposPilot;
public Transform gunposCPG;
public Rigidbody gunrigpilot;
public Rigidbody gunrigcpg;
public GameObject rot1;
public GameObject rot2;
private void Start()
{
}
private void Update()
{
//IL_0286: Unknown result type (might be due to invalid IL or missing references)
//IL_028b: Unknown result type (might be due to invalid IL or missing references)
//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
//IL_0101: Unknown result type (might be due to invalid IL or missing references)
//IL_02c9: Unknown result type (might be due to invalid IL or missing references)
//IL_02ce: Unknown result type (might be due to invalid IL or missing references)
//IL_0210: Unknown result type (might be due to invalid IL or missing references)
//IL_0234: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)GUNPILOT == (Object)null)
{
if ((Object)(object)GameObject.Find(GUNID) != (Object)null)
{
GUNPILOT = GameObject.Find(GUNID);
((Object)GUNPILOT).name = "M4PILOT";
grabPilot = GUNPILOT.gameObject.GetComponent<ClosedBoltWeapon>();
gunrigpilot = GUNPILOT.gameObject.GetComponent<Rigidbody>();
}
}
else if ((Object)(object)GUNPILOT != (Object)null)
{
if (grabPilot.m_fireSelectorMode == 0)
{
gunrigpilot.useGravity = false;
GUNPILOT.transform.SetParent(gunposPilot);
GUNPILOT.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
GUNPILOT.transform.localPosition = new Vector3(0f, 0f, 0f);
}
else if (grabPilot.m_fireSelectorMode != 0)
{
GUNPILOT.transform.SetParent((Transform)null);
}
if ((Object)(object)GUNCPG == (Object)null)
{
if ((Object)(object)GameObject.Find(GUNID) != (Object)null)
{
GUNCPG = GameObject.Find(GUNID);
((Object)GUNCPG).name = "M4CPG";
grabCPG = GUNCPG.gameObject.GetComponent<ClosedBoltWeapon>();
gunrigcpg = GUNCPG.gameObject.GetComponent<Rigidbody>();
}
}
else if ((Object)(object)GUNCPG != (Object)null)
{
if (grabCPG.m_fireSelectorMode == 0)
{
gunrigcpg.useGravity = false;
GUNCPG.transform.SetParent(gunposCPG);
GUNCPG.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
GUNCPG.transform.localPosition = new Vector3(0f, 0f, 0f);
}
else if (grabCPG.m_fireSelectorMode != 0)
{
GUNCPG.transform.SetParent((Transform)null);
}
}
}
if ((Object)(object)grabPilot != (Object)null && rot1.transform.localEulerAngles.z < 45f)
{
grabPilot.m_fireSelectorMode = 0;
}
if ((Object)(object)grabCPG != (Object)null && rot2.transform.localEulerAngles.z < 45f)
{
grabCPG.m_fireSelectorMode = 0;
}
}
}
public class MissilePod : MonoBehaviour
{
public string targetObj = "AH64IRSTLowerY";
public Transform muzzle;
public bool spawned = false;
public HingeJoint HJ;
private void Start()
{
}
private void Update()
{
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
//IL_0064: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)GameObject.Find(targetObj) != (Object)null && !spawned)
{
((Component)this).gameObject.transform.position = GameObject.Find(targetObj).transform.position;
((Component)this).gameObject.transform.eulerAngles = GameObject.Find(targetObj).transform.eulerAngles;
((Joint)HJ).connectedBody = GameObject.Find(targetObj).GetComponent<Rigidbody>();
spawned = true;
}
}
}
public class PilotScript : MonoBehaviour
{
public AircraftSeat seat;
public HeadRotate HR1;
public HeadRotate HR2;
public string targetGun = "AH64CannonX(Clone)";
public string targetcam = "AH64IRSTLowerX(Clone)";
public SpringJoint SJ;
public string campos = "AH64IRSTCAMPOS";
public GameObject TAS;
private void Start()
{
}
private void FixedUpdate()
{
//IL_007c: Unknown result type (might be due to invalid IL or missing references)
//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)GameObject.Find(targetGun) != (Object)null)
{
HR1.headGEO = GameObject.Find(targetcam);
((Joint)SJ).connectedBody = GameObject.Find(targetGun).GetComponent<Rigidbody>();
}
if ((Object)(object)GameObject.Find(campos) != (Object)null)
{
TAS.transform.position = GameObject.Find(campos).transform.position;
TAS.transform.eulerAngles = GameObject.Find(campos).transform.eulerAngles;
}
if ((Object)(object)seat.hand != (Object)null)
{
HR1.activate = true;
HR2.activate = true;
}
else if ((Object)(object)seat.hand == (Object)null)
{
HR1.activate = false;
HR2.activate = false;
}
}
}
public class TrueLockToHead : MonoBehaviour
{
public GameObject thisobj;
private void Start()
{
}
private void Update()
{
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_006f: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)GM.CurrentMovementManager != (Object)null)
{
thisobj.transform.SetParent(((Component)GM.CurrentMovementManager.Head).transform);
thisobj.transform.localPosition = new Vector3(0f, 0f, 0f);
thisobj.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
}
}
}
public class Unfreeze : MonoBehaviour
{
public Rigidbody thisobj;
private void Start()
{
}
private void FixedUpdate()
{
thisobj.isKinematic = false;
}
}
}
public class GSCamera : GSCameraAux
{
}
[RequireComponent(typeof(WheelCollider))]
public class GSWheelAux : GLandingGear
{
}
public class GSurfaceCenter : GCenter
{
}
public class GSurfaceDrive : GDrive
{
}
[RequireComponent(typeof(Rigidbody))]
public class GSurfaceManager : GAircraft
{
}
public class GSurfacePivot : GPivot
{
}
public class GSurfaceTrail : GTrail
{
}
public class GSurfaceWindZone : GWindBasic
{
}
public class GSAreaHeight : MonoBehaviour
{
private float baseHeight = 0f;
public float coefHeight = 0.01f;
public GameObject viewer = null;
private Vector3 position = Vector3.zero;
private void Start()
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Unknown result type (might be due to invalid IL or missing references)
baseHeight = ((Component)this).gameObject.transform.position.y;
}
private void Update()
{
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_0034: Unknown result type (might be due to invalid IL or missing references)
//IL_0039: Unknown result type (might be due to invalid IL or missing references)
//IL_0064: Unknown result type (might be due to invalid IL or missing references)
//IL_0069: Unknown result type (might be due to invalid IL or missing references)
//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)viewer != (Object)null)
{
position = ((Component)this).gameObject.transform.position;
if (viewer.transform.position.y > baseHeight)
{
position.y = baseHeight + (viewer.transform.position.y - baseHeight) * coefHeight;
}
else
{
position.y = baseHeight;
}
((Component)this).gameObject.transform.position = position;
}
}
}
public class GSCameraAux : MonoBehaviour
{
private GAircraft sm = null;
public Camera attachToCamera = null;
private GUITexture crossair = null;
public Light sunlight = null;
public bool sunlightAttach = true;
public float sunlightAttachDistance = 100f;
public float sunlightAttachFilter = 0.01f;
public float inputHorizontalMouseSensivity = 3.4f;
public float inputVerticalMouseSensivity = 2.1f;
public float inputWheelMouseSensivity = 2.1f;
public KeyCode inputExternalCameraKeyForToggle = (KeyCode)99;
private bool inputExternalCameraKeyForToggled = false;
private int currentCameraPosition = 0;
private int countCameraPositions = 0;
public KeyCode inputFixedPositionCameraKeyForToggle = (KeyCode)118;
private bool inputFixedPositionCameraKeyForToggled = false;
public bool enableRecoverVehicle = true;
public bool enableRecoverVehicleReset = false;
public Vector3 enableRecoverVehiclePosition = Vector3.zero;
public Vector3 enableRecoverVehicleRotation = Vector3.zero;
public KeyCode inputRecoverVehicleKeyForToggle = (KeyCode)111;
private bool inputRecoverVehicleKeyForToggled = false;
private bool cameraFixedPositionEnabled = false;
private bool cameraExternalEnabled_lastValue = true;
private bool cameraOnFixedUpdate = true;
private int cameraOnFixedUpdate_count = 0;
public GameObject cameraAlternateFollow = null;
public bool globalSimulationScaleApplyToCamera = true;
private float globalSimulationScale = 1f;
public float cameraExternalMinHeight = -93f;
public bool cameraExternalMinHeightAutoProbe = true;
public LayerMask cameraExternalMinHeightAutoProbeLayermask = LayerMask.op_Implicit(-24);
private float cameraExternalMinHeightScale = 1f;
public float cameraExternalMinHeightAutoProbeDelta = 5f;
public float cameraExternalMinHeightAutoProbeDeltaProbe = 1000f;
public bool cameraExternalEnabled = false;
public float cameraExternalNearClipPlane = 2f;
public float cameraExternalFarClipPlane = 8000f;
public float cameraExternalFilter = 0.1f;
private float cameraExternalDistance = 2f;
public float cameraExternalDistanceMin = 0.4f;
public float cameraExternalDistanceMax = 101f;
public float cameraExternalDistanceStep = 1.25f;
public bool cameraExternalUpWorld = true;
public float cameraInternalSensivity = 1.35f;
public float cameraInternalNearClipPlane = 0.175f;
public float cameraInternalFarClipPlane = 5000f;
public float cameraInternalFilter = 1f;
private float cameraInternalFov = 60f;
public float cameraInternalFovMin = 15f;
public float cameraInternalFovMax = 110f;
public float cameraInternalFovStep = 15f;
public bool cameraInternalUpWorld = false;
public bool cameraInternalUpWorldMix = true;
public float cameraInternalUpWorldMixing = 0.5f;
public bool cameraInternalDontVertical = false;
public bool cameraInternalDontVerticalMix = true;
public float cameraInternalDontVerticalMixing = 0.5f;
public float cameraInternalGsMixing = 0.05f;
public float cameraInternalGsMax = 0.7f;
public bool cameraInternalGsPosition = true;
public float cameraInternalGsPositionDelta = 0.075f;
public float cameraInternalGsPositionHDelta = 0.1f;
public bool cameraInternalGsRotation = true;
public float cameraInternalGsRotationDelta = 0.2f;
public bool enableSpecialForce = true;
public float specialForceMagnitude = 10000f;
public KeyCode specialForceApplyZeroRotate = (KeyCode)117;
public KeyCode specialForceApplyLeft = (KeyCode)106;
public KeyCode specialForceApplyRight = (KeyCode)108;
public KeyCode specialForceApplyForward = (KeyCode)105;
public KeyCode specialForceApplyForceBack = (KeyCode)107;
public KeyCode specialForceApplyForceUp = (KeyCode)121;
public KeyCode specialForceApplyDown = (KeyCode)104;
public bool fogRenderingEnabled = false;
private FogMode initialFogMode = (FogMode)1;
private float initialFogValue = 0f;
public float fog01 = 0f;
public float extremeFogValue = -1f;
public bool skyboxRenderingEnabled = false;
private Color skyboxRenderingColor;
private Color skyboxRenderingColorTop;
public float skyboxRenderingColorTopDeltaHeight = 10000f;
public float skyboxRenderingColorUpwardsScatteringDistance = 30000f;
public float skyboxRenderingColorDownwardsScatteringDistance = 3000000f;
public bool skyboxRenderingColor0Enabled = false;
public Color skyboxRenderingColor0 = skyboxRenderingColor0Default;
public float skyboxRenderingColor0Height = 0f;
public float skyboxRenderingColor0Distance = 1000f;
public Color skyboxRenderingColor1 = skyboxRenderingColor1Default;
public float skyboxRenderingColor1Height = 1500f;
public Color skyboxRenderingColor2 = skyboxRenderingColor2Default;
public float skyboxRenderingColor2Height = 15000f;
public Color skyboxRenderingColor3 = skyboxRenderingColor3Default;
public float skyboxRenderingColor3Height = 45000f;
[NonSerialized]
public int skyboxAngleColors;
[NonSerialized]
public Color32[] skyboxAngleColor = null;
[NonSerialized]
public int[,] skyboxSideAngles;
[NonSerialized]
public int[,] skyboxTopAngles;
[NonSerialized]
public int[,] skyboxBottomAngles;
private Color tmp_skyboxRenderingColorm1;
private Color tmp_skyboxRenderingColor0;
private Color tmp_skyboxRenderingColor1;
private Color tmp_skyboxRenderingColor2;
private Color tmp_skyboxRenderingColor3;
private Color tmp_skyboxRenderingColor4;
public int skyboxTextureWidth = 64;
public int skyboxTextureHeight = 64;
public int skyboxRenderNth = 5;
public int skyboxRenderSidesPerNth = 2;
private int skyboxRenderNth_count = 0;
private int skyboxRenderNth_tex = 0;
private Skybox skyboxComponent = null;
private Material skyboxMaterial = null;
private Texture2D _FrontTex = null;
private Texture2D _LeftTex = null;
private Texture2D _RightTex = null;
private Texture2D _BackTex = null;
private Texture2D _UpTex = null;
private Texture2D _DownTex = null;
[NonSerialized]
private Color32[] pixels = null;
public bool searchSounds = true;
[HideInInspector]
public GUIText speedmeter;
[HideInInspector]
public GUIText autopilotmeter;
[HideInInspector]
public GameObject scene;
[HideInInspector]
public GameObject ground;
[HideInInspector]
public GameObject clouds;
private AudioSource[] soundmin = null;
private string soundmin_pivotId = "";
private float soundmin_pivotScale = 1f;
private float soundmin_pitchBase = 1f;
private float soundmin_pitchScale = 1f;
private int soundmin_count;
private int soundmin_countmax = 10;
private AudioSource[] soundmax = null;
private string soundmax_pivotId = "";
private float soundmax_pivotScale = 1f;
private float soundmax_pitchBase = 0.1f;
private float soundmax_pitchScale = 1f;
private int soundmax_count;
private int soundmax_countmax = 10;
private AudioSource[] soundstall = null;
private int soundstall_count;
private int soundstall_countmax = 10;
private bool iscrashed = false;
private AudioSource[] soundcrash = null;
private int soundcrash_count;
private int soundcrash_countmax = 10;
public string searchScreenCursorObjectName = "Screen cursor";
public string searchScreenSpeedMeterObjectName = "Screen speed meter";
public string searchScreenAutopilotMeterObjectName = "Screen autopilot meter";
public string searchSceneObjectName = "Scene";
public float searchSceneObjectGranularity = 1500f;
public string searchGroundObjectName = "Scene ground";
public float searchGroundObjectGranularity = 150f;
public string searchCloudsObjectName = "Scene clouds";
public float searchCloudsObjectGranularity = 1500f;
public float searchCloudsWindSpeedMultiplier = 5f;
private Vector3 worldup = Vector3.up;
private Vector3 cameraposition = Vector3.zero;
private Quaternion cameraorientation = Quaternion.identity;
private bool camerafixed = false;
private Vector3 cameralookat = Vector3.zero;
private Vector3 cameraup = Vector3.up;
private Vector3 cameraposition_filtered = Vector3.zero;
private Vector3 cameralookat_filtered = Vector3.zero;
private Vector3 cameraup_filtered = Vector3.up;
private float camera_filter = 0.01f;
private int scheduleRecoverVehicle = 0;
private float gs_old = 0f;
private float hgs_old = 0f;
private float ProcessSounds_granularityPitch = 0.01f;
private float ProcessSounds_granularityTime = 0.25f;
private float ProcessSounds_granularityTime2 = 5.25f;
private float ProcessSounds_granularityTimeRemaining = 0f;
private float ProcessSounds_granularityTime2Remaining = 0f;
public static Color skyboxRenderingColor0Default => new Color(0.41015625f, 0.41015625f, 0.41015625f, 1f);
public static Color skyboxRenderingColor1Default => new Color(0.48828125f, 0.68359375f, 0.99609375f, 1f);
public static Color skyboxRenderingColor2Default => new Color(0.19140625f, 0.30078125f, 0.47265625f, 1f);
public static Color skyboxRenderingColor3Default => new Color(0f, 0f, 0f, 1f);
public bool recoverVehicle()
{
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_0092: Unknown result type (might be due to invalid IL or missing references)
//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
//IL_00de: Unknown result type (might be due to invalid IL or missing references)
//IL_0112: Unknown result type (might be due to invalid IL or missing references)
//IL_0132: Unknown result type (might be due to invalid IL or missing references)
//IL_0137: Unknown result type (might be due to invalid IL or missing references)
//IL_014c: Unknown result type (might be due to invalid IL or missing references)
//IL_0151: Unknown result type (might be due to invalid IL or missing references)
//IL_015e: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)sm != (Object)null)
{
sm.isCrashed = false;
if (enableRecoverVehicleReset)
{
sm.placeAt(enableRecoverVehiclePosition, enableRecoverVehicleRotation, applySpeed: true, 0f * sm.globalSimulationScale, applyThrottle: true, 0f);
}
else if (Input.GetKey((KeyCode)304) || Input.GetKey((KeyCode)303))
{
sm.placeAt(((Component)this).gameObject.transform.position + new Vector3(0f, 500f * sm.globalSimulationScale, 0f), new Vector3(-30f, ((Component)this).gameObject.transform.eulerAngles.y, 0f), 100f * sm.globalSimulationScale);
}
else
{
sm.placeAt(((Component)this).gameObject.transform.position + new Vector3(0f, 50f * sm.globalSimulationScale, 0f), new Vector3(-30f, ((Component)this).gameObject.transform.eulerAngles.y, 0f), 100f * sm.globalSimulationScale);
}
sm.ignore_check_simulation_broken();
}
return true;
}
private void FindNodes(GameObject e, int r)
{
//IL_0072: Unknown result type (might be due to invalid IL or missing references)
//IL_0078: Expected O, but got Unknown
//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
//IL_01ac: Expected O, but got Unknown
//IL_02da: Unknown result type (might be due to invalid IL or missing references)
//IL_02e0: Expected O, but got Unknown
//IL_039e: Unknown result type (might be due to invalid IL or missing references)
//IL_03a4: Expected O, but got Unknown
for (int i = 0; i < e.transform.childCount; i++)
{
GameObject gameObject = ((Component)e.transform.GetChild(i)).gameObject;
if (!gameObject.activeSelf)
{
continue;
}
if (searchSounds)
{
if (((Object)gameObject).name.Contains("_soundmin_") && soundmin_count < soundmin_countmax)
{
soundmin[soundmin_count] = (AudioSource)gameObject.GetComponent("AudioSource");
if ((Object)(object)soundmin[soundmin_count] != (Object)null)
{
soundmin[soundmin_count].loop = true;
soundmin[soundmin_count].volume = 0f;
soundmin_pivotId = GAircraft.ReplaceStringIgnoreCase(((Object)gameObject).name, "pivotId", soundmin_pivotId);
soundmin_pivotScale = GAircraft.ReplaceFloatIgnoreCase(((Object)gameObject).name, "pivotScale", soundmin_pivotScale);
soundmin_pitchBase = GAircraft.ReplaceFloatIgnoreCase(((Object)gameObject).name, "pitchBase", soundmin_pitchBase);
soundmin_pitchScale = GAircraft.ReplaceFloatIgnoreCase(((Object)gameObject).name, "pitchScale", soundmin_pitchScale);
soundmin[soundmin_count].Play((ulong)Mathf.FloorToInt((float)soundmin_count * 1.7f * 44100f));
soundmin_count++;
}
}
if (((Object)gameObject).name.Contains("_soundmax_") && soundmax_count < soundmax_countmax)
{
soundmax[soundmax_count] = (AudioSource)gameObject.GetComponent("AudioSource");
if ((Object)(object)soundmax[soundmax_count] != (Object)null)
{
soundmax[soundmax_count].loop = true;
soundmax[soundmax_count].volume = 0f;
soundmax_pivotId = GAircraft.ReplaceStringIgnoreCase(((Object)gameObject).name, "pivotId", soundmax_pivotId);
soundmax_pivotScale = GAircraft.ReplaceFloatIgnoreCase(((Object)gameObject).name, "pivotScale", soundmax_pivotScale);
soundmax_pitchBase = GAircraft.ReplaceFloatIgnoreCase(((Object)gameObject).name, "pitchBase", soundmax_pitchBase);
soundmax_pitchScale = GAircraft.ReplaceFloatIgnoreCase(((Object)gameObject).name, "pitchScale", soundmax_pitchScale);
soundmax[soundmax_count].Play((ulong)Mathf.FloorToInt((float)soundmax_count * 1.9f * 44100f));
soundmax_count++;
}
}
if (((Object)gameObject).name.Contains("_soundstall_") && soundstall_count < soundstall_countmax)
{
soundstall[soundstall_count] = (AudioSource)gameObject.GetComponent("AudioSource");
if ((Object)(object)soundstall[soundstall_count] != (Object)null)
{
soundstall[soundstall_count].loop = true;
soundstall[soundstall_count].volume = 0f;
soundstall[soundstall_count].Play((ulong)Mathf.FloorToInt((float)soundstall_count * 1.9f * 44100f));
soundstall_count++;
}
}
if (((Object)gameObject).name.Contains("_soundcrash_") && soundcrash_count < soundcrash_countmax)
{
soundcrash[soundcrash_count] = (AudioSource)gameObject.GetComponent("AudioSource");
if ((Object)(object)soundcrash[soundcrash_count] != (Object)null)
{
soundcrash[soundcrash_count].loop = false;
soundcrash[soundcrash_count].volume = 0f;
soundcrash_count++;
}
}
}
if (r < 10)
{
FindNodes(gameObject, r + 1);
}
}
}
private void Skybox_Start()
{
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004d: Expected O, but got Unknown
//IL_0104: Unknown result type (might be due to invalid IL or missing references)
//IL_010e: Expected O, but got Unknown
//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
//IL_00d6: Expected O, but got Unknown
//IL_0144: Unknown result type (might be due to invalid IL or missing references)
//IL_014e: Expected O, but got Unknown
//IL_0164: Unknown result type (might be due to invalid IL or missing references)
//IL_016e: Expected O, but got Unknown
//IL_0184: Unknown result type (might be due to invalid IL or missing references)
//IL_018e: Expected O, but got Unknown
//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
//IL_01ae: Expected O, but got Unknown
//IL_01c4: Unknown result type (might be due to invalid IL or missing references)
//IL_01ce: Expected O, but got Unknown
//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
//IL_01ee: Expected O, but got Unknown
if ((Object)(object)skyboxComponent == (Object)null)
{
skyboxComponent = (Skybox)((Component)((!((Object)(object)attachToCamera == (Object)null)) ? attachToCamera : Camera.main)).gameObject.GetComponent("Skybox");
}
if ((Object)(object)skyboxComponent == (Object)null)
{
((Component)((!((Object)(object)attachToCamera == (Object)null)) ? attachToCamera : Camera.main)).gameObject.AddComponent<Skybox>();
}
if ((Object)(object)skyboxComponent == (Object)null)
{
skyboxComponent = (Skybox)((Component)((!((Object)(object)attachToCamera == (Object)null)) ? attachToCamera : Camera.main)).gameObject.GetComponent("Skybox");
}
if (!((Object)(object)skyboxComponent != (Object)null))
{
return;
}
if ((Object)(object)skyboxMaterial == (Object)null)
{
skyboxMaterial = new Material(Shader.Find("RenderFX/Skybox"));
}
if ((Object)(object)skyboxMaterial != (Object)null)
{
int num = skyboxTextureWidth;
int num2 = skyboxTextureHeight;
if ((Object)(object)_FrontTex == (Object)null)
{
_FrontTex = new Texture2D(num, num2, (TextureFormat)5, false);
}
if ((Object)(object)_LeftTex == (Object)null)
{
_LeftTex = new Texture2D(num, num2, (TextureFormat)5, false);
}
if ((Object)(object)_RightTex == (Object)null)
{
_RightTex = new Texture2D(num, num2, (TextureFormat)5, false);
}
if ((Object)(object)_BackTex == (Object)null)
{
_BackTex = new Texture2D(num, num2, (TextureFormat)5, false);
}
if ((Object)(object)_UpTex == (Object)null)
{
_UpTex = new Texture2D(num, num2, (TextureFormat)5, false);
}
if ((Object)(object)_DownTex == (Object)null)
{
_DownTex = new Texture2D(num, num2, (TextureFormat)5, false);
}
((Texture)_FrontTex).wrapMode = (TextureWrapMode)1;
((Texture)_LeftTex).wrapMode = (TextureWrapMode)1;
((Texture)_RightTex).wrapMode = (TextureWrapMode)1;
((Texture)_BackTex).wrapMode = (TextureWrapMode)1;
((Texture)_UpTex).wrapMode = (TextureWrapMode)1;
((Texture)_DownTex).wrapMode = (TextureWrapMode)1;
skyboxMaterial.SetTexture("_FrontTex", (Texture)(object)_FrontTex);
skyboxMaterial.SetTexture("_LeftTex", (Texture)(object)_LeftTex);
skyboxMaterial.SetTexture("_RightTex", (Texture)(object)_RightTex);
skyboxMaterial.SetTexture("_BackTex", (Texture)(object)_BackTex);
skyboxMaterial.SetTexture("_UpTex", (Texture)(object)_UpTex);
skyboxMaterial.SetTexture("_DownTex", (Texture)(object)_DownTex);
if (pixels == null)
{
pixels = (Color32[])(object)new Color32[num * num2];
}
skyboxAngleColors = Mathf.FloorToInt(Mathf.Sqrt((float)(num * num + num2 * num2)) + (float)Mathf.Max(num, num2)) * 4 + 1;
if (skyboxAngleColor == null)
{
skyboxAngleColor = (Color32[])(object)new Color32[skyboxAngleColors];
}
if (skyboxTopAngles == null)
{
skyboxTopAngles = new int[num, num2];
}
if (skyboxSideAngles == null)
{
skyboxSideAngles = new int[num, num2];
}
if (skyboxBottomAngles == null)
{
skyboxBottomAngles = new int[num, num2];
}
float num3 = 0f;
float num4 = 0f;
float num5 = 0f;
for (int i = 0; i < num; i++)
{
for (int j = 0; j < num2; j++)
{
float num6 = ((float)i - (float)num / 2f) * 2f / (float)num;
float num7 = ((float)j - (float)num2 / 2f) * 2f / (float)num2;
pixels[i + j * num].a = byte.MaxValue;
num3 = Mathf.Atan(1f / Mathf.Sqrt(num6 * num6 + num7 * num7));
skyboxTopAngles[i, j] = Mathf.RoundToInt((float)skyboxAngleColors * ((num3 + (float)Math.PI / 2f) / (float)Math.PI));
if (skyboxTopAngles[i, j] < 0)
{
skyboxTopAngles[i, j] = 0;
}
if (skyboxTopAngles[i, j] >= skyboxAngleColors)
{
skyboxTopAngles[i, j] = skyboxAngleColors - 1;
}
num4 = Mathf.Atan(num7 / Mathf.Sqrt(1f + num6 * num6));
skyboxSideAngles[i, j] = Mathf.RoundToInt((float)skyboxAngleColors * ((num4 + (float)Math.PI / 2f) / (float)Math.PI));
if (skyboxSideAngles[i, j] < 0)
{
skyboxSideAngles[i, j] = 0;
}
if (skyboxSideAngles[i, j] >= skyboxAngleColors)
{
skyboxSideAngles[i, j] = skyboxAngleColors - 1;
}
num5 = Mathf.Atan(-1f / Mathf.Sqrt(num6 * num6 + num7 * num7));
skyboxBottomAngles[i, j] = Mathf.RoundToInt((float)skyboxAngleColors * ((num5 + (float)Math.PI / 2f) / (float)Math.PI));
if (skyboxBottomAngles[i, j] < 0)
{
skyboxBottomAngles[i, j] = 0;
}
if (skyboxBottomAngles[i, j] >= skyboxAngleColors)
{
skyboxBottomAngles[i, j] = skyboxAngleColors - 1;
}
}
}
}
else
{
Debug.Log((object)"Failed to create material from shader RenderFX/Skybox");
}
skyboxComponent.material = skyboxMaterial;
}
private void Start()
{
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: Expected O, but got Unknown
//IL_0063: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Expected O, but got Unknown
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_00a3: Expected O, but got Unknown
//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
//IL_01b9: Unknown result type (might be due to invalid IL or missing references)
//IL_01bf: Unknown result type (might be due to invalid IL or missing references)
//IL_01c4: Unknown result type (might be due to invalid IL or missing references)
//IL_01c5: Unknown result type (might be due to invalid IL or missing references)
//IL_01c7: Invalid comparison between Unknown and I4
//IL_0192: Unknown result type (might be due to invalid IL or missing references)
//IL_0197: Unknown result type (might be due to invalid IL or missing references)
//IL_01a8: Unknown result type (might be due to invalid IL or missing references)
//IL_01ad: Unknown result type (might be due to invalid IL or missing references)
//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
//IL_01ce: Invalid comparison between Unknown and I4
//IL_01d3: Unknown result type (might be due to invalid IL or missing references)
//IL_01d5: Invalid comparison between Unknown and I4
if ((Object)(object)GameObject.Find(searchScreenCursorObjectName) != (Object)null)
{
crossair = (GUITexture)GameObject.Find(searchScreenCursorObjectName).GetComponent("GUITexture");
}
if ((Object)(object)GameObject.Find(searchScreenSpeedMeterObjectName) != (Object)null)
{
speedmeter = (GUIText)GameObject.Find(searchScreenSpeedMeterObjectName).GetComponent("GUIText");
}
if ((Object)(object)GameObject.Find(searchScreenAutopilotMeterObjectName) != (Object)null)
{
autopilotmeter = (GUIText)GameObject.Find(searchScreenAutopilotMeterObjectName).GetComponent("GUIText");
}
scene = GameObject.Find(searchSceneObjectName);
ground = GameObject.Find(searchGroundObjectName);
clouds = GameObject.Find(searchCloudsObjectName);
cameraExternalEnabled_lastValue = !cameraExternalEnabled;
if (searchSounds)
{
soundmin = (AudioSource[])(object)new AudioSource[soundmin_countmax];
soundmax = (AudioSource[])(object)new AudioSource[soundmax_countmax];
soundstall = (AudioSource[])(object)new AudioSource[soundstall_countmax];
soundcrash = (AudioSource[])(object)new AudioSource[soundcrash_countmax];
soundmin_count = 0;
soundmax_count = 0;
soundstall_count = 0;
soundcrash_count = 0;
}
FindNodes(((Component)this).gameObject, 0);
sm = (GAircraft)(object)((Component)this).gameObject.GetComponent("GAircraft");
if (enableRecoverVehicle)
{
enableRecoverVehiclePosition = ((Component)sm).transform.position;
enableRecoverVehicleRotation = ((Component)sm).transform.eulerAngles;
}
initialFogMode = RenderSettings.fogMode;
FogMode val = initialFogMode;
if ((int)val != 1)
{
if ((int)val == 2 || (int)val == 3)
{
initialFogValue = RenderSettings.fogDensity;
}
}
else
{
initialFogValue = RenderSettings.fogEndDistance;
}
if (extremeFogValue < 0f)
{
extremeFogValue = initialFogValue;
}
}
private void Update()
{
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
//IL_0046: Unknown result type (might be due to invalid IL or missing references)
//IL_005d: Unknown result type (might be due to invalid IL or missing references)
if (globalSimulationScaleApplyToCamera && (Object)(object)sm != (Object)null)
{
globalSimulationScale = sm.globalSimulationScale;
}
if (Input.GetKeyUp(inputExternalCameraKeyForToggle))
{
inputExternalCameraKeyForToggled = true;
}
if (Input.GetKeyUp(inputFixedPositionCameraKeyForToggle))
{
inputFixedPositionCameraKeyForToggled = true;
}
if (Input.GetKeyUp(inputRecoverVehicleKeyForToggle))
{
inputRecoverVehicleKeyForToggled = true;
}
ProcessSkybox();
if (GAircraft.isSimulationPaused)
{
ProcessSounds(Time.deltaTime);
}
else if (!cameraOnFixedUpdate)
{
ProcessCamera(Time.deltaTime);
}
}
private void FixedUpdate()
{
if (globalSimulationScaleApplyToCamera && (Object)(object)sm != (Object)null)
{
globalSimulationScale = sm.globalSimulationScale;
}
if (!GAircraft.isSimulationPaused && cameraOnFixedUpdate)
{
ProcessCamera(Time.fixedDeltaTime);
}
}
private bool getSkyboxRenderingColor(float height, bool renderSpace, out Color output)
{
//IL_0010: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
//IL_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_004e: Unknown result type (might be due to invalid IL or missing references)
//IL_0054: Unknown result type (might be due to invalid IL or missing references)
//IL_0061: Unknown result type (might be due to invalid IL or missing references)
//IL_0073: Unknown result type (might be due to invalid IL or missing references)
//IL_0078: Unknown result type (might be due to invalid IL or missing references)
//IL_007d: Unknown result type (might be due to invalid IL or missing references)
//IL_010f: Unknown result type (might be due to invalid IL or missing references)
//IL_0114: Unknown result type (might be due to invalid IL or missing references)
//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
//IL_0100: Unknown result type (might be due to invalid IL or missing references)
//IL_009f: Unknown result type (might be due to invalid IL or missing references)
//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
//IL_00be: Unknown result type (might be due to invalid IL or missing references)
//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
if (height < skyboxRenderingColor1Height)
{
output = skyboxRenderingColor1;
}
else if (height < skyboxRenderingColor2Height)
{
output = skyboxRenderingColor1 * (skyboxRenderingColor2Height - height) / (skyboxRenderingColor2Height - skyboxRenderingColor1Height) + skyboxRenderingColor2 * (height - skyboxRenderingColor1Height) / (skyboxRenderingColor2Height - skyboxRenderingColor1Height);
}
else if (renderSpace)
{
if (height < skyboxRenderingColor3Height)
{
output = skyboxRenderingColor2 * (skyboxRenderingColor3Height - height) / (skyboxRenderingColor3Height - skyboxRenderingColor2Height) + skyboxRenderingColor3 * (height - skyboxRenderingColor2Height) / (skyboxRenderingColor3Height - skyboxRenderingColor2Height);
}
else
{
output = skyboxRenderingColor3;
}
}
else
{
output = skyboxRenderingColor2;
}
return true;
}
private bool PreProcessSkyboxTexture(float height)
{
//IL_002a: Unknown result type (might be due to invalid IL or missing references)
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: Unknown result type (might be due to invalid IL or missing references)
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
//IL_0042: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_004e: Unknown result type (might be due to invalid IL or missing references)
//IL_0053: Unknown result type (might be due to invalid IL or missing references)
//IL_005a: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_0023: Unknown result type (might be due to invalid IL or missing references)
//IL_0079: Unknown result type (might be due to invalid IL or missing references)
//IL_007e: Unknown result type (might be due to invalid IL or missing references)
//IL_0098: Unknown result type (might be due to invalid IL or missing references)
//IL_009d: Unknown result type (might be due to invalid IL or missing references)
//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
//IL_0768: Unknown result type (might be due to invalid IL or missing references)
//IL_076d: Unknown result type (might be due to invalid IL or missing references)
//IL_0772: Unknown result type (might be due to invalid IL or missing references)
//IL_0333: Unknown result type (might be due to invalid IL or missing references)
//IL_0338: Unknown result type (might be due to invalid IL or missing references)
//IL_033d: Unknown result type (might be due to invalid IL or missing references)
//IL_0a90: Unknown result type (might be due to invalid IL or missing references)
//IL_0a95: Unknown result type (might be due to invalid IL or missing references)
//IL_0a9a: Unknown result type (might be due to invalid IL or missing references)
//IL_071c: Unknown result type (might be due to invalid IL or missing references)
//IL_0721: Unknown result type (might be due to invalid IL or missing references)
//IL_0726: Unknown result type (might be due to invalid IL or missing references)
float num = 0f;
int num2 = 0;
float num3 = 0f;
if (skyboxRenderingColor0Enabled)
{
tmp_skyboxRenderingColorm1 = skyboxRenderingColor0;
}
tmp_skyboxRenderingColor0 = skyboxRenderingColor;
tmp_skyboxRenderingColor1 = skyboxRenderingColor1;
tmp_skyboxRenderingColor2 = skyboxRenderingColor2;
tmp_skyboxRenderingColor3 = skyboxRenderingColor3;
tmp_skyboxRenderingColor4 = skyboxRenderingColorTop;
if (height + skyboxRenderingColorTopDeltaHeight < skyboxRenderingColor3Height)
{
tmp_skyboxRenderingColor3 = skyboxRenderingColorTop;
}
if (height + skyboxRenderingColorTopDeltaHeight < skyboxRenderingColor2Height)
{
tmp_skyboxRenderingColor2 = skyboxRenderingColorTop;
}
if (height + skyboxRenderingColorTopDeltaHeight < skyboxRenderingColor1Height)
{
tmp_skyboxRenderingColor1 = skyboxRenderingColorTop;
}
if (skyboxRenderingColor0Enabled)
{
num = ((!(skyboxRenderingColor0Height - height > 0f)) ? Mathf.Atan((skyboxRenderingColor0Height - height) / skyboxRenderingColor0Distance) : Mathf.Atan((skyboxRenderingColor0Height - height) / skyboxRenderingColor0Distance));
}
float num4 = ((!(skyboxRenderingColor1Height - height > 0f)) ? Mathf.Atan((skyboxRenderingColor1Height - height) / skyboxRenderingColorDownwardsScatteringDistance) : Mathf.Atan((skyboxRenderingColor1Height - height) / skyboxRenderingColorUpwardsScatteringDistance));
float num5 = ((!(skyboxRenderingColor2Height - height > 0f)) ? Mathf.Atan((skyboxRenderingColor2Height - height) / skyboxRenderingColorDownwardsScatteringDistance) : Mathf.Atan((skyboxRenderingColor2Height - height) / skyboxRenderingColorUpwardsScatteringDistance));
float num6 = ((!(skyboxRenderingColor3Height - height > 0f)) ? Mathf.Atan((skyboxRenderingColor3Height - height) / skyboxRenderingColorDownwardsScatteringDistance) : Mathf.Atan((skyboxRenderingColor3Height - height) / skyboxRenderingColorUpwardsScatteringDistance));
if (skyboxRenderingColor0Enabled)
{
num2 = Mathf.RoundToInt((float)skyboxAngleColors * ((num + (float)Math.PI / 2f) / (float)Math.PI));
}
int num7 = Mathf.RoundToInt((float)skyboxAngleColors * ((num4 + (float)Math.PI / 2f) / (float)Math.PI));
int num8 = Mathf.RoundToInt((float)skyboxAngleColors * ((num5 + (float)Math.PI / 2f) / (float)Math.PI));
int num9 = Mathf.RoundToInt((float)skyboxAngleColors * ((num6 + (float)Math.PI / 2f) / (float)Math.PI));
int num10 = num7;
int num11 = num9;
if (skyboxRenderingColor0Enabled && num10 < num2 + 4)
{
num10 = num2 + 4;
}
if (num7 < num10 + 4)
{
num7 = num10 + 4;
}
if (num8 < num7 + 4)
{
num8 = num7 + 4;
}
if (num9 < num8 + 4)
{
num9 = num8 + 4;
}
if (num11 < num9 + 4)
{
num11 = num9 + 4;
}
if (skyboxRenderingColor0Enabled)
{
num3 = 255f / (float)(num10 - num2);
}
float num12 = 255f / (float)(num7 - num10);
float num13 = 255f / (float)(num8 - num7);
float num14 = 255f / (float)(num9 - num8);
float num15 = 255f / (float)(num11 - num9);
if (skyboxRenderingColor0Enabled)
{
for (int i = 0; i < skyboxAngleColors; i++)
{
if (i < num2)
{
ref Color32 reference = ref skyboxAngleColor[i];
reference = Color32.op_Implicit(tmp_skyboxRenderingColorm1);
}
else if (i < num10)
{
skyboxAngleColor[i].r = (byte)((tmp_skyboxRenderingColor0.r * (float)(i - num2) + tmp_skyboxRenderingColorm1.r * (float)(num10 - i)) * num3);
skyboxAngleColor[i].g = (byte)((tmp_skyboxRenderingColor0.g * (float)(i - num2) + tmp_skyboxRenderingColorm1.g * (float)(num10 - i)) * num3);
skyboxAngleColor[i].b = (byte)((tmp_skyboxRenderingColor0.b * (float)(i - num2) + tmp_skyboxRenderingColorm1.b * (float)(num10 - i)) * num3);
}
else if (i < num7)
{
skyboxAngleColor[i].r = (byte)((tmp_skyboxRenderingColor1.r * (float)(i - num10) + tmp_skyboxRenderingColor0.r * (float)(num7 - i)) * num12);
skyboxAngleColor[i].g = (byte)((tmp_skyboxRenderingColor1.g * (float)(i - num10) + tmp_skyboxRenderingColor0.g * (float)(num7 - i)) * num12);
skyboxAngleColor[i].b = (byte)((tmp_skyboxRenderingColor1.b * (float)(i - num10) + tmp_skyboxRenderingColor0.b * (float)(num7 - i)) * num12);
}
else if (i < num8)
{
skyboxAngleColor[i].r = (byte)((tmp_skyboxRenderingColor2.r * (float)(i - num7) + tmp_skyboxRenderingColor1.r * (float)(num8 - i)) * num13);
skyboxAngleColor[i].g = (byte)((tmp_skyboxRenderingColor2.g * (float)(i - num7) + tmp_skyboxRenderingColor1.g * (float)(num8 - i)) * num13);
skyboxAngleColor[i].b = (byte)((tmp_skyboxRenderingColor2.b * (float)(i - num7) + tmp_skyboxRenderingColor1.b * (float)(num8 - i)) * num13);
}
else if (i < num9)
{
skyboxAngleColor[i].r = (byte)((tmp_skyboxRenderingColor3.r * (float)(i - num8) + tmp_skyboxRenderingColor2.r * (float)(num9 - i)) * num14);
skyboxAngleColor[i].g = (byte)((tmp_skyboxRenderingColor3.g * (float)(i - num8) + tmp_skyboxRenderingColor2.g * (float)(num9 - i)) * num14);
skyboxAngleColor[i].b = (byte)((tmp_skyboxRenderingColor3.b * (float)(i - num8) + tmp_skyboxRenderingColor2.b * (float)(num9 - i)) * num14);
}
else if (i < num11)
{
skyboxAngleColor[i].r = (byte)((tmp_skyboxRenderingColor4.r * (float)(i - num9) + tmp_skyboxRenderingColor3.r * (float)(num11 - i)) * num15);
skyboxAngleColor[i].g = (byte)((tmp_skyboxRenderingColor4.g * (float)(i - num9) + tmp_skyboxRenderingColor3.g * (float)(num11 - i)) * num15);
skyboxAngleColor[i].b = (byte)((tmp_skyboxRenderingColor4.b * (float)(i - num9) + tmp_skyboxRenderingColor3.b * (float)(num11 - i)) * num15);
}
else
{
ref Color32 reference2 = ref skyboxAngleColor[i];
reference2 = Color32.op_Implicit(tmp_skyboxRenderingColor4);
}
}
}
else
{
for (int j = 0; j < skyboxAngleColors; j++)
{
if (j < num10)
{
ref Color32 reference3 = ref skyboxAngleColor[j];
reference3 = Color32.op_Implicit(tmp_skyboxRenderingColor0);
}
else if (j < num7)
{
skyboxAngleColor[j].r = (byte)((tmp_skyboxRenderingColor1.r * (float)(j - num10) + tmp_skyboxRenderingColor0.r * (float)(num7 - j)) * num12);
skyboxAngleColor[j].g = (byte)((tmp_skyboxRenderingColor1.g * (float)(j - num10) + tmp_skyboxRenderingColor0.g * (float)(num7 - j)) * num12);
skyboxAngleColor[j].b = (byte)((tmp_skyboxRenderingColor1.b * (float)(j - num10) + tmp_skyboxRenderingColor0.b * (float)(num7 - j)) * num12);
}
else if (j < num8)
{
skyboxAngleColor[j].r = (byte)((tmp_skyboxRenderingColor2.r * (float)(j - num7) + tmp_skyboxRenderingColor1.r * (float)(num8 - j)) * num13);
skyboxAngleColor[j].g = (byte)((tmp_skyboxRenderingColor2.g * (float)(j - num7) + tmp_skyboxRenderingColor1.g * (float)(num8 - j)) * num13);
skyboxAngleColor[j].b = (byte)((tmp_skyboxRenderingColor2.b * (float)(j - num7) + tmp_skyboxRenderingColor1.b * (float)(num8 - j)) * num13);
}
else if (j < num9)
{
skyboxAngleColor[j].r = (byte)((tmp_skyboxRenderingColor3.r * (float)(j - num8) + tmp_skyboxRenderingColor2.r * (float)(num9 - j)) * num14);
skyboxAngleColor[j].g = (byte)((tmp_skyboxRenderingColor3.g * (float)(j - num8) + tmp_skyboxRenderingColor2.g * (float)(num9 - j)) * num14);
skyboxAngleColor[j].b = (byte)((tmp_skyboxRenderingColor3.b * (float)(j - num8) + tmp_skyboxRenderingColor2.b * (float)(num9 - j)) * num14);
}
else if (j < num11)
{
skyboxAngleColor[j].r = (byte)((tmp_skyboxRenderingColor4.r * (float)(j - num9) + tmp_skyboxRenderingColor3.r * (float)(num11 - j)) * num15);
skyboxAngleColor[j].g = (byte)((tmp_skyboxRenderingColor4.g * (float)(j - num9) + tmp_skyboxRenderingColor3.g * (float)(num11 - j)) * num15);
skyboxAngleColor[j].b = (byte)((tmp_skyboxRenderingColor4.b * (float)(j - num9) + tmp_skyboxRenderingColor3.b * (float)(num11 - j)) * num15);
}
else
{
ref Color32 reference4 = ref skyboxAngleColor[j];
reference4 = Color32.op_Implicit(tmp_skyboxRenderingColor4);
}
}
}
return true;
}
private bool ProcessSkyboxTexture(Texture2D tex, float height, int mode)
{
//IL_0071: Unknown result type (might be due to invalid IL or missing references)
//IL_0076: Unknown result type (might be due to invalid IL or missing references)
//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
//IL_0110: Unknown result type (might be due to invalid IL or missing references)
//IL_0115: Unknown result type (might be due to invalid IL or missing references)
if (pixels == null)
{
Skybox_Start();
}
int width = ((Texture)tex).width;
int height2 = ((Texture)tex).height;
for (int i = 0; i < height2; i++)
{
switch (mode)
{
case -1:
{
for (int k = 0; k < width; k++)
{
ref Color32 reference2 = ref pixels[k + i * width];
reference2 = skyboxAngleColor[skyboxBottomAngles[k, i]];
}
break;
}
case 0:
{
for (int l = 0; l < width; l++)
{
ref Color32 reference3 = ref pixels[l + i * width];
reference3 = skyboxAngleColor[skyboxSideAngles[l, i]];
}
break;
}
case 1:
{
for (int j = 0; j < width; j++)
{
ref Color32 reference = ref pixels[j + i * width];
reference = skyboxAngleColor[skyboxTopAngles[j, i]];
}
break;
}
}
}
tex.SetPixels32(pixels);
tex.Apply(false);
return true;
}
private void ProcessSkybox()
{
//IL_0050: Unknown result type (might be due to invalid IL or missing references)
//IL_0040: Unknown result type (might be due to invalid IL or missing references)
//IL_005b: Unknown result type (might be due to invalid IL or missing references)
//IL_0060: Unknown result type (might be due to invalid IL or missing references)
//IL_0061: Unknown result type (might be due to invalid IL or missing references)
//IL_0063: Invalid comparison between Unknown and I4
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_006a: Invalid comparison between Unknown and I4
//IL_0128: Unknown result type (might be due to invalid IL or missing references)
//IL_012d: Unknown result type (might be due to invalid IL or missing references)
//IL_006f: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: Invalid comparison between Unknown and I4
//IL_018b: Unknown result type (might be due to invalid IL or missing references)
//IL_01c8: Unknown result type (might be due to invalid IL or missing references)
//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
//IL_01f7: Unknown result type (might be due to invalid IL or missing references)
//IL_01fc: Unknown result type (might be due to invalid IL or missing references)
//IL_0286: Unknown result type (might be due to invalid IL or missing references)
//IL_028b: Unknown result type (might be due to invalid IL or missing references)
//IL_02c5: Unknown result type (might be due to invalid IL or missing references)
//IL_02ca: Unknown result type (might be due to invalid IL or missing references)
//IL_0304: Unknown result type (might be due to invalid IL or missing references)
//IL_0309: Unknown result type (might be due to invalid IL or missing references)
//IL_0343: Unknown result type (might be due to invalid IL or missing references)
//IL_0348: Unknown result type (might be due to invalid IL or missing references)
//IL_0382: Unknown result type (might be due to invalid IL or missing references)
//IL_0387: Unknown result type (might be due to invalid IL or missing references)
//IL_03c1: Unknown result type (might be due to invalid IL or missing references)
//IL_03c6: Unknown result type (might be due to invalid IL or missing references)
float num = ((!((Object)(object)sm != (Object)null)) ? 0f : sm.height);
if (fogRenderingEnabled)
{
if (skyboxRenderingColor0Enabled)
{
RenderSettings.fogColor = skyboxRenderingColor0;
}
else
{
RenderSettings.fogColor = skyboxRenderingColor;
}
FogMode val = initialFogMode;
if ((int)val != 1)
{
if ((int)val == 2 || (int)val == 3)
{
RenderSettings.fogDensity = initialFogValue * (1f - fog01) + extremeFogValue * fog01;
}
}
else
{
RenderSettings.fogEndDistance = initialFogValue * (1f - fog01) + extremeFogValue * fog01;
}
}
if (!skyboxRenderingEnabled)
{
return;
}
if ((Object)(object)skyboxComponent == (Object)null)
{
Skybox_Start();
}
((!((Object)(object)attachToCamera == (Object)null)) ? attachToCamera : Camera.main).clearFlags = (CameraClearFlags)1;
getSkyboxRenderingColor(((Component)this).gameObject.transform.position.y + ((!((Object)(object)sm != (Object)null)) ? 0f : sm.height), renderSpace: false, out skyboxRenderingColor);
((!((Object)(object)attachToCamera == (Object)null)) ? attachToCamera : Camera.main).backgroundColor = skyboxRenderingColor;
skyboxRenderNth_count--;
if (skyboxRenderNth_count > 0)
{
return;
}
skyboxRenderNth_count = skyboxRenderNth;
getSkyboxRenderingColor(((Component)this).gameObject.transform.position.y + num + skyboxRenderingColorTopDeltaHeight, renderSpace: true, out skyboxRenderingColorTop);
PreProcessSkyboxTexture(((Component)this).gameObject.transform.position.y + num);
for (int i = 0; i < skyboxRenderSidesPerNth; i++)
{
skyboxRenderNth_tex++;
if (skyboxRenderNth_tex > 5)
{
skyboxRenderNth_tex = 0;
}
switch (skyboxRenderNth_tex)
{
case 0:
if ((Object)(object)_FrontTex != (Object)null)
{
ProcessSkyboxTexture(_FrontTex, ((Component)this).gameObject.transform.position.y + num, 0);
}
break;
case 1:
if ((Object)(object)_LeftTex != (Object)null)
{
ProcessSkyboxTexture(_LeftTex, ((Component)this).gameObject.transform.position.y + num, 0);
}
break;
case 2:
if ((Object)(object)_RightTex != (Object)null)
{
ProcessSkyboxTexture(_RightTex, ((Component)this).gameObject.transform.position.y + num, 0);
}
break;
case 3:
if ((Object)(object)_BackTex != (Object)null)
{
ProcessSkyboxTexture(_BackTex, ((Component)this).gameObject.transform.position.y + num, 0);
}
break;
case 4:
if ((Object)(object)_UpTex != (Object)null)
{
ProcessSkyboxTexture(_UpTex, ((Component)this).gameObject.transform.position.y + num, 1);
}
break;
case 5:
if ((Object)(object)_DownTex != (Object)null)
{
ProcessSkyboxTexture(_DownTex, ((Component)this).gameObject.transform.position.y + num, -1);
}
break;
}
}
}
private void ProcessCamera(float timeLapsus)
{
//IL_000d: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Unknown result type (might be due to invalid IL or missing references)
//IL_0233: Unknown result type (might be due to invalid IL or missing references)
//IL_01fd: Unknown result type (might be due to invalid IL or missing references)
//IL_020d: Unknown result type (might be due to invalid IL or missing references)
//IL_0217: Unknown result type (might be due to invalid IL or missing references)
//IL_021c: Unknown result type (might be due to invalid IL or missing references)
//IL_0221: Unknown result type (might be due to invalid IL or missing references)
//IL_027e: Unknown result type (might be due to invalid IL or missing references)
//IL_0258: Unknown result type (might be due to invalid IL or missing references)
//IL_025d: Unknown result type (might be due to invalid IL or missing references)
//IL_0268: Unknown result type (might be due to invalid IL or missing references)
//IL_02c4: Unknown result type (might be due to invalid IL or missing references)
//IL_02a3: Unknown result type (might be due to invalid IL or missing references)
//IL_02ae: Unknown result type (might be due to invalid IL or missing references)
//IL_030a: Unknown result type (might be due to invalid IL or missing references)
//IL_02e9: Unknown result type (might be due to invalid IL or missing references)
//IL_02f4: Unknown result type (might be due to invalid IL or missing references)
//IL_0355: Unknown result type (might be due to invalid IL or missing references)
//IL_032f: Unknown result type (might be due to invalid IL or missing references)
//IL_0334: Unknown result type (might be due to invalid IL or missing references)
//IL_033f: Unknown result type (might be due to invalid IL or missing references)
//IL_039b: Unknown result type (might be due to invalid IL or missing references)
//IL_037a: Unknown result type (might be due to invalid IL or missing references)
//IL_0385: Unknown result type (might be due to invalid IL or missing references)
//IL_04d9: Unknown result type (might be due to invalid IL or missing references)
//IL_04de: Unknown result type (might be due to invalid IL or missing references)
//IL_04fb: Unknown result type (might be due to invalid IL or missing references)
//IL_0500: Unknown result type (might be due to invalid IL or missing references)
//IL_03c0: Unknown result type (might be due to invalid IL or missing references)
//IL_03c5: Unknown result type (might be due to invalid IL or missing references)
//IL_03d0: Unknown result type (might be due to invalid IL or missing references)
//IL_0624: Unknown result type (might be due to invalid IL or missing references)
//IL_0629: Unknown result type (might be due to invalid IL or missing references)
//IL_0647: Unknown result type (might be due to invalid IL or missing references)
//IL_064c: Unknown result type (might be due to invalid IL or missing references)
//IL_0940: Unknown result type (might be due to invalid IL or missing references)
//IL_0945: Unknown result type (might be due to invalid IL or missing references)
//IL_097e: Unknown result type (might be due to invalid IL or missing references)
//IL_0983: Unknown result type (might be due to invalid IL or missing references)
//IL_07df: Unknown result type (might be due to invalid IL or missing references)
//IL_07e1: Unknown result type (might be due to invalid IL or missing references)
//IL_06f4: Unknown result type (might be due to invalid IL or missing references)
//IL_0701: Unknown result type (might be due to invalid IL or missing references)
//IL_0706: Unknown result type (might be due to invalid IL or missing references)
//IL_0721: Unknown result type (might be due to invalid IL or missing references)
//IL_0726: Unknown result type (might be due to invalid IL or missing references)
//IL_076a: Unknown result type (might be due to invalid IL or missing references)
//IL_076f: Unknown result type (might be due to invalid IL or missing references)
//IL_078a: Unknown result type (might be due to invalid IL or missing references)
//IL_078f: Unknown result type (might be due to invalid IL or missing references)
//IL_07ae: Unknown result type (might be due to invalid IL or missing references)
//IL_07b9: Unknown result type (might be due to invalid IL or missing references)
//IL_07c4: Unknown result type (might be due to invalid IL or missing references)
//IL_07cf: Unknown result type (might be due to invalid IL or missing references)
//IL_07d4: Unknown result type (might be due to invalid IL or missing references)
//IL_07d9: Unknown result type (might be due to invalid IL or missing references)
//IL_080e: Unknown result type (might be due to invalid IL or missing references)
//IL_0813: Unknown result type (might be due to invalid IL or missing references)
//IL_07f3: Unknown result type (might be due to invalid IL or missing references)
//IL_07f8: Unknown result type (might be due to invalid IL or missing references)
//IL_0b1d: Unknown result type (might be due to invalid IL or missing references)
//IL_0b22: Unknown result type (might be due to invalid IL or missing references)
//IL_0a90: Unknown result type (might be due to invalid IL or missing references)
//IL_0aa0: Unknown result type (might be due to invalid IL or missing references)
//IL_0aa7: Unknown result type (might be due to invalid IL or missing references)
//IL_0ab2: Unknown result type (might be due to invalid IL or missing references)
//IL_0ab7: Unknown result type (might be due to invalid IL or missing references)
//IL_0abc: Unknown result type (might be due to invalid IL or missing references)
//IL_0ace: Unknown result type (might be due to invalid IL or missing references)
//IL_0ade: Unknown result type (might be due to invalid IL or missing references)
//IL_0ae5: Unknown result type (might be due to invalid IL or missing references)
//IL_0af0: Unknown result type (might be due to invalid IL or missing references)
//IL_0af5: Unknown result type (might be due to invalid IL or missing references)
//IL_0afa: Unknown result type (might be due to invalid IL or missing references)
//IL_0a03: Unknown result type (might be due to invalid IL or missing references)
//IL_0a08: Unknown result type (might be due to invalid IL or missing references)
//IL_0a26: Unknown result type (might be due to invalid IL or missing references)
//IL_0a2b: Unknown result type (might be due to invalid IL or missing references)
//IL_10e8: Unknown result type (might be due to invalid IL or missing references)
//IL_10f9: Unknown result type (might be due to invalid IL or missing references)
//IL_10ff: Unknown result type (might be due to invalid IL or missing references)
//IL_110a: Unknown result type (might be due to invalid IL or missing references)
//IL_110f: Unknown result type (might be due to invalid IL or missing references)
//IL_1114: Unknown result type (might be due to invalid IL or missing references)
//IL_111b: Unknown result type (might be due to invalid IL or missing references)
//IL_112c: Unknown result type (might be due to invalid IL or missing references)
//IL_1132: Unknown result type (might be due to invalid IL or missing references)
//IL_113d: Unknown result type (might be due to invalid IL or missing references)
//IL_1142: Unknown result type (might be due to invalid IL or missing references)
//IL_1147: Unknown result type (might be due to invalid IL or missing references)
//IL_114e: Unknown result type (might be due to invalid IL or missing references)
//IL_115f: Unknown result type (might be due to invalid IL or missing references)
//IL_1165: Unknown result type (might be due to invalid IL or missing references)
//IL_1170: Unknown result type (might be due to invalid IL or missing references)
//IL_1175: Unknown result type (might be due to invalid IL or missing references)
//IL_117a: Unknown result type (might be due to invalid IL or missing references)
//IL_107b: Unknown result type (might be due to invalid IL or missing references)
//IL_1080: Unknown result type (might be due to invalid IL or missing references)
//IL_11a6: Unknown result type (might be due to invalid IL or missing references)
//IL_10b1: Unknown result type (might be due to invalid IL or missing references)
//IL_10c1: Unknown result type (might be due to invalid IL or missing references)
//IL_10cc: Unknown result type (might be due to invalid IL or missing references)
//IL_10d1: Unknown result type (might be due to invalid IL or missing references)
//IL_10d6: Unknown result type (might be due to invalid IL or missing references)
//IL_10db: Unknown result type (might be due to invalid IL or missing references)
//IL_11d7: Unknown result type (might be due to invalid IL or missing references)
//IL_11dd: Unknown result type (might be due to invalid IL or missing references)
//IL_0d4f: Unknown result type (might be due to invalid IL or missing references)
//IL_0d5f: Unknown result type (might be due to invalid IL or missing references)
//IL_0da2: Unknown result type (might be due to invalid IL or missing references)
//IL_0da7: Unknown result type (might be due to invalid IL or missing references)
//IL_0dac: Unknown result type (might be due to invalid IL or missing references)
//IL_0db1: Unknown result type (might be due to invalid IL or missing references)
//IL_13a0: Unknown result type (might be due to invalid IL or missing references)
//IL_13a5: Unknown result type (might be due to invalid IL or missing references)
//IL_13c4: Unknown result type (might be due to invalid IL or missing references)
//IL_13c9: Unknown result type (might be due to invalid IL or missing references)
//IL_13ec: Unknown result type (might be due to invalid IL or missing references)
//IL_0ed3: Unknown result type (might be due to invalid IL or missing references)
//IL_0ed9: Unknown result type (might be due to invalid IL or missing references)
//IL_0f1c: Unknown result type (might be due to invalid IL or missing references)
//IL_0f21: Unknown result type (might be due to invalid IL or missing references)
//IL_0f26: Unknown result type (might be due to invalid IL or missing references)
//IL_0f2b: Unknown result type (might be due to invalid IL or missing references)
//IL_0e95: Unknown result type (might be due to invalid IL or missing references)
//IL_0e9b: Unknown result type (might be due to invalid IL or missing references)
//IL_0ea0: Unknown result type (might be due to invalid IL or missing references)
//IL_0ea5: Unknown result type (might be due to invalid IL or missing references)
//IL_0eaa: Unknown result type (might be due to invalid IL or missing references)
//IL_0eaf: Unknown result type (might be due to invalid IL or missing references)
//IL_0ec0: Unknown result type (might be due to invalid IL or missing references)
//IL_0ec5: Unknown result type (might be due to invalid IL or missing references)
//IL_1434: Unknown result type (might be due to invalid IL or missing references)
//IL_1224: Unknown result type (might be due to invalid IL or missing references)
//IL_1229: Unknown result type (might be due to invalid IL or missing references)
//IL_0e37: Unknown result type (might be due to invalid IL or missing references)
//IL_0e3c: Unknown result type (might be due to invalid IL or missing references)
//IL_0e1b: Unknown result type (might be due to invalid IL or missing references)
//IL_0e20: Unknown result type (might be due to invalid IL or missing references)
//IL_0dce: Unknown result type (might be due to invalid IL or missing references)
//IL_0dd9: Unknown result type (might be due to invalid IL or missing references)
//IL_0de9: Unknown result type (might be due to invalid IL or missing references)
//IL_0dfa: Unknown result type (might be due to invalid IL or missing references)
//IL_0dff: Unknown result type (might be due to invalid IL or missing references)
//IL_0e04: Unknown result type (might be due to invalid IL or missing references)
//IL_1913: Unknown result type (might be due to invalid IL or missing references)
//IL_15a1: Unknown result type (might be due to invalid IL or missing references)
//IL_15a6: Unknown result type (might be due to invalid IL or missing references)
//IL_15f3: Unknown result type (might be due to invalid IL or missing references)
//IL_15f8: Unknown result type (might be due to invalid IL or missing references)
//IL_1237: Unknown result type (might be due to invalid IL or missing references)
//IL_1239: Unknown result type (might be due to invalid IL or missing references)
//IL_1244: Unknown result type (might be due to invalid IL or missing references)
//IL_1249: Unknown result type (might be due to invalid IL or missing references)
//IL_124e: Unknown result type (might be due to invalid IL or missing references)
//IL_1253: Unknown result type (might be due to invalid IL or missing references)
//IL_1260: Unknown result type (might be due to invalid IL or missing references)
//IL_0fb1: Unknown result type (might be due to invalid IL or missing references)
//IL_0fb6: Unknown result type (might be due to invalid IL or missing references)
//IL_0f95: Unknown result type (might be due to invalid IL or missing references)
//IL_0f9a: Unknown result type (might be due to invalid IL or missing references)
//IL_0f48: Unknown result type (might be due to invalid IL or missing references)
//IL_0f53: Unknown result type (might be due to invalid IL or missing references)
//IL_0f63: Unknown result type (might be due to invalid IL or missing references)
//IL_0f74: Unknown result type (might be due to invalid IL or missing references)
//IL_0f79: Unknown result type (might be due to invalid IL or missing references)
//IL_0f7e: Unknown result type (might be due to invalid IL or missing references)
//IL_127e: Unknown result type (might be due to invalid IL or missing references)
//IL_1283: Unknown result type (might be due to invalid IL or missing references)
//IL_0e4f: Unknown result type (might be due to invalid IL or missing references)
//IL_0e5f: Unknown result type (might be due to invalid IL or missing references)
//IL_0e66: Unknown result type (might be due to invalid IL or missing references)
//IL_0e71: Unknown result type (might be due to invalid IL or missing references)
//IL_0e76: Unknown result type (might be due to invalid IL or missing references)
//IL_0e7b: Unknown result type (might be due to invalid IL or missing references)
//IL_1666: Unknown result type (might be due to invalid IL or missing references)
//IL_166b: Unknown result type (might be due to invalid IL or missing references)
//IL_12a7: Unknown result type (might be due to invalid IL or missing references)
//IL_12ac: Unknown result type (might be due to invalid IL or missing references)
//IL_12db: Unknown result type (might be due to invalid IL or missing references)
//IL_12e0: Unknown result type (might be due to invalid IL or missing references)
//IL_0fc9: Unknown result type (might be due to invalid IL or missing references)
//IL_0fd9: Unknown result type (might be due to invalid IL or missing references)
//IL_0fe0: Unknown result type (might be due to invalid IL or missing references)
//IL_0feb: Unknown result type (might be due to invalid IL or missing references)
//IL_0ff0: Unknown result type (might be due to invalid IL or missing references)
//IL_0ff5: Unknown result type (might be due to invalid IL or missing references)
//IL_1373: Unknown result type (might be due to invalid IL or missing references)
//IL_1723: Unknown result type (might be due to invalid IL or missing references)
//IL_1728: Unknown result type (might be due to invalid IL or missing references)
//IL_172d: Unknown result type (might be due to invalid IL or missing references)
//IL_1780: Unknown result type (might be due to invalid IL or missing references)
//IL_1785: Unknown result type (might be due to invalid IL or missing references)
//IL_178a: Unknown result type (might be due to invalid IL or missing references)
if (enableSpecialForce && Input.GetKey(specialForceApplyZeroRotate))
{
((Component)this).gameObject.GetComponent<Rigidbody>().angularVelocity = Vector3.zero;
}
if (scheduleRecoverVehicle > 0)
{
scheduleRecoverVehicle--;
if (scheduleRecoverVehicle == 0)
{
recoverVehicle();
}
}
if (enableRecoverVehicle && inputRecoverVehicleKeyForToggled)
{
inputRecoverVehicleKeyForToggled = false;
recoverVehicle();
}
if (cameraOnFixedUpdate_count > 0)
{
cameraOnFixedUpdate_count--;
}
else if (inputExternalCameraKeyForToggled)
{
inputExternalCameraKeyForToggled = false;
if (cameraExternalEnabled)
{
cameraExternalEnabled = false;
if ((Object)(object)sm != (Object)null && sm.globalDebugNodes)
{
Debug.Log((object)("Internal Camera " + currentCameraPosition + " Selected"));
}
}
else
{
currentCameraPosition++;
if (currentCameraPosition >= countCameraPositions)
{
currentCameraPosition = 0;
cameraExternalEnabled = true;
if ((Object)(object)sm != (Object)null && sm.globalDebugNodes)
{
Debug.Log((object)"External Camera Selected");
}
}
else if ((Object)(object)sm != (Object)null && sm.globalDebugNodes)
{
Debug.Log((object)("Internal Camera " + currentCameraPosition + " Selected"));
}
}
cameraOnFixedUpdate_count = 50;
}
if (inputFixedPositionCameraKeyForToggled)
{
inputFixedPositionCameraKeyForToggled = false;
cameraFixedPositionEnabled = !cameraFixedPositionEnabled;
if (cameraFixedPositionEnabled)
{
cameraposition += ((Component)this).gameObject.GetComponent<Rigidbody>().velocity * 4f;
}
}
if (enableSpecialForce && Input.GetKey(specialForceApplyLeft))
{
((Component)this).gameObject.GetComponent<Rigidbody>().AddForce(-((Component)this).gameObject.transform.right * specialForceMagnitude);
}
if (enableSpecialForce && Input.GetKey(specialForceApplyRight))
{
((Component)this).gameObject.GetComponent<Rigidbody>().AddForce(((Component)this).gameObject.transform.right * specialForceMagnitude);
}
if (enableSpecialForce && Input.GetKey(specialForceApplyForward))
{
((Component)this).gameObject.GetComponent<Rigidbody>().AddForce(((Component)this).gameObject.transform.forward * specialForceMagnitude);
}
if (enableSpecialForce && Input.GetKey(specialForceApplyForceBack))
{
((Component)this).gameObject.GetComponent<Rigidbody>().AddForce(-((Component)this).gameObject.transform.forward * specialForceMagnitude);
}
if (enableSpecialForce && Input.GetKey(specialForceApplyForceUp))
{
((Component)this).gameObject.GetComponent<Rigidbody>().AddForce(((Component)this).gameObject.transform.up * specialForceMagnitude);
}
if (enableSpecialForce && Input.GetKey(specialForceApplyDown))
{
((Component)this).gameObject.GetComponent<Rigidbody>().AddForce(-((Component)this).gameObject.transform.up * specialForceMagnitude);
}
if (cameraExternalEnabled != cameraExternalEnabled_lastValue)
{
if (cameraExternalEnabled)
{
((!((Object)(object)attachToCamera == (Object)null)) ? attachToCamera : Camera.main).nearClipPlane = cameraExternalNearClipPlane * globalSimulationScale;
((!((Object)(object)attachToCamera == (Object)null)) ? attachToCamera : Camera.main).farClipPlane = cameraExternalFarClipPlane * globalSimulationScale;
}
else
{
((!((Object)(object)attachToCamera == (Object)null)) ? attachToCamera : Camera.main).nearClipPlane = cameraInternalNearClipPlane * globalSimulationScale;
((!((Object)(object)attachToCamera == (Object)null)) ? attachToCamera : Camera.main).farClipPlane = cameraInternalFarClipPlane * globalSimulationScale;
}
cameraExternalEnabled_lastValue = cameraExternalEnabled;
}
float num = (Input.mousePosition.x - (float)Screen.width / 2f) / (float)Screen.width;
float num2 = (Input.mousePosition.y - (float)Screen.height / 2f) / (float)Screen.height;
if (num > 0.5f)
{
num = 0.5f;
}
if (num < -0.5f)
{
num = -0.5f;
}
if (num2 > 0.5f)
{
num2 = 0.5f;
}
if (num2 < -0.5f)
{
num2 = -0.5f;
}
float num3 = gs_old * (1f - cameraInternalGsMixing) + sm.gaugesGs_output * cameraInternalGsMixing;
if (num3 > cameraInternalGsMax)
{
num3 = cameraInternalGsMax;
}
if (num3 < 0f - cameraInternalGsMax)
{
num3 = 0f - cameraInternalGsMax;
}
gs_old = num3;
float num4 = hgs_old * (1f - cameraInternalGsMixing) + sm.gaugesHGs_output * cameraInternalGsMixing;
if (num4 > cameraInternalGsMax)
{
num4 = cameraInternalGsMax;
}
if (num4 < 0f - cameraInternalGsMax)
{
num4 = 0f - cameraInternalGsMax;
}
hgs_old = num4;
Vector3 position = ((Component)this).gameObject.transform.position;
if ((Object)(object)cameraAlternateFollow != (Object)null)
{
position = cameraAlternateFollow.transform.position;
}
if (cameraExternalEnabled)
{
if (Input.GetAxis("Mouse ScrollWheel") > 0f && cameraExternalDistance > cameraExternalDistanceMin)
{
cameraExternalDistance -= cameraExternalDistanceStep * inputWheelMouseSensivity / 10f;
}
if (Input.GetAxis("Mouse ScrollWheel") < 0f && cameraExternalDistance < cameraExternalDistanceMax)
{
cameraExternalDistance += cameraExternalDistanceStep * inputWheelMouseSensivity / 10f;
}
if (!cameraFixedPositionEnabled)
{
cameraposition = position + new Vector3((0f - ((Component)this).gameObject.transform.forward.x) * 20f - ((Component)this).gameObject.transform.right.x * 40f * num * inputHorizontalMouseSensivity / 3f, -40f * (num2 * inputVerticalMouseSensivity / 3f - 0.25f), (0f - ((Component)this).gameObject.transform.forward.z) * 20f - ((Component)this).gameObject.transform.right.z * 40f * num * inputHorizontalMouseSensivity / 3f) * cameraExternalDistance * cameraExternalMinHeightScale * globalSimulationScale;
}
cameralookat = position;
if (cameraExternalUpWorld)
{
cameraup = worldup;
}
else
{
cameraup = ((Component)this).gameObject.transform.up;
}
if (cameraFixedPositionEnabled)
{
((!((Object)(object)attachToCamera == (Object)null)) ? attachToCamera : Camera.main).fieldOfView = 20f;
}
else
{
((!((Object)(object)attachToCamera == (Object)null)) ? attachToCamera : Camera.main).fieldOfView = 80f;
}
camera_filter = cameraExternalFilter;
cameraOnFixedUpdate = true;
}
else
{
if (Input.GetAxis("Mouse ScrollWheel") > 0f && cameraInternalFov > cameraInternalFovMin)
{
cameraInternalFov -= cameraInternalFovStep * inputWheelMouseSensivity * cameraInternalSensivity / 10f;
}
if (Input.GetAxis("Mouse ScrollWheel") < 0f && cameraInternalFov < cameraInternalFovMax)
{
cameraInternalFov += cameraInternalFovStep * inputWheelMouseSensivity * cameraInternalSensivity / 10f;
}
cameraorientation = ((Component)this).gameObject.transform.rotation;
camerafixed = false;
countCameraPositions = 0;
if (!cameraFixedPositionEnabled)
{
cameraposition = ((Component)this).gameObject.transform.TransformPoint(0f, 0.4f, -0.4f);
}
if (!cameraFixedPositionEnabled && (Object)(object)sm != (Object)null && sm.labeled_surfacemisc != null)
{
for (int i = 0; i < sm.labeled_surfacemisc_count; i++)
{
if (sm.labeled_surfacemisc[i].cameraPosition)
{
if (currentCameraPosition == countCameraPositions)
{
cameraposition = sm.labeled_surfacemisc[i].gameObject.transform.position;
cameraorientation = sm.labeled_surfacemisc[i].gameObject.transform.rotation;
camerafixed = !sm.labeled_surfacemisc[i].cameraCanRotate;
}
countCameraPositions++;
}
}
}
if (!camerafixed)
{
if (cameraInternalGsPosition)
{
cameraposition -= ((Component)this).gameObject.transform.up * num3 * cameraInternalGsPositionDelta;
}
if (cameraInternalGsPosition)
{
cameraposition -= ((Component)this).gameObject.transform.right * num4 * cameraInternalGsPositionHDelta;
}
}
if ((Object)(object)cameraAlternateFollow != (Object)null)
{
cameraposition = cameraAlternateFollow.transform.position;
}
float num5 = ((cameraInternalDontVertical && cameraInternalDontVerticalMix) ? ((!cameraInternalGsRotation) ? (0f - Mathf.Sin((0f - num2) * inputVerticalMouseSensivity * cameraInternalSensivity * (1f - cameraInternalDontVerticalMixing))) : (0f - Mathf.Sin((0f - num2) * inputVerticalMouseSensivity * cameraInternalSensivity * (1f - cameraInternalDontVerticalMixing) + num3 * cameraInternalGsRotationDelta))) : (cameraInternalDontVertical ? ((!cameraInternalGsRotation) ? (0f - Mathf.Sin(0f)) : (0f - Mathf.Sin(num3 * cameraInternalGsRotationDelta))) : ((!cameraInternalGsRotation) ? (0f - Mathf.Sin((0f - num2) * inputVerticalMouseSensivity * cameraInternalSensivity)) : (0f - Mathf.Sin((0f - num2) * inputVerticalMouseSensivity * cameraInternalSensivity + num3 * cameraInternalGsRotationDelta)))));
float num6 = ((cameraInternalDontVertical && cameraInternalDontVerticalMix) ? ((!cameraInternalGsRotation) ? Mathf.Cos((0f - num2) * inputVerticalMouseSensivity * cameraInternalSensivity * (1f - cameraInternalDontVerticalMixing)) : Mathf.Cos((0f - num2) * inputVerticalMouseSensivity * cameraInternalSensivity * (1f - cameraInternalDontVerticalMixing) + num3 * cameraInternalGsRotationDelta)) : (cameraInternalDontVertical ? ((!cameraInternalGsRotation) ? Mathf.Cos(0f) : Mathf.Cos(num3 * cameraInternalGsRotationDelta)) : ((!cameraInternalGsRotation) ? Mathf.Cos((0f - num2) * inputVerticalMouseSensivity * cameraInternalSensivity) : Mathf.Cos((0f - num2) * inputVerticalMouseSensivity * cameraInternalSensivity + num3 * cameraInternalGsRotationDelta))));