Package: guix-patches;
Reported by: Timotej Lazar <timotej.lazar <at> araneo.si>
Date: Sun, 26 Jun 2022 06:56:02 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 56230 in the body.
You can then email your comments to 56230 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#56230
; Package guix-patches
.
(Sun, 26 Jun 2022 06:56:02 GMT) Full text and rfc822 format available.Timotej Lazar <timotej.lazar <at> araneo.si>
:guix-patches <at> gnu.org
.
(Sun, 26 Jun 2022 06:56:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Timotej Lazar <timotej.lazar <at> araneo.si> To: guix-patches <at> gnu.org Cc: Timotej Lazar <timotej.lazar <at> araneo.si> Subject: [PATCH] gnu: Add barony. Date: Sun, 26 Jun 2022 08:54:39 +0200
* gnu/packages/games.scm (barony): New variable. * gnu/packages/patches/barony-fix-textures.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/games.scm | 54 ++++ .../patches/barony-fix-textures.patch | 237 ++++++++++++++++++ 3 files changed, 292 insertions(+) create mode 100644 gnu/packages/patches/barony-fix-textures.patch diff --git a/gnu/local.mk b/gnu/local.mk index 353b91cfd2..4f3174d4aa 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -885,6 +885,7 @@ dist_patch_DATA = \ %D%/packages/patches/awesome-4.3-fno-common.patch \ %D%/packages/patches/aws-c-auth-install-private-headers.patch \ %D%/packages/patches/azr3.patch \ + %D%/packages/patches/barony-fix-textures.patch \ %D%/packages/patches/bash-completion-directories.patch \ %D%/packages/patches/bash-linux-pgrp-pipe.patch \ %D%/packages/patches/bastet-change-source-of-unordered_set.patch \ diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 8e6ab03530..d6fe5f215c 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -503,6 +503,60 @@ (define-public astromenace ;; BY-SA 4.0, and fonts to OFL1.1. (license (list license:gpl3+ license:cc-by-sa4.0 license:silofl1.1)))) +(define-public barony + (package + (name "barony") + (version "3.3.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/TurningWheel/Barony.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1y72k6zrqqhib3p05zkdklays2d218v51n87k7k68m0s7nnxa4vy")) + ;; Fix textures for SDL 2.0.14. + ;; See <https://github.com/TurningWheel/Barony/pull/582>. + (patches (search-patches "barony-fix-textures.patch")))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags + (list "-DOPENAL_ENABLED=ON" ; enable sound + "-DEDITOR_EXE_NAME=barony-editor") ; instead of generic "editor" + #:tests? #f ; there are no tests + #:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-installation + (lambda _ + (substitute* "CMakeLists.txt" + (("\\$\\{CMAKE_CURRENT_BINARY_DIR\\}/lang") + "${CMAKE_SOURCE_DIR}/lang"))))))) + (inputs + (list glu + libpng + libvorbis + openal + physfs + rapidjson + sdl2 + sdl2-image + sdl2-net + sdl2-ttf + zlib)) + (native-inputs + (list pkg-config)) + (home-page "http://baronygame.com") + (synopsis "3D first-person roguelike game") + (description + "A first-person roguelike role-playing game with cooperative play. The player +must descend a dark dungeon and destroy an undead lich while avoiding traps +and fighting monsters. The game features randomly generated dungeons, 13 +character classes, hundreds of items and artifacts, and cooperative +multiplayer for up to four players. This package does @emph{not} provide the +game assets.") + (license license:bsd-2))) + (define-public bastet (package (name "bastet") diff --git a/gnu/packages/patches/barony-fix-textures.patch b/gnu/packages/patches/barony-fix-textures.patch new file mode 100644 index 0000000000..712f0d63c6 --- /dev/null +++ b/gnu/packages/patches/barony-fix-textures.patch @@ -0,0 +1,237 @@ +From: Sylvain <sylvain.becker <at> gmail.com> +Date: Sat, 10 Apr 2021 21:33:29 +0200 +Subject: [PATCH] Fixed bug 580 - Use 'userdata' instead of 'refcount' + 'refcount' is a private SDL_Surface field + +--- + src/draw.cpp | 22 +++++++++++----------- + src/files.cpp | 2 +- + src/opengl.cpp | 26 +++++++++++++------------- + src/savepng.cpp | 2 +- + 4 files changed, 26 insertions(+), 26 deletions(-) + +diff --git a/src/draw.cpp b/src/draw.cpp +index 08f95343f..4e62c751a 100644 +--- a/src/draw.cpp ++++ b/src/draw.cpp +@@ -443,7 +443,7 @@ void drawImageRotatedAlpha( SDL_Surface* image, SDL_Rect* src, SDL_Rect* pos, re + } + + // draw a textured quad +- glBindTexture(GL_TEXTURE_2D, texid[image->refcount]); ++ glBindTexture(GL_TEXTURE_2D, texid[(long int)image->userdata]); + glColor4f(1, 1, 1, alpha / 255.1); + glBegin(GL_QUADS); + glTexCoord2f(1.0 * ((real_t)src->x / image->w), 1.0 * ((real_t)src->y / image->h)); +@@ -492,7 +492,7 @@ void drawImageColor( SDL_Surface* image, SDL_Rect* src, SDL_Rect* pos, Uint32 co + } + + // draw a textured quad +- glBindTexture(GL_TEXTURE_2D, texid[image->refcount]); ++ glBindTexture(GL_TEXTURE_2D, texid[(long int)image->userdata]); + real_t r = ((Uint8)(color >> mainsurface->format->Rshift)) / 255.f; + real_t g = ((Uint8)(color >> mainsurface->format->Gshift)) / 255.f; + real_t b = ((Uint8)(color >> mainsurface->format->Bshift)) / 255.f; +@@ -546,7 +546,7 @@ void drawImageAlpha( SDL_Surface* image, SDL_Rect* src, SDL_Rect* pos, Uint8 alp + } + + // draw a textured quad +- glBindTexture(GL_TEXTURE_2D, texid[image->refcount]); ++ glBindTexture(GL_TEXTURE_2D, texid[(long int)image->userdata]); + glColor4f(1, 1, 1, alpha / 255.1); + glPushMatrix(); + glBegin(GL_QUADS); +@@ -596,7 +596,7 @@ void drawImage( SDL_Surface* image, SDL_Rect* src, SDL_Rect* pos ) + } + + // draw a textured quad +- glBindTexture(GL_TEXTURE_2D, texid[image->refcount]); ++ glBindTexture(GL_TEXTURE_2D, texid[(long int)image->userdata]); + glColor4f(1, 1, 1, 1); + glPushMatrix(); + glBegin(GL_QUADS); +@@ -646,7 +646,7 @@ void drawImageRing(SDL_Surface* image, SDL_Rect* src, int radius, int thickness, + } + + // draw a textured quad +- glBindTexture(GL_TEXTURE_2D, texid[image->refcount]); ++ glBindTexture(GL_TEXTURE_2D, texid[(long int)image->userdata]); + glColor4f(1, 1, 1, alpha / 255.f); + glPushMatrix(); + +@@ -771,7 +771,7 @@ void drawImageScaled( SDL_Surface* image, SDL_Rect* src, SDL_Rect* pos ) + } + + // draw a textured quad +- glBindTexture(GL_TEXTURE_2D, texid[image->refcount]); ++ glBindTexture(GL_TEXTURE_2D, texid[(long int)image->userdata]); + glColor4f(1, 1, 1, 1); + glPushMatrix(); + glBegin(GL_QUADS); +@@ -826,7 +826,7 @@ void drawImageScaledPartial(SDL_Surface* image, SDL_Rect* src, SDL_Rect* pos, fl + } + + // draw a textured quad +- glBindTexture(GL_TEXTURE_2D, texid[image->refcount]); ++ glBindTexture(GL_TEXTURE_2D, texid[(long int)image->userdata]); + glColor4f(1, 1, 1, 1); + glPushMatrix(); + glBegin(GL_QUADS); +@@ -889,7 +889,7 @@ void drawImageScaledColor(SDL_Surface* image, SDL_Rect* src, SDL_Rect* pos, Uint + } + + // draw a textured quad +- glBindTexture(GL_TEXTURE_2D, texid[image->refcount]); ++ glBindTexture(GL_TEXTURE_2D, texid[(long int)image->userdata]); + real_t r = ((Uint8)(color >> mainsurface->format->Rshift)) / 255.f; + real_t g = ((Uint8)(color >> mainsurface->format->Gshift)) / 255.f; + real_t b = ((Uint8)(color >> mainsurface->format->Bshift)) / 255.f; +@@ -985,7 +985,7 @@ void drawImageFancy( SDL_Surface* image, Uint32 color, real_t angle, SDL_Rect* s + } + + // draw a textured quad +- glBindTexture(GL_TEXTURE_2D, texid[image->refcount]); ++ glBindTexture(GL_TEXTURE_2D, texid[(long int)image->userdata]); + real_t r = ((Uint8)(color >> mainsurface->format->Rshift)) / 255.f; + real_t g = ((Uint8)(color >> mainsurface->format->Gshift)) / 255.f; + real_t b = ((Uint8)(color >> mainsurface->format->Bshift)) / 255.f; +@@ -2186,7 +2186,7 @@ void drawWindowFancy(int x1, int y1, int x2, int y2) + glVertex2f(x2 - 1, yres - y1 - 1); + glEnd(); + glColor3f(.75, .75, .75); +- glBindTexture(GL_TEXTURE_2D, texid[fancyWindow_bmp->refcount]); // wood texture ++ glBindTexture(GL_TEXTURE_2D, texid[(long int)fancyWindow_bmp->userdata]); // wood texture + glBegin(GL_QUADS); + glTexCoord2f(0, 0); + glVertex2f(x1 + 2, yres - y1 - 2); +@@ -2322,7 +2322,7 @@ SDL_Rect ttfPrintTextColor( TTF_Font* font, int x, int y, Uint32 color, bool out + SDL_BlitSurface(textSurf, NULL, surf, &pos); + // load the text outline surface as a GL texture + allsurfaces[imgref] = surf; +- allsurfaces[imgref]->refcount = imgref; ++ allsurfaces[imgref]->userdata = (void*) imgref; + glLoadTexture(allsurfaces[imgref], imgref); + imgref++; + // store the surface in the text surface cache +diff --git a/src/files.cpp b/src/files.cpp +index 2beb9a6b9..389ade6d1 100644 +--- a/src/files.cpp ++++ b/src/files.cpp +@@ -591,7 +591,7 @@ SDL_Surface* loadImage(char const * const filename) + + // load the new surface as a GL texture + allsurfaces[imgref] = newSurface; +- allsurfaces[imgref]->refcount = imgref + 1; ++ allsurfaces[imgref]->userdata = (void *)(imgref); + glLoadTexture(allsurfaces[imgref], imgref); + + // free the translated surface +diff --git a/src/opengl.cpp b/src/opengl.cpp +index f5b81e77a..3ac225825 100644 +--- a/src/opengl.cpp ++++ b/src/opengl.cpp +@@ -500,7 +500,7 @@ void glDrawSprite(view_t* camera, Entity* entity, int mode) + } + if ( mode == REALCOLORS ) + { +- glBindTexture(GL_TEXTURE_2D, texid[sprite->refcount]); ++ glBindTexture(GL_TEXTURE_2D, texid[(long int)sprite->userdata]); + } + else + { +@@ -586,7 +586,7 @@ void glDrawSpriteFromImage(view_t* camera, Entity* entity, std::string text, int + //int x, y; + real_t s = 1; + SDL_Surface* image = sprites[0]; +- GLuint textureId = texid[sprites[0]->refcount]; ++ GLuint textureId = texid[(long int)sprites[0]->userdata]; + char textToRetrieve[128]; + + if ( text.compare("") == 0 ) +@@ -603,7 +603,7 @@ void glDrawSpriteFromImage(view_t* camera, Entity* entity, std::string text, int + textToRetrieve[std::min(static_cast<int>(strlen(text.c_str())), 22)] = '\0'; + if ( (image = ttfTextHashRetrieve(ttfTextHash, textToRetrieve, ttf12, true)) != NULL ) + { +- textureId = texid[image->refcount]; ++ textureId = texid[(long int)image->userdata]; + } + else + { +@@ -627,7 +627,7 @@ void glDrawSpriteFromImage(view_t* camera, Entity* entity, std::string text, int + SDL_BlitSurface(textSurf, NULL, image, &pos); + // load the text outline surface as a GL texture + allsurfaces[imgref] = image; +- allsurfaces[imgref]->refcount = imgref; ++ allsurfaces[imgref]->userdata = (void *)((long int)imgref); + glLoadTexture(allsurfaces[imgref], imgref); + imgref++; + // store the surface in the text surface cache +@@ -635,7 +635,7 @@ void glDrawSpriteFromImage(view_t* camera, Entity* entity, std::string text, int + { + printlog("warning: failed to store text outline surface with imgref %d\n", imgref - 1); + } +- textureId = texid[image->refcount]; ++ textureId = texid[(long int)image->userdata]; + } + // setup projection + glMatrixMode(GL_PROJECTION); +@@ -864,7 +864,7 @@ void glDrawWorld(view_t* camera, int mode) + + // first (higher) sky layer + glColor4f(1.f, 1.f, 1.f, .5); +- glBindTexture(GL_TEXTURE_2D, texid[tiles[cloudtile]->refcount]); // sky tile ++ glBindTexture(GL_TEXTURE_2D, texid[(long int)tiles[cloudtile]->userdata]); // sky tile + glBegin( GL_QUADS ); + glTexCoord2f((real_t)(ticks % 60) / 60, (real_t)(ticks % 60) / 60); + glVertex3f(-CLIPFAR * 16, 64, -CLIPFAR * 16); +@@ -881,7 +881,7 @@ void glDrawWorld(view_t* camera, int mode) + + // second (closer) sky layer + glColor4f(1.f, 1.f, 1.f, .5); +- glBindTexture(GL_TEXTURE_2D, texid[tiles[cloudtile]->refcount]); // sky tile ++ glBindTexture(GL_TEXTURE_2D, texid[(long int)tiles[cloudtile]->userdata]); // sky tile + glBegin( GL_QUADS ); + glTexCoord2f((real_t)(ticks % 240) / 240, (real_t)(ticks % 240) / 240); + glVertex3f(-CLIPFAR * 16, 32, -CLIPFAR * 16); +@@ -954,13 +954,13 @@ void glDrawWorld(view_t* camera, int mode) + { + if ( map.tiles[index] < 0 || map.tiles[index] >= numtiles ) + { +- new_tex = texid[sprites[0]->refcount]; +- //glBindTexture(GL_TEXTURE_2D, texid[sprites[0]->refcount]); ++ new_tex = texid[(long int)sprites[0]->userdata]; ++ //glBindTexture(GL_TEXTURE_2D, texid[(long int)sprites[0]->userdata]); + } + else + { +- new_tex = texid[tiles[map.tiles[index]]->refcount]; +- //glBindTexture(GL_TEXTURE_2D, texid[tiles[map.tiles[index]]->refcount]); ++ new_tex = texid[(long int)tiles[map.tiles[index]]->userdata]; ++ //glBindTexture(GL_TEXTURE_2D, texid[(long int)tiles[map.tiles[index]]->userdata]); + } + } + else +@@ -1282,8 +1282,8 @@ void glDrawWorld(view_t* camera, int mode) + // bind texture + if ( mode == REALCOLORS ) + { +- new_tex = texid[tiles[mapceilingtile]->refcount]; +- //glBindTexture(GL_TEXTURE_2D, texid[tiles[50]->refcount]); // rock tile ++ new_tex = texid[(long int)tiles[mapceilingtile]->userdata]; ++ //glBindTexture(GL_TEXTURE_2D, texid[(long int)tiles[50]->userdata]); // rock tile + if (cur_tex!=new_tex) + { + glEnd(); +diff --git a/src/savepng.cpp b/src/savepng.cpp +index fa7a5d4e2..59e052a5c 100644 +--- a/src/savepng.cpp ++++ b/src/savepng.cpp +@@ -59,7 +59,7 @@ SDL_Surface* SDL_PNGFormatAlpha(SDL_Surface* src) + /* NO-OP for images < 32bpp and 32bpp images that already have Alpha channel */ + if (src->format->BitsPerPixel <= 24 || src->format->Amask) + { +- src->refcount++; ++ src->userdata = (void *)((long int) src->userdata + 1); + return src; + } + -- 2.36.1
Ludovic Courtès <ludo <at> gnu.org>
:Timotej Lazar <timotej.lazar <at> araneo.si>
:Message #10 received at 56230-done <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: Timotej Lazar <timotej.lazar <at> araneo.si> Cc: 56230-done <at> debbugs.gnu.org Subject: Re: bug#56230: [PATCH] gnu: Add barony. Date: Thu, 04 Aug 2022 11:24:43 +0200
Hi Timotej, Timotej Lazar <timotej.lazar <at> araneo.si> skribis: > * gnu/packages/games.scm (barony): New variable. > * gnu/packages/patches/barony-fix-textures.patch: New file. > * gnu/local.mk (dist_patch_DATA): Add it. Finally applied, thanks! Ludo’.
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Thu, 01 Sep 2022 11:24:08 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.