Everything Else 2.txt
=CMD 
=CMDCLASS  Vars and Functions 
=COMMAND REFREADGLOBAL:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack();
		stack.Push(GameSpace.instance.globalHeap[s1]);
		stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS  Vars and Functions 
=COMMAND REFWRITEGLOBAL:
=DESC 
=ENDDESC 
=EX
		s1 = GetStringFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS  Vars and Functions 
=COMMAND REFEXISTSGLOBAL:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.instance.globalHeap.ContainsKey(GetStringFromStack()) ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS  Vars and Functions 
=COMMAND REFDELETEGLOBAL:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS  Vars and Functions 
=COMMAND READGLOBAL:
=DESC 
=ENDDESC 
=EX
	s1 = command.data.GetString();
		stack.Push(GameSpace.instance.globalHeap[s1]);
		stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS  Vars and Functions 
=COMMAND WRITEGLOBAL:
=DESC 
=ENDDESC 
=EX
		s1 = command.data.GetString();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS  Vars and Functions 
=COMMAND EXISTSGLOBAL:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.instance.globalHeap.ContainsKey(command.data.GetString()) ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS  Vars and Functions 
=COMMAND DELETEGLOBAL:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS  Vars and Functions 
=COMMAND CLEARGLOBALS:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS  Vars and Functions 
=COMMAND NOTPERSIST:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND INVOCATIONCOUNT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(invocationCount));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND DOUBLEQUOTE:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data("\""));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETTYPE:
=DESC 
=ENDDESC 
=EX
	d1 = GetDataFromStack();
	stack.Push(new Data(d1.GetType().ToString()));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETLISTELEMENTRPN:
=DESC 
=ENDDESC 
=EX
	// value, list, index
	i1 = GetIntFromStack();
	list1 = GetListFromStack();
	if (stack.Count > 0) { d1 = stack.Pop(); } else { d1 = new Data(0);}
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND REMOVELISTELEMENT:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();
	list1 = GetListFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETKEY:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack();
		stack.Push(new Data(Input.GetKey(kc1) ? 1 : 0));
		stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETKEYDOWN:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack();
			stack.Push(new Data(0));
			stack.Push(new Data(Input.GetKeyDown(kc2) ? 1 : 0));
		stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETKEYUP:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack();
			stack.Push(new Data(0));
			stack.Push(new Data(Input.GetKeyUp(kc2) ? 1 : 0));
		stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETMOUSEBUTTON:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();
	stack.Push(new Data(Input.GetMouseButton(i1) ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETMOUSEBUTTONDOWN:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();
		stack.Push(new Data(Input.GetMouseButtonDown(i1) ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETMOUSEBUTTONUP:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();
		stack.Push(new Data(Input.GetMouseButtonUp(i1) ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETMOUSESCREENPOSITION:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(Input.mousePosition.x / Screen.width));
	stack.Push(new Data(Input.mousePosition.y / Screen.height));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETMOUSESCREENPIXELPOSITION:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(Input.mousePosition.x));
	stack.Push(new Data(Input.mousePosition.y));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETMOUSEPOSITION:;
=DESC 
=ENDDESC 
=EX
	Vector3 wp = GameSpace.instance.mainCamera.ScreenToWorldPoint(Input.mousePosition);
	stack.Push(new Data(wp.x));
	stack.Push(new Data(wp.y))
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETMOUSECELL:
=DESC 
=ENDDESC 
=EX
	Vector3 wp2 = GameSpace.instance.mainCamera.ScreenToWorldPoint(Input.mousePosition);
	stack.Push(new Data((int)(wp2.x / (float)GameSpace.GRID_SIZE)));
	stack.Push(new Data((int)(wp2.y / (float)GameSpace.GRID_SIZE)));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND RESETGAMETIME:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETGAMETIME:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETGAMETIMEFRAMES:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETGAMETIMEFRAMES:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.instance.updateCount));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND PAUSEGAME:
=DESC 
=ENDDESC 
=EX
	GameSpace.instance.paused = true;

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND UNPAUSEGAME:
=DESC 
=ENDDESC 
=EX
	GameSpace.instance.paused = false;

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND OPERATEWHILEPAUSED:
=DESC 
=ENDDESC 
=EX
	operateWhilePaused = GetIntFromStack() == 1;

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ISPAUSED:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.instance.paused ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND USERCANCELED:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.instance.userCancelAction ? 1 : 0));
		
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND MAPWIDTH:	
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.GAMESPACE_WIDTH));
					
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND MAPHEIGHT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.GAMESPACE_HEIGHT));
				
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SCREENWIDTH:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(Screen.width));
						
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SCREENHEIGHT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(Screen.height));
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND DEBUG:
=DESC 
=ENDDESC 
=EX
		d1 = stack.Peek();
		Debug.Log(d1.GetType() + " " + d1.GetInt() + " " + d1.GetFloat() + " " + d1.GetString());
		Debug.Log("--EMPTY STACK--");

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND TRACE:
=DESC 
=ENDDESC 
=EX
	DebugText.LogMessage(this,GetStringFromStack());
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND PRINT:
=DESC 
=ENDDESC 
=EX
	DebugText.PrintMessage(this,GetStringFromStack());

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND TRACEALL: 
=DESC 
=ENDDESC 
=EX
		foreach (Data d in stack) {
		DebugText.LogMessage(this, sbu.ToString());

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND PRINTALL: 
=DESC 
=ENDDESC 
=EX
		foreach (Data d in stack) {
		DebugText.PrintMessage(this, sbu.ToString());

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND TRACEALLSP: 
=DESC 
=ENDDESC 
=EX
		foreach (Data d in stack) {
		DebugText.LogMessage(this, sbu.ToString());

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND PRINTALLSP: 
=DESC 
=ENDDESC 
=EX
		foreach (Data d in stack) {
		DebugText.PrintMessage(this, sbu.ToString());

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND TRACE2:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); 
	s2 = GetStringFromStack();
	DebugText.LogMessage(this,s0);

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND PRINT2:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); 
	s2 = GetStringFromStack();
	DebugText.PrintMessage(this,s0);

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND TRACE3:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); 
	s2 = GetStringFromStack(); 
	s3 = GetStringFromStack();
	DebugText.LogMessage(this,s0);

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND PRINT3:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); 
	s2 = GetStringFromStack(); 
	s3 = GetStringFromStack();
	DebugText.PrintMessage(this,s0);

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND TRACE4:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack();
	s2 = GetStringFromStack(); 
	s3 = GetStringFromStack(); 
	s4 = GetStringFromStack();
	DebugText.LogMessage(this,s0);

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND PRINT4:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); 
	s2 = GetStringFromStack(); 
	s3 = GetStringFromStack(); 
	s4 = GetStringFromStack();
	DebugText.PrintMessage(this,s0);

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND TRACE5:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); 
	s2 = GetStringFromStack(); 
	s3 = GetStringFromStack(); 
	s4 = GetStringFromStack(); 
	s5 = GetStringFromStack();
	DebugText.LogMessage(this,s0);
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND PRINT5:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); 
	s2 = GetStringFromStack(); 
	s3 = GetStringFromStack(); 
	s4 = GetStringFromStack(); 
	s5 = GetStringFromStack();
	DebugText.PrintMessage(this,s0);

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND TRACESTACK: 
=DESC 
=ENDDESC 
=EX
	foreach(Data d in stack) {
	DebugText.LogMessage(this,sb.ToString());

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND PRINTSTACK: 
=DESC 
=ENDDESC 
=EX
	foreach(Data d in stack) {
	DebugText.PrintMessage(this,sb.ToString());

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CLEARTRACELOG:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUPDATECOUNT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(updateCount));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND RANDINT:
=DESC 
=ENDDESC 
=EX
	int max = GetIntFromStack();
	int min = GetIntFromStack();
	stack.Push(new Data(min+amt));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND RANDFLOAT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((float)GameSpace.instance.RandDouble()));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND RANDCOORDS:
=DESC 
=ENDDESC 
=EX
	gsx = (int)(GameSpace.instance.RandDouble() * GameSpace.GRID_WIDTH);
	gsy = (int)(GameSpace.instance.RandDouble() * GameSpace.GRID_HEIGHT);
	stack.Push(new Data(gsx));
	stack.Push(new Data(gsy));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND RANDCOORDSINRANGE:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack();
	gsy = GetIntFromStack();
	gsx = GetIntFromStack();
				stack.Push(new Data(i1));
				stack.Push(new Data(i2));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND RANDXCOORD:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(gsx));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND RANDYCOORD:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(gsy));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CURRENTCOORDS:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GetCell(baseUnit.coordX)));
	stack.Push(new Data(GetCell(baseUnit.coordY)));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CURRENTX:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GetCell(baseUnit.coordX)));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CURRENTY:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GetCell(baseUnit.coordY)));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITCURRENTCOORDS:
=DESC 
=ENDDESC 
=EX
	i3 = GetIntFromStack(); //y-coord
	i2 = GetIntFromStack(); //x-coord
	i1 = GetIntFromStack(); // UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETCURRENTCOORDS:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); // y
	i1 = GetIntFromStack(); // x

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITCURRENTX:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); // x
	i1 = GetIntFromStack(); // UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITCURRENTY:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack();  // y
	i1 = GetIntFromStack(); // UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETCURRENTX:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETCURRENTY:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CURRENTPIXELCOORDS:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(baseUnit.coordX));
	stack.Push(new Data(baseUnit.coordY));					

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITTRANSFORMPOSITION:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(baseUnit.transform.position.x));
	stack.Push(new Data(baseUnit.transform.position.y));
	stack.Push(new Data(baseUnit.transform.position.z));
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSCREENMODE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSCREENCOORDS:
=DESC 
=ENDDESC 
=EX
	f2 = GetFloatFromStack(); //screenY = f2
	f1 = GetFloatFromStack(); //screenX = f1

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSCREENCOORDX:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //screenX = f1

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSCREENCOORDY:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //screenY = f1

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSCREENPIXELCOORDS:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //screenY
	i1 = GetIntFromStack(); //screenX

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSCREENPIXELCOORDX:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSCREENPIXELCOORDY:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETBUILDSLOTSCREENCOORDS:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); // corner
	i1 = GetIntFromStack(); // slot number
		stack.Push(new Data(sp.x / (float)Screen.width));
		stack.Push(new Data(sp.y / (float)Screen.height));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETCONTROLPANELBUTTONSCREENCOORDS:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); // corner
	s1 = GetStringFromStack(); // button name
		stack.Push(new Data(sp.x / (float)Screen.width));
		stack.Push(new Data(sp.y / (float)Screen.height));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETTECHPANELVISIBLE:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.instance.gameControls.techPanel.activeSelf ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETTECHPANELVISIBLE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CELLTOPIXEL:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //y
	i1 = GetIntFromStack(); //x
	stack.Push(new Data(wx));
	stack.Push(new Data(wy));
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND PIXELTOCELL:
=DESC 
=ENDDESC 
=EX
	f2 = GetFloatFromStack(); //py
	f1 = GetFloatFromStack(); //px
	stack.Push(new Data(x));
	stack.Push(new Data(y));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CREATEEFFECT:
=DESC 
=ENDDESC 
=EX
	f2 = GetFloatFromStack(); //pixel y
	f1 = GetFloatFromStack(); //pixel x
	s1 = GetStringFromStack();  //Which effect
			stack.Push(new Data(s.GUID));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND DESTROYEFFECT:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();  //effect guid
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETALLUNITSINRANGE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();
	f1 = GetFloatFromStack();
	gsy = GetIntFromStack();
	gsx = GetIntFromStack();
	stack.Push(new Data(units))

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETALLSHIPSINRANGE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();
	f1 = GetFloatFromStack();
	gsy = GetIntFromStack();
	gsx = GetIntFromStack();
	stack.Push(new Data(units))

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETNEARESTSHIPINRANGE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();
	f1 = GetFloatFromStack();
	gsy = GetIntFromStack();
	gsx = GetIntFromStack();
	stack.Push(new Data(nearestShip));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETCORESWITHVAR:
=DESC 
=ENDDESC 
=EX
	d1 = stack.Pop();
	s1 = GetStringFromStack();
		stack.Push(new Data(cch.UID));
	stack.Push(new Data(i1));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ADDSCRIPTTOUNIT:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack();
	i1 = GetIntFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSCRIPTVAR:
=DESC 
=ENDDESC 
=EX
	d1 = stack.Pop();
	s2 = GetStringFromStack();
	s1 = GetStringFromStack();
	i1 = GetIntFromStack();
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSCRIPTVAR:
=DESC 
=ENDDESC 
=EX
	s2 = GetStringFromStack();
	s1 = GetStringFromStack();
	i1 = GetIntFromStack();
	stack.Push(d1);
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SELF:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(baseUnit.UID));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPATTRIBUTE:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack();
	i1 = GetIntFromStack();
	GetShipAttribute(i1, i2);

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSHIPATTRIBUTE:
=DESC 
=ENDDESC 
=EX
		d1 = stack.Pop();
	i2 = GetIntFromStack();
	i1 = GetIntFromStack();
	SetShipAttribute(i1, i2, d1);

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETATTRIBUTE:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack();
	i1 = GetIntFromStack();
	GetAttribute(i1, i2);

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETATTRIBUTE:
=DESC 
=ENDDESC 
=EX
		d1 = stack.Pop();
	i2 = GetIntFromStack();
	i1 = GetIntFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITTYPE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); // UID
		stack.Push(new Data(unit.gameObject.name));
		stack.Push(new Data(""));
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETIMAGE:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); //image name
	s2 = GetStringFromStack(); //image pos
	i1 = GetIntFromStack(); //unit uid

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND REMOVEIMAGES:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //unit uid
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETIMAGEPOSITION:
=DESC 
=ENDDESC 
=EX
	f3 = GetFloatFromStack(); //z
	f2 = GetFloatFromStack(); //y
	f1 = GetFloatFromStack(); //x
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETIMAGEPOSITIONX:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //x
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETIMAGEPOSITIONY:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //y
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETIMAGEPOSITIONZ:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //z
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETIMAGELAYER:
=DESC 
=ENDDESC 
=EX
	s2 = GetStringFromStack(); //layer name
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETIMAGEORDER:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //layer order
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETIMAGEROTATION:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //rotation in radians
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETIMAGESCALE:
=DESC 
=ENDDESC 
=EX
	f2 = GetFloatFromStack(); //y
	f1 = GetFloatFromStack(); //x
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETIMAGESCALEX:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //x
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETIMAGESCALEY:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //y
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETIMAGECOLOR:
=DESC 
=ENDDESC 
=EX
	i5 = GetIntFromStack(); //a
	i4 = GetIntFromStack(); //b
	i3 = GetIntFromStack(); //g
	i2 = GetIntFromStack(); //r
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETIMAGEPOSITION:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETIMAGEPOSITIONX:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid
			stack.Push(new Data(id.go.transform.localPosition.x));
			stack.Push(new Data());

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETIMAGEPOSITIONY:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid
			stack.Push(new Data(id.go.transform.localPosition.y));
		stack.Push(new Data());

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETIMAGEPOSITIONZ:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid
			stack.Push(new Data(id.go.transform.localPosition.z));
			stack.Push(new Data());

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETIMAGELAYER:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid
		stack.Push(new Data((unit as CommonUnit).GetSortingLayerName(s1)));
		stack.Push(new Data());

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETIMAGEORDER:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid
		stack.Push(new Data((unit as CommonUnit).GetSortingOrder(s1)));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETIMAGEROTATION:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid
			stack.Push(new Data(id.go.transform.eulerAngles.z*Mathf.Deg2Rad));
			stack.Push(new Data());

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETIMAGESCALE:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid
			float scX, scY;
			stack.Push(new Data(scX));
			stack.Push(new Data(scY));
			stack.Push(new Data());stack.Push(new Data());

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETIMAGESCALEX:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //x
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid
			float scX, scY;
			stack.Push(new Data(scX));
			stack.Push(new Data());

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETIMAGESCALEY:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //y
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid
			float scX, scY;
			stack.Push(new Data(scY));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETIMAGECOLOR:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); //which image
	i1 = GetIntFromStack(); //unit uid
			stack.Push(new Data((int)(c1.r*255)));
			stack.Push(new Data((int)(c1.g*255)));
			stack.Push(new Data((int)(c1.b*255)));
			stack.Push(new Data((int)(c1.a*255)));							
			stack.Push(new Data()); stack.Push(new Data()); stack.Push(new Data()); stack.Push(new Data());

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND WINMISSION:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND FAILMISSION:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETFAILONHQLOSS:
=DESC 
=ENDDESC 
=EX
	GameSpace.instance.failOnHQLoss = GetIntFromStack() != 0;

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETFAILONHQLOSS:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.instance.failOnHQLoss ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETHQJUMPTIME:
=DESC 
=ENDDESC 
=EX
	GameSpace.instance.hqJumpTime = GetIntFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSHOWSPECIALENDING:
=DESC 
=ENDDESC 
=EX
	GameSpace.instance.showSpecialEnding = GetIntFromStack() != 0;

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND PLAYSOUND:
=DESC 
=ENDDESC 
=EX
	CustomSounds.Play(GetStringFromStack());

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SHOWCONVERSATION:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SHOWCONVERSATIONNOPAUSE:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SHOWCONVERSATIONAUTOMODE:
=DESC 
=ENDDESC 
=EX
	f2 = GetFloatFromStack();
	f1 = GetFloatFromStack();
	s1 = GetStringFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CLOSECONVERSATION:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ADDCONVERSATIONMESSAGE:
=DESC 
=ENDDESC 
=EX
	s2 = GetStringFromStack();
	i1 = GetIntFromStack();
	s1 = GetStringFromStack(); 

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CLEARCONVERSATION:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); 

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND DESTROYCONVERSATION:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONVERSATIONSHOWING:
=ENDDESC 
=EX
	stack.Push(GameSpace.instance.conversationsManager.IsConversationShowing() ? new Data(1) : new Data(0));

=DESC 
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SPECIFICCONVERSATIONSHOWING:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack();
	stack.Push(GameSpace.instance.conversationsManager.IsSpecificConversationShowing(s1) ? new Data(1) : new Data(0));
		
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETTEXT:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack();
					
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETTEXTCOLOR:
=DESC 
=ENDDESC 
=EX
	i4 = GetIntFromStack();  // alpha 
	i3 = GetIntFromStack();  // blue
	i2 = GetIntFromStack();  // green
	i1 = GetIntFromStack();  // red

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETTEXTSIZE:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETTEXTX:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETTEXTY:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETTEXTROTATION:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETTEXTORDER:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SHOWMESSAGE:
=DESC 
=ENDDESC 
=EX
	s0 = GetStringFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SHOWMESSAGEDISMISSIBLE:
=DESC 
=ENDDESC 
=EX
	s0 = GetStringFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND WASMESSAGEDISMISSED:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.instance.messageDismissed ? 1 : 0));
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CREATEINDICATORARROW:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();    //
	f3 = GetFloatFromStack();  // rotation
	f2 = GetFloatFromStack();  // position f2*Screen.height
	f1 = GetFloatFromStack();  // position f1*Screen.width
	s0 = GetStringFromStack(); // 
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND DESTROYINDICATORARROW:
=DESC 
=ENDDESC 
=EX
	s0 = GetStringFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETINDICATORARROWPOSITION:
=DESC 
=ENDDESC 
=EX
	f2 = GetFloatFromStack();
	f1 = GetFloatFromStack();
	s0 = GetStringFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETINDICATORARROWROTATION:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack();
	s0 = GetStringFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETINDICATORARROWCOLOR:
=DESC 
=ENDDESC 
=EX
	i4 = GetIntFromStack();
	i3 = GetIntFromStack();
	i2 = GetIntFromStack();
	i1 = GetIntFromStack();
	s0 = GetStringFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND DISTANCE:
=DESC 
=ENDDESC 
=EX
	float y1 = GetFloatFromStack();
	float x1 = GetFloatFromStack();
	float y2 = GetFloatFromStack();
	float x2 = GetFloatFromStack();
	float di = Mathf.Sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));
	stack.Push(new Data(di));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ISEDITMODE:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.editMode ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND FUNC:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CALL:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_LATHETARGETS:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_UNIT_ATTRIBUTES.LATHETARGETS));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_CREATEENERGYSOURCEWHENDESTROYED:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_UNIT_ATTRIBUTES.CREATEENERGYSOURCEWHENDESTROYED));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_CREATEAMPGEMWHENDESTROYED:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_UNIT_ATTRIBUTES.CREATEAMPGEMWHENDESTROYED));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_ISENEMY:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_UNIT_ATTRIBUTES.ISENEMY));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_GROWSTRUC:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_UNIT_ATTRIBUTES.GROWSTRUC));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_CREATEFOOTPRINT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_UNIT_ATTRIBUTES.CREATEFOOTPRINT));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_MISSIONGOAL:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_UNIT_ATTRIBUTES.MISSIONGOAL));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_TAKEMAPSPACE:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_UNIT_ATTRIBUTES.TAKEMAPSPACE));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_ISBUILDING:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_UNIT_ATTRIBUTES.ISBUILDING));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_ISDESTROYED:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_UNIT_ATTRIBUTES.ISDESTROYED));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_SHIP_ISENEMY:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_SHIP_ATTRIBUTES.ISENEMY));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_SHIP_HULLSIZE:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_SHIP_ATTRIBUTES.HULLSIZE));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_SHIP_HULLBUILT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_SHIP_ATTRIBUTES.HULLBUILT));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_SHIP_CMCOST:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_SHIP_ATTRIBUTES.CMCOST));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_SHIP_CMBUILTAMT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_SHIP_ATTRIBUTES.CMBUILTAMT));
	break;

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_SHIP_ISCONNECTEDTOENERGYMINE:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_SHIP_ATTRIBUTES.ISCONNECTEDTOENERGYMINE));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_COORDX:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_UNIT_ATTRIBUTES.COORDX));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_COORDY:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_UNIT_ATTRIBUTES.COORDY));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_PIXELCOORDX:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_UNIT_ATTRIBUTES.PIXELCOORDX));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_PIXELCOORDY:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_UNIT_ATTRIBUTES.PIXELCOORDY));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CONST_RECEIVESPACKETS:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_UNIT_ATTRIBUTES.RECEIVESPACKETS));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SIGNAL_NONE:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_SIGNALTYPES.SIGNAL_NONE));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SIGNAL_SINE:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_SIGNALTYPES.SIGNAL_SINE));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SIGNAL_SQUARE:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_SIGNALTYPES.SIGNAL_SQUARE));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SIGNAL_TRIANGLE:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_SIGNALTYPES.SIGNAL_TRIANGLE));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SIGNAL_SAWTOOTH:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_SIGNALTYPES.SIGNAL_SAWTOOTH));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SIGNAL_RANDOM:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_SIGNALTYPES.SIGNAL_RANDOM));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SIGNAL_CONSTANT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data((int)CONST_SIGNALTYPES.SIGNAL_CONSTANT));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ISUNIT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(baseUnit is UnitManager ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND DESTROYPARTICLE:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //mode
	i1 = GetIntFromStack(); //UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND DESTROYBOND:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CREATEUNIT:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //Y cell
	i1 = GetIntFromStack(); //X cell
	s1 = GetStringFromStack(); //Unit Name
		stack.Push(new Data(unit.UID));
		stack.Push(new Data(-1));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND DESTROYUNIT:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //mode
	i1 = GetIntFromStack(); //UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITISGOAL:/UID

=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //goal
	i1 = GetIntFromStack(); /
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITISGOAL:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //UID
			stack.Push(new Data(u.isGoal ? 1 : 0));
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND UNITISDESTROYED:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //UID
	stack.Push(new Data(1)); 
	stack.Push(new Data(u.dead ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND INITCANNONSHOT:
=DESC 
=ENDDESC 
=EX
	i3 = GetIntFromStack(); //Enemy bool
	i2 = GetIntFromStack(); //Target Particle UID (can be virtual)
	i1 = GetIntFromStack(); //CannonShot UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND INITMISSILE:
=DESC 
=ENDDESC 
=EX
i3 = GetIntFromStack(); //Enemy bool
i2 = GetIntFromStack(); //Target Particle UID (can be virtual)
i1 = GetIntFromStack(); //Missile UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND MOVESHIP:
=DESC 
=ENDDESC 
=EX
	i4 = GetIntFromStack(); //mode
	i3 = GetIntFromStack(); //y
	i2 = GetIntFromStack(); //x
	i1 = GetIntFromStack(); // Ship UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ROTATESHIPTOCELL:
=DESC 
=ENDDESC 
=EX
	i3 = GetIntFromStack(); //y
	i2 = GetIntFromStack(); //x
	i1 = GetIntFromStack(); // Ship UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ROTATESHIPTOPIXEL:
=DESC 
=ENDDESC 
=EX
	f2 = GetIntFromStack(); //y
	f1 = GetIntFromStack(); //x
	i1 = GetIntFromStack(); // Ship UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ROTATESHIP:
=DESC 
=ENDDESC 
=EX
	f1 = GetIntFromStack(); //angle in radians
	i1 = GetIntFromStack(); // Ship UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ROTATESHIPDEGREES:
=DESC 
=ENDDESC 
=EX
	f1 = GetIntFromStack(); //angle in degrees
	i1 = GetIntFromStack(); // Ship UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPHULLSECTION:
=DESC 
=ENDDESC 
=EX
	i3 = GetIntFromStack(); // y
	i2 = GetIntFromStack(); // x
	i1 = GetIntFromStack(); // Ship UID
				stack.Push(new Data(-1));
					stack.Push(new Data(0));
					stack.Push(new Data((int)h.hullType));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPHULLSECTIONBUILT:
=DESC 
=ENDDESC 
=EX
	i3 = GetIntFromStack(); // y
	i2 = GetIntFromStack(); // x
	i1 = GetIntFromStack(); // Ship UID
				stack.Push(new Data(0));
					stack.Push(new Data(0));
					stack.Push(new Data(h.isBuilding ? 0 : 1));
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND DELETESHIPFROMSLOT:ance).

=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //Destroy ship
	i1 = GetIntFromStack(); //Slot ID
	DeleteBuildButton(i1, i2 != 0, i2 > 1);
	//DeleteShipFromSlot needs the second arg to indicate if you want to destroy the associated ship (if built). 
	// If the player builds a ship a script could then delete the build slot but leave the ship 
	// (so it could not be rebuilt for inst
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPFROMSLOT:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Slot ID
		stack.Push(new Data(GameSpace.instance.buildPanel.GetShipFromSlot(i1)));
		stack.Push(new Data(-1));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSLOTFROMSHIP:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Ship UID
	stack.Push(new Data(GameSpace.instance.buildPanel.GetSlotFromShip(i1)));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPNAMEFROMSLOT:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Slot ID
			stack.Push(new Data(sn));
			stack.Push(new Data(""));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPSLOTCOUNT:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //builtships
	stack.Push(new Data(GameSpace.instance.buildPanel.GetBuildSlotCount(i1 != 0)));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ADDSTOCKSHIPTOINVENTORY:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); 

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ADDCUSTOMSHIPTOINVENTORY:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); 
		byte[] bdata = System.Convert.FromBase64String(s1);

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ADDGAMEEVENT:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack();
	i1 = GetIntFromStack();
		stack.Push(new Data(pos));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ADDGAMEEVENTATCELL:
=DESC 
=ENDDESC 
=EX
	i4 = GetIntFromStack();
	i3 = GetIntFromStack();
	i2 = GetIntFromStack();    
	s1 = GetStringFromStack();
	i1 = GetIntFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ADDGAMEEVENTATPIXEL:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack();
	f2 = GetFloatFromStack();
	f1 = GetFloatFromStack();
	s1 = GetStringFromStack();
	i1 = GetIntFromStack();
		stack.Push(new Data(pos));
		
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETGAMEEVENTFADETIME:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack();
	i1 = GetIntFromStack();
  
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETGAMEEVENTMESSAGE:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack();
	i1 = GetIntFromStack();
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETGAMEEVENTTYPE:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack();
	i1 = GetIntFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETLANDCOUNT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(Land.instance.landTotal));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETENEMYMIRECOUNT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(Land.instance.redCoverTotal));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETMIRECOUNT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(Land.instance.blueCoverTotal));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETENERGYSOURCECOUNT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.instance.energySources.Count));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETENERGYSOURCES: 
=DESC 
=ENDDESC 
=EX
		foreach (EnergySource es in GameSpace.instance.energySources) {
		stack.Push(new Data(results));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETRANDOMENERGYSOURCE: 
=DESC 
=ENDDESC 
=EX
			stack.Push(new Data(-1));
					stack.Push(new Data(es.UID));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETGLOBALSTOREDENERGY:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(f1));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETGLOBALSTOREDENERGY:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETTECHAVAILABILITY:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();
		stack.Push(new Data(0));
		stack.Push(new Data(GameSpace.instance.techAvailable[i1] ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETTECHAVAILABILITY:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack();
	i1 = GetIntFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETALLOWSHIPAMP:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.instance.allowShipAmp ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETALLOWSHIPAMP:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETHULLBUILDRATEMOD:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETAMPGEMCOUNT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.instance.ampGems));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETAMPGEMCOUNT:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETMAXBLUEEMERGENT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.instance.maxBlueEmergents));
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETMAXREDEMERGENT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.instance.maxRedEmergents));
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETMAXBLUEEMERGENT:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETMAXREDEMERGENT:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETBLUEEMERGENTRATE:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.instance.blueEmergentRate));
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETREDEMERGENTRATE:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.instance.redEmergentRate));
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETBLUEEMERGENTRATE:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack();
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETREDEMERGENTRATE:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack();

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPICKUPTYPE:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); //type
	i1 = GetIntFromStack(); //UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETDOPPELBEHAVIOR:
=DESC 
=ENDDESC 
=EX
	s1 = GetStringFromStack(); //behavior
	i1 = GetIntFromStack(); //UID
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETDOPPELHOMECELL:
=DESC 
=ENDDESC 
=EX
	i3 = GetIntFromStack(); //Y
	i2 = GetIntFromStack(); //X
	i1 = GetIntFromStack(); //UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CREATEPARTICLE:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //enemy
	i1 = GetIntFromStack(); //particle type (1=Triangle, 2=Square, 3-Free)
	f4 = GetFloatFromStack(); //Speed
	f3 = GetFloatFromStack(); //direction in rad
	f2 = GetFloatFromStack(); //y
	f1 = GetFloatFromStack(); //x

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND PARTICLEEXISTS:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETOWNEDPARTICLECOUNT:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //uid
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CREATEBOND:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //Bond distance
	i3 = GetIntFromStack(); //Show
	i2 = GetIntFromStack(); //Particle 2 UID
	i1 = GetIntFromStack(); //Particle 1 UID
			stack.Push(new Data(b.UID));
			stack.Push(new Data(-1));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND BONDEXISTS:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Bond UID
		stack.Push(new Data(1));
		stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLESINRANGE:
=DESC 
=ENDDESC 
=EX
	i5 = GetIntFromStack(); //enemy
	i4 = GetIntFromStack(); //square
	i3 = GetIntFromStack(); //range
	i2 = GetIntFromStack(); //y
	i1 = GetIntFromStack(); //x
		stack.Push(new Data(results));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLESINRADIUS:
=DESC 
=ENDDESC 
=EX
	i5 = GetIntFromStack(); //enemy
	i4 = GetIntFromStack(); //square
	i3 = GetIntFromStack(); //range
	i2 = GetIntFromStack(); //y
	i1 = GetIntFromStack(); //x
		stack.Push(new Data(results));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLECOUNTINRADIUS:
=DESC 
=ENDDESC 
=EX
	i5 = GetIntFromStack(); //enemy
	i4 = GetIntFromStack(); //square
	i3 = GetIntFromStack(); //range
	i2 = GetIntFromStack(); //y
	i1 = GetIntFromStack(); //x
		stack.Push(new Data(c));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLEPOSITION:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle UID
			stack.Push(new Data(p.position.x));
			stack.Push(new Data(p.position.y));
		} else {
			stack.Push(new Data(-1));
			stack.Push(new Data(-1));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLEPOSITION:
=DESC 
=ENDDESC 
=EX
	f2 = GetFloatFromStack(); //y
	f1 = GetFloatFromStack(); //x
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND TELEPORTPARTICLE:
=DESC 
=ENDDESC 
=EX
	i3 = GetIntFromStack(); //breakbonds
	i2 = GetIntFromStack(); //wholechain
	f2 = GetFloatFromStack(); //py
	f1 = GetFloatFromStack(); //px
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=DESC 
=ENDDESC 
=EX
=COMMAND FINDPARTICLETARGET:
	f3 = GetFloatFromStack(); //followEmitterProbability
	f2 = GetFloatFromStack(); //followShipProbability
	f1 = GetFloatFromStack(); //followTargetProbability
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLEMAXSPEED:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle UID
			stack.Push(new Data(p.MAX_DELTA));
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLEMAXSPEED:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //max speed
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLEMAXAGE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle UID
					stack.Push(new Data(p.maxAge));
				} else {
					stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLEMAXAGE:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //max age in frames
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLEMAXDISTANCE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle UID
			stack.Push(new Data(p.terminationDistance));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLEHEALTH:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle UID
			stack.Push(new Data(p.health));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLEMAXDISTANCE:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //max distance from owner before destruction
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLEHEALTH:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //health
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLEMASS:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle UID
			stack.Push(new Data(p.mass));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLEMASS:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //mass
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLEDRAG:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle UID
			stack.Push(new Data(p.dragAmt));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLEDRAG:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //mass
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLEIMMEDIATEFORCE:
=DESC 
=ENDDESC 
=EX
	f2 = GetFloatFromStack(); //force
	f1 = GetFloatFromStack(); //direction in radians
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLETARGET:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle UID
			stack.Push(new Data(p.GetTargetObjectUID()));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLETARGET:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //Target Object UID
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLETARGETATTRACTIONINTERVAL:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle UID
			stack.Push(new Data(p.targetObjectPullInterval));
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLETARGETATTRACTIONINTERVAL:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //Attraction interval in frames
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLETARGETATTRACTIONFORCE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle UID
			stack.Push(new Data(p.targetObjectAttractionForce));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLETARGETATTRACTIONFORCE:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //Attraction force
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLESAMEINTERACTION:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle UID
			//Boolean is flipped in meaning between crpl and the particle variable's meaning
			stack.Push(new Data(p.homoInteractionIgnore ? 0 : 1));
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLEMOTION:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle UID
			stack.Push(new Data(td.y));
			stack.Push(new Data(td.x));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLEHASTELEPORTED:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle UID
			stack.Push(new Data(p.teleported ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLEMOTION:
=DESC 
=ENDDESC 
=EX
	f2 = GetFloatFromStack(); //deltay
	f1 = GetFloatFromStack(); //deltaX
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLESAMEINTERACTION:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //Same interaction
	i1 = GetIntFromStack(); //Particle UID
			//Boolean is flipped in meaning between crpl and the particle variable's meaning

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLEDESTROYATEDGE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle UID
			stack.Push(new Data(p.destroyAtEdge ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLEDESTROYATEDGE:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //Destroy at edge bool

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLEFORCEPARAMS:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle UID
			stack.Push(new Data((int)p.oscillationType));
			stack.Push(new Data(p.oscillationForceMin));
			stack.Push(new Data(p.oscillationForceMax));
			stack.Push(new Data(p.oscillationTime));
			stack.Push(new Data(p.oscillationPhase));
			stack.Push(new Data((int)p.oscillationDirectionType));
			stack.Push(new Data(p.oscillationDirectionMinAngle));
			stack.Push(new Data(p.oscillationDirectionMaxAngle));
			stack.Push(new Data(p.oscillationDirectionTime));
			stack.Push(new Data(p.oscillationDirectionPhase));
		} else {
			stack.Push(new Data(0));
			stack.Push(new Data(0));
			stack.Push(new Data(0));
			stack.Push(new Data(0));
			stack.Push(new Data(0));
			stack.Push(new Data(0));
			stack.Push(new Data(0));
			stack.Push(new Data(0));
			stack.Push(new Data(0));
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLEFORCEPARAMS:
=DESC 
=ENDDESC 
=EX
	f6 = GetFloatFromStack(); //Oscillation direction phase
	i5 = GetIntFromStack(); //Oscillation direction time
	f5 = GetFloatFromStack(); //Oscillation direction max angle
	f4 = GetFloatFromStack(); //Oscillation direction min angle
	i4 = GetIntFromStack(); //Oscillation direction waveform Type
	f3 = GetFloatFromStack(); //Oscillation phase
	i3 = GetIntFromStack(); //Oscillation time
	f2 = GetFloatFromStack(); //Oscillation max force
	f1 = GetFloatFromStack(); //Oscillation min force
	i2 = GetIntFromStack(); //Oscillation force waveform Type
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLEFORCESPEEDLIMIT:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); // Speed limit
	i1 = GetIntFromStack(); // Particle

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLEINTERACTDELAY:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //Delay    
	i1 = GetIntFromStack(); //Particle

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETPARTICLEINTERACTDELAY:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Particle
			stack.Push(new Data(p.interactWithSiblingsDelay));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLEFORCEDIRECTIONRELATIVEPARTICLE:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //The relative particle
	i1 = GetIntFromStack(); //Particle to releative particle of

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETPARTICLERETURNWHENRECALLED:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //Bool on whether it should return when recalled by owner
	i1 = GetIntFromStack(); //Particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITRECALLCHILDPARTICLES:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //Bool on whether it should recall child particles
	i1 = GetIntFromStack(); //Unit UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETBONDMOVEMENTPARAMS: 
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Bond UID
		stack.Push(new Data((int)bond.movementType));
		stack.Push(new Data((int)bond.movementBondMinDistance));
		stack.Push(new Data((int)bond.movementBondMaxDistance));
		stack.Push(new Data((int)bond.movementTime));
		stack.Push(new Data((int)bond.movementPhase));
	} else {
		stack.Push(new Data(0));
		stack.Push(new Data(0));
		stack.Push(new Data(0));
		stack.Push(new Data(0));
		stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETBONDMOVEMENTPARAMS:
=DESC 
=ENDDESC 
=EX
	f3 = GetFloatFromStack(); // phase
	i3 = GetIntFromStack(); // time
	f2 = GetFloatFromStack(); // max length
	f1 = GetFloatFromStack(); // min length
	i2 = GetIntFromStack(); //Signal waveform Type
	i1 = GetIntFromStack(); //Bond UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETBONDLENGTH:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); //Bond UID
		stack.Push(new Data(bond.BOND_DISTANCE));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETBONDLENGTH:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); //Length
	i1 = GetIntFromStack(); //Bond UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETALLCONNECTEDPARTICLES:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); 
				stack.Push(new Data(rp.UID));
			stack.Push(new Data(results.Count));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETALLCONNECTEDPARTICLECOUNT:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();
			stack.Push(new Data(results.Count));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETALLCONNECTEDBONDS:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); 
				stack.Push(new Data(b.UID));
			stack.Push(new Data(results.Count));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=DESC 
=ENDDESC 
=EX
=COMMAND GETALLCONNECTEDBONDCOUNT:
	i1 = GetIntFromStack(); {
			stack.Push(new Data(results.Count));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETNEARESTTARGET:
=DESC 
=ENDDESC 
=EX
	i8 = GetIntFromStack(); //onlyEnemyShip
	i7 = GetIntFromStack(); //excludeVirtual
	i6 = GetIntFromStack(); //excludeNormal
	i5 = GetIntFromStack(); // bool for find untargeted particle
	i4 = GetIntFromStack(); // bool for enemy
	i3 = GetIntFromStack(); // range in cells
	i2 = GetIntFromStack(); // cell y
	i1 = GetIntFromStack(); // cell x
			stack.Push(new Data(pb.UID));
		} else {
			stack.Push(new Data(-1));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND DAMAGEPARTICLE:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack();
	i1 = GetIntFromStack(); 

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ISEMERGENT:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); 
		stack.Push(new Data(p != null ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=DESC 
=ENDDESC 
=EX
=COMMAND ISHULL:
	i1 = GetIntFromStack();
		stack.Push(new Data(p != null ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ISPARTICLE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack();
		stack.Push(new Data(p != null ? 1 : 0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND CLEARALLFIELDS:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETFIELDCELL:
=DESC 
=ENDDESC 
=EX
	f2 = GetFloatFromStack(); //force y
	f1 = GetFloatFromStack(); //force x
	i2 = GetIntFromStack(); //y
	i1 = GetIntFromStack(); //x

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND ISHQPRESENT:
=DESC 
=ENDDESC 
=EX
	stack.Push(new Data(GameSpace.instance.headquartersShips.Count == 0 ? 0 : 1));
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETHQS: 
=DESC 
=ENDDESC 
=EX
			results.Add(new Data(cm.UID));
		stack.Push(new Data(results));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETLAND:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //y
	i1 = GetIntFromStack(); //x
	stack.Push(new Data(Land.instance.GetLand(i1, i2)));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETLAND:
=DESC 
=ENDDESC 
=EX
	i3 = GetIntFromStack(); //land
	i2 = GetIntFromStack(); //y
	i1 = GetIntFromStack(); //x

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETLANDBULK:
=DESC 
=ENDDESC 
=EX
	i5 = GetIntFromStack(); //square
	i4 = GetIntFromStack(); //range
	i3 = GetIntFromStack(); //land
	i2 = GetIntFromStack(); //y
	i1 = GetIntFromStack(); //x

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETMIRE:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //y
	i1 = GetIntFromStack(); //x
	stack.Push(new Data(Land.instance.GetCovered(i1, i2)));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETMIRE:
=DESC 
=ENDDESC 
=EX
	i3 = GetIntFromStack(); //-1,0,1
	i2 = GetIntFromStack(); //y
	i1 = GetIntFromStack(); //x

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND MIRELAND:
=DESC 
=ENDDESC 
=EX
	i3 = GetIntFromStack(); //enemy
	i2 = GetIntFromStack(); //y
	i1 = GetIntFromStack(); //x

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GROWSTRUC:
=DESC 
=ENDDESC 
=EX
	i3 = GetIntFromStack(); //enemy
	i2 = GetIntFromStack(); //y
	i1 = GetIntFromStack(); //x
	
	stack.Push(new Data(i4)); 	//0 for didn't do anything, 
								//1 for normal struc, 
								//2 for armor.  
								//That is whether it is built or destroyed the enemy type.

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERPARTICLETYPE:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); // 0 =ParticleType.FREE , 1 =ParticleType.TRIANGLE, else ParticleType.SQUARE;
	i1 = GetIntFromStack(); // particle UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERPRODUCTIONINTERVAL:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack();
	i1 = GetIntFromStack(); 

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERMAXPARTICLES:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); // MAX_PARTICLE_COUNT
	i1 = GetIntFromStack(); // UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERMAXTIME:
=DESC 
=ENDDESC 
=EX
		i2 = GetIntFromStack(); // Time
		i1 = GetIntFromStack(); // UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERMAXDISTANCE:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); // Distance
	i1 = GetIntFromStack(); // UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERMAXPARTICLESPEED:
=DESC 
=ENDDESC 
=EX
		f1 = GetFloatFromStack(); // Speed
		i1 = GetIntFromStack();   // UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERPARTICLEHEALTH:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack(); // particleHealth
	i1 = GetIntFromStack();   //UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERTARGETPROBABILITY:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); // targetProbability
	i1 = GetIntFromStack(); // UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTEREMITTERTARGETPROBABILITY:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); // emitterTargetProbability
	i1 = GetIntFromStack(); // UID
\
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERRECALLRANGE:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); // recallRange 
	i1 = GetIntFromStack(); // UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERDESTROYEATEDGE: 
=DESC 
=ENDDESC 
=EX
// typo immortalized
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERDESTROYATEDGE:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); // bool
	i1 = GetIntFromStack(); // UID

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERENEMYPATTERN:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack();
	i1 = GetIntFromStack(); {

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERBONDDISTANCE:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack();
	i1 = GetIntFromStack(); {

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERBONDSTIFFNESS:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack();
	i1 = GetIntFromStack(); {

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERMINCHAINLENGTH:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack();
	i1 = GetIntFromStack(); {

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERMAXCHAINLENGTH:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack();
	i1 = GetIntFromStack(); {

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETEMITTERSHAPESIZE:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack();
	i1 = GetIntFromStack(); {

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERPARTICLETYPE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
				tpti = 0; FREE
				tpti = 1; TRIANGLE
				tpti = 2; SQUARE
				tpti = 3; ?? Round?
			stack.Push(new Data(tpti));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERPRODUCTIONINTERVAL:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data(productionInterval));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERMAXPARTICLES:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data((MAX_PARTICLE_COUNT));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERMAXTIME:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data(terminationTime));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERMAXDISTANCE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data(terminationDistance));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERMAXPARTICLESPEED:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data(maxParticleSpeed));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERPARTICLEHEALTH:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data((u as GravityWell).particleHealth));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERTARGETPROBABILITY:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data((targetProbability));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTEREMITTERTARGETPROBABILITY:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data(emitterTargetProbability));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERRECALLRANGE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data(recallRange));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERDESTROYEATEDGE: 
=DESC 
=ENDDESC 
=EX
// typo immortalized
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERDESTROYATEDGE:
=DESC 
=ENDDESC 
=EX
		i1 = GetIntFromStack(); {
			stack.Push(new Data(destroyAtEdge ? 1 : 0));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERENEMYPATTERN:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data((int)(enemyPattern)); 	// 0=SINGLE
														// 1=CHAIN
														// 2=BOX
														// 3=CENTI
														// 4=BAR
														// 5=WHEEL
			
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERBONDDISTANCE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data((BOND_DISTANCE));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERBONDSTIFFNESS:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data(BOND_STIFFNESS));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERMINCHAINLENGTH:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data(minChainLength));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERMAXCHAINLENGTH:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data(maxChainLength));
		} else {

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETEMITTERSHAPESIZE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data(SHAPE_SIZE));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETENERGYSOURCERATE:
=DESC 
=ENDDESC 
=EX
	f1 = GetFloatFromStack();
	i1 = GetIntFromStack(); {

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETENERGYSOURCERANGE:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack();
	i1 = GetIntFromStack(); {

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETENERGYSOURCEGROWENEMYENERGYMINE:
=DESC 
=ENDDESC 
=EX
	i2 = GetIntFromStack(); //bool
	i1 = GetIntFromStack(); {

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETENERGYSOURCERATE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data((energyRate));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETENERGYSOURCERANGE:
=DESC 
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data(range));
		} else {
			stack.Push(new Data(0));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETENERGYSOURCEGROWENEMYENERGYMINE:ine ? 1 : 0));
=DESC 
//  UnitAttribte list  GET and  SET calls for each of these Boolean or data, as may be the case. 
For i1 = uid
LATHETARGETS 							latheCanTarget ? 1 : 0));
CREATEENERGYSOURCEWHENDESTROYED  		createEnergySourceWhenDestroyed ? 1 : 0));
CREATEAMPGEMWHENDESTROYED 				createAmpGemWhenDestroyed ? 1 : 0));
ISENEMY 								enemy ? 1 : 0));
GROWSTRUC 								growStruc ? 1 : 0));
CREATEFOOTPRINT 						createFootprint ? 1 : 0));
MISSIONGOAL 							isGoal ? 1 : 0));
CREATEFOOTPRINT 						createFootprint ? 1 : 0));
ISBUILDING 								isBuilding ? 1 : 0));
ISDESTROYED 							dead ? 1 : 0));
RECEIVESPACKETS) 						packReceiver  1 : 0));
HASHEALTHBAR 							healthBar 	l ? 1 : 0));
HASENERGYBAR 							energyBar != null ? 1 : 0));
PARTICLESDAMAGE  						particlesDamage ? 1 : 0));
SHIPHULLDAMAGES 						ignoreShipParticleCollisions? 0 : 1));
MIREDAMAGES 							mireDamage ? 1 : 0));
COORDX 									gameSpaceX));
COORDY 									gameSpaceY));
PIXELCOORDX 							coordX));
PIXELCOORDY 							coordY));
HEALTH 									health));
MAXHEALTH 								maxHealth));
ENERGY 									energyStore));
MAXENERGY 								MAX_ENERGY));
ENERGYPACKDELAY 						energyStorePackRequestRate));
MIREDAMAGEAMT 							MIRE_DAMAGE_AMT));
LATHEDAMAGEAMT 							LATHE_DAMAGE_AMT));
//
=ENDDESC 
=EX
	i1 = GetIntFromStack(); {
			stack.Push(new Data(growEnemyEnergyM
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITLATHETARGETS:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITLATHETARGETS:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITCREATEENERGYSOURCEWHENDESTROYED:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITCREATEENERGYSOURCEWHENDESTROYED:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITISENEMY:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITISENEMY:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITGROWSTRUC:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITGROWSTRUC:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITCREATEAMPGEMWHENDESTROYED:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITCREATEAMPGEMWHENDESTROYED:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITCREATEFOOTPRINT:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITCREATEFOOTPRINT:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITMISSIONGOAL:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITMISSIONGOAL:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITTAKEMAPSPACE:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITTAKEMAPSPACE:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITISBUILDING:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITISBUILDING:
		
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITCOORDX:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITCOORDX:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITCOORDY:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITCOORDY:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITPIXELCOORDX:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITPIXELCOORDX:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITPIXELCOORDY:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITPIXELCOORDY:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITRECEIVESPACKETS:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITRECEIVESPACKETS:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITHEALTH:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITHEALTH:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITMAXHEALTH:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITMAXHEALTH:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITENERGY:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITENERGY:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITMAXENERGY:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITMAXENERGY:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITHASHEALTHBAR:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITHASHEALTHBAR:
	
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITHASENERGYBAR:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITHASENERGYBAR:
	
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITENERGYPACKDELAY:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITENERGYPACKDELAY:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITPARTICLESDAMAGE:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITPARTICLESDAMAGE:
	
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITSHIPHULLDAMAGES:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITSHIPHULLDAMAGES:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITMIREDAMAGES:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITMIREDAMAGES:
	
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITMIREDAMAGEAMT:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITMIREDAMAGEAMT:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITLATHEDAMAGEAMT:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITLATHEDAMAGEAMT:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITCOORDS:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITCOORDS:
=DESC 
=ENDDESC 
=EX
			stack.Push(new Data(u.gameSpaceX));
			stack.Push(new Data(u.gameSpaceY));
			
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETUNITPIXELCOORDS:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITPIXELCOORDS:
=DESC 
=ENDDESC 
=EX
			stack.Push(new Data(-1));
			stack.Push(new Data(-1));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETUNITISDESTROYED:
=DESC 

//  ShipAttribte list  GET and  SET calls for each of these Boolean or data, as may be the case. 
ISDESTROYED 			dead ? 1 : 0));
ISENEMY       			enemy ? 1 : 0));
ISCONNECTEDTOENERGYMINE IsConnectedToEnergyMine() ? 1 : 0));
HASAMP        			IsAmpGemInstalled() ? 1 : 0));
ROTATION       			eulerAngles.z*Mathf.Deg2Rad));
ROTATIONDEGREES 		eulerAngles.z));
COORDX      			cellX));
COORDY     				cellY));
PIXELCOORDX     		transform.position.x));
PIXELCOORDY     		transform.position.y));
HULLWIDTH       		shipPlan.GetHullWidth()));
HULLHEIGHT      		shipPlan.GetHullHeight()));
HULLSIZE       			shipPlan.totalHullCount));
HULLBUILT       		scannedHullCount - hullToBuildCount));
CMCOST       			BUILD_COST));
CMBUILTAMT      		builtAmt));
ENERGY       			energyStore));
ENERGYCAP       		ENERGYCAP));
THRUSTMULTIPLIER      	THRUST_MULTIPLIER));

//
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPISDESTROYED:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPTHRUSTMULTIPLIER:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSHIPTHRUSTMULTIPLIER:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPROTATION:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSHIPROTATION:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPROTATIONDEGREES:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSHIPROTATIONDEGREES:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPCOORDS:
=DESC 
=ENDDESC 
=EX
			stack.Push cellX));
			stack.Push cellY));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSHIPCOORDS:
=DESC 
=ENDDESC 
=EX
	i3 = GetIntFromStack();
	i2 = GetIntFromStack();
	i1 = GetIntFromStack(); 
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSHIPCOORDX:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPCOORDX:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSHIPCOORDY:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPCOORDY:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPPIXELCOORDS:
=DESC 
=ENDDESC 
=EX
			stack.Push position.x));
			stack.Push position.y));

=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSHIPPIXELCOORDS:
=DESC 
=ENDDESC 
=EX
	f2 = GetFloatFromStack();
	f1 = GetFloatFromStack();
	i1 = GetIntFromStack(); {
	
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPPIXELCOORDX:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSHIPPIXELCOORDX:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPPIXELCOORDY:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSHIPPIXELCOORDY:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSHIPISENEMY:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPISENEMY:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPENERGY:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSHIPENERGY: 

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPENERGYCAP:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSHIPENERGYCAP:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND SETSHIPMODULESAMMO:                

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPHULLSIZE:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPHULLBUILT:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPCMCOST:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPCMBUILTAMT:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPISCONNECTEDTOENERGYMINE:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPHASAMP:

=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPHULLWIDTH:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD 

=CMD 
=CMDCLASS 
=COMMAND GETSHIPHULLHEIGHT:
=DESC 
=ENDDESC 
=EX
=ENDEX
=ENDCMD