1 |
commit: ef86f45bb93769a83d51e01ea6990ce9be60ed1b |
2 |
Author: Nicholas Vinson <nvinson234 <AT> gmail <DOT> com> |
3 |
AuthorDate: Sun Apr 3 00:25:32 2016 +0000 |
4 |
Commit: Patrice Clement <monsieurp <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue May 3 13:23:40 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ef86f45b |
7 |
|
8 |
games-arcade/savagewheels: New ebuild. |
9 |
|
10 |
This will add savagewheels-1.6.0. |
11 |
|
12 |
Package-Manager: portage-2.2.28 |
13 |
Closes: https://github.com/gentoo/gentoo/pull/1290 |
14 |
|
15 |
Signed-off-by: Patrice Clement <monsieurp <AT> gentoo.org> |
16 |
|
17 |
games-arcade/savagewheels/Manifest | 2 + |
18 |
.../files/savagewheels-1.6.0-cmakelists.txt.patch | 128 ++++++++ |
19 |
.../files/savagewheels-1.6.0-linux_dirs.patch | 359 +++++++++++++++++++++ |
20 |
games-arcade/savagewheels/files/savagewheels.in | 42 +++ |
21 |
games-arcade/savagewheels/metadata.xml | 18 ++ |
22 |
.../savagewheels/savagewheels-1.6.0.ebuild | 86 +++++ |
23 |
6 files changed, 635 insertions(+) |
24 |
|
25 |
diff --git a/games-arcade/savagewheels/Manifest b/games-arcade/savagewheels/Manifest |
26 |
new file mode 100644 |
27 |
index 0000000..f6d4749 |
28 |
--- /dev/null |
29 |
+++ b/games-arcade/savagewheels/Manifest |
30 |
@@ -0,0 +1,2 @@ |
31 |
+DIST savagewheels-1.6.0.tar.gz 593352 SHA256 c127eb37fd6b591ff579fa70b989afada1f20c6c63924583ff653d4efe7712fe SHA512 20622b1472d0c9dbf35250ab2334e4f84cabcb72c328a2a728fdbd113bc4b156a7fc2028ef51cd994dabbd27777d5eb07574295b393e9e81db31770a2f5e901f WHIRLPOOL 699c4ca19fd29c6e66bd3ef806b3e4bc19e787bba8c85428ad6e2701cac489b908fc74b6b3ce91e1ff1bc0306b3fd5ffccb52b743bbc1fb16da9ebef5a4d1b83 |
32 |
+DIST savagewheels-gamedata-1.4.0.tar.gz 13183072 SHA256 01fd7b9e122ff7d62363cbe3fd73d63de27bd48e40572e65ac9bb0d60bbad6ad SHA512 102214e18edb911b168e41999d239e3070255720f250e8ea640d365b3f7fc4c772cbf322f4558ba6c05fd56d904613c758918e25712e89eb2aca3e948c26fc65 WHIRLPOOL baafc5fe81a450ead511f4059cfe54a1e570cf8038af647c585678d2f15af0ac8f1cb8973767c8f646796748fbb1d4246d224ca2c916ee4ff5d1f516b4b4064f |
33 |
|
34 |
diff --git a/games-arcade/savagewheels/files/savagewheels-1.6.0-cmakelists.txt.patch b/games-arcade/savagewheels/files/savagewheels-1.6.0-cmakelists.txt.patch |
35 |
new file mode 100644 |
36 |
index 0000000..eef00f9 |
37 |
--- /dev/null |
38 |
+++ b/games-arcade/savagewheels/files/savagewheels-1.6.0-cmakelists.txt.patch |
39 |
@@ -0,0 +1,128 @@ |
40 |
+--- savagewheels-1.6.0/CMakeLists.txt.old 2016-04-02 16:45:40.416146450 -0700 |
41 |
++++ savagewheels-1.6.0/CMakeLists.txt 2016-04-02 16:57:14.930931857 -0700 |
42 |
+@@ -9,22 +9,33 @@ set(APP_VER_PATCH "0") |
43 |
+ |
44 |
+ ### check for required libs |
45 |
+ find_package(SDL REQUIRED) |
46 |
+ |
47 |
+ ### Install targets (see: http://www.cmake.org/Wiki/CMake_RPATH_handling) |
48 |
+-if (NOT INSTALL_DIR) |
49 |
+- set(INSTALL_DIR "./") |
50 |
++if (UNIX) |
51 |
++ include (GNUInstallDirs) |
52 |
++else() |
53 |
++ if (NOT INSTALL_DIR) |
54 |
++ set(INSTALL_DIR "./") |
55 |
++ endif() |
56 |
++ set(CMAKE_INSTALL_BINDIR "${INSTALL_DIR}") |
57 |
++ set(CMAKE_INSTALL_SBINDIR "${INSTALL_DIR}") |
58 |
++ set(CMAKE_INSTALL_LIBEXECDIR "${INSTALL_DIR}") |
59 |
++ set(CMAKE_INSTALL_SYSCONFDIR "${INSTALL_DIR}") |
60 |
++ set(CMAKE_INSTALL_SHAREDSTATEDIR "${INSTALL_DIR}") |
61 |
++ set(CMAKE_INSTALL_LOCALSTATEDIR "${INSTALL_DIR}") |
62 |
++ set(CMAKE_INSTALL_LIBDIR "${INSTALL_DIR}") |
63 |
++ set(CMAKE_INSTALL_INCLUDEDIR "${INSTALL_DIR}") |
64 |
++ set(CMAKE_INSTALL_OLDINCLUDEDIR "${INSTALL_DIR}") |
65 |
++ set(CMAKE_INSTALL_DATAROOTDIR "${INSTALL_DIR}") |
66 |
++ set(CMAKE_INSTALL_DATADIR "${INSTALL_DIR}") |
67 |
++ set(CMAKE_INSTALL_INFODIR "${INSTALL_DIR}") |
68 |
++ set(CMAKE_INSTALL_LOCALEDIR "${INSTALL_DIR}") |
69 |
++ set(CMAKE_INSTALL_MANDIR "${INSTALL_DIR}") |
70 |
++ set(CMAKE_INSTALL_DOCDIR "${INSTALL_DIR}") |
71 |
+ endif() |
72 |
+ |
73 |
+-# when building, don't use the install RPATH already |
74 |
+-# (but later on when installing) |
75 |
+-SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) |
76 |
+- |
77 |
+-# add the automatically determined parts of the RPATH |
78 |
+-SET(CMAKE_INSTALL_RPATH "${INSTALL_DIR}/") |
79 |
+-SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) |
80 |
+- |
81 |
+ ### sources |
82 |
+ include_directories(src/) |
83 |
+ include_directories(tinyxml/) |
84 |
+ |
85 |
+ set( |
86 |
+@@ -113,11 +124,11 @@ if (SOUND STREQUAL "NO") |
87 |
+ message(STATUS "Found SOUND=NO option. Compiling without sound support!") |
88 |
+ elseif(SOUND STREQUAL "FMOD") |
89 |
+ # FModEx API |
90 |
+ |
91 |
+ # check if path to FMod is defined |
92 |
+- if(NOT DEFINED ${FMOD_PATH}) |
93 |
++ if(NOT DEFINED FMOD_PATH) |
94 |
+ set(FMOD_PATH "${CMAKE_CURRENT_SOURCE_DIR}/libs/fmod/api") |
95 |
+ endif() |
96 |
+ |
97 |
+ add_definitions(-I${FMOD_PATH}/inc) |
98 |
+ link_directories(${FMOD_PATH}/lib) |
99 |
+@@ -164,17 +175,19 @@ elseif(SOUND STREQUAL "FMOD") |
100 |
+ else() |
101 |
+ message(STATUS "Found FModEx lib at ${FMOD_LIBRARY}. Found FModEx DLL at ${FMOD_LIBRARY_SO_PATH}.") |
102 |
+ |
103 |
+ add_definitions(-DWITH_FMOD) |
104 |
+ |
105 |
+- add_custom_command(TARGET savagewheels POST_BUILD |
106 |
+- COMMAND ${CMAKE_COMMAND} -E copy_if_different |
107 |
+- ${FMOD_LIBRARY_SO_PATH} |
108 |
+- $<TARGET_FILE_DIR:savagewheels>) |
109 |
+- |
110 |
+- INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/${FMOD_SO_NAME}" |
111 |
+- DESTINATION ${INSTALL_DIR}) |
112 |
++ if (WIN32) |
113 |
++ add_custom_command(TARGET savagewheels POST_BUILD |
114 |
++ COMMAND "${CMAKE_COMMAND}" -E copy_if_different |
115 |
++ "${FMOD_LIBRARY_SO_PATH}" |
116 |
++ "$<TARGET_FILE_DIR:savagewheels>") |
117 |
++ |
118 |
++ INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/${FMOD_SO_NAME}" |
119 |
++ DESTINATION "${INSTALL_DIR}") |
120 |
++ endif() |
121 |
+ endif() |
122 |
+ |
123 |
+ else() |
124 |
+ # SDL_mixer API |
125 |
+ find_package(SDL_mixer REQUIRED) |
126 |
+@@ -234,19 +247,36 @@ endif() |
127 |
+ ### Configure compile time header file |
128 |
+ configure_file ( |
129 |
+ "${PROJECT_SOURCE_DIR}/Config.h.in" |
130 |
+ "${PROJECT_SOURCE_DIR}/src/Config.h") |
131 |
+ |
132 |
+-INSTALL(TARGETS savagewheels RUNTIME DESTINATION ${INSTALL_DIR}) |
133 |
+-INSTALL(PROGRAMS "${CMAKE_CURRENT_SOURCE_DIR}/run.sh" DESTINATION ${INSTALL_DIR}) |
134 |
++ |
135 |
++INSTALL(TARGETS savagewheels RUNTIME DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}") |
136 |
++if (WIN32 AND NOT UNIX) |
137 |
++ INSTALL(PROGRAMS "${CMAKE_CURRENT_SOURCE_DIR}/run.sh" DESTINATION "${INSTALL_DIR}") |
138 |
++else() |
139 |
++ configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/savagewheels.in" |
140 |
++ "${CMAKE_CURRENT_BINARY_DIR}/savagewheels.sh" |
141 |
++ @ONLY) |
142 |
++ INSTALL(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/savagewheels.sh" |
143 |
++ DESTINATION "${CMAKE_INSTALL_BINDIR}" RENAME savagewheels) |
144 |
++endif() |
145 |
++ |
146 |
+ INSTALL(FILES |
147 |
+ "${CMAKE_CURRENT_SOURCE_DIR}/README.md" |
148 |
+ "${CMAKE_CURRENT_SOURCE_DIR}/HISTORY" |
149 |
+ "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE" |
150 |
++ "${CMAKE_CURRENT_SOURCE_DIR}/bin/LICENSE.mikmod.txt" |
151 |
++ "${CMAKE_CURRENT_SOURCE_DIR}/bin/Readme.html" |
152 |
++ "${CMAKE_CURRENT_SOURCE_DIR}/bin/README-SDL_mixer.txt" |
153 |
++ "${CMAKE_CURRENT_SOURCE_DIR}/bin/README-SDL.txt" |
154 |
+- DESTINATION ${INSTALL_DIR}) |
155 |
++ DESTINATION "${CMAKE_INSTALL_DOCDIR}") |
156 |
+-INSTALL(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin/" |
157 |
+- DESTINATION ${INSTALL_DIR} |
158 |
++INSTALL(FILES |
159 |
++ "${CMAKE_CURRENT_SOURCE_DIR}/bin/bindings.xml" |
160 |
++ DESTINATION "${CMAKE_INSTALL_DATADIR}") |
161 |
++INSTALL(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin/help" |
162 |
++ DESTINATION "${CMAKE_INSTALL_DOCDIR}/help" |
163 |
+ PATTERN "debug.html" EXCLUDE |
164 |
+ PATTERN "pref" EXCLUDE) |
165 |
+ |
166 |
+ ### build a CPack driven installer package |
167 |
+ include (InstallRequiredSystemLibraries) |
168 |
|
169 |
diff --git a/games-arcade/savagewheels/files/savagewheels-1.6.0-linux_dirs.patch b/games-arcade/savagewheels/files/savagewheels-1.6.0-linux_dirs.patch |
170 |
new file mode 100644 |
171 |
index 0000000..b407657 |
172 |
--- /dev/null |
173 |
+++ b/games-arcade/savagewheels/files/savagewheels-1.6.0-linux_dirs.patch |
174 |
@@ -0,0 +1,359 @@ |
175 |
+--- savagewheels-1.6.0/src/Main.cpp.old 2016-04-14 21:18:38.115071742 -0700 |
176 |
++++ savagewheels-1.6.0/src/Main.cpp 2016-04-14 22:01:42.375422000 -0700 |
177 |
+@@ -43,10 +43,17 @@ |
178 |
+ * Alpha Release: 29.06.2003 |
179 |
+ */ |
180 |
+ |
181 |
+ #include "Main.h" |
182 |
+ |
183 |
++const char *sys_datadir; |
184 |
++const char *usr_cfgdir; |
185 |
++const char *usr_datadir; |
186 |
++ |
187 |
++char *ART_FILE; |
188 |
++char *BINDINGS_FILE; |
189 |
++ |
190 |
+ int main( int argc, char *argv[] ) |
191 |
+ { |
192 |
+ bool hardware_support = true; |
193 |
+ /* |
194 |
+ * Start the game in a window by default. |
195 |
+@@ -57,16 +64,92 @@ int main( int argc, char *argv[] ) |
196 |
+ * Linux Note: Running the game in fullscreen would sometimes crash the gfx manager. |
197 |
+ * This is probably due to some video drivers. I was so far able to reproduce it on |
198 |
+ * ATI Mobility type of video cards. |
199 |
+ */ |
200 |
+ bool fullscreen = false; |
201 |
++ String tmp; |
202 |
+ |
203 |
+ #ifdef LINUX_BUILD |
204 |
++ sys_datadir = getenv("SAVAGEWHEELS_SYS_DATADIR"); |
205 |
++ if (sys_datadir == NULL) |
206 |
++ { |
207 |
++ fprintf(stderr, "SAVAGEWHEELS_SYS_DATADIR not set.\n"); |
208 |
++ return 1; |
209 |
++ } |
210 |
++ sys_datadir = strdup(sys_datadir); |
211 |
++ |
212 |
++ usr_cfgdir = getenv("SAVAGEWHEELS_USR_CONFDIR"); |
213 |
++ if (usr_cfgdir == NULL) |
214 |
++ { |
215 |
++ fprintf(stderr, "SAVAGEWHEELS_USR_CONFDIR not set.\n"); |
216 |
++ return 1; |
217 |
++ } |
218 |
++ usr_cfgdir = strdup(usr_cfgdir); |
219 |
++ |
220 |
++ usr_datadir = getenv("SAVAGEWHEELS_USR_DATADIR"); |
221 |
++ if (usr_datadir == NULL) |
222 |
++ { |
223 |
++ fprintf(stderr, "SAVAGEWHEELS_USR_DATADIR not set.\n"); |
224 |
++ return 1; |
225 |
++ } |
226 |
++ usr_datadir = strdup(usr_datadir); |
227 |
++ |
228 |
++ if (sys_datadir == NULL || usr_cfgdir == NULL || usr_datadir == NULL) |
229 |
++ { |
230 |
++ fprintf(stderr, "Insufficient memory. Execution aborted.\n"); |
231 |
++ return 1; |
232 |
++ } |
233 |
++ |
234 |
+ setenv("SDL_VIDEO_CENTERED", "1", 1); |
235 |
+ #else |
236 |
++ sys_datadir = usr_cfgdir = usr_datadir = "./"; |
237 |
+ _putenv("SDL_VIDEO_CENTERED=1"); |
238 |
+ #endif |
239 |
++ int len; |
240 |
++ len = snprintf(NULL, 0, "%s/graphics/gfxdata.kdf", sys_datadir); |
241 |
++ if (len < 0) |
242 |
++ { |
243 |
++ fprintf(stderr, |
244 |
++ "Unable to store '%s/graphics/gfxdata.kdf': %s\n", |
245 |
++ sys_datadir, strerror(errno)); |
246 |
++ return 1; |
247 |
++ } |
248 |
++ if (len == INT_MAX) |
249 |
++ { |
250 |
++ fprintf(stderr, "Unable to store '%s/graphics/gfxdata.kdf': " |
251 |
++ "Path too log\n", sys_datadir); |
252 |
++ return 1; |
253 |
++ } |
254 |
++ ART_FILE = new (std::nothrow) char[len + 1]; |
255 |
++ if (ART_FILE == NULL) |
256 |
++ { |
257 |
++ fprintf(stderr, "Insufficent memory. Execution aborted.\n"); |
258 |
++ return 1; |
259 |
++ } |
260 |
++ sprintf(ART_FILE, "%s/graphics/gfxdata.kdf", sys_datadir); |
261 |
++ |
262 |
++ len = snprintf(NULL, 0, "%s/bindings.xml", usr_cfgdir); |
263 |
++ if (len < 0) |
264 |
++ { |
265 |
++ fprintf(stderr, |
266 |
++ "Unable to store '%s/bindings.xml': %s\n", usr_cfgdir, |
267 |
++ strerror(errno)); |
268 |
++ return 1; |
269 |
++ } |
270 |
++ if (len == INT_MAX) |
271 |
++ { |
272 |
++ fprintf(stderr, "Unable to store '%s/bindings.xml': " |
273 |
++ "Path too log\n", usr_cfgdir); |
274 |
++ return 1; |
275 |
++ } |
276 |
++ BINDINGS_FILE = new (std::nothrow) char[len + 1]; |
277 |
++ if (BINDINGS_FILE == NULL) |
278 |
++ { |
279 |
++ fprintf(stderr, "Insufficent memory. Execution aborted.\n"); |
280 |
++ return 1; |
281 |
++ } |
282 |
++ sprintf(BINDINGS_FILE, "%s/bindings.xml", usr_cfgdir); |
283 |
+ |
284 |
+ if (argc > 1) { |
285 |
+ for (int i = 1; i < argc; i++) { |
286 |
+ if (!strncmp(argv[i], "-wnd", 4)) { |
287 |
+ fullscreen = false; |
288 |
+@@ -104,11 +187,12 @@ |
289 |
+ |
290 |
+ /* |
291 |
+ * Load & Start Game |
292 |
+ */ |
293 |
+ |
294 |
+- OpenLog("debug.html"); |
295 |
++ tmp = String(usr_datadir).append("/debug.html"); |
296 |
++ OpenLog(tmp.c_str()); |
297 |
+ |
298 |
+ CGame game; |
299 |
+ game.Execute(fullscreen, hardware_support); |
300 |
+ game.Close(); |
301 |
+ |
302 |
+--- savagewheels-1.6.0/src/Main.h.old 2016-04-14 21:20:27.443522441 -0700 |
303 |
++++ savagewheels-1.6.0/src/Main.h 2016-04-14 21:56:22.449964486 -0700 |
304 |
+@@ -35,10 +35,11 @@ |
305 |
+ #include <cstdlib> |
306 |
+ #include <cmath> |
307 |
+ #include <cstdarg> |
308 |
+ #include <cassert> |
309 |
+ #include <exception> |
310 |
++#include <cerrno> |
311 |
+ |
312 |
+ #include <ctime> |
313 |
+ #include <sys/stat.h> |
314 |
+ #include <sys/types.h> |
315 |
+ #include <sys/timeb.h> |
316 |
+@@ -84,12 +85,10 @@ |
317 |
+ |
318 |
+ // --- version |
319 |
+ #include "Config.h" |
320 |
+ |
321 |
+ // --- global game defines |
322 |
+-#define ART_FILE "graphics/gfxdata.kdf" |
323 |
+-#define BINDINGS_FILE "bindings.xml" |
324 |
+ #define LOAD_OK (-1) |
325 |
+ #define LOAD_FAILED (0) |
326 |
+ #define HRESULT(x) ( (x) == NULL : LOAD_OK ? LOAD_FAILED ) |
327 |
+ #define NLPTR_SURF 0 //((SDL_Surface *)NULL) |
328 |
+ |
329 |
+@@ -100,10 +99,16 @@ |
330 |
+ #endif |
331 |
+ |
332 |
+ typedef std::string String; |
333 |
+ typedef std::ostringstream OutputSStream; |
334 |
+ |
335 |
++extern const char *sys_datadir; |
336 |
++extern const char *usr_cfgdir; |
337 |
++extern const char *usr_datadir; |
338 |
++ |
339 |
++extern char *ART_FILE; |
340 |
++extern char *BINDINGS_FILE; |
341 |
+ //#include "pstdint.h" // portable types |
342 |
+ #include "Utils.h" |
343 |
+ #include "CKdf.h" |
344 |
+ #include "CSdl.h" |
345 |
+ #include "CSwv_module.h" |
346 |
+--- savagewheels-1.6.0/src/Utils.cpp.old 2016-04-15 19:28:21.757879157 -0700 |
347 |
++++ savagewheels-1.6.0/src/Utils.cpp 2016-04-15 19:28:28.478786779 -0700 |
348 |
+@@ -261,11 +261,11 @@ inline String GetFormattedTime() |
349 |
+ bool OpenLog ( const char* filename ) |
350 |
+ { |
351 |
+ String time( GetFormattedTime() ); |
352 |
+ |
353 |
+ // open debug file |
354 |
+- debug_file.open ( "debug.html", std::ios::out ); //ios::ate ); |
355 |
++ debug_file.open ( filename, std::ios::out ); //ios::ate ); |
356 |
+ if ( ! debug_file.good() ) |
357 |
+ return false; |
358 |
+ |
359 |
+ debug_file << "<html><head><title>Savage Wheels Log File</title></head><body><h1>Savage Wheels V" << VER_MAJ << "." << VER_MIN << " - Log File</h1>"; |
360 |
+ debug_file << "<hr/><pre>"; |
361 |
+--- savagewheels-1.6.0/src/CGame.cpp.old 2016-04-15 20:43:37.479330001 -0700 |
362 |
++++ savagewheels-1.6.0/src/CGame.cpp 2016-04-15 21:04:48.044721904 -0700 |
363 |
+@@ -116,10 +116,11 @@ void CGame::Close() |
364 |
+ /////////////////////////////////////////////////////////////////////// |
365 |
+ bool CGame::LoadGame() |
366 |
+ { |
367 |
+ char buf[255]; |
368 |
+ int i = 0; |
369 |
++ String tmp (sys_datadir); |
370 |
+ |
371 |
+ AppendToLog( LOG_DASH ); |
372 |
+ AppendToLog("Loading Game..."); |
373 |
+ |
374 |
+ // global screen rect |
375 |
+@@ -161,11 +162,14 @@ bool CGame::LoadGame() |
376 |
+ srand( (unsigned)SDL_GetTicks() ); |
377 |
+ |
378 |
+ UpdateSplash(); // UPDATESPLASH... |
379 |
+ |
380 |
+ // search for vehicles |
381 |
+- if ( Swv.SearchAndLoad( "autos" ) != SWV_SUCCESS ) return false; |
382 |
++ tmp.resize(strlen(sys_datadir)); |
383 |
++ tmp.append("/autos"); |
384 |
++ if ( Swv.SearchAndLoad( tmp.c_str() ) != SWV_SUCCESS ) |
385 |
++ return false; |
386 |
+ |
387 |
+ // check for vehicle number |
388 |
+ if ( Swv.GetVehicles() < 4 ) |
389 |
+ { |
390 |
+ AppendToLog( "Not enough vehicles in the /auto dir!" ); |
391 |
+--- savagewheels-1.6.0/src/CSdl.cpp.old 2016-04-16 16:00:56.600502348 -0700 |
392 |
++++ savagewheels-1.6.0/src/CSdl.cpp 2016-04-16 16:01:16.152226435 -0700 |
393 |
+@@ -1298,13 +1298,10 @@ |
394 |
+ return NULL; |
395 |
+ #else |
396 |
+ |
397 |
+ SDL_Surface *sdl_surf = NULL; |
398 |
+ |
399 |
+- char filename_buf[255]; |
400 |
+- sprintf( filename_buf, "../%s", filename ); |
401 |
+- |
402 |
+ if ( ( sdl_surf = SDL_LoadBMP( filename_buf )) == NULL ) |
403 |
+ { |
404 |
+ LOG("...failed to load graphics from : " << filename_buf ); |
405 |
+ return NULL; |
406 |
+ } |
407 |
+--- savagewheels-1.6.0/src/CSounds.cpp.old 2016-04-16 16:06:43.887600441 -0700 |
408 |
++++ savagewheels-1.6.0/src/CSounds.cpp 2016-04-16 16:17:44.729332218 -0700 |
409 |
+@@ -46,22 +46,39 @@ |
410 |
+ // Name: Initialize() |
411 |
+ // Desc: Load all ingame sounds |
412 |
+ ////////////////////////////////////////////////////////////////////// |
413 |
+ bool CSounds::Initialize( CSdl *pSdl ) |
414 |
+ { |
415 |
+- ASSERT( _sdl != NULL ); |
416 |
++ ASSERT( pSdl != NULL ); |
417 |
+ this->_sdl = pSdl; |
418 |
+ |
419 |
+ #if defined(WITH_FMOD) || defined(WITH_SDLMIXER) |
420 |
++ String tmp (sys_datadir); |
421 |
+ |
422 |
+-#define LOAD_SOUND( container, name, buffered ) if ( (sounds[container] = _sdl->LoadSound( name, buffered )) == -1 ) { \ |
423 |
+- LOG( "Failed to load " << name << " ! "); \ |
424 |
+- return false; } |
425 |
++#define LOAD_SOUND( container, name, buffered) \ |
426 |
++ do { \ |
427 |
++ tmp.append("/").append(name); \ |
428 |
++ sounds[container] = \ |
429 |
++ _sdl->LoadSound( tmp.c_str(), buffered ); \ |
430 |
++ if ( sounds[container] == -1 ) { \ |
431 |
++ LOG( "Failed to load " << name << " ! " ); \ |
432 |
++ return false; \ |
433 |
++ } \ |
434 |
++ tmp.resize(strlen(sys_datadir)); \ |
435 |
++ } while(0) |
436 |
+ |
437 |
+-#define LOAD_MUSIC( container, name ) if ( (music[container] = _sdl->LoadSound( name, false, true )) == -1 ) { \ |
438 |
+- LOG( "Failed to load music " << name << " ! "); \ |
439 |
+- return false; } |
440 |
++#define LOAD_MUSIC( container, name) \ |
441 |
++ do { \ |
442 |
++ tmp.append("/").append(name); \ |
443 |
++ music[container] = \ |
444 |
++ _sdl->LoadSound( tmp.c_str(), false, true ); \ |
445 |
++ if ( music[container] == -1 ) { \ |
446 |
++ LOG( "Failed to load music " << name << " ! " ); \ |
447 |
++ return false; \ |
448 |
++ } \ |
449 |
++ tmp.resize(strlen(sys_datadir)); \ |
450 |
++ } while(0) |
451 |
+ |
452 |
+ LOAD_SOUND( SND_CRASHLIGHT1, "sound/crash3.wav", true ); |
453 |
+ LOAD_SOUND( SND_CRASHLIGHT2, "sound/crash2.wav", true ); |
454 |
+ LOAD_SOUND( SND_CRASHLIGHT3, "sound/crash1.wav", true ); |
455 |
+ LOAD_SOUND( SND_EXPLOSION1, "sound/exp.wav", true ); |
456 |
+--- savagewheels-1.6.0/src/CSwv_module.cpp.old 2016-04-16 20:58:04.366973388 -0700 |
457 |
++++ savagewheels-1.6.0/src/CSwv_module.cpp 2016-04-16 20:58:13.026851358 -0700 |
458 |
+@@ -204,12 +204,10 @@ int CSwv_module::Load( char *filename, S |
459 |
+ // DBG("pos: " << swv_file->pfiles[i].pos |
460 |
+ // << " size (KB): " << swv_file->pfiles[i].length |
461 |
+ // << " name: " << swv_file->pfiles[i].filename); |
462 |
+ // } |
463 |
+ |
464 |
+- // set module filename |
465 |
+- sprintf( swv_file->filename, "%s", filename ); |
466 |
+ |
467 |
+ if ( fp != NULL ) |
468 |
+ fclose( fp ); |
469 |
+ |
470 |
+ return SWV_SUCCESS; |
471 |
+--- savagewheels-1.6.0/src/CSdl.cpp.old 2016-04-16 21:02:07.680544534 -0700 |
472 |
++++ savagewheels-1.6.0/src/CSdl.cpp 2016-04-16 21:06:59.400432874 -0700 |
473 |
+@@ -1336,12 +1336,25 @@ SDL_Surface* CSdl::LoadBitmap( const cha |
474 |
+ SDL_Surface* CSdl::LoadBitmap( const char *filename, int32_t file_offset, Uint32 file_size, Uint32 color_key, Uint16 alpha_value ) |
475 |
+ { |
476 |
+ SDL_Surface *sdl_surf = NULL; // temp surface |
477 |
+ FILE *fp = NULL; // file pointer |
478 |
+ SDL_RWops *sdl_rw = NULL; // sdl_read_write_operations |
479 |
++ String tmp; |
480 |
+ |
481 |
+- if ( ( fp = fopen( filename, "rb")) == NULL ) |
482 |
++#ifdef LINUX_BUILD |
483 |
++ if ( filename[0] != '/' ) |
484 |
++ { |
485 |
++ tmp = String(sys_datadir).append("/autos/").append(filename); |
486 |
++ } |
487 |
++ else |
488 |
++ { |
489 |
++ tmp = String(filename); |
490 |
++ } |
491 |
++#else |
492 |
++ tmp = String(filename); |
493 |
++#endif |
494 |
++ if ( ( fp = fopen( tmp.c_str(), "rb")) == NULL ) |
495 |
+ { |
496 |
+ LOG("...failed to open file : " << filename ); |
497 |
+ return NULL; |
498 |
+ } |
499 |
+ |
500 |
+--- savagewheels-1.6.0/src/CMainMenu.cpp.old 2016-04-16 22:13:23.442523534 -0700 |
501 |
++++ savagewheels-1.6.0/src/CMainMenu.cpp 2016-04-16 22:13:17.701605381 -0700 |
502 |
+@@ -1121,12 +1121,13 @@ void CMainMenu::SaveSettings() |
503 |
+ if ( _game == NULL ) |
504 |
+ return; |
505 |
+ |
506 |
+ FILE *fp = NULL; |
507 |
+ char header[3] = { 'S', 'W', 'P' }; |
508 |
++ String strPref(String(usr_cfgdir) + "/pref"); |
509 |
+ |
510 |
+- if ( ( fp = fopen( "pref", "wb" ) ) == NULL ) |
511 |
++ if ( ( fp = fopen( strPref.c_str(), "wb" ) ) == NULL ) |
512 |
+ { |
513 |
+ AppendToLog( "Error writing to /pref file !" ); |
514 |
+ return; |
515 |
+ } |
516 |
+ |
517 |
+--- savagewheels-1.6.0/src/CMainMenu.cpp.old 2016-04-17 07:38:09.417653268 -0700 |
518 |
++++ savagewheels-1.6.0/src/CMainMenu.cpp 2016-04-17 07:38:24.277437113 -0700 |
519 |
+@@ -1167,12 +1168,13 @@ void CMainMenu::SaveSettings() |
520 |
+ void CMainMenu::LoadSettings() |
521 |
+ { |
522 |
+ FILE *fp = NULL; |
523 |
+ char header[3]; |
524 |
+ bool success = true; |
525 |
++ String strPref(String(usr_cfgdir) + "/pref"); |
526 |
+ |
527 |
+- if ( ( fp = fopen( "pref", "rb" ) ) == NULL ) |
528 |
++ if ( ( fp = fopen( strPref.c_str(), "wb" ) ) == NULL ) |
529 |
+ { |
530 |
+ AppendToLog( "Error opening /pref file !" ); |
531 |
+ success = false; |
532 |
+ } |
533 |
+ |
534 |
|
535 |
diff --git a/games-arcade/savagewheels/files/savagewheels.in b/games-arcade/savagewheels/files/savagewheels.in |
536 |
new file mode 100644 |
537 |
index 0000000..c1b4c68 |
538 |
--- /dev/null |
539 |
+++ b/games-arcade/savagewheels/files/savagewheels.in |
540 |
@@ -0,0 +1,42 @@ |
541 |
+#!/bin/sh |
542 |
+ |
543 |
+export SAVAGEWHEELS_SYS_DATADIR="${SAVAGEWHEELS_SYS_DATADIR-@CMAKE_INSTALL_DATADIR@}" |
544 |
+export SAVAGEWHEELS_LIBEXECDIR="${SAVAGEWHEELS_LIBEXECDIR-@CMAKE_INSTALL_LIBEXECDIR@}" |
545 |
+export SAVAGEWHEELS_USR_CONFDIR="${SAVAGEWHEELS_USR_CONFDIR-${HOME}/.config/savagewheels}" |
546 |
+export SAVAGEWHEELS_USR_DATADIR="${SAVAGEWHEELS_USR_DATADIR-${HOME}/.local/share/savagewheels}" |
547 |
+ |
548 |
+if [ ! -d ${SAVAGEWHEELS_USR_CONFDIR} ]; then |
549 |
+ if [ -e ${SAVAGEWHEELS_USR_CONFDIR} ]; then |
550 |
+ printf "${SAVAGEWHEELS_USR_CONFDIR} exists but is not a directory.\n" >&2 |
551 |
+ printf " Please remove.\n" >&2 |
552 |
+ exit 1 |
553 |
+ fi |
554 |
+ mkdir -p ${SAVAGEWHEELS_USR_CONFDIR} |
555 |
+ if [ $? -ne 0 ]; then |
556 |
+ printf "Failed to create ${SAVAGEWHEELS_USR_CONFDIR}\n" >&2 |
557 |
+ exit 1 |
558 |
+ fi |
559 |
+fi |
560 |
+ |
561 |
+if [ ! -d ${SAVAGEWHEELS_USR_DATADIR} ]; then |
562 |
+ if [ -e ${SAVAGEWHEELS_USR_DATADIR} ]; then |
563 |
+ printf "${SAVAGEWHEELS_USR_DATADIR} exists but is not a directory.\n" >&2 |
564 |
+ printf " Please remove.\n" >&2 |
565 |
+ exit 1 |
566 |
+ fi |
567 |
+ mkdir -p ${SAVAGEWHEELS_USR_DATADIR} |
568 |
+ if [ $? -ne 0 ]; then |
569 |
+ printf "Failed to create ${SAVAGEWHEELS_USR_DATADIR}\n" >&2 |
570 |
+ exit 1 |
571 |
+ fi |
572 |
+fi |
573 |
+ |
574 |
+if [ ! -e ${SAVAGEWHEELS_USR_CONFDIR}/bindings.xml ]; then |
575 |
+ cp ${SAVAGEWHEELS_SYS_DATADIR}/bindings.xml ${SAVAGEWHEELS_USR_CONFDIR} |
576 |
+ if [ $? -ne 0 ]; then |
577 |
+ printf "Failed to create ${SAVAGEWHEELS_USR_CONFDIR}/bindings.xml\n" >&2 |
578 |
+ exit 1 |
579 |
+ fi |
580 |
+fi |
581 |
+ |
582 |
+exec ${SAVAGEWHEELS_LIBEXECDIR}/savagewheels "$@" |
583 |
|
584 |
diff --git a/games-arcade/savagewheels/metadata.xml b/games-arcade/savagewheels/metadata.xml |
585 |
new file mode 100644 |
586 |
index 0000000..5279e81 |
587 |
--- /dev/null |
588 |
+++ b/games-arcade/savagewheels/metadata.xml |
589 |
@@ -0,0 +1,18 @@ |
590 |
+<?xml version="1.0" encoding="UTF-8"?> |
591 |
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> |
592 |
+<pkgmetadata> |
593 |
+ <maintainer type="person"> |
594 |
+ <email>nvinson234@×××××.com</email> |
595 |
+ <name>Nicholas Vinson</name> |
596 |
+ </maintainer> |
597 |
+ <maintainer type="project"> |
598 |
+ <email>proxy-maint@g.o</email> |
599 |
+ <name>Proxy Maintainers</name> |
600 |
+ </maintainer> |
601 |
+ <use> |
602 |
+ <flag name="fmod">Enable the fmod music and sound effects library</flag> |
603 |
+ </use> |
604 |
+ <upstream> |
605 |
+ <remote-id type="github">petarov/savagewheels</remote-id> |
606 |
+ </upstream> |
607 |
+</pkgmetadata> |
608 |
|
609 |
diff --git a/games-arcade/savagewheels/savagewheels-1.6.0.ebuild b/games-arcade/savagewheels/savagewheels-1.6.0.ebuild |
610 |
new file mode 100644 |
611 |
index 0000000..0edf982 |
612 |
--- /dev/null |
613 |
+++ b/games-arcade/savagewheels/savagewheels-1.6.0.ebuild |
614 |
@@ -0,0 +1,86 @@ |
615 |
+# Copyright 1999-2016 Gentoo Foundation |
616 |
+# Distributed under the terms of the GNU General Public License v2 |
617 |
+# $Id$ |
618 |
+ |
619 |
+EAPI=6 |
620 |
+ |
621 |
+inherit cmake-utils |
622 |
+ |
623 |
+DESCRIPTION="2D car crashing game similar to the old classic Destruction Derby." |
624 |
+HOMEPAGE="https://github.com/petarov/savagewheels" |
625 |
+ |
626 |
+GAMEDATA="${PN}-gamedata-1.4.0" |
627 |
+ |
628 |
+SRC_URI=" |
629 |
+ https://github.com/petarov/savagewheels/archive/v1.6.0.tar.gz -> ${P}.tar.gz |
630 |
+ https://github.com/petarov/savagewheels/releases/download/v1.4/${PN}-gamedata.tar.gz -> ${GAMEDATA}.tar.gz |
631 |
+" |
632 |
+ |
633 |
+LICENSE="MIT" |
634 |
+SLOT="0" |
635 |
+KEYWORDS="~amd64" |
636 |
+ |
637 |
+IUSE="debug fmod sound" |
638 |
+ |
639 |
+RDEPEND=" |
640 |
+ media-libs/libsdl |
641 |
+ sound? ( |
642 |
+ !fmod? ( media-libs/sdl-mixer[mod,modplug] ) |
643 |
+ fmod? ( >=media-libs/fmod-4.38.00 ) |
644 |
+ )" |
645 |
+ |
646 |
+DEPEND="${RDEPEND}" |
647 |
+ |
648 |
+REQUIRED_USE="fmod? ( sound )" |
649 |
+ |
650 |
+PATCHES=( |
651 |
+ "${FILESDIR}/${P}-cmakelists.txt.patch" |
652 |
+ "${FILESDIR}/${P}-linux_dirs.patch" |
653 |
+) |
654 |
+ |
655 |
+src_unpack() { |
656 |
+ unpack ${P}.tar.gz |
657 |
+ |
658 |
+ cp "${FILESDIR}/${PN}.in" "${S}" |
659 |
+ mkdir "${WORKDIR}/${GAMEDATA}" || |
660 |
+ die "Failed to make directory: ${WORKDIR}/${GAMEDATA}" |
661 |
+ cd "${WORKDIR}/${GAMEDATA}" || |
662 |
+ die "Unable to change into directory: ${WORKDIR}/${GAMEDATA}" |
663 |
+ unpack "${GAMEDATA}.tar.gz" |
664 |
+} |
665 |
+ |
666 |
+src_configure() { |
667 |
+ local mycmakeargs=() |
668 |
+ |
669 |
+ if use debug; then |
670 |
+ CMAKE_BUILD_TYPE=Debug |
671 |
+ fi |
672 |
+ |
673 |
+ if use sound; then |
674 |
+ if use fmod; then |
675 |
+ mycmakeargs+=( -DSOUND=FMOD -DFMOD_PATH=/opt/fmodex/api ) |
676 |
+ else |
677 |
+ mycmakeargs+=( -DSOUND=YES ) |
678 |
+ fi |
679 |
+ else |
680 |
+ mycmakeargs+=( -DSOUND=NO ) |
681 |
+ fi |
682 |
+ |
683 |
+ mycmakeargs+=( |
684 |
+ -DCMAKE_INSTALL_DATADIR=/usr/share/games/${PN} |
685 |
+ -DCMAKE_INSTALL_DATAROOTDIR=/usr/share |
686 |
+ -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/${P} |
687 |
+ -DCMAKE_INSTALL_LIBEXECDIR=/usr/libexec/${PN} |
688 |
+ -DCMAKE_INSTALL_PREFIX=/usr/games |
689 |
+ ) |
690 |
+ cmake-utils_src_configure |
691 |
+} |
692 |
+ |
693 |
+src_install() { |
694 |
+ cmake-utils_src_install |
695 |
+ |
696 |
+ insinto "/usr/share/games/${PN}" |
697 |
+ for d in "${WORKDIR}/${GAMEDATA}/*"; do |
698 |
+ doins -r ${d} |
699 |
+ done |
700 |
+} |