Compare commits
61 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 697eb88a1a | |||
| a3b12586e0 | |||
| 2eb0549f6f | |||
| 79080a6e55 | |||
| 70a50e3bf5 | |||
| a95257981c | |||
| bc90b054e2 | |||
| 047388a74e | |||
| 702697ec13 | |||
| 7fe9a1b8a5 | |||
| 5998a401ff | |||
| d75bc2aca9 | |||
| 5c306dac5c | |||
| d1dbf22af0 | |||
| eafdfec9d8 | |||
| 07ae01a867 | |||
| 2a8a6bf8e7 | |||
| 4dbe5f67ed | |||
| fa5304e4b2 | |||
| d504c12d54 | |||
| 55d2752345 | |||
| ebb8d4670d | |||
| 55a3764563 | |||
| b75ffdb50b | |||
| 9be77652c3 | |||
| 16a891b425 | |||
| f1c8dfd6e0 | |||
| ba484a42e2 | |||
| b55a1e3ce4 | |||
| 1592e648d6 | |||
| 6d59062c5a | |||
| 4d28ef7ef5 | |||
| 5b7bc3ee86 | |||
| 9572cee415 | |||
| f29d498f68 | |||
| 5913d6be38 | |||
| dddbd69a3d | |||
| 8d041fbb34 | |||
| 7a252ce3e8 | |||
| 9cc907f653 | |||
| ba9d5563df | |||
| 7676f1c809 | |||
| dc8598a5c9 | |||
| 51c57cd932 | |||
| a7db3817a6 | |||
| 200b6a9347 | |||
| ad5d84cc8b | |||
| 9b181689d2 | |||
| 018cfa5846 | |||
| 42102b530b | |||
| 8d1588757e | |||
| e8a9278fc3 | |||
| 56c8a48510 | |||
| 00dcbfc9af | |||
| f3157ef0ea | |||
| 5961a12aa7 | |||
| e2978eac60 | |||
| 684b74e5a3 | |||
| e0151e558a | |||
| 16db95b196 | |||
| b93d2c1f2a |
@@ -0,0 +1,4 @@
|
||||
marsxplr_build/
|
||||
waf*/
|
||||
.lock-waf*
|
||||
.DS_Store
|
||||
@@ -0,0 +1,23 @@
|
||||
## Assembly - CSharp
|
||||
|
||||
import os
|
||||
import shutil
|
||||
|
||||
def post(bld):
|
||||
distdir = os.path.join(bld.top_dir, 'marsxplr_build', 'Mars Explorer_Data')
|
||||
os.makedirs(distdir, exist_ok=True)
|
||||
shutil.copy(
|
||||
os.path.join(bld.out_dir, 'Assembly_-_CSharp', 'e36192721fc364533a8edf2aefd3b72c.dll'),
|
||||
os.path.join(distdir, 'Assembly - CSharp.dll'))
|
||||
|
||||
def build(bld):
|
||||
bld.add_post_fun(post)
|
||||
|
||||
bld(
|
||||
source=bld.path.ant_glob(os.path.join('src', '*.cs')),
|
||||
target='e36192721fc364533a8edf2aefd3b72c.dll',
|
||||
rule='"${MCS}" -recurse:\"' +
|
||||
os.path.join(bld.path.abspath(), 'src', '*.cs') +
|
||||
'\" -reference:\"' + str(os.path.join(bld.out_dir, 'UnityEngine', 'UnityEngine.dll')) +
|
||||
'\" -reference:\"' + str(os.path.join(bld.out_dir, 'Assembly_-_CSharp_-_first_pass', '26998b3a9cbf54825a27e5f2d3cc4df1.dll')) +
|
||||
'\" -out:${TGT} -target:library ${MONOOPTS}')
|
||||
@@ -0,0 +1,22 @@
|
||||
## Assembly - CSharp - first pass
|
||||
|
||||
import os
|
||||
import shutil
|
||||
|
||||
def post(bld):
|
||||
distdir = os.path.join(bld.top_dir, 'marsxplr_build', 'Mars Explorer_Data')
|
||||
os.makedirs(distdir, exist_ok=True)
|
||||
shutil.copy(
|
||||
os.path.join(bld.out_dir, 'Assembly_-_CSharp_-_first_pass', '26998b3a9cbf54825a27e5f2d3cc4df1.dll'),
|
||||
os.path.join(distdir, 'Assembly - CSharp - first pass.dll'))
|
||||
|
||||
def build(bld):
|
||||
bld.add_post_fun(post)
|
||||
|
||||
bld(
|
||||
source=bld.path.ant_glob(os.path.join('src', '*.cs')),
|
||||
target='26998b3a9cbf54825a27e5f2d3cc4df1.dll',
|
||||
rule='"${MCS}" -recurse:\"' +
|
||||
os.path.join(bld.path.abspath(), 'src', '*.cs') + '\"' +
|
||||
' -reference:\"' + str(os.path.join(bld.out_dir, 'UnityEngine', 'UnityEngine.dll')) + '\"'
|
||||
' -out:${TGT} -target:library ${MONOOPTS}')
|
||||
+10
-6
@@ -9,7 +9,7 @@ public class BaseSimple : MonoBehaviour
|
||||
|
||||
public void Start()
|
||||
{
|
||||
mat = (Material)((MeshRenderer)this.GetComponent(typeof(MeshRenderer))).material;
|
||||
mat = GetComponent<MeshRenderer>().material;
|
||||
Vector3 mts = mat.mainTextureScale;
|
||||
mts.x = 1;
|
||||
mts.y = 0.1f;
|
||||
@@ -22,7 +22,9 @@ public class BaseSimple : MonoBehaviour
|
||||
0.5f,
|
||||
Mathf.Min(
|
||||
10,
|
||||
Vector3.Distance(transform.position, Camera.main.transform.position) / 10f
|
||||
Vector3.Distance(
|
||||
transform.position,
|
||||
Camera.main.transform.position) / 10f
|
||||
)
|
||||
);
|
||||
|
||||
@@ -41,13 +43,15 @@ public class BaseSimple : MonoBehaviour
|
||||
mto.x--;
|
||||
}
|
||||
|
||||
if(upMode)
|
||||
if (upMode)
|
||||
{
|
||||
mto.y += Time.deltaTime * 0.1f;
|
||||
if(mto.y < 0.4f)
|
||||
{
|
||||
upMode = true;
|
||||
if (mto.y > 0.6f) upMode = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
mto.y -= Time.deltaTime * 0.1f;
|
||||
if (mto.y < 0.4f) upMode = true;
|
||||
}
|
||||
mat.mainTextureOffset = mto;
|
||||
}
|
||||
@@ -35,7 +35,7 @@ public class Buggy : MonoBehaviour
|
||||
private Transform[] bouyancyPoints;
|
||||
private float suspensionRange;
|
||||
private float friction;
|
||||
private float[] realComp;
|
||||
// /*UNUSED*/ private float[] realComp;
|
||||
private float[] hitDistance;
|
||||
private float[] hitCompress;
|
||||
private float[] hitFriction;
|
||||
@@ -51,7 +51,7 @@ public class Buggy : MonoBehaviour
|
||||
//Drivetrain Data
|
||||
private float motorTorque;
|
||||
private float motorSpeed;
|
||||
private float motorSpd;
|
||||
// /*UNUSED*/ private float motorSpd;
|
||||
private float motorInputSmoothed;
|
||||
private float wheelRadius;
|
||||
private float wheelCircumference;
|
||||
@@ -66,7 +66,7 @@ public class Buggy : MonoBehaviour
|
||||
wingState = 0f;
|
||||
//wingFlaps = 0;
|
||||
isInverted = false;
|
||||
realComp = new float[4];
|
||||
//realComp = new float[4];
|
||||
hitDistance = new float[4];
|
||||
hitCompress = new float[4];
|
||||
hitFriction = new float[4];
|
||||
@@ -76,7 +76,7 @@ public class Buggy : MonoBehaviour
|
||||
wheelMarkIndex = new int[4];
|
||||
isDynamic = false;
|
||||
motorSpeed = 0f;
|
||||
motorSpd = 0f;
|
||||
//motorSpd = 0f;
|
||||
motorInputSmoothed = 0f;
|
||||
wheelRadius = 0.3f;
|
||||
wheelCircumference = wheelRadius * (float)Math.PI * 2f;
|
||||
@@ -188,7 +188,7 @@ public class Buggy : MonoBehaviour
|
||||
leftTrail.localPosition = localPosition;
|
||||
|
||||
localPosition = rightTrail.localPosition;
|
||||
float num4 = (localPosition.x = 0);
|
||||
localPosition.x = 0;
|
||||
rightTrail.localPosition = localPosition;
|
||||
|
||||
wingState = 0f;
|
||||
@@ -588,7 +588,7 @@ public class Buggy : MonoBehaviour
|
||||
);
|
||||
//motorSpeed += -motorSpeed * motorDrag / motorTorque * Time.fixedDeltaTime;
|
||||
}
|
||||
motorSpd = (frictionTotal - Game.Settings.buggyPower * 3) / (Game.Settings.buggyPower * 3 / Game.Settings.buggySpeed);
|
||||
//motorSpd = (frictionTotal - Game.Settings.buggyPower * 3) / (Game.Settings.buggyPower * 3 / Game.Settings.buggySpeed);
|
||||
|
||||
wheelsAreTouchingGround = true;
|
||||
isDynamic = (
|
||||
+46
-32
@@ -23,6 +23,8 @@ public class CameraVehicle : MonoBehaviour
|
||||
public GlowEffect glowEffect;
|
||||
public ColorCorrectionEffect colorEffect;
|
||||
public float worldTime;
|
||||
public GameObject camTarget;
|
||||
public Vehicle camTargetVeh;
|
||||
|
||||
public CameraVehicle()
|
||||
{
|
||||
@@ -56,6 +58,18 @@ public class CameraVehicle : MonoBehaviour
|
||||
return;
|
||||
}
|
||||
|
||||
//QuarryCam
|
||||
camTarget = Game.Player;
|
||||
camTargetVeh = Game.PlayerVeh;
|
||||
if (
|
||||
Game.Settings.quarryCam &&
|
||||
(bool)Game.QuarryVeh &&
|
||||
(bool)Game.QuarryVeh.ridePos)
|
||||
{
|
||||
camTarget = Game.QuarryVeh.gameObject;
|
||||
camTargetVeh = Game.QuarryVeh;
|
||||
}
|
||||
|
||||
//Blur
|
||||
if (mb.enabled)
|
||||
{
|
||||
@@ -70,7 +84,7 @@ public class CameraVehicle : MonoBehaviour
|
||||
if (Game.Settings.useHypersound == 1)
|
||||
{
|
||||
Game.Settings.gameMusic.pitch = Mathf.Clamp(
|
||||
-0.5f + Game.Player.rigidbody.velocity.magnitude / 15f,
|
||||
-0.5f + camTarget.rigidbody.velocity.magnitude / 15f,
|
||||
0.8f,
|
||||
1.5f
|
||||
);
|
||||
@@ -133,10 +147,10 @@ public class CameraVehicle : MonoBehaviour
|
||||
arrow.rotation = Quaternion.Lerp(
|
||||
arrow.rotation,
|
||||
Quaternion.LookRotation(
|
||||
((Game.PlayerVeh.isIt != 0 || !Game.QuarryVeh) ?
|
||||
((camTargetVeh.isIt != 0 || !Game.QuarryVeh) ?
|
||||
World.baseTF :
|
||||
Game.QuarryVeh.gameObject.transform
|
||||
).position - Game.Player.transform.position
|
||||
).position - camTarget.transform.position
|
||||
),
|
||||
Time.deltaTime * 15f
|
||||
);
|
||||
@@ -192,7 +206,7 @@ public class CameraVehicle : MonoBehaviour
|
||||
}
|
||||
|
||||
//Constants
|
||||
float camDist = (float)Game.PlayerVeh.camOffset + Game.Settings.camDist;
|
||||
float camDist = (float)camTargetVeh.camOffset + Game.Settings.camDist;
|
||||
|
||||
//World Entry Effect
|
||||
if (worldTime < 7f)
|
||||
@@ -200,11 +214,11 @@ public class CameraVehicle : MonoBehaviour
|
||||
worldTime = Time.time - Game.Controller.worldLoadTime;
|
||||
transform.position = Vector3.Lerp(
|
||||
transform.position,
|
||||
Game.Player.transform.position,
|
||||
camTarget.transform.position,
|
||||
Time.deltaTime * 1f
|
||||
);
|
||||
wr = Quaternion.LookRotation(
|
||||
Game.Player.transform.position - transform.position,
|
||||
camTarget.transform.position - transform.position,
|
||||
Vector3.up
|
||||
);
|
||||
if (worldTime > 1f)
|
||||
@@ -224,7 +238,7 @@ public class CameraVehicle : MonoBehaviour
|
||||
(Input.GetButton("Snipe") && !Game.Messaging.chatting)
|
||||
)
|
||||
{
|
||||
transform.position = Game.PlayerVeh.ridePos.position;
|
||||
transform.position = camTargetVeh.ridePos.position;
|
||||
|
||||
if (Input.GetButtonDown("Fire2") || Input.GetKeyDown(KeyCode.Alpha1))
|
||||
{
|
||||
@@ -234,7 +248,7 @@ public class CameraVehicle : MonoBehaviour
|
||||
{
|
||||
gyroTation = Quaternion.Euler(
|
||||
0f,
|
||||
Game.PlayerVeh.ridePos.rotation.eulerAngles.y,
|
||||
camTargetVeh.ridePos.rotation.eulerAngles.y,
|
||||
0f
|
||||
);
|
||||
}
|
||||
@@ -246,7 +260,7 @@ public class CameraVehicle : MonoBehaviour
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.rotation = Game.PlayerVeh.ridePos.rotation;
|
||||
transform.rotation = camTargetVeh.ridePos.rotation;
|
||||
}
|
||||
|
||||
rotationX += Input.GetAxis("Mouse X") * (Input.GetButton("Snipe") ? 0.5f : 2f);
|
||||
@@ -291,9 +305,9 @@ public class CameraVehicle : MonoBehaviour
|
||||
{
|
||||
transform.position = Vector3.Lerp(
|
||||
transform.position,
|
||||
Game.Player.transform.position - Vector3.Normalize(
|
||||
Game.Player.transform.position - transform.position
|
||||
) * camDist + Vector3.one * (Game.PlayerVeh.camSmooth ?
|
||||
camTarget.transform.position - Vector3.Normalize(
|
||||
camTarget.transform.position - transform.position
|
||||
) * camDist + Vector3.one * (camTargetVeh.camSmooth ?
|
||||
0f :
|
||||
Mathf.Lerp(0f, 15f, camDist / 30f)
|
||||
),
|
||||
@@ -302,9 +316,9 @@ public class CameraVehicle : MonoBehaviour
|
||||
transform.rotation = Quaternion.Slerp(
|
||||
transform.rotation,
|
||||
Quaternion.LookRotation(
|
||||
Game.Player.transform.position - transform.position,
|
||||
camTarget.transform.position - transform.position,
|
||||
(Game.Settings.flightCam ?
|
||||
Game.Player.transform.up :
|
||||
camTarget.transform.up :
|
||||
Vector3.up
|
||||
)
|
||||
),
|
||||
@@ -329,15 +343,15 @@ public class CameraVehicle : MonoBehaviour
|
||||
else if (Game.Settings.camChase == 1)
|
||||
{
|
||||
if (
|
||||
(bool)Game.Player.transform.gameObject.rigidbody &&
|
||||
Game.Player.transform.gameObject.rigidbody.velocity.sqrMagnitude > 0.1f &&
|
||||
Game.Player.transform.gameObject.rigidbody.velocity.normalized.y < 0.8f &&
|
||||
Game.Player.transform.gameObject.rigidbody.velocity.normalized.y > -0.8f
|
||||
(bool)camTarget.transform.gameObject.rigidbody &&
|
||||
camTarget.transform.gameObject.rigidbody.velocity.sqrMagnitude > 0.1f &&
|
||||
camTarget.transform.gameObject.rigidbody.velocity.normalized.y < 0.8f &&
|
||||
camTarget.transform.gameObject.rigidbody.velocity.normalized.y > -0.8f
|
||||
)
|
||||
{
|
||||
lastDir = Vector3.Lerp(
|
||||
lastDir,
|
||||
Game.Player.transform.gameObject.rigidbody.velocity.normalized,
|
||||
camTarget.transform.gameObject.rigidbody.velocity.normalized,
|
||||
0.1f
|
||||
);
|
||||
}
|
||||
@@ -350,12 +364,12 @@ public class CameraVehicle : MonoBehaviour
|
||||
);
|
||||
}
|
||||
Vector3 newPos = (
|
||||
Game.Player.transform.position +
|
||||
camTarget.transform.position +
|
||||
lastDir * -(camDist) +
|
||||
Vector3.up * (camDist / 3f)
|
||||
);
|
||||
Vector3 tpos = transform.position;
|
||||
float y = tpos.y + (Game.Player.transform.position.y - lastY) * Time.deltaTime;
|
||||
float y = tpos.y + (camTarget.transform.position.y - lastY) * Time.deltaTime;
|
||||
tpos.y = y;
|
||||
transform.position = tpos;
|
||||
transform.position = Vector3.Lerp(
|
||||
@@ -363,13 +377,13 @@ public class CameraVehicle : MonoBehaviour
|
||||
newPos,
|
||||
Time.deltaTime * 4f
|
||||
);
|
||||
lastY = Game.Player.transform.position.y;
|
||||
lastY = camTarget.transform.position.y;
|
||||
transform.rotation = Quaternion.Slerp(
|
||||
transform.rotation,
|
||||
Quaternion.LookRotation(
|
||||
Game.Player.transform.position - transform.position,
|
||||
camTarget.transform.position - transform.position,
|
||||
(Game.Settings.flightCam ?
|
||||
Game.Player.transform.up :
|
||||
camTarget.transform.up :
|
||||
Vector3.up
|
||||
)
|
||||
),
|
||||
@@ -395,13 +409,13 @@ public class CameraVehicle : MonoBehaviour
|
||||
//Arcade
|
||||
else if (
|
||||
Game.Settings.camChase == 2 &&
|
||||
Game.Player.transform.rigidbody.velocity.magnitude > 0f
|
||||
camTarget.transform.rigidbody.velocity.magnitude > 0f
|
||||
)
|
||||
{
|
||||
float heightDamping = 3f;
|
||||
float rotationDamping = 3f;
|
||||
float wantedRotationAngle = Quaternion.LookRotation(
|
||||
Game.Player.transform.rigidbody.velocity
|
||||
camTarget.transform.rigidbody.velocity
|
||||
).eulerAngles.y;
|
||||
wantedRotationAngle += Mathf.Lerp(
|
||||
30f,
|
||||
@@ -409,7 +423,7 @@ public class CameraVehicle : MonoBehaviour
|
||||
camDist / 30f
|
||||
) * Input.GetAxis("Horizontal");
|
||||
float wantedHeight = (
|
||||
Game.Player.transform.position.y +
|
||||
camTarget.transform.position.y +
|
||||
Mathf.Lerp(0.1f, 15f, camDist / 30f) +
|
||||
heightBoost
|
||||
);
|
||||
@@ -432,7 +446,7 @@ public class CameraVehicle : MonoBehaviour
|
||||
currentRotationAngle,
|
||||
0f
|
||||
);
|
||||
Vector3 pos = Game.Player.transform.position;
|
||||
Vector3 pos = camTarget.transform.position;
|
||||
pos.y += targetHeight; //Look ABOVE the target
|
||||
transform.position = pos;
|
||||
transform.position -= currentRotation * Vector3.forward * camDist;
|
||||
@@ -455,7 +469,7 @@ public class CameraVehicle : MonoBehaviour
|
||||
{ //We are under terrain
|
||||
Physics.Linecast( //Determine how far forward we need to go to be out of it
|
||||
transform.position,
|
||||
Game.Player.transform.position + Vector3.up * currentHeight,
|
||||
camTarget.transform.position + Vector3.up * currentHeight,
|
||||
out hit,
|
||||
1 << 8
|
||||
);
|
||||
@@ -476,11 +490,11 @@ public class CameraVehicle : MonoBehaviour
|
||||
{
|
||||
transform.position = Vector3.Lerp(
|
||||
transform.position,
|
||||
Game.Player.transform.position + Vector3.up * 40f,
|
||||
camTarget.transform.position + Vector3.up * 40f,
|
||||
Time.deltaTime * 0.3f
|
||||
);
|
||||
wr = Quaternion.LookRotation(
|
||||
Game.Player.transform.position - transform.position,
|
||||
camTarget.transform.position - transform.position,
|
||||
Vector3.up
|
||||
);
|
||||
transform.rotation = Quaternion.Slerp(
|
||||
@@ -495,7 +509,7 @@ public class CameraVehicle : MonoBehaviour
|
||||
{
|
||||
transform.rotation = Quaternion.Slerp(
|
||||
transform.rotation,
|
||||
Quaternion.LookRotation(Game.Player.transform.position - transform.position),
|
||||
Quaternion.LookRotation(camTarget.transform.position - transform.position),
|
||||
Time.deltaTime * 1.5f
|
||||
);
|
||||
transform.Translate(new Vector3(
|
||||
-9
@@ -1,16 +1,8 @@
|
||||
using System;
|
||||
using CompilerGenerated;
|
||||
|
||||
namespace System.Runtime.CompilerServices
|
||||
{
|
||||
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class
|
||||
| AttributeTargets.Method)]
|
||||
public sealed class ExtensionAttribute : Attribute { }
|
||||
}
|
||||
|
||||
public static class CompilerGeneratedExtensions
|
||||
{
|
||||
//[Extension]
|
||||
public static IAsyncResult BeginInvoke(
|
||||
this adaptableMethod self,
|
||||
AsyncCallback callback
|
||||
@@ -19,7 +11,6 @@ public static class CompilerGeneratedExtensions
|
||||
return self.BeginInvoke(callback, null);
|
||||
}
|
||||
|
||||
//[Extension]
|
||||
public static IAsyncResult BeginInvoke(
|
||||
this adaptableMethod self
|
||||
)
|
||||
+2
-2
@@ -8,9 +8,9 @@ public class EntryPoint : MonoBehaviour
|
||||
{
|
||||
public IEnumerator Start()
|
||||
{
|
||||
yield return new WaitForSeconds(15.0f);
|
||||
yield return new WaitForSeconds(15f);
|
||||
|
||||
ParticleEmitter pe = (ParticleEmitter)GetComponent(typeof(ParticleEmitter));
|
||||
ParticleEmitter pe = this.GetComponent<ParticleEmitter>();
|
||||
pe.emit = true;
|
||||
}
|
||||
}
|
||||
@@ -111,7 +111,7 @@ public class Game : MonoBehaviour
|
||||
public bool serverHidden = false;
|
||||
[NonSerialized]
|
||||
public Hashtable authenticatedPlayers = new Hashtable();
|
||||
private ArrayList authenticatingPlayers = new ArrayList();
|
||||
//private ArrayList authenticatingPlayers = new ArrayList();
|
||||
[NonSerialized]
|
||||
public static Hashtable Players;
|
||||
public List<unauthPlayer> unauthPlayers = new List<unauthPlayer>();
|
||||
@@ -289,7 +289,8 @@ public class Game : MonoBehaviour
|
||||
0,
|
||||
(isHost ? 1 : 0),
|
||||
0,
|
||||
0);
|
||||
0,
|
||||
false);
|
||||
|
||||
if (isHost)
|
||||
{
|
||||
@@ -1098,7 +1099,8 @@ public class Game : MonoBehaviour
|
||||
veh.isBot ? 1 : 0,
|
||||
veh.isIt,
|
||||
veh.score,
|
||||
veh.specialInput ? 1 : 0);
|
||||
veh.specialInput ? 1 : 0,
|
||||
veh.zorbBall);
|
||||
veh.networkView.RPC(
|
||||
"sC",
|
||||
player,
|
||||
@@ -1254,7 +1256,6 @@ public class Game : MonoBehaviour
|
||||
": ";
|
||||
try
|
||||
{
|
||||
float boo = Convert.ToSingle(thread.Value);
|
||||
threadList +=
|
||||
Mathf.RoundToInt(
|
||||
Convert.ToSingle(thread.Value) *
|
||||
@@ -1599,7 +1600,8 @@ public class Game : MonoBehaviour
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0);
|
||||
0,
|
||||
PlayerVeh.zorbBall);
|
||||
}
|
||||
|
||||
public IEnumerator axeBot()
|
||||
@@ -1635,6 +1637,7 @@ public class Game : MonoBehaviour
|
||||
int score = PlayerVeh.score;
|
||||
int specialInput = (PlayerVeh.specialInput ? 1 : 0);
|
||||
string name = Player.name;
|
||||
bool zorbBall = PlayerVeh.zorbBall;
|
||||
Network.Destroy(Player.rigidbody.networkView.viewID);
|
||||
networkView.RPC(
|
||||
"iV",
|
||||
@@ -1646,7 +1649,8 @@ public class Game : MonoBehaviour
|
||||
0,
|
||||
isIt,
|
||||
score,
|
||||
specialInput);
|
||||
specialInput,
|
||||
zorbBall);
|
||||
}
|
||||
|
||||
[RPC]
|
||||
@@ -1808,7 +1812,8 @@ public class Game : MonoBehaviour
|
||||
int isBot,
|
||||
int isIt,
|
||||
int score,
|
||||
int specialInput)
|
||||
int specialInput,
|
||||
bool zorbBall)
|
||||
{
|
||||
//while(worldLoaded == false) yield return null;
|
||||
|
||||
@@ -1867,8 +1872,10 @@ public class Game : MonoBehaviour
|
||||
plyVeh.isIt = isIt;
|
||||
plyVeh.score = score;
|
||||
plyVeh.specialInput = (specialInput == 1);
|
||||
plyVeh.zorbBall = zorbBall;
|
||||
|
||||
if (viewID.isMine && isBot == 0) Player = plyObj;
|
||||
if (plyVeh.isIt == 1) QuarryVeh = plyVeh;
|
||||
}
|
||||
|
||||
[RPC]
|
||||
@@ -2048,7 +2055,7 @@ public class Game : MonoBehaviour
|
||||
}
|
||||
|
||||
[RPC]
|
||||
public void sSH(string sname, string sworld, string swelcome, string sblacklist, string spassword, float gVersion, bool shidden, NetworkMessageInfo info)
|
||||
public void sSH(string sname, string sworld, string swelcome, string sblacklist, string spassword, SemVer gVersion, bool shidden, NetworkMessageInfo info)
|
||||
{
|
||||
serverName = sname;
|
||||
Settings.serverWelcome = swelcome;
|
||||
@@ -2140,9 +2147,12 @@ public class Game : MonoBehaviour
|
||||
|
||||
public static string LanguageFilter(string str)
|
||||
{
|
||||
string patternMild = " crap | prawn |d4mn| damn | turd ";
|
||||
/*string patternMild = " crap | prawn |d4mn| damn | turd ";
|
||||
str = Regex.Replace(str, patternMild, ".", RegexOptions.IgnoreCase);
|
||||
string pattern = "anus|ash0le|ash0les|asholes| ass |Ass Monkey|Assface|assh0le|assh0lez|bastard|bastards|bastardz|basterd|suka|asshole|assholes|assholz|asswipe|azzhole|bassterds|basterdz|Biatch|bitch|bitches|Blow Job|blowjob|in bed|butthole|buttwipe|c0ck|c0cks|c0k|Clit|cnts|cntz|cockhead| cock |cock-head|CockSucker|cock-sucker| cum |cunt|cunts|cuntz|dick|dild0|dild0s|dildo|dildos|dilld0|dilld0s|dominatricks|dominatrics|dominatrix|f.u.c.k|f u c k|f u c k e r|fag|fag1t|faget|fagg1t|faggit|faggot|fagit|fags|fagz|faig|faigs|fuck|fucker|fuckin|mother fucker|fucking|fucks|Fudge Packer|fuk|Fukah|Fuken|fuker|Fukin|Fukk|Fukkah|Fukken|Fukker|Fukkin|gay|gayboy|gaygirl|gays|gayz|God-dam|God dam|h00r|h0ar|h0re|jackoff|jerk-off|jizz|kunt|kunts|kuntz|Lesbian|Lezzian|Lipshits|Lipshitz|masochist|masokist|massterbait|masstrbait|masstrbate|masterbaiter|masterbate|masterbates|Motha Fucker|Motha Fuker|Motha Fukkah|Motha Fukker|Mother Fucker|Mother Fukah|Mother Fuker|Mother Fukkah|Mother Fukker|mother-fucker|Mutha Fucker|Mutha Fukah|Mutha Fuker|Mutha Fukkah|Mutha Fukker|orafis|orgasim|orgasm|orgasum|oriface|orifice|orifiss|packi|packie|packy|paki|pakie|peeenus|peeenusss|peenus|peinus|pen1s|penas|penis|penis-breath|penus|penuus|Phuc|Phuck|Phuk|Phuker|Phukker|polac|polack|polak|Poonani|pr1c|pr1ck|pr1k|pusse|pussee|pussy|puuke|puuker|queer|queers|queerz|qweers|qweerz|qweir|recktum|rectum|retard|sadist|scank|schlong|screwing| sex |sh1t|sh1ter|sh1ts|sh1tter|sh1tz|shit|shits|shitter|Shitty|Shity|shitz|Shyt|Shyte|Shytty|Shyty|skanck|skank|skankee| sob |skankey|skanks|Skanky|slut|sluts|Slutty|slutz|son-of-a-bitch|va1jina|vag1na|vagiina|vagina|vaj1na|vajina|vullva|vulva|xxx|b!+ch|bitch|blowjob|clit|arschloch|fuck|shit|asshole|b!tch|b17ch|b1tch|bastard|bi+ch|boiolas|buceta|c0ck|cawk|chink|clits|cunt|dildo|dirsa|ejakulate|fatass|fcuk|fuk|fux0r|l3itch|lesbian|masturbate|masterbat*|motherfucker|s.o.b.|mofo|nigga|nigger|n1gr|nigur|niiger|niigr|nutsack|phuck|blue balls|blue_balls|blueballs|pussy|scrotum|shemale|sh!t|slut|smut|teets|tits|boobs|b00bs|testical|testicle|titt|jackoff|whoar|whore|fuck|shit|arse|bi7ch|bitch|bollock|breasts|cunt|dick|fag |feces|fuk|futkretzn|gay|jizz|masturbat*|piss|poop|porn|p0rn|pr0n|shiz|splooge|b00b|testicle|titt|wank";
|
||||
return Regex.Replace(str, pattern, "#", RegexOptions.IgnoreCase);
|
||||
return Regex.Replace(str, pattern, "#", RegexOptions.IgnoreCase);*/
|
||||
|
||||
// the kids that played this game back then are no longer kids. little need to babysit them anymore
|
||||
return str;
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,8 @@ using UnityEngine;
|
||||
[Serializable]
|
||||
public class GameData : MonoBehaviour
|
||||
{
|
||||
public static float gameVersion = 2.22f;
|
||||
//public static float gameVersion = 4.0f;
|
||||
public static SemVer gameVersion = new SemVer("4.0.1");
|
||||
public static float serverVersion = 0.2f;
|
||||
public static string gameName = "marsxplr";
|
||||
public static string userName = "";
|
||||
@@ -0,0 +1,43 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
[Serializable]
|
||||
public class Init : MonoBehaviour
|
||||
{
|
||||
public GUIText txt;
|
||||
|
||||
//----------------------
|
||||
// temporary fix for texture/font rendering issues on super high res moniters
|
||||
// resolution is capped to 1920x1080
|
||||
public void Start()
|
||||
{
|
||||
int wnew = -1;
|
||||
int hnew = -1;
|
||||
foreach(Resolution r in Screen.resolutions)
|
||||
{
|
||||
if(
|
||||
r.width > 1920 || r.width < wnew ||
|
||||
r.height > 1080 || r.height < hnew)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
wnew = r.width;
|
||||
hnew = r.height;
|
||||
}
|
||||
Screen.SetResolution(wnew, hnew, Screen.fullScreen);
|
||||
}
|
||||
//----------------------
|
||||
|
||||
public void Update()
|
||||
{
|
||||
float i = Application.GetStreamProgressForLevel(Application.loadedLevel + 1);
|
||||
if (i == 1f)
|
||||
{
|
||||
Application.LoadLevel(Application.loadedLevel + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
txt.text = Mathf.RoundToInt(i * 100f) + "%";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17,21 +17,21 @@ public class JumpPoint : MonoBehaviour
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ((bool)whirldObject.parameters["JumpTime"])
|
||||
if (whirldObject.parameters["JumpTime"] != null)
|
||||
{
|
||||
time = (int)whirldObject.parameters["JumpTime"];
|
||||
time = (int)float.Parse((String)whirldObject.parameters["JumpTime"]);
|
||||
}
|
||||
if ((bool)whirldObject.parameters["JumpRandMin"])
|
||||
if (whirldObject.parameters["JumpRandMin"] != null)
|
||||
{
|
||||
randMin = (int)whirldObject.parameters["JumpRandMin"];
|
||||
randMin = (int)float.Parse((String)whirldObject.parameters["JumpRandMin"]);
|
||||
}
|
||||
if ((bool)whirldObject.parameters["JumpRandMax"])
|
||||
if (whirldObject.parameters["JumpRandMax"] != null)
|
||||
{
|
||||
randMax = (int)whirldObject.parameters["JumpRandMax"];
|
||||
randMax = (int)float.Parse((String)whirldObject.parameters["JumpRandMax"]);
|
||||
}
|
||||
if ((bool)whirldObject.parameters["JumpVelocity"])
|
||||
if (whirldObject.parameters["JumpVelocity"] != null)
|
||||
{
|
||||
velocity = (int)whirldObject.parameters["JumpVelocity"];
|
||||
velocity = (int)float.Parse((String)whirldObject.parameters["JumpVelocity"]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,6 +58,12 @@ public class JumpPoint : MonoBehaviour
|
||||
transform.up * velocity,
|
||||
ForceMode.VelocityChange);
|
||||
}
|
||||
/*other.attachedRigidbody.AddExplosionForce(
|
||||
UnityEngine.Random.Range(randMin, randMax),
|
||||
transform.position,
|
||||
0f,
|
||||
2f,
|
||||
ForceMode.VelocityChange);*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,22 +86,6 @@ public class Lobby : MonoBehaviour
|
||||
private bool dedicatedNAT;
|
||||
// /*UNUSED*/ private int dedicatedHostAttempts;
|
||||
|
||||
private bool showAds = false;
|
||||
adDesc[] gameAds;
|
||||
class adDesc : UnityEngine.Object
|
||||
{
|
||||
public String url = "";
|
||||
public String title = "";
|
||||
public String desc = "";
|
||||
|
||||
public adDesc(String u, String t, String d)
|
||||
{
|
||||
this.url = u;
|
||||
this.title = t;
|
||||
this.desc = d;
|
||||
}
|
||||
}
|
||||
|
||||
public void Awake()
|
||||
{
|
||||
QualitySettings.currentLevel = QualityLevel.Fantastic;
|
||||
@@ -111,9 +95,6 @@ public class Lobby : MonoBehaviour
|
||||
|
||||
public IEnumerator Start()
|
||||
{
|
||||
String adBrightUrl = "";
|
||||
String adSenseUrl = "";
|
||||
|
||||
userPassword = PlayerPrefs.GetString("userPassword", "");
|
||||
userCode = PlayerPrefs.GetString("userCode", "");
|
||||
userRemembered = (PlayerPrefs.GetInt("userRemembered", 0) == 1 ? true : false);
|
||||
@@ -155,11 +136,8 @@ public class Lobby : MonoBehaviour
|
||||
String[] val = tmp.ToArray();
|
||||
|
||||
if (
|
||||
val[0] == "v" &&
|
||||
float.Parse(
|
||||
val[1],
|
||||
CultureInfo.InvariantCulture.NumberFormat
|
||||
) > (float)GameData.gameVersion)
|
||||
val[0] == "sv" &&
|
||||
SemVer.Parse(val[1]) > GameData.gameVersion)
|
||||
{
|
||||
outdated = val[1];
|
||||
}
|
||||
@@ -167,10 +145,6 @@ public class Lobby : MonoBehaviour
|
||||
{
|
||||
hostDedicated = (val[1] == "1" || val[1] == "true");
|
||||
}
|
||||
else if (val[0] == "a")
|
||||
{
|
||||
showAds = (val[1] == "1" || val[1] == "true");
|
||||
}
|
||||
else if (val[0] == "m") msgs.Add(val[1]);
|
||||
else if (val[0] == "w")
|
||||
{
|
||||
@@ -228,14 +202,6 @@ public class Lobby : MonoBehaviour
|
||||
{
|
||||
GameData.networkMode = int.Parse(val[1]);
|
||||
}
|
||||
else if (val[0] == "adbr")
|
||||
{
|
||||
adBrightUrl = val[1];
|
||||
}
|
||||
else if (val[0] == "adsn")
|
||||
{
|
||||
adSenseUrl = val[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -247,60 +213,6 @@ public class Lobby : MonoBehaviour
|
||||
messages = msgs.ToArray();
|
||||
|
||||
MasterServer.RequestHostList(gameName);
|
||||
|
||||
if (showAds)
|
||||
{
|
||||
List<adDesc> ads = new List<adDesc>();
|
||||
|
||||
//Adbrite
|
||||
www = new WWW(adBrightUrl);
|
||||
yield return www;
|
||||
if (www.error == null)
|
||||
{
|
||||
MatchCollection matches = Regex.Matches(
|
||||
www.data.Replace(
|
||||
"\\\"",
|
||||
"\""),
|
||||
"<a[^>]*?class=\\\"adHeadline\\\"[^>]*?href=\\\"(.*?)\\\"[^>]*?>(.*?)</a>[^.]*?<a[^>]*?class=\\\"adText\\\"[^>]*?>(.*?)</a>");
|
||||
foreach (Match match in matches)
|
||||
{
|
||||
adDesc ad = new adDesc(
|
||||
match.Groups[1].ToString(),
|
||||
htmlDecode(match.Groups[2].ToString()),
|
||||
htmlDecode(match.Groups[3].ToString()));
|
||||
if (UnityEngine.Random.value > .5) ads.Add(ad);
|
||||
else ads.Insert(0, ad);
|
||||
}
|
||||
}
|
||||
|
||||
//Adsense
|
||||
www = new WWW(adSenseUrl);
|
||||
yield return www;
|
||||
if (www.error == null)
|
||||
{
|
||||
MatchCollection matches = Regex.Matches(
|
||||
www.data.Replace(
|
||||
"\\\"",
|
||||
"\""),
|
||||
"<a[^>]*?class=adt[^>]*?href=\\\"(.*?)\\\"[^>]*?>(.*?)</a>[^.]*?<div[^>]*?class=adb[^>]*?>(.*?)</div>");
|
||||
foreach (Match match in matches)
|
||||
{
|
||||
adDesc ad = new adDesc(
|
||||
"http://googleads.g.doubleclick.net" +
|
||||
match.Groups[1].ToString(),
|
||||
htmlDecode(match.Groups[2].ToString()),
|
||||
htmlDecode(match.Groups[3].ToString()));
|
||||
if (ad.url.IndexOf("&nh=1") == -1) ad.url += "&nh=1";
|
||||
ads.Insert(0, ad);
|
||||
}
|
||||
}
|
||||
|
||||
//Tally
|
||||
if (ads.Count > 0)
|
||||
{
|
||||
gameAds = ads.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OnFailedToConnectToMasterServer(NetworkConnectionError info)
|
||||
@@ -992,7 +904,7 @@ public class Lobby : MonoBehaviour
|
||||
HostData[] data = MasterServer.PollHostList();
|
||||
|
||||
String[] serverData;
|
||||
float gameVersion;
|
||||
SemVer gameVersion;
|
||||
float serverVersion;
|
||||
|
||||
//Precull Data
|
||||
@@ -1007,13 +919,13 @@ public class Lobby : MonoBehaviour
|
||||
if (filterNATHosts && element.useNat) continue;
|
||||
|
||||
serverData = element.comment.Split(";"[0]);
|
||||
gameVersion = 0.0f;
|
||||
gameVersion = new SemVer(0);
|
||||
serverVersion = 0.0f;
|
||||
foreach (String dat in serverData)
|
||||
{
|
||||
if (dat == "") continue;
|
||||
vals = dat.Split("="[0]);
|
||||
if (vals[0] == "v") gameVersion = float.Parse(vals[1]);
|
||||
if (vals[0] == "v") gameVersion = SemVer.Parse(vals[1]);
|
||||
if (vals[0] == "d") serverVersion = float.Parse(vals[1]);
|
||||
}
|
||||
|
||||
@@ -1041,44 +953,16 @@ public class Lobby : MonoBehaviour
|
||||
System.Array.Sort(data, sortHostArray);
|
||||
|
||||
int i = 0;
|
||||
float adCounter = 0.000f;
|
||||
int adTicker = 0;
|
||||
foreach (HostData element in data)
|
||||
{
|
||||
//Ads
|
||||
if (showAds)
|
||||
{
|
||||
adCounter += (float)gameAds.Length / (float)data.Length;
|
||||
if ((float)adTicker < adCounter && adTicker < gameAds.Length)
|
||||
{
|
||||
if (
|
||||
GUILayout.Button(
|
||||
gameAds[adTicker].title +
|
||||
" ~ " +
|
||||
gameAds[adTicker].desc,
|
||||
"lobbyAd"))
|
||||
{
|
||||
OpenURL(gameAds[adTicker].url);
|
||||
}
|
||||
if (
|
||||
Event.current.type != EventType.Layout &&
|
||||
mouseInServerList &&
|
||||
GUILayoutUtility.GetLastRect().Contains(Event.current.mousePosition))
|
||||
{
|
||||
serverDetails = "This advertisement helps bring Mars Explorer to you for free!\n\nIf you are interested in one of our sponsor's offers,\nplease be sure to check it out.";
|
||||
}
|
||||
adTicker++;
|
||||
}
|
||||
}
|
||||
|
||||
masterServerConFailures = 0;
|
||||
masterServerMessage = "";
|
||||
serverData = element.comment.Split(";"[0]);
|
||||
gameVersion = 0.0f;
|
||||
gameVersion = new SemVer(0);
|
||||
serverVersion = 0.0f;
|
||||
String serverWorld = "";
|
||||
String serverPlayers = "";
|
||||
String serverWorldURL = "";
|
||||
// /*UNUSED*/ String serverWorldURL = "";
|
||||
String bannedIPs = "";
|
||||
String serverLag = "";
|
||||
bool isLocked = false;
|
||||
@@ -1086,11 +970,11 @@ public class Lobby : MonoBehaviour
|
||||
{
|
||||
if (dat == "") continue;
|
||||
vals = dat.Split("="[0]);
|
||||
if (vals[0] == "v") gameVersion = float.Parse(vals[1]);
|
||||
if (vals[0] == "v") gameVersion = SemVer.Parse(vals[1]);
|
||||
if (vals[0] == "d") serverVersion = float.Parse(vals[1]);
|
||||
else if (vals[0] == "w") serverWorld = vals[1];
|
||||
else if (vals[0] == "p") serverPlayers = vals[1];
|
||||
else if (vals[0] == "u") serverWorldURL = vals[1];
|
||||
//else if (vals[0] == "u") serverWorldURL = vals[1];
|
||||
else if (vals[0] == "b") bannedIPs = vals[1];
|
||||
else if (vals[0] == "s") serverLag = vals[1];
|
||||
else if (vals[0] == "l") isLocked = true;
|
||||
@@ -1179,21 +1063,6 @@ public class Lobby : MonoBehaviour
|
||||
(serverVersion != 0.0 ? " (» Dedicated Host Server)" : "");
|
||||
}
|
||||
i++;
|
||||
|
||||
//"Advertise Here" Ad
|
||||
if (showAds && i == data.Length)
|
||||
{
|
||||
if (GUILayout.Button("» Advertise on Mars Explorer! «", "lobbyAd"))
|
||||
{
|
||||
OpenURL("http://www.adbrite.com/mb/commerce/purchase_form.php?opid=1509409&&nr=1");
|
||||
}
|
||||
if (Event.current.type != EventType.Layout &&
|
||||
mouseInServerList &&
|
||||
GUILayoutUtility.GetLastRect().Contains(Event.current.mousePosition))
|
||||
{
|
||||
serverDetails = "That's right - you can bid directly to advertise inside Mars Explorer!\n\nPresent YOUR message to an audience\nof friendly Martians everywhere.";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (activePlayersVisible == 0)
|
||||
@@ -1532,12 +1401,12 @@ public class Lobby : MonoBehaviour
|
||||
GUILayout.Label("A new Mars Explorer version is now available on the Discord Server:");
|
||||
GUILayout.Space(10f);
|
||||
if (
|
||||
GUILayout.Button(">> Ask in the #marsxplr channel to Download Mars Explorer version " +
|
||||
GUILayout.Button(">> Go to the Gitea Releases page to Download MarsXPLR version " +
|
||||
outdated +
|
||||
"! <<",
|
||||
GUILayout.Height(40f)))
|
||||
{
|
||||
OpenURL("https://discord.gg/dxTFZRM");
|
||||
OpenURL("https://gitea.moe/VIA256/marsxplr-decomp/releases");
|
||||
}
|
||||
GUILayout.Space(30f);
|
||||
GUILayout.BeginHorizontal();
|
||||
+2
-2
@@ -284,7 +284,7 @@ public class MeshSerializer : MonoBehaviour
|
||||
float xx = ((float)(int)ix - 128f) / 127f;
|
||||
float yy = ((float)(int)iy - 128f) / 127f;
|
||||
float zz = ((float)(int)iz - 128f) / 127f;
|
||||
float ww = ((float)(int)iz - 128f) / 127f;
|
||||
float ww = ((float)(int)iw - 128f) / 127f;
|
||||
arr[i] = new Vector4(xx, yy, zz, ww);
|
||||
}
|
||||
}
|
||||
@@ -297,7 +297,7 @@ public class MeshSerializer : MonoBehaviour
|
||||
byte ix = (byte)Mathf.Clamp(v.x * 127f + 128f, 0f, 255f);
|
||||
byte iy = (byte)Mathf.Clamp(v.y * 127f + 128f, 0f, 255f);
|
||||
byte iz = (byte)Mathf.Clamp(v.z * 127f + 128f, 0f, 255f);
|
||||
byte iw = (byte)Mathf.Clamp(v.z * 127f + 128f, 0f, 255f);
|
||||
byte iw = (byte)Mathf.Clamp(v.w * 127f + 128f, 0f, 255f);
|
||||
buf.Write(ix);
|
||||
buf.Write(iy);
|
||||
buf.Write(iz);
|
||||
@@ -130,10 +130,10 @@ public class Messaging : MonoBehaviour
|
||||
RPCMode.All,
|
||||
!Game.PlayerVeh.zorbBall);
|
||||
Game.Controller.msg(
|
||||
"XORB " + ((!Game.PlayerVeh.zorbBall) ?
|
||||
"Deactivated" :
|
||||
"Activated"),
|
||||
2);
|
||||
"XORB " + (Game.PlayerVeh.zorbBall ?
|
||||
"Activated" :
|
||||
"Deactivated"),
|
||||
(int)chatOrigins.Server);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -39,7 +39,7 @@ public class SeaData : MonoBehaviour
|
||||
whirldObject == null ||
|
||||
whirldObject.parameters == null ||
|
||||
seaObject == null ||
|
||||
!(bool)whirldObject.parameters["Mode"])
|
||||
whirldObject.parameters["Mode"] == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
using System;
|
||||
|
||||
public class SemVer
|
||||
{
|
||||
public byte maj;
|
||||
public byte min;
|
||||
public byte patch;
|
||||
|
||||
public SemVer(byte mj, byte mn, byte pt)
|
||||
{
|
||||
maj = mj;
|
||||
min = mn;
|
||||
patch = pt;
|
||||
}
|
||||
|
||||
public SemVer(byte mj, byte mn)
|
||||
{
|
||||
maj = mj;
|
||||
min = mn;
|
||||
patch = 0;
|
||||
}
|
||||
|
||||
public SemVer(byte mj)
|
||||
{
|
||||
maj = mj;
|
||||
min = 0;
|
||||
patch = 0;
|
||||
}
|
||||
|
||||
public SemVer(String str)
|
||||
{
|
||||
SemVer sv = SemVer.Parse(str);
|
||||
maj = sv.maj;
|
||||
min = sv.min;
|
||||
patch = sv.patch;
|
||||
}
|
||||
|
||||
public static bool operator ==(SemVer a, SemVer b)
|
||||
{
|
||||
return (
|
||||
a.maj == b.maj &&
|
||||
a.min == b.min &&
|
||||
a.patch == b.patch);
|
||||
}
|
||||
|
||||
public static bool operator !=(SemVer a, SemVer b)
|
||||
{
|
||||
return (
|
||||
a.maj != b.maj ||
|
||||
a.min != b.min ||
|
||||
a.patch != b.patch);
|
||||
}
|
||||
|
||||
public static bool operator >(SemVer a, SemVer b)
|
||||
{
|
||||
return a.maj > b.maj ? true :
|
||||
a.min > b.min ? true :
|
||||
a.patch > b.patch ? true :
|
||||
false;
|
||||
}
|
||||
|
||||
public static bool operator >=(SemVer a, SemVer b)
|
||||
{
|
||||
return a.maj >= b.maj ? true :
|
||||
a.min >= b.min ? true :
|
||||
a.patch >= b.patch ? true :
|
||||
false;
|
||||
}
|
||||
|
||||
public static bool operator <=(SemVer a, SemVer b)
|
||||
{
|
||||
return b > a;
|
||||
}
|
||||
|
||||
public static bool operator <(SemVer a, SemVer b)
|
||||
{
|
||||
return b >= a;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
if (patch == 0) return maj.ToString() + "." + min.ToString();
|
||||
return maj.ToString() + "." + min.ToString() + "." + patch.ToString();
|
||||
}
|
||||
|
||||
public static SemVer Parse(String str)
|
||||
{
|
||||
String[] sv = str.Split("."[0]);
|
||||
if (sv.Length == 3) return new SemVer(
|
||||
byte.Parse(sv[0]),
|
||||
byte.Parse(sv[1]),
|
||||
byte.Parse(sv[2]));
|
||||
if (sv.Length == 2) return new SemVer(
|
||||
byte.Parse(sv[0]),
|
||||
byte.Parse(sv[1]));
|
||||
if (sv.Length == 1) return new SemVer(
|
||||
byte.Parse(sv[0]));
|
||||
throw new FormatException();
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return maj.GetHashCode() ^ (min.GetHashCode() << 2) ^ (patch.GetHashCode() >> 2);
|
||||
}
|
||||
|
||||
public override bool Equals(object other)
|
||||
{
|
||||
if (!(other is SeaData)) return false;
|
||||
SemVer osv = (SemVer)other;
|
||||
return (
|
||||
osv.maj == maj &&
|
||||
osv.min == min &&
|
||||
osv.patch == patch);
|
||||
}
|
||||
}
|
||||
@@ -71,6 +71,7 @@ public class Settings : MonoBehaviour
|
||||
public float camDist = 0;
|
||||
public bool flightCam = false;
|
||||
public bool gyroCam = false;
|
||||
public bool quarryCam = false;
|
||||
|
||||
public float worldGrav = -9.81f;
|
||||
public float worldFog = 0.001f;
|
||||
@@ -154,19 +155,17 @@ public class Settings : MonoBehaviour
|
||||
renderViewCap = PlayerPrefs.GetFloat("viewCap", 1000f);
|
||||
Application.targetFrameRate = (int)PlayerPrefs.GetFloat("targetFrameRate", 100f);
|
||||
renderAutoAdjust = false;
|
||||
showHints = ((PlayerPrefs.GetInt("showHints", 1) != 0) ? true : false);
|
||||
showHints = PlayerPrefs.GetInt("showHints", 1) != 0;
|
||||
useMusic = PlayerPrefs.GetInt("useMusic", 1);
|
||||
useSfx = ((PlayerPrefs.GetInt("useSfx", 1) != 0) ? true : false);
|
||||
useSfx = PlayerPrefs.GetInt("useSfx", 1) != 0;
|
||||
useHypersound = PlayerPrefs.GetInt("useHypersound", 0);
|
||||
useMinimap = ((PlayerPrefs.GetInt("useMinimap", 1) != 0) ? true : false);
|
||||
bool flag = ((PlayerPrefs.GetInt("superCam", 1) != 0) ? true : false);
|
||||
flightCam = ((PlayerPrefs.GetInt("flightCam", 1) != 0) ? true : false);
|
||||
gyroCam = ((PlayerPrefs.GetInt("gyroCam", 0) != 0) ? true : false);
|
||||
useMinimap = PlayerPrefs.GetInt("useMinimap", 1) != 0;
|
||||
camMode = PlayerPrefs.GetInt("cam", 1);
|
||||
camChase = PlayerPrefs.GetInt("camChase", 1);
|
||||
camDist = PlayerPrefs.GetFloat("camDist", 0.01f);
|
||||
flightCam = ((PlayerPrefs.GetInt("flightCam", 0) != 0) ? true : false);
|
||||
gyroCam = ((PlayerPrefs.GetInt("gyroCam", 0) != 0) ? true : false);
|
||||
flightCam = PlayerPrefs.GetInt("flightCam", 0) != 0;
|
||||
gyroCam = PlayerPrefs.GetInt("gyroCam", 0) != 0;
|
||||
quarryCam = PlayerPrefs.GetInt("quarryCam", 0) != 0;
|
||||
}
|
||||
|
||||
public void showDialogGame()
|
||||
@@ -486,6 +485,12 @@ public class Settings : MonoBehaviour
|
||||
PlayerPrefs.SetInt("flightCam", flightCam ? 1 : 0);
|
||||
}
|
||||
|
||||
if (GUILayout.Toggle(quarryCam, "QuarryCam Enabled") != quarryCam)
|
||||
{
|
||||
quarryCam = !quarryCam;
|
||||
PlayerPrefs.SetInt("quarryCam", quarryCam ? 1 : 0);
|
||||
}
|
||||
|
||||
float cg;
|
||||
if (camMode == 0)
|
||||
{
|
||||
@@ -926,7 +931,7 @@ public class Settings : MonoBehaviour
|
||||
ramoSpheres != 0f,
|
||||
"RORBs Enabled") != (ramoSpheres != 0f))
|
||||
{
|
||||
ramoSpheres = ((ramoSpheres == 0f) ? 0.5f : 0f);
|
||||
ramoSpheres = ((ramoSpheres != 0f) ? 0f : 0.5f);
|
||||
if (ramoSpheres != 0f)
|
||||
{
|
||||
zorbSpeed = 7f;
|
||||
@@ -954,7 +959,7 @@ public class Settings : MonoBehaviour
|
||||
zorbSpeed != 0f,
|
||||
"XORBs Available") != (zorbSpeed != 0f))
|
||||
{
|
||||
zorbSpeed = ((zorbSpeed == 0f) ? 7 : 0);
|
||||
zorbSpeed = ((zorbSpeed != 0f) ? 0 : 7);
|
||||
updateServerPrefs();
|
||||
}
|
||||
|
||||
+1
-1
@@ -123,7 +123,7 @@ public class TerrainController : MonoBehaviour
|
||||
if (trnAlt < seaLevel)
|
||||
{
|
||||
submerged = true;
|
||||
float depth = seaLevel + trnAlt;
|
||||
// /*UNUSED*/ float depth = seaLevel + trnAlt;
|
||||
}
|
||||
|
||||
//Update AlphaMap Array
|
||||
@@ -308,20 +308,28 @@ public class Vehicle : MonoBehaviour
|
||||
GUI.depth = -1;
|
||||
if (networkView.isMine && !isBot)
|
||||
{
|
||||
Rigidbody targetRigidbody = myRigidbody;
|
||||
if (
|
||||
Game.Settings.quarryCam &&
|
||||
(bool)Game.QuarryVeh &&
|
||||
(bool)Game.QuarryVeh.myRigidbody)
|
||||
{
|
||||
targetRigidbody = Game.QuarryVeh.myRigidbody;
|
||||
}
|
||||
GUI.Button(
|
||||
new Rect(
|
||||
(float)Screen.width * 0.5f - 75f,
|
||||
(float)Screen.height - 30f,
|
||||
150f,
|
||||
20f),
|
||||
(myRigidbody.velocity.magnitude < 0.05f ?
|
||||
Mathf.RoundToInt(myRigidbody.velocity.magnitude * 2.23f) +
|
||||
" MPH" :
|
||||
"Static") +
|
||||
(targetRigidbody.velocity.magnitude < 0.05f ?
|
||||
"Static" :
|
||||
Mathf.RoundToInt(targetRigidbody.velocity.magnitude * 2.23f) +
|
||||
" MPH") +
|
||||
" " +
|
||||
Mathf.RoundToInt(myRigidbody.transform.position.y) +
|
||||
Mathf.RoundToInt(targetRigidbody.transform.position.y) +
|
||||
" ALT" +
|
||||
((isIt != 0) ?
|
||||
((isIt != 0 || Game.Settings.quarryCam) ?
|
||||
"" :
|
||||
(" " +
|
||||
Mathf.RoundToInt(Game.Controller.quarryDist) +
|
||||
@@ -330,21 +338,24 @@ public class Vehicle : MonoBehaviour
|
||||
}
|
||||
GUI.depth = 5;
|
||||
Vector3 pos = Camera.main.WorldToScreenPoint(transform.position);
|
||||
if (
|
||||
(!networkView.isMine || isBot &&
|
||||
Game.Settings.hideNames &&
|
||||
(Vector3.Distance(
|
||||
new Vector3(pos.x, pos.y, 0f),
|
||||
Input.mousePosition) >= 40f ||
|
||||
Physics.Linecast(
|
||||
transform.position,
|
||||
Camera.main.transform.position,
|
||||
1 << 8))) ||
|
||||
(pos.z <= 0f) &&
|
||||
(!networkView.isMine || isBot))
|
||||
bool mainTag = networkView.isMine && !isBot;
|
||||
if(Game.Settings.quarryCam && (bool)Game.QuarryVeh)
|
||||
{
|
||||
return;
|
||||
mainTag = (this == Game.QuarryVeh);
|
||||
}
|
||||
if (
|
||||
mainTag ||
|
||||
!Game.Settings.hideNames ||
|
||||
(
|
||||
Vector3.Distance(
|
||||
new Vector3(pos.x, pos.y, 0),
|
||||
Input.mousePosition) < 40 &&
|
||||
!Physics.Linecast(
|
||||
transform.position,
|
||||
Camera.main.transform.position, 1 << 8)))
|
||||
{
|
||||
if (pos.z > 0 || mainTag)
|
||||
{
|
||||
if (pos.z < 0f)
|
||||
{
|
||||
pos.z = 0f;
|
||||
@@ -359,7 +370,7 @@ public class Vehicle : MonoBehaviour
|
||||
pos.z * 0.2f);
|
||||
if (
|
||||
(pos.z <= 1f || pos.y < sizeY * 1.9f) &&
|
||||
networkView.isMine && !isBot)
|
||||
mainTag)
|
||||
{
|
||||
if (pos.z <= 1f)
|
||||
{
|
||||
@@ -384,6 +395,8 @@ public class Vehicle : MonoBehaviour
|
||||
"" :
|
||||
"_it"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerator OnPrefsUpdated()
|
||||
{
|
||||
@@ -401,7 +414,7 @@ public class Vehicle : MonoBehaviour
|
||||
transform.position,
|
||||
transform.rotation);
|
||||
ramoSphere.transform.parent = transform;
|
||||
Collider[] colliders = (Collider[])vehObj.GetComponentsInChildren(typeof(Collider));
|
||||
Collider[] colliders = (Collider[])vehObj.GetComponentsInChildren<Collider>();
|
||||
foreach (Collider cldr in colliders)
|
||||
{
|
||||
Physics.IgnoreCollision(ramoSphere.collider, cldr);
|
||||
@@ -410,15 +423,16 @@ public class Vehicle : MonoBehaviour
|
||||
ramoSphere.active = false; //DRAGONHERE - MAJOR UNITY BUG: We need to set this all the time, as colliders that are instantiated using a prefab and are then thrown inside of rightbodies are not properly initialized until some of their settings are toggled
|
||||
ramoSphereScale = (((Game.Settings.ramoSpheres) * 15) +
|
||||
camOffset * 1);
|
||||
zorbBall = Game.Settings.zorbSpeed != 0f ? zorbBall : false;
|
||||
if (ramoSphere.collider.isTrigger == zorbBall)
|
||||
{
|
||||
ramoSphere.collider.isTrigger = !zorbBall;
|
||||
ramoSphere.transform.localScale = Vector3.zero;
|
||||
ramoSphere.active = true;
|
||||
((RamoSphere)ramoSphere.GetComponent(typeof(RamoSphere)))
|
||||
.colorSet(zorbBall);
|
||||
ramoSphere.collider.active = true;
|
||||
ramoSphere.SendMessage("colorSet", zorbBall); //ANOTHER UNITY BUG - for some reason, SendMessage isn't working like it should...
|
||||
ramoSphere.GetComponent<RamoSphere>().colorSet(zorbBall);
|
||||
}
|
||||
else ramoSphere.active = true;
|
||||
else ramoSphere.collider.active = true;
|
||||
rigidbody.inertiaTensor = tnsor;
|
||||
rigidbody.centerOfMass = cg;
|
||||
}
|
||||
@@ -217,4 +217,30 @@ public class VehicleBot : MonoBehaviour
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void FixedUpdate()
|
||||
{
|
||||
if (
|
||||
(bool)vehicle.ramoSphere &&
|
||||
vehicle.zorbBall &&
|
||||
(vehicle.input.y != 0f || vehicle.input.x != 0f))
|
||||
{
|
||||
rigidbody.AddForce(
|
||||
Vector3.Scale(
|
||||
new Vector3(1f, 0f, 1f),
|
||||
Camera.main.transform.TransformDirection(new Vector3(
|
||||
vehicle.input.x * Mathf.Max(
|
||||
0f,
|
||||
Game.Settings.zorbSpeed + Game.Settings.zorbAgility),
|
||||
0f,
|
||||
vehicle.input.y * Game.Settings.zorbSpeed))),
|
||||
ForceMode.Acceleration);
|
||||
rigidbody.AddTorque(
|
||||
Camera.main.transform.TransformDirection(new Vector3(
|
||||
vehicle.input.y,
|
||||
0f,
|
||||
vehicle.input.x * -1f)) * Game.Settings.zorbSpeed,
|
||||
ForceMode.Acceleration);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -841,7 +841,7 @@ public class WhirldIn : System.Object
|
||||
String tSpmp = null;
|
||||
String tSpmp2 = null;
|
||||
String[] tTxts = null;
|
||||
String tDtmp = null;
|
||||
// /*UNUSED*/ String tDtmp = null;
|
||||
|
||||
for (int i2 = 1; i2 < vS2.Length; i2++)
|
||||
{
|
||||
@@ -852,7 +852,7 @@ public class WhirldIn : System.Object
|
||||
else if (str[0] == "s") tSpmp = GetURL(str[1]);
|
||||
else if (str[0] == "s2") tSpmp2 = GetURL(str[1]);
|
||||
else if (str[0] == "t") tTxts = str[1].Split(","[0]);
|
||||
else if (str[0] == "d") tDtmp = GetURL(str[1]);
|
||||
//else if (str[0] == "d") tDtmp = GetURL(str[1]);
|
||||
}
|
||||
|
||||
String thread = tName;
|
||||
@@ -0,0 +1,23 @@
|
||||
## Assembly - UnityScript
|
||||
|
||||
import os
|
||||
import shutil
|
||||
|
||||
def post(bld):
|
||||
distdir = os.path.join(bld.top_dir, 'marsxplr_build', 'Mars Explorer_Data')
|
||||
os.makedirs(distdir, exist_ok=True)
|
||||
shutil.copy(
|
||||
os.path.join(bld.out_dir, 'Assembly_-_UnityScript', '58cc2f0ae478d40e7a89c7ba576c3586.dll'),
|
||||
os.path.join(distdir, 'Assembly - UnityScript.dll'))
|
||||
|
||||
def build(bld):
|
||||
bld.add_post_fun(post)
|
||||
|
||||
bld(
|
||||
source=bld.path.ant_glob(os.path.join('src', '*.cs')),
|
||||
target='58cc2f0ae478d40e7a89c7ba576c3586.dll',
|
||||
rule='"${MCS}" -recurse:\"' +
|
||||
os.path.join(bld.path.abspath(), 'src', '*.cs') +
|
||||
'\" -reference:\"' + str(os.path.join(bld.out_dir, 'UnityEngine', 'UnityEngine.dll')) +
|
||||
'\" -reference:\"' + str(os.path.join(bld.out_dir, 'Assembly_-_CSharp_-_first_pass', '26998b3a9cbf54825a27e5f2d3cc4df1.dll')) +
|
||||
'\" -out:${TGT} -target:library ${MONOOPTS}')
|
||||
@@ -1,41 +0,0 @@
|
||||
Assembly - UnityScript/obj/
|
||||
Assembly - UnityScript/bin/
|
||||
Assembly - UnityScript/.vs/
|
||||
Assembly - UnityScript/Assembly---UnityScript.suo
|
||||
Assembly - CSharp - first pass/obj/
|
||||
Assembly - CSharp - first pass/bin/
|
||||
Assembly - CSharp - first pass/.vs/
|
||||
Assembly - CSharp - first pass/Assembly---CSharp---first-pass.suo
|
||||
Assembly - CSharp/obj/
|
||||
Assembly - CSharp/bin/
|
||||
Assembly - CSharp/.vs/
|
||||
Assembly - CSharp/Assembly---CSharp.suo
|
||||
Assembly - UnityScript - first pass/obj/
|
||||
Assembly - UnityScript - first pass/bin/
|
||||
Assembly - UnityScript - first pass/.vs/
|
||||
Assembly - UnityScript - first pass/Assembly---UnityScript---first-pass.suo
|
||||
Ionic.Zlib/obj/
|
||||
Ionic.Zlib/bin/
|
||||
Ionic.Zlib/.vs/
|
||||
Ionic.Zlib/Ionic.Zlib.suo
|
||||
TerrainControllerData/obj/
|
||||
TerrainControllerData/bin/
|
||||
TerrainControllerData/.vs/
|
||||
TerrainControllerData/TerrainControllerData.suo
|
||||
marsxplr_build/
|
||||
UnityEngine/obj/
|
||||
UnityEngine/bin/
|
||||
UnityEngine/.vs/
|
||||
UnityEngine/UnityEngine.suo
|
||||
Boo.Lang/obj/
|
||||
Boo.Lang/bin/
|
||||
Boo.Lang/.vs/
|
||||
Boo.Lang/Boo.Lang.suo
|
||||
UnityScript.Lang/obj/
|
||||
UnityScript.Lang/bin/
|
||||
UnityScript.Lang/.vs/
|
||||
UnityScript.Lang/UnityScript.Lang.suo
|
||||
UnityDomainLoad/obj/
|
||||
UnityDomainLoad/bin/
|
||||
UnityDomainLoad/.vs/
|
||||
UnityDomainLoad/UnityDomainLoad.suo
|
||||
@@ -1,66 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.21022</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<OutputType>library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Assembly - CSharp - first pass</RootNamespace>
|
||||
<AssemblyName>26998b3a9cbf54825a27e5f2d3cc4df1</AssemblyName>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
|
||||
<ProjectGuid>{93A8D6B3-DD52-4C21-A101-AF360DAFC096}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
<OutputPath>bin</OutputPath>
|
||||
<AppendTargetFrameworkToOutputPath>False</AppendTargetFrameworkToOutputPath>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="UnityEngine">
|
||||
<HintPath>..\UnityEngine\bin\UnityEngine.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="ActivateTrigger.cs" />
|
||||
<Compile Include="BlurEffect.cs" />
|
||||
<Compile Include="ColorCorrectionEffect.cs" />
|
||||
<Compile Include="CombineChildren.cs" />
|
||||
<Compile Include="ContrastStretchEffect.cs" />
|
||||
<Compile Include="EdgeDetectEffect.cs" />
|
||||
<Compile Include="GlowEffect.cs" />
|
||||
<Compile Include="GrayscaleEffect.cs" />
|
||||
<Compile Include="ImageEffectBase.cs" />
|
||||
<Compile Include="ImageEffects.cs" />
|
||||
<Compile Include="MeshCombineUtility.cs" />
|
||||
<Compile Include="MotionBlur.cs" />
|
||||
<Compile Include="MouseLook.cs" />
|
||||
<Compile Include="NoiseEffect.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SepiaToneEffect.cs" />
|
||||
<Compile Include="SSAOEffect.cs" />
|
||||
<Compile Include="TwirlEffect.cs" />
|
||||
<Compile Include="VortexEffect.cs" />
|
||||
<Compile Include="Water.cs" />
|
||||
<Compile Include="WaterSimple.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -1,49 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.21022</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<OutputType>library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Assembly - CSharp</RootNamespace>
|
||||
<AssemblyName>e36192721fc364533a8edf2aefd3b72c</AssemblyName>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
<OutputPath>bin</OutputPath>
|
||||
<AppendTargetFrameworkToOutputPath>False</AppendTargetFrameworkToOutputPath>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="UnityEngine">
|
||||
<HintPath>..\UnityEngine\bin\UnityEngine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="26998b3a9cbf54825a27e5f2d3cc4df1">
|
||||
<HintPath>..\Assembly - CSharp - first pass\bin\26998b3a9cbf54825a27e5f2d3cc4df1.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="*.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -1,103 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.21022</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<OutputType>library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Assembly - UnityScript</RootNamespace>
|
||||
<AssemblyName>58cc2f0ae478d40e7a89c7ba576c3586</AssemblyName>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
|
||||
<ProjectGuid>{084E81A6-3376-4976-B642-4C6443C97C36}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
<OutputPath>bin</OutputPath>
|
||||
<AppendTargetFrameworkToOutputPath>False</AppendTargetFrameworkToOutputPath>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="UnityEngine">
|
||||
<HintPath>..\UnityEngine\bin\UnityEngine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="26998b3a9cbf54825a27e5f2d3cc4df1">
|
||||
<HintPath>..\Assembly - CSharp - first pass\bin\26998b3a9cbf54825a27e5f2d3cc4df1.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="BaseSimple.cs" />
|
||||
<Compile Include="Buggy.cs" />
|
||||
<Compile Include="CameraVehicle.cs" />
|
||||
<Compile Include="ColliderAtach.cs" />
|
||||
<Compile Include="CompilerGeneratedExtensions.cs" />
|
||||
<Compile Include="CompilerGenerated\GUIAdaptor.cs" />
|
||||
<Compile Include="CustomCursor.cs" />
|
||||
<Compile Include="EntryPoint.cs" />
|
||||
<Compile Include="FloorController.cs" />
|
||||
<Compile Include="Game.cs" />
|
||||
<Compile Include="GameData.cs" />
|
||||
<Compile Include="GameWorldDesc.cs" />
|
||||
<Compile Include="Hovercraft.cs" />
|
||||
<Compile Include="HoverThrustClustOfDust.cs" />
|
||||
<Compile Include="HoverThrustMoonOrBust.cs" />
|
||||
<Compile Include="Init.cs" />
|
||||
<Compile Include="Jet.cs" />
|
||||
<Compile Include="JetThruster.cs" />
|
||||
<Compile Include="JumpPoint.cs" />
|
||||
<Compile Include="Lobby.cs" />
|
||||
<Compile Include="LobbyDecor.cs" />
|
||||
<Compile Include="LobbyStarfield.cs" />
|
||||
<Compile Include="MeshSerializer.cs" />
|
||||
<Compile Include="Messaging.cs" />
|
||||
<Compile Include="MiniMap.cs" />
|
||||
<Compile Include="MonoBehaviourScript.cs" />
|
||||
<Compile Include="PrefabHere.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="RamoSphere.cs" />
|
||||
<Compile Include="Rocket.cs" />
|
||||
<Compile Include="SeaData.cs" />
|
||||
<Compile Include="Settings.cs" />
|
||||
<Compile Include="Skidmarks.cs" />
|
||||
<Compile Include="SoundEffect.cs" />
|
||||
<Compile Include="Tank.cs" />
|
||||
<Compile Include="TankMe.cs" />
|
||||
<Compile Include="TankTrack.cs" />
|
||||
<Compile Include="TankTrackSimple.cs" />
|
||||
<Compile Include="TerrainController.cs" />
|
||||
<Compile Include="ThrustCone.cs" />
|
||||
<Compile Include="Vehicle.cs" />
|
||||
<Compile Include="VehicleBot.cs" />
|
||||
<Compile Include="VehicleData.cs" />
|
||||
<Compile Include="VehicleLocal.cs" />
|
||||
<Compile Include="VehicleMe.cs" />
|
||||
<Compile Include="VehicleNet.cs" />
|
||||
<Compile Include="VehicleTrigger.cs" />
|
||||
<Compile Include="WaterLightmapFog.cs" />
|
||||
<Compile Include="WhirldData.cs" />
|
||||
<Compile Include="WhirldIn.cs" />
|
||||
<Compile Include="WhirldLibrary.cs" />
|
||||
<Compile Include="WhirldLOD.cs" />
|
||||
<Compile Include="WhirldObject.cs" />
|
||||
<Compile Include="World.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -1,21 +0,0 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
[Serializable]
|
||||
public class Init : MonoBehaviour
|
||||
{
|
||||
public GUIText txt;
|
||||
|
||||
public void Update()
|
||||
{
|
||||
float i = Application.GetStreamProgressForLevel(Application.loadedLevel + 1);
|
||||
if (i == 1f)
|
||||
{
|
||||
Application.LoadLevel(Application.loadedLevel + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
txt.text = Mathf.RoundToInt(i * 100f) + "%";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
<details closed>
|
||||
<summary><h2>Assembly - UnityScript</h2></summary>
|
||||
<h3>About</h3>
|
||||
<ul>
|
||||
<li>(almost) all of the games compiled unityscripts</li>
|
||||
<li>Used ILSpy to decompile dll from marsxplr 2.22 win32 into C#</li>
|
||||
<li>Updated upd3 address (Lobby.cs)</li>
|
||||
<li>Updated game version from 2.22 to 2.3 (GameData.cs)</li>
|
||||
<li>changed max bots from 10 to 25</li>
|
||||
</ul>
|
||||
</details>
|
||||
<hr>
|
||||
<details closed>
|
||||
<summary><h2>Assembly - CSharp</h2></summary>
|
||||
<h3>About</h3>
|
||||
<ul>
|
||||
<li>(almost) all of the games compiled C# scripts</li>
|
||||
<li>decompiled with ilspy</li>
|
||||
</ul>
|
||||
</details>
|
||||
<hr>
|
||||
<details closed>
|
||||
<summary><h2>Assembly - CSharp - first pass</h2></summary>
|
||||
<h3>About</h3>
|
||||
<ul>
|
||||
<li>some of the games compiled C# scripts</li>
|
||||
<li>decompiled with ilspy</li>
|
||||
</ul>
|
||||
</details>
|
||||
<hr>
|
||||
<details closed>
|
||||
<summary><h2>UnityEngine</h2></summary>
|
||||
<h3>About</h3>
|
||||
<ul>
|
||||
<li>Unity Engine functionality</li>
|
||||
<li>decomipled with ilspy</li>
|
||||
</ul>
|
||||
</details>
|
||||
<hr>
|
||||
<details closed>
|
||||
<summary><h2>UnityDomainLoad</h2></summary>
|
||||
<h3>About</h3>
|
||||
<ul>
|
||||
<li>UnityDomainLoad.exe</li>
|
||||
<li>decompiled with ilspy</li>
|
||||
</ul>
|
||||
</details>
|
||||
@@ -1,42 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.21022</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<OutputType>Exe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>UnityDomainLoad</RootNamespace>
|
||||
<AssemblyName>UnityDomainLoad</AssemblyName>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
<OutputPath>bin</OutputPath>
|
||||
<AppendTargetFrameworkToOutputPath>False</AppendTargetFrameworkToOutputPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="UnityEngine\UnityDomainLoad.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -1,42 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.21022</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<OutputType>library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>UnityEngine</RootNamespace>
|
||||
<AssemblyName>UnityEngine</AssemblyName>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
|
||||
<ProjectGuid>{C67F4835-3976-49D0-AA05-3487C9FD57A2}</ProjectGuid>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
<OutputPath>bin</OutputPath>
|
||||
<AppendTargetFrameworkToOutputPath>False</AppendTargetFrameworkToOutputPath>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="UnityEngine\*.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -1,50 +0,0 @@
|
||||
@echo off
|
||||
|
||||
set "flags=/p:Configuration=Debug /p:Platform=Win32"
|
||||
|
||||
echo ----------------
|
||||
echo BUILDING ALL
|
||||
echo ----------------
|
||||
|
||||
msbuild %flags% "UnityEngine\UnityEngine.csproj"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
msbuild %flags% "Assembly - CSharp - first pass\Assembly---CSharp---first-pass.csproj"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
msbuild %flags% "Assembly - UnityScript\Assembly---UnityScript.csproj"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
msbuild %flags% "Assembly - CSharp\Assembly---CSharp.csproj"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
msbuild %flags% "UnityDomainLoad\UnityDomainLoad.csproj"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
|
||||
echo -----------------
|
||||
echo COPYING FILES
|
||||
echo -----------------
|
||||
|
||||
if exist "marsxplr_build\Mars Explorer_Data\lib" rd /S /Q "marsxplr_build\Mars Explorer_Data\lib"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
if exist "marsxplr_build\Mars Explorer_Data" rd /S /Q "marsxplr_build\Mars Explorer_Data"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
if exist marsxplr_build rd /S /Q marsxplr_build
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
md marsxplr_build
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
md "marsxplr_build\Mars Explorer_Data"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
md "marsxplr_build\Mars Explorer_Data\lib"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
|
||||
copy "Assembly - CSharp\bin\e36192721fc364533a8edf2aefd3b72c.dll" "marsxplr_build\Mars Explorer_Data\Assembly - CSharp.dll"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
copy "Assembly - CSharp - first pass\bin\26998b3a9cbf54825a27e5f2d3cc4df1.dll" "marsxplr_build\Mars Explorer_Data\Assembly - CSharp - first pass.dll"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
copy "Assembly - UnityScript\bin\58cc2f0ae478d40e7a89c7ba576c3586.dll" "marsxplr_build\Mars Explorer_Data\Assembly - UnityScript.dll"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
copy "UnityEngine\bin\UnityEngine.dll" "marsxplr_build\Mars Explorer_Data\lib\UnityEngine.dll"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
copy "UnityDomainLoad\bin\UnityDomainLoad.exe" "marsxplr_build\Mars Explorer_Data\lib\UnityDomainLoad.exe"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
|
||||
echo -----------------
|
||||
echo BUILD SUCCESS
|
||||
echo -----------------
|
||||
@@ -1,16 +0,0 @@
|
||||
------------LISTING/DERIVED BUILD ORDER------------------
|
||||
|
||||
UnityEngine:
|
||||
|
||||
Assembly - CSharp - first pass:
|
||||
UnityEngine
|
||||
|
||||
Assembly - UnityScript:
|
||||
Assembly - CSharp - first pass
|
||||
UnityEngine
|
||||
|
||||
Assembly - CSharp:
|
||||
Assembly CSharp - first pass
|
||||
UnityEngine
|
||||
|
||||
UnityDomainLoad:
|
||||
@@ -1,18 +0,0 @@
|
||||
@echo off
|
||||
|
||||
set "flags=/p:Configuration=Debug /p:Platform=Win32"
|
||||
|
||||
echo -------------------
|
||||
echo CLEANING BUILDS
|
||||
echo -------------------
|
||||
|
||||
msbuild /t:Clean %flags% "Assembly - CSharp\Assembly---CSharp.csproj"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
msbuild /t:Clean %flags% "Assembly - CSharp - first pass\Assembly---CSharp---first-pass.csproj"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
msbuild /t:Clean %flags% "Assembly - UnityScript\Assembly---UnityScript.csproj"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
msbuild /t:Clean %flags% "UnityEngine\UnityEngine.csproj"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
msbuild /t:Clean %flags% "UnityDomainLoad\UnityDomainLoad.csproj"
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
@@ -0,0 +1,161 @@
|
||||
#include "FSUtil.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/stat.h> /*stat()*/
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h> /*(m/c)alloc free*/
|
||||
#include <assert.h> /*^^^^*/
|
||||
#include <stdarg.h> /*MX_pathConcat*/
|
||||
|
||||
#ifdef _WIN32
|
||||
#define PATH_SLASH '\\'
|
||||
|
||||
#define MAX_PATH 260
|
||||
#else
|
||||
#define PATH_SLASH '/'
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <sys/syslimits.h>
|
||||
#else
|
||||
#include <linux/limits.h>
|
||||
#endif
|
||||
#ifndef PATH_MAX
|
||||
#error "PATH_MAX NOT DEFINED"
|
||||
#endif
|
||||
#define MAX_PATH PATH_MAX
|
||||
#endif
|
||||
|
||||
bool pathIsRoot(const char *p)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
return (strnlen(p, MAX_PATH) == 2 && p[1] == ':');
|
||||
#else
|
||||
return (strncmp(p, "/", MAX_PATH) == 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
char *pathTrimmed(const char *p)
|
||||
{
|
||||
if(p == NULL)
|
||||
{
|
||||
char *emptyp = calloc(1, sizeof(char));
|
||||
assert(calloc);
|
||||
return emptyp;
|
||||
}
|
||||
|
||||
size_t plen = strnlen(p, MAX_PATH);
|
||||
|
||||
size_t truncate = pathIsRoot(p) ?
|
||||
0 :
|
||||
p[plen - 1] == PATH_SLASH ?
|
||||
1 :
|
||||
0;
|
||||
|
||||
char *newp = calloc(plen + 1, sizeof(char));
|
||||
assert(newp);
|
||||
memcpy(newp, p, plen - truncate);
|
||||
return newp;
|
||||
}
|
||||
|
||||
bool MX_pathExists(const char *p)
|
||||
{
|
||||
struct stat sb;
|
||||
return (stat(p, &sb) == 0);
|
||||
}
|
||||
|
||||
char *MX_pathParent(const char *p)
|
||||
{
|
||||
char *tp = pathTrimmed(p);
|
||||
if(pathIsRoot(tp)) return tp;
|
||||
|
||||
int i = ((int)strlen(tp)) - 1;
|
||||
for(; i >= 0; i--)
|
||||
if(tp[i] == PATH_SLASH) break;
|
||||
|
||||
char *newp;
|
||||
if(i < 0)
|
||||
{
|
||||
newp = calloc(2, sizeof(char));
|
||||
assert(newp);
|
||||
newp[0] = '.';
|
||||
}
|
||||
else
|
||||
{
|
||||
newp = calloc(i + 1, sizeof(char));
|
||||
assert(newp);
|
||||
memcpy(newp, tp, i);
|
||||
}
|
||||
|
||||
free(tp);
|
||||
return newp;
|
||||
}
|
||||
|
||||
#ifndef strndup
|
||||
char *strndup(const char *s, size_t n) {
|
||||
size_t len = strnlen(s, n);
|
||||
char *p = malloc(len + 1);
|
||||
assert(p);
|
||||
memcpy(p, s, len);
|
||||
p[len] = '\0';
|
||||
return p;
|
||||
}
|
||||
#endif
|
||||
|
||||
char *MX_pathConcat2(const char *a, const char *b)
|
||||
{
|
||||
if(a == NULL && b == NULL)
|
||||
{
|
||||
char *emptyp = calloc(1, sizeof(char));
|
||||
assert(emptyp);
|
||||
return emptyp;
|
||||
}
|
||||
if(a == NULL)
|
||||
{
|
||||
char *bdup = strndup(b, MAX_PATH);
|
||||
assert(strncmp(b, bdup, MAX_PATH + 1) == 0);
|
||||
return bdup;
|
||||
}
|
||||
if(b == NULL)
|
||||
{
|
||||
char *adup = strndup(a, MAX_PATH);
|
||||
assert(strncmp(a, adup, MAX_PATH + 1) == 0);
|
||||
return adup;
|
||||
}
|
||||
|
||||
char *ta = pathTrimmed(a);
|
||||
char *tb = pathTrimmed(b);
|
||||
|
||||
size_t newlen = strlen(ta) + 1 + strlen(tb) + 1;
|
||||
char *newp = malloc(newlen * sizeof(char));
|
||||
assert(newp);
|
||||
|
||||
size_t i = 0;
|
||||
for(size_t ia = 0; ta[ia]; ia++) newp[i++] = ta[ia];
|
||||
newp[i++] = PATH_SLASH;
|
||||
for(size_t ib = 0; tb[ib]; ib++) newp[i++] = tb[ib];
|
||||
newp[i] = '\0';
|
||||
|
||||
free(ta);
|
||||
free(tb);
|
||||
return newp;
|
||||
}
|
||||
|
||||
|
||||
char *MX_pathConcatV(int none, ...)
|
||||
{
|
||||
char *newp = NULL;
|
||||
char *tp;
|
||||
|
||||
va_list args;
|
||||
char *val;
|
||||
va_start(args, none);
|
||||
while((val = va_arg(args, char *))){
|
||||
tp = newp;
|
||||
newp = MX_pathConcat2(tp, val);
|
||||
if(tp) free(tp);
|
||||
}
|
||||
va_end(args);
|
||||
|
||||
return newp;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
== file path manipulation helpers ==
|
||||
NOTE: all functions that operate on path strings assume
|
||||
that the path string is a valid path.
|
||||
they are not to be fed string created by the user.
|
||||
all functions that return strings are guaranteed to be
|
||||
newly allocated strings that must be freed later.
|
||||
WARNING: if an inputted string is longer than the os's set max path length,
|
||||
a function will not fail, but will truncate the string before
|
||||
operating on it
|
||||
*/
|
||||
|
||||
#ifndef MX_FS_UTIL_H
|
||||
#define MX_FS_UTIL_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
|
||||
//connects two strings into a path accounting for '/' vs '\'
|
||||
char *MX_pathConcat2(const char *a, const char *b);
|
||||
//concats arbitrary number of path strings
|
||||
#define MX_pathConcat(...) MX_pathConcatV(0, __VA_ARGS__, NULL);
|
||||
char *MX_pathConcatV(int none, ...); //dont call this directly, initial arg needed to work with MSVC
|
||||
|
||||
//gets rid of tailing slash
|
||||
char *MX_pathParent(const char *p);
|
||||
|
||||
//checks if path can be stat-ed by os
|
||||
bool MX_pathExists(const char *p);
|
||||
|
||||
#endif
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user