7482
|
1 |
/*
|
|
2 |
* Hedgewars, a free turn based strategy game
|
|
3 |
* Copyright (C) 2012 Simeon Maxein <smaxein@googlemail.com>
|
|
4 |
*
|
|
5 |
* This program is free software; you can redistribute it and/or
|
|
6 |
* modify it under the terms of the GNU General Public License
|
|
7 |
* as published by the Free Software Foundation; either version 2
|
|
8 |
* of the License, or (at your option) any later version.
|
|
9 |
*
|
|
10 |
* This program is distributed in the hope that it will be useful,
|
|
11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13 |
* GNU General Public License for more details.
|
|
14 |
*
|
|
15 |
* You should have received a copy of the GNU General Public License
|
|
16 |
* along with this program; if not, write to the Free Software
|
|
17 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
18 |
*/
|
|
19 |
|
|
20 |
/*
|
|
21 |
* This file is not directly part of the frontlib and is not required to build it.
|
|
22 |
* However, it is recommended to include it in compilation when building for Android. The purpose of this file
|
|
23 |
* is to ensure consistency between the function signatures of the JNA Java bindings of the Android port and the
|
|
24 |
* frontlib functions.
|
|
25 |
*
|
|
26 |
* This file, in essence, consists only of function declarations. They are duplicates of function declarations
|
|
27 |
* from the frontlib headers that are referenced from JNA bindings. If the signature of one of these functions
|
|
28 |
* changes in the frontlib, it will no longer match the signature in this file, and the compiler will show an error.
|
|
29 |
* If that happens, you need to update the JNA bindings in Hedgeroid to match the new function signature, and then
|
|
30 |
* update this file.
|
|
31 |
*
|
|
32 |
* The reason for all this is that JNA does not actually know the function signatures of the functions it binds,
|
|
33 |
* it derives them from Java method declarations. If those do not match the actual function signatures, you will
|
|
34 |
* only notice when you suddenly get strange (and possibly hard to track down) problems at runtime. This file is
|
|
35 |
* an attempt to detect these problems at compile time instead. Notice that it will NOT detect changes to structs
|
|
36 |
* or constants though, which also require updates to the JNA bindings.
|
|
37 |
*/
|
|
38 |
|
|
39 |
/*
|
|
40 |
* Before we include the frontlib headers, we define away the const keyword. This is necessary because there is no
|
|
41 |
* distinction between const and non-const types on the JNA side, and we don't want the compiler to complain because
|
|
42 |
* of bad constness.
|
|
43 |
*
|
|
44 |
* This is so evil, but it works...
|
|
45 |
*/
|
|
46 |
#define const
|
|
47 |
|
|
48 |
#include "../frontlib.h"
|
|
49 |
|
|
50 |
/*
|
|
51 |
* Now we map the Java types to the corresponding C types...
|
|
52 |
*/
|
|
53 |
typedef flib_netconn *NetconnPtr;
|
|
54 |
typedef flib_gameconn *GameconnPtr;
|
|
55 |
typedef flib_mapconn *MapconnPtr;
|
|
56 |
typedef flib_metascheme *MetaschemePtr;
|
|
57 |
typedef flib_room **RoomArrayPtr;
|
|
58 |
typedef flib_weaponset *WeaponsetPtr;
|
|
59 |
typedef flib_weaponsetlist *WeaponsetListPtr;
|
|
60 |
typedef flib_map *MapRecipePtr;
|
|
61 |
typedef flib_scheme *SchemePtr;
|
|
62 |
typedef flib_schemelist *SchemelistPtr;
|
|
63 |
|
|
64 |
typedef flib_room *RoomPtr;
|
|
65 |
typedef flib_team *TeamPtr;
|
|
66 |
typedef flib_gamesetup *GameSetupPtr;
|
|
67 |
typedef bool boolean;
|
|
68 |
typedef size_t NativeLong;
|
|
69 |
typedef void *Pointer;
|
|
70 |
typedef char *String;
|
|
71 |
typedef uint8_t *Buffer;
|
|
72 |
|
|
73 |
/*
|
|
74 |
* Mapping callback types
|
|
75 |
*/
|
|
76 |
typedef void (*VoidCallback)(Pointer context);
|
|
77 |
typedef void (*StrCallback)(Pointer context, String arg1);
|
|
78 |
typedef void (*IntCallback)(Pointer context, int arg1);
|
|
79 |
typedef void (*IntStrCallback)(Pointer context, int arg1, String arg2);
|
|
80 |
typedef void (*StrIntCallback)(Pointer context, String arg1, int arg2);
|
|
81 |
typedef void (*StrStrCallback)(Pointer context, String arg1, String arg2);
|
|
82 |
typedef void (*RoomCallback)(Pointer context, RoomPtr arg1);
|
|
83 |
typedef void (*RoomListCallback)(Pointer context, RoomArrayPtr arg1, int arg2);
|
|
84 |
typedef void (*StrRoomCallback)(Pointer context, String arg1, RoomPtr arg2);
|
|
85 |
typedef void (*BoolCallback)(Pointer context, boolean arg1);
|
|
86 |
typedef void (*StrBoolCallback)(Pointer context, String arg1, boolean arg2);
|
|
87 |
typedef void (*TeamCallback)(Pointer context, TeamPtr arg1);
|
|
88 |
typedef void (*BytesCallback)(Pointer context, const uint8_t *buffer, NativeLong size);
|
|
89 |
typedef void (*BytesBoolCallback)(Pointer context, const uint8_t *buffer, NativeLong size, boolean arg3);
|
|
90 |
typedef void (*SchemeCallback)(Pointer context, SchemePtr arg1);
|
|
91 |
typedef void (*MapIntCallback)(Pointer context, MapRecipePtr arg1, int arg2);
|
|
92 |
typedef void (*WeaponsetCallback)(Pointer context, WeaponsetPtr arg1);
|
|
93 |
typedef void (*MapimageCallback)(Pointer context, const uint8_t *mapimage, int hogs);
|
|
94 |
typedef void (*LogCallback)(int arg1, String arg2);
|
|
95 |
|
|
96 |
/*
|
|
97 |
* Below here are the copypasted method declarations from the JNA bindings
|
|
98 |
*/
|
|
99 |
|
|
100 |
// frontlib.h
|
|
101 |
int flib_init();
|
|
102 |
void flib_quit();
|
|
103 |
|
|
104 |
// net/netconn.h
|
|
105 |
NetconnPtr flib_netconn_create(String playerName, MetaschemePtr meta, String dataDirPath, String host, int port);
|
|
106 |
void flib_netconn_destroy(NetconnPtr conn);
|
|
107 |
|
|
108 |
void flib_netconn_tick(NetconnPtr conn);
|
|
109 |
boolean flib_netconn_is_chief(NetconnPtr conn);
|
|
110 |
String flib_netconn_get_playername(NetconnPtr conn);
|
|
111 |
GameSetupPtr flib_netconn_create_gamesetup(NetconnPtr conn);
|
|
112 |
int flib_netconn_send_quit(NetconnPtr conn, String quitmsg);
|
|
113 |
int flib_netconn_send_chat(NetconnPtr conn, String chat);
|
|
114 |
int flib_netconn_send_teamchat(NetconnPtr conn, String msg);
|
|
115 |
int flib_netconn_send_password(NetconnPtr conn, String passwd);
|
|
116 |
int flib_netconn_send_nick(NetconnPtr conn, String nick);
|
|
117 |
int flib_netconn_send_request_roomlist(NetconnPtr conn);
|
|
118 |
int flib_netconn_send_joinRoom(NetconnPtr conn, String room);
|
|
119 |
int flib_netconn_send_createRoom(NetconnPtr conn, String room);
|
|
120 |
int flib_netconn_send_renameRoom(NetconnPtr conn, String roomName);
|
|
121 |
int flib_netconn_send_leaveRoom(NetconnPtr conn, String msg);
|
|
122 |
int flib_netconn_send_toggleReady(NetconnPtr conn);
|
|
123 |
int flib_netconn_send_addTeam(NetconnPtr conn, TeamPtr team);
|
|
124 |
int flib_netconn_send_removeTeam(NetconnPtr conn, String teamname);
|
|
125 |
int flib_netconn_send_engineMessage(NetconnPtr conn, Buffer message, NativeLong size);
|
|
126 |
int flib_netconn_send_teamHogCount(NetconnPtr conn, String teamname, int hogcount);
|
|
127 |
int flib_netconn_send_teamColor(NetconnPtr conn, String teamname, int colorIndex);
|
|
128 |
int flib_netconn_send_weaponset(NetconnPtr conn, WeaponsetPtr weaponset);
|
|
129 |
int flib_netconn_send_map(NetconnPtr conn, MapRecipePtr map);
|
|
130 |
int flib_netconn_send_mapName(NetconnPtr conn, String mapName);
|
|
131 |
int flib_netconn_send_mapGen(NetconnPtr conn, int mapGen);
|
|
132 |
int flib_netconn_send_mapTemplate(NetconnPtr conn, int templateFilter);
|
|
133 |
int flib_netconn_send_mapMazeSize(NetconnPtr conn, int mazeSize);
|
|
134 |
int flib_netconn_send_mapSeed(NetconnPtr conn, String seed);
|
|
135 |
int flib_netconn_send_mapTheme(NetconnPtr conn, String theme);
|
|
136 |
int flib_netconn_send_mapDrawdata(NetconnPtr conn, Buffer drawData, NativeLong size);
|
|
137 |
int flib_netconn_send_script(NetconnPtr conn, String scriptName);
|
|
138 |
int flib_netconn_send_scheme(NetconnPtr conn, SchemePtr scheme);
|
|
139 |
int flib_netconn_send_roundfinished(NetconnPtr conn, boolean withoutError);
|
|
140 |
int flib_netconn_send_ban(NetconnPtr conn, String playerName);
|
|
141 |
int flib_netconn_send_kick(NetconnPtr conn, String playerName);
|
|
142 |
int flib_netconn_send_playerInfo(NetconnPtr conn, String playerName);
|
|
143 |
int flib_netconn_send_playerFollow(NetconnPtr conn, String playerName);
|
|
144 |
int flib_netconn_send_startGame(NetconnPtr conn);
|
|
145 |
int flib_netconn_send_toggleRestrictJoins(NetconnPtr conn);
|
|
146 |
int flib_netconn_send_toggleRestrictTeams(NetconnPtr conn);
|
|
147 |
int flib_netconn_send_clearAccountsCache(NetconnPtr conn);
|
|
148 |
int flib_netconn_send_setServerVar(NetconnPtr conn, String name, String value);
|
|
149 |
int flib_netconn_send_getServerVars(NetconnPtr conn);
|
|
150 |
|
|
151 |
void flib_netconn_onMessage(NetconnPtr conn, IntStrCallback callback, Pointer context);
|
|
152 |
void flib_netconn_onChat(NetconnPtr conn, StrStrCallback callback, Pointer context);
|
|
153 |
void flib_netconn_onConnected(NetconnPtr conn, VoidCallback callback, Pointer context);
|
|
154 |
void flib_netconn_onDisconnected(NetconnPtr conn, IntStrCallback callback, Pointer context);
|
|
155 |
void flib_netconn_onRoomlist(NetconnPtr conn, RoomListCallback callback, Pointer context);
|
|
156 |
void flib_netconn_onRoomAdd(NetconnPtr conn, RoomCallback callback, Pointer context);
|
|
157 |
void flib_netconn_onRoomDelete(NetconnPtr conn, StrCallback callback, Pointer context);
|
|
158 |
void flib_netconn_onRoomUpdate(NetconnPtr conn, StrRoomCallback callback, Pointer context);
|
|
159 |
void flib_netconn_onLobbyJoin(NetconnPtr conn, StrCallback callback, Pointer context);
|
|
160 |
void flib_netconn_onLobbyLeave(NetconnPtr conn, StrStrCallback callback, Pointer context);
|
|
161 |
void flib_netconn_onNickTaken(NetconnPtr conn, StrCallback callback, Pointer context);
|
|
162 |
void flib_netconn_onPasswordRequest(NetconnPtr conn, StrCallback callback, Pointer context);
|
|
163 |
void flib_netconn_onEnterRoom(NetconnPtr conn, BoolCallback callback, Pointer context);
|
|
164 |
void flib_netconn_onRoomChiefStatus(NetconnPtr conn, BoolCallback callback, Pointer context);
|
|
165 |
void flib_netconn_onReadyState(NetconnPtr conn, StrBoolCallback callback, Pointer context);
|
|
166 |
void flib_netconn_onLeaveRoom(NetconnPtr conn, IntStrCallback callback, Pointer context);
|
|
167 |
void flib_netconn_onTeamAdd(NetconnPtr conn, TeamCallback callback, Pointer context);
|
|
168 |
void flib_netconn_onTeamDelete(NetconnPtr conn, StrCallback callback, Pointer context);
|
|
169 |
void flib_netconn_onRoomJoin(NetconnPtr conn, StrCallback callback, Pointer context);
|
|
170 |
void flib_netconn_onRoomLeave(NetconnPtr conn, StrStrCallback callback, Pointer context);
|
|
171 |
void flib_netconn_onRunGame(NetconnPtr conn, VoidCallback callback, Pointer context);
|
|
172 |
void flib_netconn_onTeamAccepted(NetconnPtr conn, StrCallback callback, Pointer context);
|
|
173 |
void flib_netconn_onHogCountChanged(NetconnPtr conn, StrIntCallback callback, Pointer context);
|
|
174 |
void flib_netconn_onTeamColorChanged(NetconnPtr conn, StrIntCallback callback, Pointer context);
|
|
175 |
void flib_netconn_onEngineMessage(NetconnPtr conn, BytesCallback callback, Pointer context);
|
|
176 |
void flib_netconn_onCfgScheme(NetconnPtr conn, SchemeCallback callback, Pointer context);
|
|
177 |
void flib_netconn_onMapChanged(NetconnPtr conn, MapIntCallback callback, Pointer context);
|
|
178 |
void flib_netconn_onScriptChanged(NetconnPtr conn, StrCallback callback, Pointer context);
|
|
179 |
void flib_netconn_onWeaponsetChanged(NetconnPtr conn, WeaponsetCallback callback, Pointer context);
|
|
180 |
void flib_netconn_onAdminAccess(NetconnPtr conn, VoidCallback callback, Pointer context);
|
|
181 |
void flib_netconn_onServerVar(NetconnPtr conn, StrStrCallback callback, Pointer context);
|
|
182 |
|
|
183 |
// ipc/gameconn.h
|
|
184 |
GameconnPtr flib_gameconn_create(String playerName, GameSetupPtr setup, boolean netgame);
|
|
185 |
GameconnPtr flib_gameconn_create_playdemo(Buffer demo, NativeLong size);
|
|
186 |
GameconnPtr flib_gameconn_create_loadgame(String playerName, Buffer save, NativeLong size);
|
|
187 |
GameconnPtr flib_gameconn_create_campaign(String playerName, String seed, String script);
|
|
188 |
|
|
189 |
void flib_gameconn_destroy(GameconnPtr conn);
|
|
190 |
int flib_gameconn_getport(GameconnPtr conn);
|
|
191 |
void flib_gameconn_tick(GameconnPtr conn);
|
|
192 |
|
|
193 |
int flib_gameconn_send_enginemsg(GameconnPtr conn, Buffer data, NativeLong len);
|
|
194 |
int flib_gameconn_send_textmsg(GameconnPtr conn, int msgtype, String msg);
|
|
195 |
int flib_gameconn_send_chatmsg(GameconnPtr conn, String playername, String msg);
|
|
196 |
int flib_gameconn_send_quit(GameconnPtr conn);
|
|
197 |
|
|
198 |
void flib_gameconn_onConnect(GameconnPtr conn, VoidCallback callback, Pointer context);
|
|
199 |
void flib_gameconn_onDisconnect(GameconnPtr conn, IntCallback callback, Pointer context);
|
|
200 |
void flib_gameconn_onErrorMessage(GameconnPtr conn, StrCallback callback, Pointer context);
|
|
201 |
void flib_gameconn_onChat(GameconnPtr conn, StrBoolCallback callback, Pointer context);
|
|
202 |
void flib_gameconn_onGameRecorded(GameconnPtr conn, BytesBoolCallback callback, Pointer context);
|
|
203 |
void flib_gameconn_onEngineMessage(GameconnPtr conn, BytesCallback callback, Pointer context);
|
|
204 |
|
|
205 |
// ipc/mapconn.h
|
|
206 |
MapconnPtr flib_mapconn_create(MapRecipePtr mapdesc);
|
|
207 |
void flib_mapconn_destroy(MapconnPtr conn);
|
|
208 |
int flib_mapconn_getport(MapconnPtr conn);
|
|
209 |
void flib_mapconn_onSuccess(MapconnPtr conn, MapimageCallback callback, Pointer context);
|
|
210 |
void flib_mapconn_onFailure(MapconnPtr conn, StrCallback callback, Pointer context);
|
|
211 |
void flib_mapconn_tick(MapconnPtr conn);
|
|
212 |
|
|
213 |
// model/scheme.h
|
|
214 |
MetaschemePtr flib_metascheme_from_ini(String filename);
|
|
215 |
MetaschemePtr flib_metascheme_retain(MetaschemePtr metainfo);
|
|
216 |
void flib_metascheme_release(MetaschemePtr metainfo);
|
|
217 |
|
|
218 |
// model/schemelist.h
|
|
219 |
SchemelistPtr flib_schemelist_from_ini(MetaschemePtr meta, String filename);
|
|
220 |
int flib_schemelist_to_ini(String filename, SchemelistPtr list);
|
|
221 |
void flib_schemelist_destroy(SchemelistPtr list);
|
|
222 |
|
|
223 |
// model/team.h
|
|
224 |
TeamPtr flib_team_from_ini(String filename);
|
|
225 |
int flib_team_to_ini(String filename, TeamPtr team);
|
|
226 |
void flib_team_destroy(TeamPtr team);
|
|
227 |
|
|
228 |
// model/weapon.h
|
|
229 |
WeaponsetListPtr flib_weaponsetlist_from_ini(String filename);
|
|
230 |
int flib_weaponsetlist_to_ini(String filename, WeaponsetListPtr weaponsets);
|
|
231 |
void flib_weaponsetlist_destroy(WeaponsetListPtr list);
|
|
232 |
|
|
233 |
// util/logging.h
|
|
234 |
void flib_log_setLevel(int level);
|
|
235 |
void flib_log_setCallback(LogCallback callback);
|