project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/frontlib/Frontlib.java
changeset 7588 27e5857da6af
parent 7584 7831c84cc644
child 7590 0be267033fb3
equal deleted inserted replaced
7586:33924ff4af50 7588:27e5857da6af
   318 			result.setPointer(result.javaOwnedInstance.getPointer());
   318 			result.setPointer(result.javaOwnedInstance.getPointer());
   319 			return result;
   319 			return result;
   320 		}
   320 		}
   321 	}
   321 	}
   322 	
   322 	
       
   323 	public static class ByteArrayPtr extends PointerType {
       
   324 		public byte[] deref(int size) {
       
   325 			return getPointer().getByteArray(0, size);
       
   326 		}
       
   327 		
       
   328 		public static byte[] deref(ByteArrayPtr ptr, int size) {
       
   329 			if(ptr==null && size==0) {
       
   330 				return null;
       
   331 			} else {
       
   332 				return ptr.deref(size);
       
   333 			}
       
   334 		}
       
   335 		
       
   336 		public static ByteArrayPtr createJavaOwned(byte[] buffer) {
       
   337 			if(buffer == null) {
       
   338 				return null;
       
   339 			}
       
   340 			// no need for javaOwnedInstance here because PointerType
       
   341 			// remembers the memory as its Pointer
       
   342 			Pointer ptr = new Memory(buffer.length);
       
   343 			ptr.write(0, buffer, 0, buffer.length);
       
   344 			ByteArrayPtr result = new ByteArrayPtr();
       
   345 			result.setPointer(ptr);
       
   346 			return result;
       
   347 		}
       
   348 	}
       
   349 	
   323 	static class HogStruct extends Structure {
   350 	static class HogStruct extends Structure {
   324 		public static class ByVal extends HogStruct implements Structure.ByValue {}
   351 		public static class ByVal extends HogStruct implements Structure.ByValue {}
   325 		public static class ByRef extends HogStruct implements Structure.ByReference {}
   352 		public static class ByRef extends HogStruct implements Structure.ByReference {}
   326 		private static String[] FIELD_ORDER = new String[] {"name", "hat", "rounds", "kills", "deaths", "suicides", "difficulty", "initialHealth", "weaponset"};
   353 		private static String[] FIELD_ORDER = new String[] {"name", "hat", "rounds", "kills", "deaths", "suicides", "difficulty", "initialHealth", "weaponset"};
   327 
   354 
   564 			mapgen = map.mapgen;
   591 			mapgen = map.mapgen;
   565 			name = map.name;
   592 			name = map.name;
   566 			seed = map.seed;
   593 			seed = map.seed;
   567 			theme = map.theme;
   594 			theme = map.theme;
   568 			byte[] buf = map.getDrawData();
   595 			byte[] buf = map.getDrawData();
   569 			if(buf != null) {
   596 			drawData = ByteArrayPtr.createJavaOwned(buf);
   570 				drawData = new Memory(buf.length);
   597 			drawDataSize = NativeSizeT.valueOf(buf==null ? 0 : buf.length);
   571 				drawData.write(0, buf, 0, buf.length);
       
   572 				drawDataSize = NativeSizeT.valueOf(buf.length);
       
   573 			} else {
       
   574 				drawData = null;
       
   575 				drawDataSize = NativeSizeT.valueOf(0);
       
   576 			}
       
   577 			templateFilter = map.templateFilter;
   598 			templateFilter = map.templateFilter;
   578 			mazeSize = map.mazeSize;
   599 			mazeSize = map.mazeSize;
   579 		}
   600 		}
   580 		
   601 		
   581 		public MapRecipe toMapRecipe() {
   602 		public MapRecipe toMapRecipe() {
   582 			byte[] buf = null;
   603 			byte[] buf = ByteArrayPtr.deref(drawData, drawDataSize.intValue());
   583 			if(drawData != null && drawDataSize.intValue()>0) {
       
   584 				buf = new byte[drawDataSize.intValue()];
       
   585 				drawData.read(0, buf, 0, drawDataSize.intValue());
       
   586 			}
       
   587 			return new MapRecipe(mapgen, templateFilter, mazeSize, name, seed, theme, buf);
   604 			return new MapRecipe(mapgen, templateFilter, mazeSize, name, seed, theme, buf);
   588 		}
   605 		}
   589 		
   606 		
   590 		public int mapgen;
   607 		public int mapgen;
   591 		public String name;
   608 		public String name;
   592 		public String seed;
   609 		public String seed;
   593 		public String theme;
   610 		public String theme;
   594 		public Pointer drawData;
   611 		public ByteArrayPtr drawData;
   595 		public NativeSizeT drawDataSize;
   612 		public NativeSizeT drawDataSize;
   596 		public int templateFilter;
   613 		public int templateFilter;
   597 		public int mazeSize;
   614 		public int mazeSize;
   598 	}
   615 	}
   599 	
   616 	
   946 	public static interface TeamCallback extends Callback {
   963 	public static interface TeamCallback extends Callback {
   947 		void callback(Pointer context, TeamPtr arg1);
   964 		void callback(Pointer context, TeamPtr arg1);
   948 	}
   965 	}
   949 	
   966 	
   950 	public static interface BytesCallback extends Callback {
   967 	public static interface BytesCallback extends Callback {
   951 		void callback(Pointer context, Pointer buffer, NativeSizeT size);
   968 		void callback(Pointer context, ByteArrayPtr buffer, NativeSizeT size);
   952 	}
   969 	}
   953 	
   970 	
   954 	public static interface BytesBoolCallback extends Callback {
   971 	public static interface BytesBoolCallback extends Callback {
   955 		void callback(Pointer context, Pointer buffer, NativeSizeT size, boolean arg3);
   972 		void callback(Pointer context, ByteArrayPtr buffer, NativeSizeT size, boolean arg3);
   956 	}
   973 	}
   957 	
   974 	
   958 	public static interface SchemeCallback extends Callback {
   975 	public static interface SchemeCallback extends Callback {
   959 		void callback(Pointer context, SchemePtr arg1);
   976 		void callback(Pointer context, SchemePtr arg1);
   960 	}
   977 	}
   966 	public static interface WeaponsetCallback extends Callback {
   983 	public static interface WeaponsetCallback extends Callback {
   967 		void callback(Pointer context, WeaponsetPtr arg1);
   984 		void callback(Pointer context, WeaponsetPtr arg1);
   968 	}
   985 	}
   969 	
   986 	
   970 	public static interface MapimageCallback extends Callback {
   987 	public static interface MapimageCallback extends Callback {
   971 		void callback(Pointer context, Pointer buffer, int hedgehogCount);
   988 		void callback(Pointer context, ByteArrayPtr buffer, int hedgehogCount);
   972 	}
   989 	}
   973 	
   990 	
   974 	public static interface LogCallback extends Callback {
   991 	public static interface LogCallback extends Callback {
   975 		void callback(int level, String logMessage);
   992 		void callback(int level, String logMessage);
   976 	}
   993 	}
  1033 	int flib_netconn_send_renameRoom(NetconnPtr conn, String roomName);
  1050 	int flib_netconn_send_renameRoom(NetconnPtr conn, String roomName);
  1034 	int flib_netconn_send_leaveRoom(NetconnPtr conn, String msg);
  1051 	int flib_netconn_send_leaveRoom(NetconnPtr conn, String msg);
  1035 	int flib_netconn_send_toggleReady(NetconnPtr conn);
  1052 	int flib_netconn_send_toggleReady(NetconnPtr conn);
  1036 	int flib_netconn_send_addTeam(NetconnPtr conn, TeamPtr team);
  1053 	int flib_netconn_send_addTeam(NetconnPtr conn, TeamPtr team);
  1037 	int flib_netconn_send_removeTeam(NetconnPtr conn, String teamname);
  1054 	int flib_netconn_send_removeTeam(NetconnPtr conn, String teamname);
  1038 	int flib_netconn_send_engineMessage(NetconnPtr conn, Pointer message, NativeSizeT size);
  1055 	int flib_netconn_send_engineMessage(NetconnPtr conn, ByteArrayPtr message, NativeSizeT size);
  1039 	int flib_netconn_send_teamHogCount(NetconnPtr conn, String teamname, int hogcount);
  1056 	int flib_netconn_send_teamHogCount(NetconnPtr conn, String teamname, int hogcount);
  1040 	int flib_netconn_send_teamColor(NetconnPtr conn, String teamname, int colorIndex);
  1057 	int flib_netconn_send_teamColor(NetconnPtr conn, String teamname, int colorIndex);
  1041 	int flib_netconn_send_weaponset(NetconnPtr conn, WeaponsetPtr weaponset);
  1058 	int flib_netconn_send_weaponset(NetconnPtr conn, WeaponsetPtr weaponset);
  1042 	int flib_netconn_send_map(NetconnPtr conn, MapRecipePtr map);
  1059 	int flib_netconn_send_map(NetconnPtr conn, MapRecipePtr map);
  1043 	int flib_netconn_send_mapName(NetconnPtr conn, String mapName);
  1060 	int flib_netconn_send_mapName(NetconnPtr conn, String mapName);
  1044 	int flib_netconn_send_mapGen(NetconnPtr conn, int mapGen);
  1061 	int flib_netconn_send_mapGen(NetconnPtr conn, int mapGen);
  1045 	int flib_netconn_send_mapTemplate(NetconnPtr conn, int templateFilter);
  1062 	int flib_netconn_send_mapTemplate(NetconnPtr conn, int templateFilter);
  1046 	int flib_netconn_send_mapMazeSize(NetconnPtr conn, int mazeSize);
  1063 	int flib_netconn_send_mapMazeSize(NetconnPtr conn, int mazeSize);
  1047 	int flib_netconn_send_mapSeed(NetconnPtr conn, String seed);
  1064 	int flib_netconn_send_mapSeed(NetconnPtr conn, String seed);
  1048 	int flib_netconn_send_mapTheme(NetconnPtr conn, String theme);
  1065 	int flib_netconn_send_mapTheme(NetconnPtr conn, String theme);
  1049 	int flib_netconn_send_mapDrawdata(NetconnPtr conn, Pointer drawData, NativeSizeT size);
  1066 	int flib_netconn_send_mapDrawdata(NetconnPtr conn, ByteArrayPtr drawData, NativeSizeT size);
  1050 	int flib_netconn_send_script(NetconnPtr conn, String scriptName);
  1067 	int flib_netconn_send_script(NetconnPtr conn, String scriptName);
  1051 	int flib_netconn_send_scheme(NetconnPtr conn, SchemePtr scheme);
  1068 	int flib_netconn_send_scheme(NetconnPtr conn, SchemePtr scheme);
  1052 	int flib_netconn_send_roundfinished(NetconnPtr conn, boolean withoutError);
  1069 	int flib_netconn_send_roundfinished(NetconnPtr conn, boolean withoutError);
  1053 	int flib_netconn_send_ban(NetconnPtr conn, String playerName);
  1070 	int flib_netconn_send_ban(NetconnPtr conn, String playerName);
  1054 	int flib_netconn_send_kick(NetconnPtr conn, String playerName);
  1071 	int flib_netconn_send_kick(NetconnPtr conn, String playerName);
  1098 	static final int GAME_END_INTERRUPTED = 1;
  1115 	static final int GAME_END_INTERRUPTED = 1;
  1099 	static final int GAME_END_HALTED = 2;
  1116 	static final int GAME_END_HALTED = 2;
  1100 	static final int GAME_END_ERROR = 3;
  1117 	static final int GAME_END_ERROR = 3;
  1101 	
  1118 	
  1102 	GameconnPtr flib_gameconn_create(String playerName, GameSetupPtr setup, boolean netgame);
  1119 	GameconnPtr flib_gameconn_create(String playerName, GameSetupPtr setup, boolean netgame);
  1103 	GameconnPtr flib_gameconn_create_playdemo(Pointer demo, NativeSizeT size);
  1120 	GameconnPtr flib_gameconn_create_playdemo(ByteArrayPtr demo, NativeSizeT size);
  1104 	GameconnPtr flib_gameconn_create_loadgame(String playerName, Pointer save, NativeSizeT size);
  1121 	GameconnPtr flib_gameconn_create_loadgame(String playerName, ByteArrayPtr save, NativeSizeT size);
  1105 	GameconnPtr flib_gameconn_create_campaign(String playerName, String seed, String script);
  1122 	GameconnPtr flib_gameconn_create_campaign(String playerName, String seed, String script);
  1106 
  1123 
  1107 	void flib_gameconn_destroy(GameconnPtr conn);
  1124 	void flib_gameconn_destroy(GameconnPtr conn);
  1108 	int flib_gameconn_getport(GameconnPtr conn);
  1125 	int flib_gameconn_getport(GameconnPtr conn);
  1109 	void flib_gameconn_tick(GameconnPtr conn);
  1126 	void flib_gameconn_tick(GameconnPtr conn);
  1110 
  1127 
  1111 	int flib_gameconn_send_enginemsg(GameconnPtr conn, Pointer data, NativeSizeT len);
  1128 	int flib_gameconn_send_enginemsg(GameconnPtr conn, ByteArrayPtr data, NativeSizeT len);
  1112 	int flib_gameconn_send_textmsg(GameconnPtr conn, int msgtype, String msg);
  1129 	int flib_gameconn_send_textmsg(GameconnPtr conn, int msgtype, String msg);
  1113 	int flib_gameconn_send_chatmsg(GameconnPtr conn, String playername, String msg);
  1130 	int flib_gameconn_send_chatmsg(GameconnPtr conn, String playername, String msg);
  1114 	int flib_gameconn_send_quit(GameconnPtr conn);
  1131 	int flib_gameconn_send_quit(GameconnPtr conn);
  1115 	int flib_gameconn_send_cmd(GameconnPtr conn, String cmdString);
  1132 	int flib_gameconn_send_cmd(GameconnPtr conn, String cmdString);
  1116 	
  1133