From 33964589edc063f3a76127aa630339a00d9e7cf5 Mon Sep 17 00:00:00 2001 From: vbawol Date: Tue, 12 Apr 2016 11:19:28 -0500 Subject: [PATCH] push mission convert tool --- Tools/PHP/ConvertMission2dto3d.php | 298 +++++++++++++++++++++++++++++ 1 file changed, 298 insertions(+) create mode 100644 Tools/PHP/ConvertMission2dto3d.php diff --git a/Tools/PHP/ConvertMission2dto3d.php b/Tools/PHP/ConvertMission2dto3d.php new file mode 100644 index 00000000..15a4c6d9 --- /dev/null +++ b/Tools/PHP/ConvertMission2dto3d.php @@ -0,0 +1,298 @@ +'Epoch Mod', + 'timeOfChanges'=>28800, + 'startWeather'=>0, + 'startWind'=>0, + 'startWaves'=>0, + 'forecastWeather'=>0, + 'forecastWind'=>0, + 'forecastWaves'=>0, + 'forecastLightnings'=>1.0, + 'year'=>2035, + 'month'=>6, + 'day'=>24, + 'hour'=>12, + 'minute'=>0, + 'startFogDecay'=>0.013, + 'forecastFogDecay'=>0.013 + ), + $playerCount = 100, + $groups = array ( + 'Item0' => array ( + 'side'=>'CIV', + 'Vehicles' => array ( + 'Item0' => array ( + 'position'=> array(4331.02,0,148.62354), + ) + ) + ) + ), + $markers = array ( + + 'Item0' => array ( + 'position' => array (4135.0137,0,4039.3584), + 'name'=>"center", + 'type'=>"Empty", + ), + 'Item1' => array ( + 'position' => array (4331.02,0,148.62354), + 'name'=>"respawn_east", + 'type'=>"Empty", + ), + 'Item2' => array ( + 'position' => array (4331.02,0,148.62354), + 'name'=>"respawn_west", + 'type'=>"Empty", + ), + 'Item3' => array ( + 'position' => array (3257.1497,0,1079.2324), + 'name'=>"south", + 'type'=>"Empty", + ), + 'Item4' => array ( + 'position' => array (3154.1616,0,5169.5229), + 'name'=>"east", + 'type'=>"Empty", + ) + + ) + ) + { + $this->addOns = $addOns; + $this->addOnsAuto = $addOnsAuto; + $this->randomSeed = $randomSeed; + $this->intel = $intel; + $this->playerCount = $playerCount; + $this->groups = $groups; + $this->markers = $markers; + } + + + + +} // end of class Mission + + + + +?> +
+ $val) {
+	    if (!is_array($val)) {
+	    	echo "\t$prop = $val\n";	
+	    } else {
+	    	echo "\t$prop = \n";	
+			print_r($val);
+	    }
+	}
+}
+
+function print_methods($obj) 
+	{
+	$arr = get_class_methods(get_class($obj));
+	foreach ($arr as $method) {
+	    echo "\tfunction $method()\n";
+	}
+}
+
+function class_parentage($obj, $class) 
+{
+	if (is_subclass_of($GLOBALS[$obj], $class)) {
+	    echo "Object $obj belongs to class " . get_class($GLOBALS[$obj]);
+	    echo ", a subclass of $class\n";
+	} else {
+	    echo "Object $obj does not belong to a subclass of $class\n";
+	}
+}
+
+// instantiate 2 objects
+$mission = new Mission();
+
+// print out information about objects
+// echo "CLASS " . get_class($mission) . "\n";
+
+// show mission properties
+ //echo "\nmission: Properties\n";
+ //print_vars($mission);
+
+echo "version=51;
+class EditorData
+{
+	moveGridStep=1;
+	angleGridStep=0.2617994;
+	scaleGridStep=1;
+	autoGroupingDist=10;
+	toggles=1;
+	class ItemIDProvider
+	{
+		nextID=2;
+	};
+	class Camera
+	{
+		pos[]={7542.4932,93.791428,15492.986};
+		dir[]={-0.8989169,-0.17364819,-0.40223712};
+		up[]={-0.15850332,0.98480779,-0.070925266};
+		aside[]={-0.40844229,0,0.91278416};
+	};
+};
+binarizationWanted=0;
+";
+
+
+
+echo "addons[]=
+{
+";
+foreach ($mission->addOnsAuto as $key => $value) {
+    if (is_string($value)) {
+		echo "	\"$value\",\n";
+    } else {
+    	echo "	$value,\n";
+    }
+    	
+}
+echo "};\n";
+
+
+echo "randomSeed=$mission->randomSeed;\n";
+echo "class ScenarioData
+{
+	author=\"[VB]AWOL\";
+};\n";
+
+
+
+echo "class Mission
+{
+	class Intel
+	{
+";
+foreach ($mission->intel as $key => $value) {
+    if (is_string($value)) {
+		echo "		$key=\"$value\";\n";
+    } else {
+    	echo "		$key=$value;\n";
+    }
+    	
+}
+echo "	};\n";
+
+$EntitiesCounter = 0;
+
+echo "	class Entities
+	{
+";
+echo "		items=". (count($mission->markers) + $mission->playerCount) .";\n";
+
+foreach ($mission->markers as $key => $value) {
+	
+	$position = implode(",", $value["position"]);
+    echo "		class Item".$EntitiesCounter."
+		{
+			dataType=\"Marker\";
+			position[]={".$position."};
+			name=\"".$value["name"]."\";
+			type=\"".$value["type"]."\";
+			id=".$EntitiesCounter.";
+		};\n";
+	$EntitiesCounter++;
+    	
+}
+
+for ($x = count($mission->markers); $x <= ($mission->playerCount+count($mission->markers)); $x++) {
+
+	foreach ($mission->groups as $key => $value) {
+		
+		$position = implode(",", $value["Vehicles"]["Item0"]["position"]);
+	    echo "		class Item".$x."
+		{
+			dataType=\"Group\";
+			side=\"Civilian\";
+			class Entities
+			{
+				items=1;
+				class Item0
+				{
+					dataType=\"Object\";
+					class PositionInfo
+					{
+						position[]={".$position."};
+						angles[]={0,4.7169838,0};
+					};
+					side=\"Civilian\";
+					flags=3;
+					class Attributes
+					{
+						isPlayable=1;
+					};
+					id=".($EntitiesCounter+1).";
+					type=\"VirtualMan_EPOCH\";
+				};
+			};
+			class Attributes
+			{
+			};
+			id=".$EntitiesCounter.";
+		};\n";
+		$EntitiesCounter++;
+		$EntitiesCounter++;
+	    	
+	}
+} 
+
+
+
+// Entities end
+echo "	};\n";
+
+
+
+
+// final 
+echo "};\n";
+
+?>
+
+ + + +'; \ No newline at end of file