alemart / opensurge

A retro game engine with a fun platformer for making your dreams come true!
http://opensurge2d.org
GNU General Public License v3.0
386 stars 33 forks source link

Missing files in source tarball and another error when building from source. #113

Closed darkshram closed 5 months ago

darkshram commented 5 months ago

These files were missing if building and installing from Github source tarball (had to copy files from previous version):

sudo cp -a ~/Escritorio/surge_life_icon.png /usr/share/games/opensurge/images/players/

opensurge Failed to load image "images/players/surge_goal.png"

sudo cp -a ~/Escritorio/surge_goal.png /usr/share/games/opensurge/images/players/


`surge_life_icon.png` ans `surge_goal.png` are referenced in `opensurge-0.6.1/src/core/import.c`.

But after copying the missing files, then I get this new error:

opensurge In ./src/core/asset.c:1084 (foreach_file): assertion list != ((void *)0) failed.



And obviously, Opensurge fails to start.

Build environment:

OS: ALDOS 1.4.18 (Fedora derivative)
GCC 8.5.0
Glibc 2.27
Allegro 5.2.7.0
Physfs 3.0.2
CMake 3.26.6
alemart commented 5 months ago

Hi @darkshram,

Files surge_goal.png and surge_life_icon.png were removed in 0.6.1 and are not meant to be restored manually like that.

Remove the previous opensurge installation from your system, get a 0.6.1 source tarball and try again. When compiling, use preferably physfs 3.2.0 and Allegro 5.2.9.1.

darkshram commented 5 months ago

Fedora only has physfs 3.0.2 and allegro 5.2.7.0. No further updates available for those two libraries in Fedora because several issues with further versions.

My Issue persisted until I did complete removal (dnf -y remove opensurge surgescript*) and then realized my son added/modified some files inside /usr/share/games/opensurge (my rpm packages installed data there) to have Sonic as MC for 0.6.0 version, so I completely removed /usr/share/games/opensurge before installing rpm packages (spec file synced with the one from Fedora) again (which now install data under /usr/share/opensurge).

alemart commented 5 months ago

The modification of game assets can also be done in the home folder. See README.md#paths.

Easier still, recompile the game with the GAME_RUNINPLACE flag to have all assets in the folder of the executable.

Glad to be of help!