diff --git a/data/missions/multiplayer/Marble City/MarbleCity.mis b/data/missions/multiplayer/Marble City/MarbleCity.mis deleted file mode 100644 index ae8c1cbe..00000000 --- a/data/missions/multiplayer/Marble City/MarbleCity.mis +++ /dev/null @@ -1,971 +0,0 @@ -//--- OBJECT WRITE BEGIN --- -new SimGroup(MissionGroup) { - - new ScriptObject(MissionInfo) { - include = "0"; - gameMode = "Scrum"; - artist = "Adam deGrandis"; - difficulty = "2"; - time = "180000"; - type = "beginner"; - level = "68"; -name = $Text::LevelNameMP7; - numgems = "1"; - gameType = "Multiplayer"; - guid = "{D18409B9-AAA3-4260-8129-C477062BF6CA}"; - }; - new Sky(Sky) { - position = "336 136 0"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - materialList = "~/data/skies/sky_beginner.dml"; - cloudHeightPer[0] = "0"; - cloudHeightPer[1] = "0"; - cloudHeightPer[2] = "0"; - cloudSpeed1 = "0.0001"; - cloudSpeed2 = "0.0002"; - cloudSpeed3 = "0.0003"; - visibleDistance = "1500"; - fogDistance = "1000"; - fogColor = "0.600000 0.600000 0.600000 1.000000"; - fogStorm1 = "0"; - fogStorm2 = "0"; - fogStorm3 = "0"; - fogVolume1 = "-1 -1.73483e+009 -1.73483e+009"; - fogVolume2 = "-1 -1.73483e+009 -1.73483e+009"; - fogVolume3 = "-1 -1.73483e+009 -1.73483e+009"; - windVelocity = "1 0 0"; - windEffectPrecipitation = "0"; - SkySolidColor = "0.600000 0.600000 0.600000 1.000000"; - useSkyTextures = "1"; - renderBottomTexture = "1"; - noRenderBans = "1"; - renderBanOffsetHeight = "50"; - skyGlow = "0"; - skyGlowColor = "-6973005312.000000 -6973005312.000000 -6973005312.000000 -6973005312.000000"; - fogVolumeColor2 = "128.000000 128.000000 128.000000 -1734829824.000000"; - fogVolumeColor3 = "128.000000 128.000000 128.000000 -1734829824.000000"; - fogVolumeColor1 = "128.000000 128.000000 128.000000 -1734829824.000000"; - }; - new StaticShape() { - position = "0 0 -600"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "astrolabeShape"; - }; - new StaticShape(Cloud_Shape) { - position = "0 0 0"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "astrolabeCloudsBeginnerShape"; - }; - new Sun() { - direction = "-0.57735 -0.57735 -0.57735"; - color = "1.300000 1.100000 0.400000 1.000000"; - ambient = "0.440000 0.440000 0.440000 1.000000"; - shadowColor = "0.000000 0.000000 0.150000 0.350000"; - }; - new Trigger(Bounds) { - position = "-80.777 78.526 -22.2412"; - rotation = "1 0 0 0"; - scale = "145.291 150.04 101.182"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "InBoundsTrigger"; - polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000"; - }; - new InteriorInstance() { - position = "0 0 0"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - interiorFile = "./marblecity.dif"; - showTerrainInside = "0"; - }; - new SimGroup(GemSpawns) { - - new SpawnSphere() { - position = "33.0034 34.8553 -6.47596"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere() { - position = "33.149 39.9738 -6.46657"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere() { - position = "28.1439 39.9705 -6.31607"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere(X) { - position = "29.7511 46.3902 -7.41565"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - gemDataBlock = "GemItem_2pts"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere(X) { - position = "39.2398 37.111 -7.3975"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - gemDataBlock = "GemItem_2pts"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere(X) { - position = "-23.9826 -32.2787 -4.06167"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - gemDataBlock = "GemItem_2pts"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere() { - position = "-17.9796 -31.956 -6.59786"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere() { - position = "-23.992 -37.0474 -6.11492"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere() { - position = "-30.0546 -32.0264 -6.4181"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere() { - position = "-24.0273 -26.8538 -5.83293"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere() { - position = "-36.9968 16.0442 -5.50421"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere() { - position = "-42.9922 16.0326 -5.39395"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere() { - position = "-39.8025 19.0156 -5.32757"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere() { - position = "-40.0202 12.9678 -5.53261"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere() { - position = "28.9963 7.00109 -11.7772"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "10891"; - }; - new SpawnSphere() { - position = "28.9183 -2.95092 -11.627"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "10892"; - }; - new SpawnSphere(X) { - position = "42.0403 5.98638 -9.8481"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - gemDataBlock = "GemItem_2pts"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "10889"; - }; - new SpawnSphere(X) { - position = "41.9911 -1.99659 -9.80428"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - gemDataBlock = "GemItem_2pts"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "10890"; - }; - new SpawnSphere() { - position = "9.03519 -22.5056 -9.87461"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere() { - position = "9.1581 -28.514 -9.9955"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere() { - position = "6.94064 -25.4442 -9.99063"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - new SpawnSphere() { - position = "10.981 -25.3926 -9.82296"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "GemSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - gem = "0"; - }; - }; - new SimGroup(TargetGems) { - }; - new Item() { - position = "-1.00417 -8.40661 -12.8048"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "HelicopterItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new SimGroup(SpawnPoints) { - - new SpawnSphere() { - position = "-45.9424 0.035342 -7.64302"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "-45.986 7.95414 -7.43803"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "-32.0167 21.9441 -7.58355"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "-17.8794 19.9999 -11.3914"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "-17.8854 7.9944 -11.3388"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "-13.4383 15.0661 -12.1234"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "-31.8639 -39.9991 -6.59586"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "-11.4489 -30.9193 -4.00644"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "-7.35599 -30.9337 -3.88342"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "6.32594 -40.051 -6.50379"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "15.9109 -27.963 -5.7083"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "16.0049 12.1043 -6.35925"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "8.06303 19.9952 -7.60589"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "34.1289 5.19595 -11.475"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "34.0787 -1.03487 -11.5452"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "19.9288 -0.0983229 -11.5271"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "-9.56295 -20.012 -9.3377"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "5.79561 12.9112 -11.3072"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - new SpawnSphere() { - position = "-0.168978 19.089 -11.3086"; - rotation = "0 0 1 90.5273"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SpawnSphereMarker"; - radius = "1"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; - }; - new Item() { - position = "-2.07739 -39.0635 -6.71829"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "MegaMarbleItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "-2.90263 9.89053 -11.7525"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "MegaMarbleItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "-18.0273 1.99251 -12.0423"; - rotation = "0 0 1 180.482"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SuperJumpItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "-3.07976 19.8924 -7.84367"; - rotation = "0 0 1 180.482"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SuperJumpItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "28.0534 -25.9522 -10.3627"; - rotation = "0 0 1 180.482"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SuperJumpItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "-49.8163 15.9925 -8.03342"; - rotation = "0 0 1 180.482"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SuperJumpItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "-3.01164 17.9561 -12.1596"; - rotation = "0 0 1 180.482"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SuperJumpItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "5.13379 10.1084 -11.8727"; - rotation = "0 0 1 180.482"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SuperJumpItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "16.0924 -38.8234 -6.60597"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SuperSpeedItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "16.11 20.0737 -7.85833"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SuperSpeedItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "-17.9255 -39.0396 -6.97913"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SuperSpeedItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "-31.9956 0.107028 -7.81984"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SuperSpeedItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "-13.5146 20.0694 -12.3342"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SuperSpeedItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "39.9847 -25.9586 -10.3523"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "BlastItem"; - collideable = "0"; - static = "1"; - rotate = "0"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "-9.47994 -26.9667 -8.89979"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "BlastItem"; - collideable = "0"; - static = "1"; - rotate = "0"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "-49.8044 25.8165 -7.85856"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "BlastItem"; - collideable = "0"; - static = "1"; - rotate = "0"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "5.86955 25.1359 -11.7219"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "BlastItem"; - collideable = "0"; - static = "1"; - rotate = "0"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "15.9411 -8.17537 -5.38783"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "BlastItem"; - collideable = "0"; - static = "1"; - rotate = "0"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "-39.6285 26.1422 -7.81736"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "HelicopterItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "33.9039 -25.8851 -10.4744"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "HelicopterItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "-1.03193 -24.4086 -10.3962"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "HelicopterItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "-13.515 41.5964 -12.4001"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "BlastItem"; - collideable = "0"; - static = "1"; - rotate = "0"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "32.8774 17.5232 -7.6145"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "MegaMarbleItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "-4.70528 40.1104 -11.4423"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "SuperSpeedItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new Item() { - position = "2.95686 40.0528 -11.4922"; - rotation = "1 0 0 0"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "HelicopterItem"; - collideable = "0"; - static = "1"; - rotate = "1"; - permanent = "0"; - checkPointConfirmationNumber = "0"; - }; - new SpawnSphere() { - position = "-55.9425 15.8977 -0.128559"; - rotation = "0.104087 -0.149139 0.983323 111.078"; - scale = "1 1 1"; - hidden = "0"; - reanderShadow = "1"; - dataBlock = "CameraSpawnSphereMarker"; - radius = "100"; - sphereWeight = "100"; - indoorWeight = "100"; - outdoorWeight = "100"; - }; -}; -//--- OBJECT WRITE END --- - diff --git a/data/missions/multiplayer/Marble City/marblecity.dif b/data/missions/multiplayer/Marble City/marblecity.dif deleted file mode 100644 index d9f6fa79..00000000 Binary files a/data/missions/multiplayer/Marble City/marblecity.dif and /dev/null differ diff --git a/data/missions/multiplayer/Marble City 2/marblecity2.dif b/data/missions/multiplayer/Marble City/marblecity2.dif similarity index 100% rename from data/missions/multiplayer/Marble City 2/marblecity2.dif rename to data/missions/multiplayer/Marble City/marblecity2.dif diff --git a/data/missions/multiplayer/Marble City 2/marblecity2.mis b/data/missions/multiplayer/Marble City/marblecity2.mis similarity index 100% rename from data/missions/multiplayer/Marble City 2/marblecity2.mis rename to data/missions/multiplayer/Marble City/marblecity2.mis diff --git a/src/DifBuilder.hx b/src/DifBuilder.hx index 18388c89..836ba000 100644 --- a/src/DifBuilder.hx +++ b/src/DifBuilder.hx @@ -86,8 +86,6 @@ class TriangleEdge { class DifCache { var dif:Dif; var difTriangles:Map>; - var colliderSurfaces:Array; - var difEdgeMap:Map; public function new() {} } @@ -99,7 +97,7 @@ typedef VertexBucket = { } class DifBuilder { - static var difCache:LRUCache = new LRUCache(16); + static var difCache:LRUCache = new LRUCache(24); static var materialDict:Map>(); var difEdges:Map = []; if (cache != null) { - colliderSurfaces = cache.colliderSurfaces; mats = cache.difTriangles; } - if (cache == null || (colliderSurfaces.length == 0 && makeCollideable)) { + if (cache == null || makeCollideable) { mats = []; colliderSurfaces = []; difEdges = []; @@ -850,21 +847,12 @@ class DifBuilder { collider.difEdgeMap = difEdges; } if (makeCollideable) { - if (cache != null) { - collider.difEdgeMap = cache.difEdgeMap; - difEdges = cache.difEdgeMap; - for (surf in colliderSurfaces) { - collider.addSurface(surf); - } - } collider.finalize(); itr.collider = collider; } if (cache == null) { cache = new DifCache(); cache.difTriangles = mats; - cache.difEdgeMap = difEdges; - cache.colliderSurfaces = colliderSurfaces; cache.dif = dif; difCache.set(cachePath, cache); } diff --git a/src/MarbleWorld.hx b/src/MarbleWorld.hx index ada5eac2..98cebefe 100644 --- a/src/MarbleWorld.hx +++ b/src/MarbleWorld.hx @@ -1,5 +1,6 @@ package src; +import gui.LevelSelectGui; import h3d.scene.fwd.Light; import rewind.RewindManager; import Macros.MarbleWorldMacros; @@ -1402,8 +1403,8 @@ class MarbleWorld extends Scheduler { } var endGameCode = () -> { this.dispose(); - var pmg = new PlayMissionGui(); - PlayMissionGui.currentSelectionStatic = mission.index + 1; + var pmg = new LevelSelectGui(["beginner", "intermediate", "advanced"][mission.difficultyIndex]); + LevelSelectGui.currentSelectionStatic = mission.index + 1; MarbleGame.canvas.setContent(pmg); #if js pointercontainer.hidden = false; diff --git a/src/PreviewWorld.hx b/src/PreviewWorld.hx index c53c2c67..4778471e 100644 --- a/src/PreviewWorld.hx +++ b/src/PreviewWorld.hx @@ -68,6 +68,8 @@ class PreviewWorld extends Scheduler { var itrAddTime:Float = 0; + var _loadToken = 0; + public function new(scene:Scene) { this.scene = scene; } @@ -129,6 +131,7 @@ class PreviewWorld extends Scheduler { onFinish(); return; } + _loadToken++; currentMission = misname; var groupName = (misname + "group").toLowerCase(); var group = levelGroups.get(groupName); @@ -182,21 +185,37 @@ class PreviewWorld extends Scheduler { var mis = MissionList.missionsFilenameLookup.get((misname + '.mis').toLowerCase()); var difficulty = ["beginner", "intermediate", "advanced"][mis.difficultyIndex]; + var curToken = _loadToken; + var worker = new ResourceLoaderWorker(onFinish); - worker.addTask(fwd -> addScenery(difficulty, fwd)); + worker.addTask(fwd -> { + if (_loadToken != curToken) + fwd(); + else + addScenery(difficulty, fwd); + }); itrAddTime = 0; for (elem in itrpaths) { worker.addTask(fwd -> { - var startTime = Console.time(); - addInteriorFromMis(cast elem, () -> { - itrAddTime += Console.time() - startTime; + if (_loadToken != curToken) fwd(); - }); + else { + var startTime = Console.time(); + addInteriorFromMis(cast elem, curToken, () -> { + itrAddTime += Console.time() - startTime; + fwd(); + }); + } }); } for (elem in shapeDbs) { - worker.addTask(fwd -> addStaticShape(cast elem, fwd)); + worker.addTask(fwd -> { + if (_loadToken != curToken) + fwd(); + else + addStaticShape(cast elem, curToken, fwd); + }); } worker.addTask(fwd -> { timeState.timeSinceLoad = 0; @@ -260,9 +279,9 @@ class PreviewWorld extends Scheduler { scene.removeChildren(); } - public function addInteriorFromMis(element:MissionElementInteriorInstance, onFinish:Void->Void) { + public function addInteriorFromMis(element:MissionElementInteriorInstance, token:Int, onFinish:Void->Void) { var difPath = getDifPath(element.interiorfile); - if (difPath == "") { + if (difPath == "" || token != _loadToken) { onFinish(); return; } @@ -271,7 +290,7 @@ class PreviewWorld extends Scheduler { interior.interiorFile = difPath; // DifBuilder.loadDif(difPath, interior); // this.interiors.push(interior); - this.addInterior(interior, () -> { + this.addInterior(interior, token, () -> { var interiorPosition = MisParser.parseVector3(element.position); interiorPosition.x = -interiorPosition.x; var interiorRotation = MisParser.parseRotation(element.rotation); @@ -301,9 +320,17 @@ class PreviewWorld extends Scheduler { }); } - function addInterior(obj:InteriorObject, onFinish:Void->Void) { + function addInterior(obj:InteriorObject, token:Int, onFinish:Void->Void) { + if (token != _loadToken) { + onFinish(); + return; + } this.interiors.push(obj); obj.init(null, () -> { + if (token != _loadToken) { + onFinish(); + return; + } if (obj.useInstancing) this.instanceManager.addObject(obj); else @@ -312,7 +339,11 @@ class PreviewWorld extends Scheduler { }); } - public function addStaticShape(element:MissionElementStaticShape, onFinish:Void->Void) { + public function addStaticShape(element:MissionElementStaticShape, token:Int, onFinish:Void->Void) { + if (token != _loadToken) { + onFinish(); + return; + } var shape:DtsObject = null; // Add the correct shape based on type @@ -403,13 +434,21 @@ class PreviewWorld extends Scheduler { shape.isCollideable = false; shape.isBoundingBoxCollideable = false; - this.addDtsObject(shape, () -> { + this.addDtsObject(shape, token, () -> { + if (token != _loadToken) { + onFinish(); + return; + } shape.setTransform(mat); onFinish(); }); } - public function addDtsObject(obj:DtsObject, onFinish:Void->Void, isTsStatic:Bool = false) { + public function addDtsObject(obj:DtsObject, token:Int, onFinish:Void->Void, isTsStatic:Bool = false) { + if (token != _loadToken) { + onFinish(); + return; + } function parseIfl(path:String, onFinish:Array->Void) { ResourceLoader.load(path).entry.load(() -> { var text = ResourceLoader.getFileEntry(path).entry.getText(); @@ -435,6 +474,10 @@ class PreviewWorld extends Scheduler { } ResourceLoader.load(obj.dtsPath).entry.load(() -> { + if (token != _loadToken) { + onFinish(); + return; + } var dtsFile = ResourceLoader.loadDts(obj.dtsPath); var texToLoad = obj.getPreloadMaterials(dtsFile.resource); @@ -442,6 +485,10 @@ class PreviewWorld extends Scheduler { obj.isTSStatic = isTsStatic; this.dtsObjects.push(obj); obj.init(null, () -> { + if (token != _loadToken) { + onFinish(); + return; + } obj.update(this.timeState); if (obj.useInstancing) { this.instanceManager.addObject(obj); diff --git a/src/gui/LevelSelectGui.hx b/src/gui/LevelSelectGui.hx index be3eaac9..19d28c25 100644 --- a/src/gui/LevelSelectGui.hx +++ b/src/gui/LevelSelectGui.hx @@ -69,10 +69,14 @@ class LevelSelectGui extends GuiImage { var curMission = difficultyMissions[currentSelectionStatic]; var lock = true; + var currentToken = 0; + var requestToken = 0; var misFile = Path.withoutExtension(Path.withoutDirectory(curMission.path)); MarbleGame.instance.setPreviewMission(misFile, () -> { lock = false; + if (currentToken != requestToken) + return; this.bmp.visible = false; loadAnim.anim.visible = false; loadText.text.visible = false; @@ -186,8 +190,8 @@ class LevelSelectGui extends GuiImage { levelWnd.addChild(levelInfoRight); function setLevel(idx:Int) { - if (lock) - return false; + // if (lock) + // return false; this.bmp.visible = true; loadAnim.anim.visible = true; loadText.text.visible = true; @@ -195,10 +199,14 @@ class LevelSelectGui extends GuiImage { lock = true; curMission = difficultyMissions[idx]; currentSelectionStatic = idx; + currentToken++; var misFile = Path.withoutExtension(Path.withoutDirectory(curMission.path)); var mis = difficultyMissions[idx]; + var requestToken = currentToken; MarbleGame.instance.setPreviewMission(misFile, () -> { lock = false; + if (requestToken != currentToken) + return; this.bmp.visible = false; loadAnim.anim.visible = false; loadText.text.visible = false;