diff -r 4feced261c68 -r de822cd3df3a project_files/frontlib/extra/jnacontrol.c --- a/project_files/frontlib/extra/jnacontrol.c Tue Jan 21 22:38:13 2014 +0100 +++ b/project_files/frontlib/extra/jnacontrol.c Tue Jan 21 22:43:06 2014 +0100 @@ -1,240 +1,240 @@ -/* - * Hedgewars, a free turn based strategy game - * Copyright (C) 2012 Simeon Maxein - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -/* - * This file is not directly part of the frontlib and is not required to build it. - * However, it is recommended to include it in compilation when building for Android. The purpose of this file - * is to ensure consistency between the function signatures of the JNA Java bindings of the Android port and the - * frontlib functions. - * - * This file, in essence, consists only of function declarations. They are duplicates of function declarations - * from the frontlib headers that are referenced from JNA bindings. If the signature of one of these functions - * changes in the frontlib, it will no longer match the signature in this file, and the compiler will show an error. - * If that happens, you need to update the JNA bindings in Hedgeroid to match the new function signature, and then - * update this file. - * - * The reason for all this is that JNA does not actually know the function signatures of the functions it binds, - * it derives them from Java method declarations. If those do not match the actual function signatures, you will - * only notice when you suddenly get strange (and possibly hard to track down) problems at runtime. This file is - * an attempt to detect these problems at compile time instead. Notice that it will NOT detect changes to structs - * or constants though, which also require updates to the JNA bindings. - */ - -/* - * Before we include the frontlib headers, we define away the const keyword. This is necessary because there is no - * distinction between const and non-const types on the JNA side, and we don't want the compiler to complain because - * of bad constness. - * - * This is so evil, but it works... - */ -#define const - -#include "../frontlib.h" - -/* - * Now we map the Java types to the corresponding C types... - */ -typedef flib_netconn *NetconnPtr; -typedef flib_gameconn *GameconnPtr; -typedef flib_mapconn *MapconnPtr; -typedef flib_metascheme *MetaschemePtr; -typedef flib_room **RoomArrayPtr; -typedef flib_weaponset *WeaponsetPtr; -typedef flib_weaponsetlist *WeaponsetListPtr; -typedef flib_map *MapRecipePtr; -typedef flib_scheme *SchemePtr; -typedef flib_schemelist *SchemelistPtr; - -typedef flib_room *RoomPtr; -typedef flib_team *TeamPtr; -typedef flib_gamesetup *GameSetupPtr; -typedef bool boolean; -typedef size_t NativeSizeT; -typedef void *Pointer; -typedef uint8_t *ByteArrayPtr; -typedef char *String; - -/* - * Mapping callback types - */ -typedef void (*VoidCallback)(Pointer context); -typedef void (*StrCallback)(Pointer context, String arg1); -typedef void (*IntCallback)(Pointer context, int arg1); -typedef void (*IntStrCallback)(Pointer context, int arg1, String arg2); -typedef void (*StrIntCallback)(Pointer context, String arg1, int arg2); -typedef void (*StrStrCallback)(Pointer context, String arg1, String arg2); -typedef void (*StrStrBoolCallback)(Pointer context, String arg1, String arg2, boolean arg3); -typedef void (*RoomCallback)(Pointer context, RoomPtr arg1); -typedef void (*RoomListCallback)(Pointer context, RoomArrayPtr arg1, int arg2); -typedef void (*StrRoomCallback)(Pointer context, String arg1, RoomPtr arg2); -typedef void (*BoolCallback)(Pointer context, boolean arg1); -typedef void (*StrBoolCallback)(Pointer context, String arg1, boolean arg2); -typedef void (*TeamCallback)(Pointer context, TeamPtr arg1); -typedef void (*BytesCallback)(Pointer context, const uint8_t *buffer, NativeSizeT size); -typedef void (*BytesBoolCallback)(Pointer context, const uint8_t *buffer, NativeSizeT size, boolean arg3); -typedef void (*SchemeCallback)(Pointer context, SchemePtr arg1); -typedef void (*MapIntCallback)(Pointer context, MapRecipePtr arg1, int arg2); -typedef void (*WeaponsetCallback)(Pointer context, WeaponsetPtr arg1); -typedef void (*MapimageCallback)(Pointer context, const uint8_t *mapimage, int hogs); -typedef void (*LogCallback)(int arg1, String arg2); - -/* - * Below here are the copypasted method declarations from the JNA bindings - */ - - // frontlib.h - int flib_init(); - void flib_quit(); - - // hwconsts.h - int flib_get_teamcolor_count(); - int flib_get_hedgehogs_per_team(); - int flib_get_weapons_count(); - MetaschemePtr flib_get_metascheme(); - - // net/netconn.h - NetconnPtr flib_netconn_create(String playerName, String dataDirPath, String host, int port); - void flib_netconn_destroy(NetconnPtr conn); - - void flib_netconn_tick(NetconnPtr conn); - boolean flib_netconn_is_chief(NetconnPtr conn); - String flib_netconn_get_playername(NetconnPtr conn); - GameSetupPtr flib_netconn_create_gamesetup(NetconnPtr conn); - int flib_netconn_send_quit(NetconnPtr conn, String quitmsg); - int flib_netconn_send_chat(NetconnPtr conn, String chat); - int flib_netconn_send_teamchat(NetconnPtr conn, String msg); - int flib_netconn_send_password(NetconnPtr conn, String passwd); - int flib_netconn_send_nick(NetconnPtr conn, String nick); - int flib_netconn_send_request_roomlist(NetconnPtr conn); - int flib_netconn_send_joinRoom(NetconnPtr conn, String room); - int flib_netconn_send_createRoom(NetconnPtr conn, String room); - int flib_netconn_send_renameRoom(NetconnPtr conn, String roomName); - int flib_netconn_send_leaveRoom(NetconnPtr conn, String msg); - int flib_netconn_send_toggleReady(NetconnPtr conn); - int flib_netconn_send_addTeam(NetconnPtr conn, TeamPtr team); - int flib_netconn_send_removeTeam(NetconnPtr conn, String teamname); - int flib_netconn_send_engineMessage(NetconnPtr conn, ByteArrayPtr message, NativeSizeT size); - int flib_netconn_send_teamHogCount(NetconnPtr conn, String teamname, int hogcount); - int flib_netconn_send_teamColor(NetconnPtr conn, String teamname, int colorIndex); - int flib_netconn_send_weaponset(NetconnPtr conn, WeaponsetPtr weaponset); - int flib_netconn_send_map(NetconnPtr conn, MapRecipePtr map); - int flib_netconn_send_mapName(NetconnPtr conn, String mapName); - int flib_netconn_send_mapGen(NetconnPtr conn, int mapGen); - int flib_netconn_send_mapTemplate(NetconnPtr conn, int templateFilter); - int flib_netconn_send_mapMazeSize(NetconnPtr conn, int mazeSize); - int flib_netconn_send_mapSeed(NetconnPtr conn, String seed); - int flib_netconn_send_mapTheme(NetconnPtr conn, String theme); - int flib_netconn_send_mapDrawdata(NetconnPtr conn, ByteArrayPtr drawData, NativeSizeT size); - int flib_netconn_send_script(NetconnPtr conn, String scriptName); - int flib_netconn_send_scheme(NetconnPtr conn, SchemePtr scheme); - int flib_netconn_send_roundfinished(NetconnPtr conn, boolean withoutError); - int flib_netconn_send_ban(NetconnPtr conn, String playerName); - int flib_netconn_send_kick(NetconnPtr conn, String playerName); - int flib_netconn_send_playerInfo(NetconnPtr conn, String playerName); - int flib_netconn_send_playerFollow(NetconnPtr conn, String playerName); - int flib_netconn_send_startGame(NetconnPtr conn); - int flib_netconn_send_toggleRestrictJoins(NetconnPtr conn); - int flib_netconn_send_toggleRestrictTeams(NetconnPtr conn); - int flib_netconn_send_clearAccountsCache(NetconnPtr conn); - int flib_netconn_send_setServerVar(NetconnPtr conn, String name, String value); - int flib_netconn_send_getServerVars(NetconnPtr conn); - - void flib_netconn_onMessage(NetconnPtr conn, IntStrCallback callback, Pointer context); - void flib_netconn_onClientFlags(NetconnPtr conn, StrStrBoolCallback callback, Pointer context); - void flib_netconn_onChat(NetconnPtr conn, StrStrCallback callback, Pointer context); - void flib_netconn_onConnected(NetconnPtr conn, VoidCallback callback, Pointer context); - void flib_netconn_onDisconnected(NetconnPtr conn, IntStrCallback callback, Pointer context); - void flib_netconn_onRoomlist(NetconnPtr conn, RoomListCallback callback, Pointer context); - void flib_netconn_onRoomAdd(NetconnPtr conn, RoomCallback callback, Pointer context); - void flib_netconn_onRoomDelete(NetconnPtr conn, StrCallback callback, Pointer context); - void flib_netconn_onRoomUpdate(NetconnPtr conn, StrRoomCallback callback, Pointer context); - void flib_netconn_onLobbyJoin(NetconnPtr conn, StrCallback callback, Pointer context); - void flib_netconn_onLobbyLeave(NetconnPtr conn, StrStrCallback callback, Pointer context); - void flib_netconn_onNickTaken(NetconnPtr conn, StrCallback callback, Pointer context); - void flib_netconn_onPasswordRequest(NetconnPtr conn, StrCallback callback, Pointer context); - void flib_netconn_onEnterRoom(NetconnPtr conn, BoolCallback callback, Pointer context); - void flib_netconn_onLeaveRoom(NetconnPtr conn, IntStrCallback callback, Pointer context); - void flib_netconn_onTeamAdd(NetconnPtr conn, TeamCallback callback, Pointer context); - void flib_netconn_onTeamDelete(NetconnPtr conn, StrCallback callback, Pointer context); - void flib_netconn_onRoomJoin(NetconnPtr conn, StrCallback callback, Pointer context); - void flib_netconn_onRoomLeave(NetconnPtr conn, StrStrCallback callback, Pointer context); - void flib_netconn_onRunGame(NetconnPtr conn, VoidCallback callback, Pointer context); - void flib_netconn_onTeamAccepted(NetconnPtr conn, StrCallback callback, Pointer context); - void flib_netconn_onHogCountChanged(NetconnPtr conn, StrIntCallback callback, Pointer context); - void flib_netconn_onTeamColorChanged(NetconnPtr conn, StrIntCallback callback, Pointer context); - void flib_netconn_onEngineMessage(NetconnPtr conn, BytesCallback callback, Pointer context); - void flib_netconn_onSchemeChanged(NetconnPtr conn, SchemeCallback callback, Pointer context); - void flib_netconn_onMapChanged(NetconnPtr conn, MapIntCallback callback, Pointer context); - void flib_netconn_onScriptChanged(NetconnPtr conn, StrCallback callback, Pointer context); - void flib_netconn_onWeaponsetChanged(NetconnPtr conn, WeaponsetCallback callback, Pointer context); - void flib_netconn_onServerVar(NetconnPtr conn, StrStrCallback callback, Pointer context); - - // ipc/gameconn.h - - GameconnPtr flib_gameconn_create(String playerName, GameSetupPtr setup, boolean netgame); - GameconnPtr flib_gameconn_create_playdemo(ByteArrayPtr demo, NativeSizeT size); - GameconnPtr flib_gameconn_create_loadgame(String playerName, ByteArrayPtr save, NativeSizeT size); - GameconnPtr flib_gameconn_create_campaign(String playerName, String seed, String script); - - void flib_gameconn_destroy(GameconnPtr conn); - int flib_gameconn_getport(GameconnPtr conn); - void flib_gameconn_tick(GameconnPtr conn); - - int flib_gameconn_send_enginemsg(GameconnPtr conn, ByteArrayPtr data, NativeSizeT len); - int flib_gameconn_send_textmsg(GameconnPtr conn, int msgtype, String msg); - int flib_gameconn_send_chatmsg(GameconnPtr conn, String playername, String msg); - int flib_gameconn_send_quit(GameconnPtr conn); - int flib_gameconn_send_cmd(GameconnPtr conn, String cmdString); - - void flib_gameconn_onConnect(GameconnPtr conn, VoidCallback callback, Pointer context); - void flib_gameconn_onDisconnect(GameconnPtr conn, IntCallback callback, Pointer context); - void flib_gameconn_onErrorMessage(GameconnPtr conn, StrCallback callback, Pointer context); - void flib_gameconn_onChat(GameconnPtr conn, StrBoolCallback callback, Pointer context); - void flib_gameconn_onGameRecorded(GameconnPtr conn, BytesBoolCallback callback, Pointer context); - void flib_gameconn_onEngineMessage(GameconnPtr conn, BytesCallback callback, Pointer context); - - // ipc/mapconn.h - MapconnPtr flib_mapconn_create(MapRecipePtr mapdesc); - void flib_mapconn_destroy(MapconnPtr conn); - int flib_mapconn_getport(MapconnPtr conn); - void flib_mapconn_onSuccess(MapconnPtr conn, MapimageCallback callback, Pointer context); - void flib_mapconn_onFailure(MapconnPtr conn, StrCallback callback, Pointer context); - void flib_mapconn_tick(MapconnPtr conn); - - // model/schemelist.h - SchemelistPtr flib_schemelist_from_ini(String filename); - int flib_schemelist_to_ini(String filename, SchemelistPtr list); - void flib_schemelist_destroy(SchemelistPtr list); - - // model/team.h - TeamPtr flib_team_from_ini(String filename); - int flib_team_to_ini(String filename, TeamPtr team); - void flib_team_destroy(TeamPtr team); - - // model/weapon.h - WeaponsetListPtr flib_weaponsetlist_from_ini(String filename); - int flib_weaponsetlist_to_ini(String filename, WeaponsetListPtr weaponsets); - void flib_weaponsetlist_destroy(WeaponsetListPtr list); - - // model/gamesetup.h - void flib_gamesetup_destroy(GameSetupPtr gamesetup); - - // util/logging.h - void flib_log_setLevel(int level); - void flib_log_setCallback(LogCallback callback); +/* + * Hedgewars, a free turn based strategy game + * Copyright (C) 2012 Simeon Maxein + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * This file is not directly part of the frontlib and is not required to build it. + * However, it is recommended to include it in compilation when building for Android. The purpose of this file + * is to ensure consistency between the function signatures of the JNA Java bindings of the Android port and the + * frontlib functions. + * + * This file, in essence, consists only of function declarations. They are duplicates of function declarations + * from the frontlib headers that are referenced from JNA bindings. If the signature of one of these functions + * changes in the frontlib, it will no longer match the signature in this file, and the compiler will show an error. + * If that happens, you need to update the JNA bindings in Hedgeroid to match the new function signature, and then + * update this file. + * + * The reason for all this is that JNA does not actually know the function signatures of the functions it binds, + * it derives them from Java method declarations. If those do not match the actual function signatures, you will + * only notice when you suddenly get strange (and possibly hard to track down) problems at runtime. This file is + * an attempt to detect these problems at compile time instead. Notice that it will NOT detect changes to structs + * or constants though, which also require updates to the JNA bindings. + */ + +/* + * Before we include the frontlib headers, we define away the const keyword. This is necessary because there is no + * distinction between const and non-const types on the JNA side, and we don't want the compiler to complain because + * of bad constness. + * + * This is so evil, but it works... + */ +#define const + +#include "../frontlib.h" + +/* + * Now we map the Java types to the corresponding C types... + */ +typedef flib_netconn *NetconnPtr; +typedef flib_gameconn *GameconnPtr; +typedef flib_mapconn *MapconnPtr; +typedef flib_metascheme *MetaschemePtr; +typedef flib_room **RoomArrayPtr; +typedef flib_weaponset *WeaponsetPtr; +typedef flib_weaponsetlist *WeaponsetListPtr; +typedef flib_map *MapRecipePtr; +typedef flib_scheme *SchemePtr; +typedef flib_schemelist *SchemelistPtr; + +typedef flib_room *RoomPtr; +typedef flib_team *TeamPtr; +typedef flib_gamesetup *GameSetupPtr; +typedef bool boolean; +typedef size_t NativeSizeT; +typedef void *Pointer; +typedef uint8_t *ByteArrayPtr; +typedef char *String; + +/* + * Mapping callback types + */ +typedef void (*VoidCallback)(Pointer context); +typedef void (*StrCallback)(Pointer context, String arg1); +typedef void (*IntCallback)(Pointer context, int arg1); +typedef void (*IntStrCallback)(Pointer context, int arg1, String arg2); +typedef void (*StrIntCallback)(Pointer context, String arg1, int arg2); +typedef void (*StrStrCallback)(Pointer context, String arg1, String arg2); +typedef void (*StrStrBoolCallback)(Pointer context, String arg1, String arg2, boolean arg3); +typedef void (*RoomCallback)(Pointer context, RoomPtr arg1); +typedef void (*RoomListCallback)(Pointer context, RoomArrayPtr arg1, int arg2); +typedef void (*StrRoomCallback)(Pointer context, String arg1, RoomPtr arg2); +typedef void (*BoolCallback)(Pointer context, boolean arg1); +typedef void (*StrBoolCallback)(Pointer context, String arg1, boolean arg2); +typedef void (*TeamCallback)(Pointer context, TeamPtr arg1); +typedef void (*BytesCallback)(Pointer context, const uint8_t *buffer, NativeSizeT size); +typedef void (*BytesBoolCallback)(Pointer context, const uint8_t *buffer, NativeSizeT size, boolean arg3); +typedef void (*SchemeCallback)(Pointer context, SchemePtr arg1); +typedef void (*MapIntCallback)(Pointer context, MapRecipePtr arg1, int arg2); +typedef void (*WeaponsetCallback)(Pointer context, WeaponsetPtr arg1); +typedef void (*MapimageCallback)(Pointer context, const uint8_t *mapimage, int hogs); +typedef void (*LogCallback)(int arg1, String arg2); + +/* + * Below here are the copypasted method declarations from the JNA bindings + */ + + // frontlib.h + int flib_init(); + void flib_quit(); + + // hwconsts.h + int flib_get_teamcolor_count(); + int flib_get_hedgehogs_per_team(); + int flib_get_weapons_count(); + MetaschemePtr flib_get_metascheme(); + + // net/netconn.h + NetconnPtr flib_netconn_create(String playerName, String dataDirPath, String host, int port); + void flib_netconn_destroy(NetconnPtr conn); + + void flib_netconn_tick(NetconnPtr conn); + boolean flib_netconn_is_chief(NetconnPtr conn); + String flib_netconn_get_playername(NetconnPtr conn); + GameSetupPtr flib_netconn_create_gamesetup(NetconnPtr conn); + int flib_netconn_send_quit(NetconnPtr conn, String quitmsg); + int flib_netconn_send_chat(NetconnPtr conn, String chat); + int flib_netconn_send_teamchat(NetconnPtr conn, String msg); + int flib_netconn_send_password(NetconnPtr conn, String passwd); + int flib_netconn_send_nick(NetconnPtr conn, String nick); + int flib_netconn_send_request_roomlist(NetconnPtr conn); + int flib_netconn_send_joinRoom(NetconnPtr conn, String room); + int flib_netconn_send_createRoom(NetconnPtr conn, String room); + int flib_netconn_send_renameRoom(NetconnPtr conn, String roomName); + int flib_netconn_send_leaveRoom(NetconnPtr conn, String msg); + int flib_netconn_send_toggleReady(NetconnPtr conn); + int flib_netconn_send_addTeam(NetconnPtr conn, TeamPtr team); + int flib_netconn_send_removeTeam(NetconnPtr conn, String teamname); + int flib_netconn_send_engineMessage(NetconnPtr conn, ByteArrayPtr message, NativeSizeT size); + int flib_netconn_send_teamHogCount(NetconnPtr conn, String teamname, int hogcount); + int flib_netconn_send_teamColor(NetconnPtr conn, String teamname, int colorIndex); + int flib_netconn_send_weaponset(NetconnPtr conn, WeaponsetPtr weaponset); + int flib_netconn_send_map(NetconnPtr conn, MapRecipePtr map); + int flib_netconn_send_mapName(NetconnPtr conn, String mapName); + int flib_netconn_send_mapGen(NetconnPtr conn, int mapGen); + int flib_netconn_send_mapTemplate(NetconnPtr conn, int templateFilter); + int flib_netconn_send_mapMazeSize(NetconnPtr conn, int mazeSize); + int flib_netconn_send_mapSeed(NetconnPtr conn, String seed); + int flib_netconn_send_mapTheme(NetconnPtr conn, String theme); + int flib_netconn_send_mapDrawdata(NetconnPtr conn, ByteArrayPtr drawData, NativeSizeT size); + int flib_netconn_send_script(NetconnPtr conn, String scriptName); + int flib_netconn_send_scheme(NetconnPtr conn, SchemePtr scheme); + int flib_netconn_send_roundfinished(NetconnPtr conn, boolean withoutError); + int flib_netconn_send_ban(NetconnPtr conn, String playerName); + int flib_netconn_send_kick(NetconnPtr conn, String playerName); + int flib_netconn_send_playerInfo(NetconnPtr conn, String playerName); + int flib_netconn_send_playerFollow(NetconnPtr conn, String playerName); + int flib_netconn_send_startGame(NetconnPtr conn); + int flib_netconn_send_toggleRestrictJoins(NetconnPtr conn); + int flib_netconn_send_toggleRestrictTeams(NetconnPtr conn); + int flib_netconn_send_clearAccountsCache(NetconnPtr conn); + int flib_netconn_send_setServerVar(NetconnPtr conn, String name, String value); + int flib_netconn_send_getServerVars(NetconnPtr conn); + + void flib_netconn_onMessage(NetconnPtr conn, IntStrCallback callback, Pointer context); + void flib_netconn_onClientFlags(NetconnPtr conn, StrStrBoolCallback callback, Pointer context); + void flib_netconn_onChat(NetconnPtr conn, StrStrCallback callback, Pointer context); + void flib_netconn_onConnected(NetconnPtr conn, VoidCallback callback, Pointer context); + void flib_netconn_onDisconnected(NetconnPtr conn, IntStrCallback callback, Pointer context); + void flib_netconn_onRoomlist(NetconnPtr conn, RoomListCallback callback, Pointer context); + void flib_netconn_onRoomAdd(NetconnPtr conn, RoomCallback callback, Pointer context); + void flib_netconn_onRoomDelete(NetconnPtr conn, StrCallback callback, Pointer context); + void flib_netconn_onRoomUpdate(NetconnPtr conn, StrRoomCallback callback, Pointer context); + void flib_netconn_onLobbyJoin(NetconnPtr conn, StrCallback callback, Pointer context); + void flib_netconn_onLobbyLeave(NetconnPtr conn, StrStrCallback callback, Pointer context); + void flib_netconn_onNickTaken(NetconnPtr conn, StrCallback callback, Pointer context); + void flib_netconn_onPasswordRequest(NetconnPtr conn, StrCallback callback, Pointer context); + void flib_netconn_onEnterRoom(NetconnPtr conn, BoolCallback callback, Pointer context); + void flib_netconn_onLeaveRoom(NetconnPtr conn, IntStrCallback callback, Pointer context); + void flib_netconn_onTeamAdd(NetconnPtr conn, TeamCallback callback, Pointer context); + void flib_netconn_onTeamDelete(NetconnPtr conn, StrCallback callback, Pointer context); + void flib_netconn_onRoomJoin(NetconnPtr conn, StrCallback callback, Pointer context); + void flib_netconn_onRoomLeave(NetconnPtr conn, StrStrCallback callback, Pointer context); + void flib_netconn_onRunGame(NetconnPtr conn, VoidCallback callback, Pointer context); + void flib_netconn_onTeamAccepted(NetconnPtr conn, StrCallback callback, Pointer context); + void flib_netconn_onHogCountChanged(NetconnPtr conn, StrIntCallback callback, Pointer context); + void flib_netconn_onTeamColorChanged(NetconnPtr conn, StrIntCallback callback, Pointer context); + void flib_netconn_onEngineMessage(NetconnPtr conn, BytesCallback callback, Pointer context); + void flib_netconn_onSchemeChanged(NetconnPtr conn, SchemeCallback callback, Pointer context); + void flib_netconn_onMapChanged(NetconnPtr conn, MapIntCallback callback, Pointer context); + void flib_netconn_onScriptChanged(NetconnPtr conn, StrCallback callback, Pointer context); + void flib_netconn_onWeaponsetChanged(NetconnPtr conn, WeaponsetCallback callback, Pointer context); + void flib_netconn_onServerVar(NetconnPtr conn, StrStrCallback callback, Pointer context); + + // ipc/gameconn.h + + GameconnPtr flib_gameconn_create(String playerName, GameSetupPtr setup, boolean netgame); + GameconnPtr flib_gameconn_create_playdemo(ByteArrayPtr demo, NativeSizeT size); + GameconnPtr flib_gameconn_create_loadgame(String playerName, ByteArrayPtr save, NativeSizeT size); + GameconnPtr flib_gameconn_create_campaign(String playerName, String seed, String script); + + void flib_gameconn_destroy(GameconnPtr conn); + int flib_gameconn_getport(GameconnPtr conn); + void flib_gameconn_tick(GameconnPtr conn); + + int flib_gameconn_send_enginemsg(GameconnPtr conn, ByteArrayPtr data, NativeSizeT len); + int flib_gameconn_send_textmsg(GameconnPtr conn, int msgtype, String msg); + int flib_gameconn_send_chatmsg(GameconnPtr conn, String playername, String msg); + int flib_gameconn_send_quit(GameconnPtr conn); + int flib_gameconn_send_cmd(GameconnPtr conn, String cmdString); + + void flib_gameconn_onConnect(GameconnPtr conn, VoidCallback callback, Pointer context); + void flib_gameconn_onDisconnect(GameconnPtr conn, IntCallback callback, Pointer context); + void flib_gameconn_onErrorMessage(GameconnPtr conn, StrCallback callback, Pointer context); + void flib_gameconn_onChat(GameconnPtr conn, StrBoolCallback callback, Pointer context); + void flib_gameconn_onGameRecorded(GameconnPtr conn, BytesBoolCallback callback, Pointer context); + void flib_gameconn_onEngineMessage(GameconnPtr conn, BytesCallback callback, Pointer context); + + // ipc/mapconn.h + MapconnPtr flib_mapconn_create(MapRecipePtr mapdesc); + void flib_mapconn_destroy(MapconnPtr conn); + int flib_mapconn_getport(MapconnPtr conn); + void flib_mapconn_onSuccess(MapconnPtr conn, MapimageCallback callback, Pointer context); + void flib_mapconn_onFailure(MapconnPtr conn, StrCallback callback, Pointer context); + void flib_mapconn_tick(MapconnPtr conn); + + // model/schemelist.h + SchemelistPtr flib_schemelist_from_ini(String filename); + int flib_schemelist_to_ini(String filename, SchemelistPtr list); + void flib_schemelist_destroy(SchemelistPtr list); + + // model/team.h + TeamPtr flib_team_from_ini(String filename); + int flib_team_to_ini(String filename, TeamPtr team); + void flib_team_destroy(TeamPtr team); + + // model/weapon.h + WeaponsetListPtr flib_weaponsetlist_from_ini(String filename); + int flib_weaponsetlist_to_ini(String filename, WeaponsetListPtr weaponsets); + void flib_weaponsetlist_destroy(WeaponsetListPtr list); + + // model/gamesetup.h + void flib_gamesetup_destroy(GameSetupPtr gamesetup); + + // util/logging.h + void flib_log_setLevel(int level); + void flib_log_setCallback(LogCallback callback);