-
Notifications
You must be signed in to change notification settings - Fork 304
/
btanks-0.9.8083.patchset
341 lines (291 loc) · 13.4 KB
/
btanks-0.9.8083.patchset
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
From 2eb219a77d0f2ea6dc87be2cb054a7ea06f6e457 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Sun, 17 May 2015 18:03:50 +0000
Subject: Haiku patch
diff --git a/SConstruct b/SConstruct
index afdb48f..5637922 100644
--- a/SConstruct
+++ b/SConstruct
@@ -102,8 +102,8 @@ else:
env.Append(CCFLAGS=['-O3'])
env.Append(CPPFLAGS=['-O3'])
- env.Append(CPPFLAGS=['-Wall', '-Wno-deprecated', '-pedantic', '-Wno-long-long', '-pipe', '-pthread'])
- env.Append(CCFLAGS=['-Wall', '-Wno-deprecated', '-pedantic', '-Wno-long-long', '-pipe', '-pthread'])
+ env.Append(CPPFLAGS=['-Wall', '-Wno-deprecated', '-pedantic', '-Wno-long-long', '-pipe'])
+ env.Append(CCFLAGS=['-Wall', '-Wno-deprecated', '-pedantic', '-Wno-long-long', '-pipe'])
conf_env = env.Clone()
@@ -154,7 +154,10 @@ if sys.platform == 'win32':
Exit(1)
if sys.platform != 'win32':
- have_sse = conf.CheckLibWithHeader('m', "xmmintrin.h", 'c', '_mm_set_ss(1.0f);', False)
+ if sys.platform != 'haiku1':
+ have_sse = conf.CheckLibWithHeader('m', "xmmintrin.h", 'c', '_mm_set_ss(1.0f);', False)
+ else:
+ have_sse = False
else:
have_sse = conf.CheckLibWithHeader('kernel32', "xmmintrin.h", 'c', '_mm_set_ss(1.0f);', False) # hackish lib :(
diff --git a/clunk/SConscript b/clunk/SConscript
index d528be8..4211daf 100644
--- a/clunk/SConscript
+++ b/clunk/SConscript
@@ -17,7 +17,8 @@ clunk_libs = ['SDL']
if sys.platform != 'win32':
env.Append(LINKFLAGS=['-Wl,-rpath,'+ lib_dir])
- clunk_libs.append('m')
+ if sys.platform != 'haiku1':
+ clunk_libs.append('m')
env.MergeFlags(sdl_cflags, sdl_libs)
diff --git a/clunk/source.cpp b/clunk/source.cpp
index d7829c8..64bfc5a 100644
--- a/clunk/source.cpp
+++ b/clunk/source.cpp
@@ -27,7 +27,7 @@
#include <assert.h>
#include "clunk_assert.h"
-#if defined _MSC_VER || __APPLE__ || __FreeBSD__
+#if defined _MSC_VER || __APPLE__ || __FreeBSD__ || __HAIKU__
# define pow10f(x) powf(10.0f, (x))
# define log2f(x) (logf(x) / M_LN2)
#endif
diff --git a/engine/luaxx/state.cpp b/engine/luaxx/state.cpp
index 4bd218d..8ac233d 100644
--- a/engine/luaxx/state.cpp
+++ b/engine/luaxx/state.cpp
@@ -5,6 +5,10 @@
#include <assert.h>
#include "mrt/chunk.h"
+#ifndef lua_open
+#define lua_open() luaL_newstate()
+#endif
+
using namespace luaxx;
/*
static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) {
@@ -59,7 +63,7 @@ static const char * chunk_reader(lua_State *L, void *data, size_t *size) {
void State::load(const std::string &fname, const mrt::Chunk &data) {
//throw_ex(("implement me[%s]", fname.c_str()));
reader_state x(data);
- int err = lua_load(state, chunk_reader, &x, fname.c_str());
+ int err = lua_load(state, chunk_reader, &x, fname.c_str(), NULL);
check_error(state, err);
}
diff --git a/engine/sl08/sl08.h b/engine/sl08/sl08.h
index dd06f9e..92fc8dd 100644
--- a/engine/sl08/sl08.h
+++ b/engine/sl08/sl08.h
@@ -22,6 +22,7 @@
/* DO NOT MODIFY THIS FILE: IT'S AUTOGENERATED */
#include <list>
+#include <cstddef>
#ifndef NULL
#define NULL ((void*) 0)
@@ -117,7 +118,7 @@ namespace sl08 {
inline slot0 () : object(NULL), func(NULL) {}
inline slot0 (object_type *object, func_t func) : object(object), func(func) {}
inline void assign(object_type *o, func_t f) { object = o; func = f; }
- inline void assign(object_type *o, func_t f, signal_type &signal_ref) { object = o; func = f; connect(signal_ref); }
+ inline void assign(object_type *o, func_t f, signal_type &signal_ref) { object = o; func = f; this->connect(signal_ref); }
inline void operator() () const {
(object->*func) ();
@@ -271,7 +272,7 @@ namespace sl08 {
inline slot1(object_type *object, func_t func, signal_type * signal = NULL) : object(object), func(func) {}
inline void assign(object_type *o, func_t f) { object = o; func = f; }
- inline void assign(object_type *o, func_t f, signal_type &signal_ref = NULL) { object = o; func = f; connect(signal_ref); }
+ inline void assign(object_type *o, func_t f, signal_type &signal_ref = NULL) { object = o; func = f; this->connect(signal_ref); }
inline return_type operator() (arg1_type a1) const {
return (object->*func) (a1) ;
@@ -292,7 +293,7 @@ namespace sl08 {
inline slot1 () : object(NULL), func(NULL) {}
inline slot1 (object_type *object, func_t func) : object(object), func(func) {}
inline void assign(object_type *o, func_t f) { object = o; func = f; }
- inline void assign(object_type *o, func_t f, signal_type &signal_ref) { object = o; func = f; connect(signal_ref); }
+ inline void assign(object_type *o, func_t f, signal_type &signal_ref) { object = o; func = f; this->connect(signal_ref); }
inline void operator() (arg1_type a1) const {
(object->*func) (a1);
@@ -446,7 +447,7 @@ namespace sl08 {
inline slot2(object_type *object, func_t func, signal_type * signal = NULL) : object(object), func(func) {}
inline void assign(object_type *o, func_t f) { object = o; func = f; }
- inline void assign(object_type *o, func_t f, signal_type &signal_ref = NULL) { object = o; func = f; connect(signal_ref); }
+ inline void assign(object_type *o, func_t f, signal_type &signal_ref = NULL) { object = o; func = f; this->connect(signal_ref); }
inline return_type operator() (arg1_type a1, arg2_type a2) const {
return (object->*func) (a1, a2) ;
@@ -467,7 +468,7 @@ namespace sl08 {
inline slot2 () : object(NULL), func(NULL) {}
inline slot2 (object_type *object, func_t func) : object(object), func(func) {}
inline void assign(object_type *o, func_t f) { object = o; func = f; }
- inline void assign(object_type *o, func_t f, signal_type &signal_ref) { object = o; func = f; connect(signal_ref); }
+ inline void assign(object_type *o, func_t f, signal_type &signal_ref) { object = o; func = f; this->connect(signal_ref); }
inline void operator() (arg1_type a1, arg2_type a2) const {
(object->*func) (a1, a2);
@@ -621,7 +622,7 @@ namespace sl08 {
inline slot3(object_type *object, func_t func, signal_type * signal = NULL) : object(object), func(func) {}
inline void assign(object_type *o, func_t f) { object = o; func = f; }
- inline void assign(object_type *o, func_t f, signal_type &signal_ref = NULL) { object = o; func = f; connect(signal_ref); }
+ inline void assign(object_type *o, func_t f, signal_type &signal_ref = NULL) { object = o; func = f; this->connect(signal_ref); }
inline return_type operator() (arg1_type a1, arg2_type a2, arg3_type a3) const {
return (object->*func) (a1, a2, a3) ;
@@ -642,7 +643,7 @@ namespace sl08 {
inline slot3 () : object(NULL), func(NULL) {}
inline slot3 (object_type *object, func_t func) : object(object), func(func) {}
inline void assign(object_type *o, func_t f) { object = o; func = f; }
- inline void assign(object_type *o, func_t f, signal_type &signal_ref) { object = o; func = f; connect(signal_ref); }
+ inline void assign(object_type *o, func_t f, signal_type &signal_ref) { object = o; func = f; this->connect(signal_ref); }
inline void operator() (arg1_type a1, arg2_type a2, arg3_type a3) const {
(object->*func) (a1, a2, a3);
@@ -796,7 +797,7 @@ namespace sl08 {
inline slot4(object_type *object, func_t func, signal_type * signal = NULL) : object(object), func(func) {}
inline void assign(object_type *o, func_t f) { object = o; func = f; }
- inline void assign(object_type *o, func_t f, signal_type &signal_ref = NULL) { object = o; func = f; connect(signal_ref); }
+ inline void assign(object_type *o, func_t f, signal_type &signal_ref = NULL) { object = o; func = f; this->connect(signal_ref); }
inline return_type operator() (arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4) const {
return (object->*func) (a1, a2, a3, a4) ;
@@ -817,7 +818,7 @@ namespace sl08 {
inline slot4 () : object(NULL), func(NULL) {}
inline slot4 (object_type *object, func_t func) : object(object), func(func) {}
inline void assign(object_type *o, func_t f) { object = o; func = f; }
- inline void assign(object_type *o, func_t f, signal_type &signal_ref) { object = o; func = f; connect(signal_ref); }
+ inline void assign(object_type *o, func_t f, signal_type &signal_ref) { object = o; func = f; this->connect(signal_ref); }
inline void operator() (arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4) const {
(object->*func) (a1, a2, a3, a4);
@@ -971,7 +972,7 @@ namespace sl08 {
inline slot5(object_type *object, func_t func, signal_type * signal = NULL) : object(object), func(func) {}
inline void assign(object_type *o, func_t f) { object = o; func = f; }
- inline void assign(object_type *o, func_t f, signal_type &signal_ref = NULL) { object = o; func = f; connect(signal_ref); }
+ inline void assign(object_type *o, func_t f, signal_type &signal_ref = NULL) { object = o; func = f; this->connect(signal_ref); }
inline return_type operator() (arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5) const {
return (object->*func) (a1, a2, a3, a4, a5) ;
@@ -992,7 +993,7 @@ namespace sl08 {
inline slot5 () : object(NULL), func(NULL) {}
inline slot5 (object_type *object, func_t func) : object(object), func(func) {}
inline void assign(object_type *o, func_t f) { object = o; func = f; }
- inline void assign(object_type *o, func_t f, signal_type &signal_ref) { object = o; func = f; connect(signal_ref); }
+ inline void assign(object_type *o, func_t f, signal_type &signal_ref) { object = o; func = f; this->connect(signal_ref); }
inline void operator() (arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, arg5_type a5) const {
(object->*func) (a1, a2, a3, a4, a5);
diff --git a/math/range_list.h b/math/range_list.h
index 4d73341..c47fc13 100644
--- a/math/range_list.h
+++ b/math/range_list.h
@@ -53,14 +53,14 @@ public:
return;
}
- typename parent_type::iterator i = lower_bound(value);
+ typename parent_type::iterator i = this->lower_bound(value);
if (i != parent_type::end()) {
if (i->first == value)
return;
if (value + 1 == i->first) {
T e = i->second;
- erase(i);
+ this->erase(i);
i = parent_type::insert(typename parent_type::value_type(value, e)).first; //expand beginning
i = pack_left(i);
}
diff --git a/mrt/SConscript b/mrt/SConscript
index 2660d69..8b59e3b 100644
--- a/mrt/SConscript
+++ b/mrt/SConscript
@@ -10,6 +10,8 @@ libs = ['expat', 'z']
if sys.platform == "win32":
libs.append('Ws2_32')
libs.append('shell32')
+if sys.platform == "haiku1":
+ libs.append('bnetapi')
mrt = env.SharedLibrary('mrt', \
['exception.cpp', 'fmt.cpp', 'ioexception.cpp', 'logger.cpp', 'chunk.cpp', 'random.cpp',
diff --git a/mrt/sys_socket.cpp b/mrt/sys_socket.cpp
index 4212a76..f276894 100644
--- a/mrt/sys_socket.cpp
+++ b/mrt/sys_socket.cpp
@@ -34,6 +34,7 @@
#include <assert.h>
#include <stdlib.h>
+#include <sys/time.h>
using namespace mrt;
diff --git a/mrt/udp_socket.cpp b/mrt/udp_socket.cpp
index 19c2756..d352f5d 100644
--- a/mrt/udp_socket.cpp
+++ b/mrt/udp_socket.cpp
@@ -37,6 +37,8 @@
# include <netinet/ip.h> /* superset of previous */
# include <arpa/inet.h>
# include <netdb.h>
+#define _BSD_SOURCE
+# include <ifaddrs.h>
#endif
diff --git a/sdlx/SConscript b/sdlx/SConscript
index ede453b..dd8bc93 100644
--- a/sdlx/SConscript
+++ b/sdlx/SConscript
@@ -19,11 +19,12 @@ if sys.platform != "win32":
#c_map_env.Append(CXXFLAGS=['-fforce-addr', '-fprefetch-loop-arrays'])
c_map = c_map_env.SharedObject('c_map.cpp')
#libs.append('GL')
- libs.append('rt')
- libs.append('X11')
+ if sys.platform != "haiku1":
+ libs.append('rt')
+ libs.append('X11')
- env.Append(LINKFLAGS=['-Wl,-rpath,'+ lib_dir])
- env.Append(LINKFLAGS=['-Wl,-rpath-link,build/' + env['mode'] + '/mrt'])
+ env.Append(LINKFLAGS=['-Wl,-rpath,'+ lib_dir])
+ env.Append(LINKFLAGS=['-Wl,-rpath-link,build/' + env['mode'] + '/mrt'])
else:
c_map = env.SharedObject('c_map.cpp')
libs.append('opengl32')
diff --git a/sdlx/system.cpp b/sdlx/system.cpp
index c239b53..1afab0c 100644
--- a/sdlx/system.cpp
+++ b/sdlx/system.cpp
@@ -41,6 +41,8 @@ static void WIN_FlushMessageQueue()
}
#elif defined __APPLE__
//nothing here
+#elif defined __HAIKU__
+ //nothing here
#else
# include <X11/X.h>
# include <X11/Xutil.h>
@@ -134,7 +136,7 @@ TRY {
DestroyWindow(hwnd);
WIN_FlushMessageQueue();
#endif
-#if !defined(_WINDOWS) && !defined(__APPLE__)
+#if !defined(_WINDOWS) && !defined(__APPLE__) && !defined(__HAIKU__)
int errorBase, eventBase;
if (SDL_GL_LoadLibrary(NULL) != 0) {
--
2.37.3
From 075b9c43837b6db1517f1b2844b139f958f059a1 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Sun, 17 May 2015 21:20:06 +0000
Subject: Settings directory
diff --git a/mrt/directory.cpp b/mrt/directory.cpp
index dfc672f..8881eaa 100644
--- a/mrt/directory.cpp
+++ b/mrt/directory.cpp
@@ -21,6 +21,10 @@
#include <errno.h>
#include <stdlib.h>
+#ifdef __HAIKU__
+ #include <FindDirectory.h>
+#endif
+
using namespace mrt;
Directory::Directory() : _handle(0) {}
@@ -195,7 +199,14 @@ const std::string Directory::get_home() {
}
const std::string Directory::get_app_dir(const std::string &name, const std::string &shortname) {
+#ifdef __HAIKU__
+ char settingsPath[PATH_MAX];
+ find_directory(B_USER_SETTINGS_DIRECTORY, -1, false, settingsPath, sizeof(settingsPath));
+ std::string path = settingsPath;
+ path += "/" + shortname;
+#else
std::string path = get_home() + "/." + shortname;
+#endif
mrt::Directory dir;
try {
dir.create(path);
--
2.37.3