public string[] GetStringArrayValue(string key){
			if (Data [key] == null)
				return new string[0];

			LHTable StringTable = new LHTable (this, key);

			string[] ToReturn = new string[StringTable.Count];
			for (int i = 0; i < StringTable.Count; i++) {
				ToReturn [i] = StringTable.GetStringValue (StringTable.Keys [i]);
			}
			return ToReturn;
		}
	public static void ReadSpawnWithArmy(out MapLuaParser.armys ArmyValue, LHTable ReadTable){
		string SpawnName = ReadTable.GetStringValue ("SpawnWithArmy");

		if (SpawnName.Contains ("ARMY") && !SpawnName.Contains ("ARMY_")) {
			SpawnName = SpawnName.Replace ("ARMY", "ARMY_");
		}
			
		switch(SpawnName){
		case "ARMY_1":
			ArmyValue = MapLuaParser.armys.ARMY1;
			break;
		case "ARMY_2":
			ArmyValue = MapLuaParser.armys.ARMY2;
			break;
		case "ARMY_3":
			ArmyValue = MapLuaParser.armys.ARMY3;
			break;
		case "ARMY_4":
			ArmyValue = MapLuaParser.armys.ARMY4;
			break;
		case "ARMY_5":
			ArmyValue = MapLuaParser.armys.ARMY5;
			break;
		case "ARMY_6":
			ArmyValue = MapLuaParser.armys.ARMY6;
			break;
		case "ARMY_7":
			ArmyValue = MapLuaParser.armys.ARMY7;
			break;
		case "ARMY_8":
			ArmyValue = MapLuaParser.armys.ARMY8;
			break;
		case "ARMY_9":
			ArmyValue = MapLuaParser.armys.ARMY9;
			break;
		case "ARMY_10":
			ArmyValue = MapLuaParser.armys.ARMY10;
			break;
		case "ARMY_11":
			ArmyValue = MapLuaParser.armys.ARMY11;
			break;
		case "ARMY_12":
			ArmyValue = MapLuaParser.armys.ARMY12;
			break;
		case "ARMY_13":
			ArmyValue = MapLuaParser.armys.ARMY13;
			break;
		case "ARMY_14":
			ArmyValue = MapLuaParser.armys.ARMY14;
			break;
		case "ARMY_15":
			ArmyValue = MapLuaParser.armys.ARMY15;
			break;
		case "ARMY_16":
			ArmyValue = MapLuaParser.armys.ARMY16;
			break;
		default:
			ArmyValue = MapLuaParser.armys.none;
			break;
		}
	}
		public LHTable(LHTable Parent, string Key){
			Data = Parent.Data[Key] as LuaTable;
			Count = Data.Keys.Count;
			Keys = new string[Count];
			Data.Keys.CopyTo(Keys, 0);
		}
		public void GetLuaArmyGroup(string key, out string orders, out string platoon, out LHTable UnitGroups){
			LuaTable MarkerPos = Data[key] as LuaTable;
			LuaTable MarkerPos2 = MarkerPos[1] as LuaTable;

			orders = MarkerPos2["orders"].ToString();
			platoon = MarkerPos2["platoon"].ToString();
			UnitGroups = new LHTable (MarkerPos2 ["Units"] as LuaTable);
		}