Giter Site home page Giter Site logo

opensludge / opensludge Goto Github PK

View Code? Open in Web Editor NEW
70.0 16.0 20.0 12.45 MB

SLUDGE Adventure Game Engine

Home Page: http://opensludge.github.io

License: GNU Lesser General Public License v2.1

C++ 84.03% C 5.03% Shell 0.03% Objective-C 7.12% NSIS 1.75% GLSL 0.35% Makefile 1.26% M4 0.43%

opensludge's Introduction

For installation instructions, see INSTALL.

SLUDGE (except the GTK Dev Kit) is licenced under GNU LGPL version 2.1.
The GTK Dev Kit is licensed under GNU GPL version 3 or later.

Enjoy!

- Tim, Rikard and Tobias

opensludge's People

Contributors

dos1 avatar ptitseb avatar tobihan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opensludge's Issues

Linux: sludge-projectmanager segfaults when creating new project

Hi! I used to be on the Hungry Software forums. Got nostalgic for SLUDGE games and discovered that sludge-devkit packages are still available in the Ubuntu repos. So I wanted to mess around with it a little but hit a roadblock pretty quickly: I cannot create a project file.

When I click on File -> New and try to save the new SLUDGE project file anywhere, the result is a segfault.

Running on Ubuntu 20.10 with the SLUDGE 2.2.2 package available in the official repos.

GDB output:

Thread 1 "sludge-projectm" received signal SIGSEGV, Segmentation fault.
0x00007ffff74ec769 in __GI___libc_free (mem=0x6f662e44434c2e6e) at malloc.c:3288
3288    malloc.c: No such file or directory.
(gdb) bt
#0  0x00007ffff74ec769 in __GI___libc_free (mem=0x6f662e44434c2e6e) at malloc.c:3288
#1  0x0000555555562a6f in clearFileList ()
#2  0x0000555555563332 in doNewProject ()
#3  0x00005555555613b6 in SludgeProjectManager::postNew() ()
#4  0x00007ffff79fbbcf in g_closure_invoke () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#5  0x00007ffff7a2581b in  () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6  0x00007ffff7a19638 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7  0x00007ffff7a19893 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8  0x00007ffff7cce9cc in gtk_widget_activate () at /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#9  0x00007ffff7bbf3d5 in gtk_menu_shell_activate_item () at /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#10 0x00007ffff7bbf6e9 in  () at /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#11 0x00007ffff7bac31b in  () at /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#12 0x00007ffff79fbbcf in g_closure_invoke () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff7a25239 in  () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007ffff7a19046 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x00007ffff7a19893 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007ffff7ccfc74 in  () at /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#17 0x00007ffff7baa854 in gtk_propagate_event () at /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#18 0x00007ffff7baaccb in gtk_main_do_event () at /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#19 0x00007ffff7f3a400 in  () at /lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#20 0x00007ffff79078eb in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007ffff795ad28 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007ffff7906e53 in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007ffff7ba9b22 in gtk_main () at /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#24 0x000055555555e5cb in main ()

Findings trying to make macOS build again

I checked in on SLUDGE and saw that it hadn't gotten any attention on Mac since a few years back, and I sat down trying to see if I could bring it up to speed. (The 2019 release of macOS will drop support for 32-bit binaries, so there's reason to produce a build again soon.)

These are a few of the issues I encountered. Most of them are just the platform having changed since the last time - I simply mean to document them to help anyone giving this a try after me. Ultimately it looked like these changes would be too disruptive to the current state to be done by an outsider, so I thought the best I could do was to write it up instead.

  • It is built against the Universal Mac OS X 10.4 SDK, which is long since unsupported. I changed it to the most current SDK.
  • It builds using GCC, which is similarly not provided. clang is used on macOS nowadays (referred in Xcode as the "LLVM compiler"); I changed it to use that.
  • GLee is not included in the repository, probably intended to be provided by the developer. The steps to build for Linux include how to retrieve it, but there are no steps for building on Mac and the project file assumes a .c file is included as well as the header, so it's intended to be provided manually? Trying to retrieve it from its site reveals that the site is busted. Grabbing it from a random other repository worked.
  • Carbon is referred to by being a linked framework and in GLee.c; it's not its own framework in newer SDKs. Replacing it with #include <CoreFoundation/CoreFoundation.h> worked. (GLee only uses it for the CoreFoundation APIs.)
  • libpng.framework is referred to and used. It is no longer a framework provided by the SDK or system, and recent libpng downloads no longer provide an Xcode project, and therefore not a libpng.framework target. I looked around and could find it packaged only as a sub-framework of a framework that itself depended upon another framework. At this point, I gave up, since the changes would be too invasive, no matter what my approach, to be assumed to be acceptable in a blind pull request.
  • In addition, building for release would require someone's Developer ID to be signed in a readily distributable way, or require users to change a setting in the Security preference pane to allow apps from all developers.

Compiling with clang did reveal two memory management-related warnings:

  • linker.cpp#246: /.../opensludge/source/DevKit/Compiler/linker.cpp:246:2: 'delete' applied to a pointer that was allocated with 'new[]'; did you mean 'delete[]'?
  • splitter.cpp#112: /.../opensludge/source/DevKit/Compiler/splitter.cpp:112:6: 'delete' applied to a pointer that was allocated with 'new[]'; did you mean 'delete[]'?

Dependencies too old

Hi there, does anybody still read this or is this abandoned since 2016? Latest release is even 2014โ€ฆ
I got a game written in sludge I really need to get running again. And this does not compile anymore because it got automake1.14 and others as dependencies which is way too old to get it to work again on modern systems.

Can this be updated?

Greetings

Fails to build on Arch

I'll take a look at it later, but if someone wants to beat me I won't complain ;)

make  all-recursive
make[1]: Entering directory '/home/dos/.cache/yay/sludge/src/sludge-2.2.2'
Making all in source
make[2]: Entering directory '/home/dos/.cache/yay/sludge/src/sludge-2.2.2/source'
Making all in Engine
make[3]: Entering directory '/home/dos/.cache/yay/sludge/src/sludge-2.2.2/source/Engine'
  CXX      backdrop.o
  CXX      bg_effects.o
  CXX      builtin.o
  CXX      cursors.o
  CXX      debug.o
  CXX      fileset.o
  CXX      floor.o
  CXX      fonttext.o
  CXX      freeze.o
  CXX      graphics.o
  CXX      helpers.o
  CXX      language.o
  CXX      line.o
  CXX      linuxstuff.o
  CXX      loadsave.o
  CXX      main.o
  CXX      memwatch.o
  CXX      moreio.o
  CXX      movie.o
  CXX      newfatal.o
  CXX      objtypes.o
  CXX      people.o
  CXX      region.o
  CXX      savedata.o
  CXX      shaders.o
  CXX      sludger.o
  CXX      sprbanks.o
  CXX      sprites.o
  CXX      statusba.o
  CXX      stringy.o
  CXX      talk.o
  CXX      thumbnail.o
  CXX      timing.o
  CXX      transition.o
  CXX      variable.o
  CXX      zbuffer.o
  CXX      sound_openal.o
sound_openal.cpp: In function 'ALuint DUMBdecode(void*, ALubyte*, ALuint)':
sound_openal.cpp:122:38: warning: 'long int duh_render(DUH_SIGRENDERER*, int, int, float, float, long int, void*)' is deprecated [-Wdeprecated-declarations]
     DUMB_volume, delta, bufsize, data);
                                      ^
In file included from sound_openal.cpp:24:
/usr/include/dumb.h:309:6: note: declared here
 long duh_render(DUH_SIGRENDERER *sigrenderer, int bits, int unsign,
      ^~~~~~~~~~
sound_openal.cpp:122:38: warning: 'long int duh_render(DUH_SIGRENDERER*, int, int, float, float, long int, void*)' is deprecated [-Wdeprecated-declarations]
     DUMB_volume, delta, bufsize, data);
                                      ^
In file included from sound_openal.cpp:24:
/usr/include/dumb.h:309:6: note: declared here
 long duh_render(DUH_SIGRENDERER *sigrenderer, int bits, int unsign,
      ^~~~~~~~~~
  CXX      ../CommonCode/utf8.o
  CXX      libwebm/mkvparser.o
  CXX      libwebm/mkvreader.o
  CXXLD    sludge-engine
make[3]: Leaving directory '/home/dos/.cache/yay/sludge/src/sludge-2.2.2/source/Engine'
make[3]: Entering directory '/home/dos/.cache/yay/sludge/src/sludge-2.2.2/source'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/home/dos/.cache/yay/sludge/src/sludge-2.2.2/source'
make[2]: Leaving directory '/home/dos/.cache/yay/sludge/src/sludge-2.2.2/source'
Making all in GTK_Dev_Kit
make[2]: Entering directory '/home/dos/.cache/yay/sludge/src/sludge-2.2.2/GTK_Dev_Kit'
Making all in support
make[3]: Entering directory '/home/dos/.cache/yay/sludge/src/sludge-2.2.2/GTK_Dev_Kit/support'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/dos/.cache/yay/sludge/src/sludge-2.2.2/GTK_Dev_Kit/support'
make[3]: Entering directory '/home/dos/.cache/yay/sludge/src/sludge-2.2.2/GTK_Dev_Kit'
  CXX      FloorMakerMain.o
  CXX      SludgeFloorMaker.o
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12066:105: error: conflicting declaration 'typedef void (* PFNGLFRAGMENTLIGHTFVSGIXPROC)(GLenum, GLenum, const GLfloat*)'
 typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params);
                                                                                                         ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:18734:28: note: previous declaration as 'typedef void (* PFNGLFRAGMENTLIGHTFVSGIXPROC)(GLenum, GLenum, GLfloat*)'
 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat* params);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12068:103: error: conflicting declaration 'typedef void (* PFNGLFRAGMENTLIGHTIVSGIXPROC)(GLenum, GLenum, const GLint*)'
 typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params);
                                                                                                       ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:18736:28: note: previous declaration as 'typedef void (* PFNGLFRAGMENTLIGHTIVSGIXPROC)(GLenum, GLenum, GLint*)'
 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint* params);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12070:96: error: conflicting declaration 'typedef void (* PFNGLFRAGMENTLIGHTMODELFVSGIXPROC)(GLenum, const GLfloat*)'
 typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params);
                                                                                                ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:18730:28: note: previous declaration as 'typedef void (* PFNGLFRAGMENTLIGHTMODELFVSGIXPROC)(GLenum, GLfloat*)'
 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, GLfloat* params);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12072:94: error: conflicting declaration 'typedef void (* PFNGLFRAGMENTLIGHTMODELIVSGIXPROC)(GLenum, const GLint*)'
 typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params);
                                                                                              ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:18732:28: note: previous declaration as 'typedef void (* PFNGLFRAGMENTLIGHTMODELIVSGIXPROC)(GLenum, GLint*)'
 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, GLint* params);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12079:104: error: conflicting declaration 'typedef void (* PFNGLGETFRAGMENTMATERIALFVSGIXPROC)(GLenum, GLenum, GLfloat*)'
 typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params);
                                                                                                        ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:18743:28: note: previous declaration as 'typedef void (* PFNGLGETFRAGMENTMATERIALFVSGIXPROC)(GLenum, GLenum, const GLfloat*)'
 typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* data);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12080:102: error: conflicting declaration 'typedef void (* PFNGLGETFRAGMENTMATERIALIVSGIXPROC)(GLenum, GLenum, GLint*)'
 typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params);
                                                                                                      ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:18744:28: note: previous declaration as 'typedef void (* PFNGLGETFRAGMENTMATERIALIVSGIXPROC)(GLenum, GLenum, const GLint*)'
 typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* data);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12083:74: error: 'void __glewFragmentColorMaterialSGIX(GLenum, GLenum)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum face, GLenum mode);
                                                                          ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22672:52: note: previous declaration 'void (* __glewFragmentColorMaterialSGIX)(GLenum, GLenum)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX;
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12084:84: error: 'void __glewFragmentLightfSGIX(GLenum, GLenum, GLfloat)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentLightfSGIX (GLenum light, GLenum pname, GLfloat param);
                                                                                    ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22677:45: note: previous declaration 'void (* __glewFragmentLightfSGIX)(GLenum, GLenum, GLfloat)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFSGIXPROC __glewFragmentLightfSGIX;
                                             ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12085:93: error: 'void __glewFragmentLightfvSGIX(GLenum, GLenum, const GLfloat*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum light, GLenum pname, const GLfloat *params);
                                                                                             ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22678:46: note: previous declaration 'void (* __glewFragmentLightfvSGIX)(GLenum, GLenum, GLfloat*)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVSGIXPROC __glewFragmentLightfvSGIX;
                                              ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12086:82: error: 'void __glewFragmentLightiSGIX(GLenum, GLenum, GLint)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentLightiSGIX (GLenum light, GLenum pname, GLint param);
                                                                                  ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22679:45: note: previous declaration 'void (* __glewFragmentLightiSGIX)(GLenum, GLenum, GLint)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTISGIXPROC __glewFragmentLightiSGIX;
                                             ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12087:91: error: 'void __glewFragmentLightivSGIX(GLenum, GLenum, const GLint*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentLightivSGIX (GLenum light, GLenum pname, const GLint *params);
                                                                                           ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22680:46: note: previous declaration 'void (* __glewFragmentLightivSGIX)(GLenum, GLenum, GLint*)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVSGIXPROC __glewFragmentLightivSGIX;
                                              ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12088:75: error: 'void __glewFragmentLightModelfSGIX(GLenum, GLfloat)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum pname, GLfloat param);
                                                                           ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22673:50: note: previous declaration 'void (* __glewFragmentLightModelfSGIX)(GLenum, GLfloat)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFSGIXPROC __glewFragmentLightModelfSGIX;
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12089:84: error: 'void __glewFragmentLightModelfvSGIX(GLenum, const GLfloat*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum pname, const GLfloat *params);
                                                                                    ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22674:51: note: previous declaration 'void (* __glewFragmentLightModelfvSGIX)(GLenum, GLfloat*)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVSGIXPROC __glewFragmentLightModelfvSGIX;
                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12090:73: error: 'void __glewFragmentLightModeliSGIX(GLenum, GLint)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum pname, GLint param);
                                                                         ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22675:50: note: previous declaration 'void (* __glewFragmentLightModeliSGIX)(GLenum, GLint)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELISGIXPROC __glewFragmentLightModeliSGIX;
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12091:82: error: 'void __glewFragmentLightModelivSGIX(GLenum, const GLint*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum pname, const GLint *params);
                                                                                  ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22676:51: note: previous declaration 'void (* __glewFragmentLightModelivSGIX)(GLenum, GLint*)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVSGIXPROC __glewFragmentLightModelivSGIX;
                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12092:86: error: 'void __glewFragmentMaterialfSGIX(GLenum, GLenum, GLfloat)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum face, GLenum pname, GLfloat param);
                                                                                      ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22681:48: note: previous declaration 'void (* __glewFragmentMaterialfSGIX)(GLenum, GLenum, GLfloat)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFSGIXPROC __glewFragmentMaterialfSGIX;
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12093:95: error: 'void __glewFragmentMaterialfvSGIX(GLenum, GLenum, const GLfloat*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum face, GLenum pname, const GLfloat *params);
                                                                                               ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22682:49: note: previous declaration 'void (* __glewFragmentMaterialfvSGIX)(GLenum, GLenum, const GLfloat*)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVSGIXPROC __glewFragmentMaterialfvSGIX;
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12094:84: error: 'void __glewFragmentMaterialiSGIX(GLenum, GLenum, GLint)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum face, GLenum pname, GLint param);
                                                                                    ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22683:48: note: previous declaration 'void (* __glewFragmentMaterialiSGIX)(GLenum, GLenum, GLint)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALISGIXPROC __glewFragmentMaterialiSGIX;
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12095:93: error: 'void __glewFragmentMaterialivSGIX(GLenum, GLenum, const GLint*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum face, GLenum pname, const GLint *params);
                                                                                             ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22684:49: note: previous declaration 'void (* __glewFragmentMaterialivSGIX)(GLenum, GLenum, const GLint*)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVSGIXPROC __glewFragmentMaterialivSGIX;
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12096:90: error: 'void __glewGetFragmentLightfvSGIX(GLenum, GLenum, GLfloat*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum light, GLenum pname, GLfloat *params);
                                                                                          ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22685:49: note: previous declaration 'void (* __glewGetFragmentLightfvSGIX)(GLenum, GLenum, GLfloat*)'
 GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVSGIXPROC __glewGetFragmentLightfvSGIX;
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12097:88: error: 'void __glewGetFragmentLightivSGIX(GLenum, GLenum, GLint*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum light, GLenum pname, GLint *params);
                                                                                        ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22686:49: note: previous declaration 'void (* __glewGetFragmentLightivSGIX)(GLenum, GLenum, GLint*)'
 GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVSGIXPROC __glewGetFragmentLightivSGIX;
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12098:92: error: 'void __glewGetFragmentMaterialfvSGIX(GLenum, GLenum, GLfloat*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum face, GLenum pname, GLfloat *params);
                                                                                            ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22687:52: note: previous declaration 'void (* __glewGetFragmentMaterialfvSGIX)(GLenum, GLenum, const GLfloat*)'
 GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVSGIXPROC __glewGetFragmentMaterialfvSGIX;
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from FloorMakerMain.cpp:32:
/usr/include/GL/glext.h:12099:90: error: 'void __glewGetFragmentMaterialivSGIX(GLenum, GLenum, GLint*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum face, GLenum pname, GLint *params);
                                                                                          ^
In file included from FloorMakerMain.cpp:28:
/usr/include/GL/glew.h:22688:52: note: previous declaration 'void (* __glewGetFragmentMaterialivSGIX)(GLenum, GLenum, const GLint*)'
 GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSGIX;
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FloorMakerMain.cpp: In function 'int main(int, char**)':
FloorMakerMain.cpp:282:50: warning: 'void g_thread_init(gpointer)' is deprecated [-Wdeprecated-declarations]
  if (!g_thread_supported ()){ g_thread_init (NULL); }
                                                  ^
In file included from /usr/include/glib-2.0/glib.h:111,
                 from /usr/include/glib-2.0/gobject/gbinding.h:28,
                 from /usr/include/glib-2.0/glib-object.h:23,
                 from /usr/include/glib-2.0/gio/gioenums.h:28,
                 from /usr/include/glib-2.0/gio/giotypes.h:28,
                 from /usr/include/glib-2.0/gio/gio.h:26,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from FloorMakerMain.cpp:21:
/usr/include/glib-2.0/glib/deprecated/gthread.h:265:10: note: declared here
 void     g_thread_init                   (gpointer vtable);
          ^~~~~~~~~~~~~
FloorMakerMain.cpp:282:50: warning: 'void g_thread_init(gpointer)' is deprecated [-Wdeprecated-declarations]
  if (!g_thread_supported ()){ g_thread_init (NULL); }
                                                  ^
In file included from /usr/include/glib-2.0/glib.h:111,
                 from /usr/include/glib-2.0/gobject/gbinding.h:28,
                 from /usr/include/glib-2.0/glib-object.h:23,
                 from /usr/include/glib-2.0/gio/gioenums.h:28,
                 from /usr/include/glib-2.0/gio/giotypes.h:28,
                 from /usr/include/glib-2.0/gio/gio.h:26,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from FloorMakerMain.cpp:21:
/usr/include/glib-2.0/glib/deprecated/gthread.h:265:10: note: declared here
 void     g_thread_init                   (gpointer vtable);
          ^~~~~~~~~~~~~
make[3]: *** [Makefile:908: FloorMakerMain.o] Error 1
make[3]: *** Waiting for unfinished jobs....
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12066:105: error: conflicting declaration 'typedef void (* PFNGLFRAGMENTLIGHTFVSGIXPROC)(GLenum, GLenum, const GLfloat*)'
 typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params);
                                                                                                         ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:18734:28: note: previous declaration as 'typedef void (* PFNGLFRAGMENTLIGHTFVSGIXPROC)(GLenum, GLenum, GLfloat*)'
 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat* params);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12068:103: error: conflicting declaration 'typedef void (* PFNGLFRAGMENTLIGHTIVSGIXPROC)(GLenum, GLenum, const GLint*)'
 typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params);
                                                                                                       ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:18736:28: note: previous declaration as 'typedef void (* PFNGLFRAGMENTLIGHTIVSGIXPROC)(GLenum, GLenum, GLint*)'
 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint* params);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12070:96: error: conflicting declaration 'typedef void (* PFNGLFRAGMENTLIGHTMODELFVSGIXPROC)(GLenum, const GLfloat*)'
 typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params);
                                                                                                ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:18730:28: note: previous declaration as 'typedef void (* PFNGLFRAGMENTLIGHTMODELFVSGIXPROC)(GLenum, GLfloat*)'
 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, GLfloat* params);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12072:94: error: conflicting declaration 'typedef void (* PFNGLFRAGMENTLIGHTMODELIVSGIXPROC)(GLenum, const GLint*)'
 typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params);
                                                                                              ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:18732:28: note: previous declaration as 'typedef void (* PFNGLFRAGMENTLIGHTMODELIVSGIXPROC)(GLenum, GLint*)'
 typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, GLint* params);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12079:104: error: conflicting declaration 'typedef void (* PFNGLGETFRAGMENTMATERIALFVSGIXPROC)(GLenum, GLenum, GLfloat*)'
 typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params);
                                                                                                        ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:18743:28: note: previous declaration as 'typedef void (* PFNGLGETFRAGMENTMATERIALFVSGIXPROC)(GLenum, GLenum, const GLfloat*)'
 typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* data);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12080:102: error: conflicting declaration 'typedef void (* PFNGLGETFRAGMENTMATERIALIVSGIXPROC)(GLenum, GLenum, GLint*)'
 typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params);
                                                                                                      ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:18744:28: note: previous declaration as 'typedef void (* PFNGLGETFRAGMENTMATERIALIVSGIXPROC)(GLenum, GLenum, const GLint*)'
 typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* data);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12083:74: error: 'void __glewFragmentColorMaterialSGIX(GLenum, GLenum)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum face, GLenum mode);
                                                                          ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22672:52: note: previous declaration 'void (* __glewFragmentColorMaterialSGIX)(GLenum, GLenum)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX;
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12084:84: error: 'void __glewFragmentLightfSGIX(GLenum, GLenum, GLfloat)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentLightfSGIX (GLenum light, GLenum pname, GLfloat param);
                                                                                    ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22677:45: note: previous declaration 'void (* __glewFragmentLightfSGIX)(GLenum, GLenum, GLfloat)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFSGIXPROC __glewFragmentLightfSGIX;
                                             ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12085:93: error: 'void __glewFragmentLightfvSGIX(GLenum, GLenum, const GLfloat*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum light, GLenum pname, const GLfloat *params);
                                                                                             ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22678:46: note: previous declaration 'void (* __glewFragmentLightfvSGIX)(GLenum, GLenum, GLfloat*)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVSGIXPROC __glewFragmentLightfvSGIX;
                                              ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12086:82: error: 'void __glewFragmentLightiSGIX(GLenum, GLenum, GLint)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentLightiSGIX (GLenum light, GLenum pname, GLint param);
                                                                                  ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22679:45: note: previous declaration 'void (* __glewFragmentLightiSGIX)(GLenum, GLenum, GLint)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTISGIXPROC __glewFragmentLightiSGIX;
                                             ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12087:91: error: 'void __glewFragmentLightivSGIX(GLenum, GLenum, const GLint*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentLightivSGIX (GLenum light, GLenum pname, const GLint *params);
                                                                                           ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22680:46: note: previous declaration 'void (* __glewFragmentLightivSGIX)(GLenum, GLenum, GLint*)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVSGIXPROC __glewFragmentLightivSGIX;
                                              ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12088:75: error: 'void __glewFragmentLightModelfSGIX(GLenum, GLfloat)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum pname, GLfloat param);
                                                                           ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22673:50: note: previous declaration 'void (* __glewFragmentLightModelfSGIX)(GLenum, GLfloat)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFSGIXPROC __glewFragmentLightModelfSGIX;
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12089:84: error: 'void __glewFragmentLightModelfvSGIX(GLenum, const GLfloat*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum pname, const GLfloat *params);
                                                                                    ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22674:51: note: previous declaration 'void (* __glewFragmentLightModelfvSGIX)(GLenum, GLfloat*)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVSGIXPROC __glewFragmentLightModelfvSGIX;
                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12090:73: error: 'void __glewFragmentLightModeliSGIX(GLenum, GLint)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum pname, GLint param);
                                                                         ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22675:50: note: previous declaration 'void (* __glewFragmentLightModeliSGIX)(GLenum, GLint)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELISGIXPROC __glewFragmentLightModeliSGIX;
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12091:82: error: 'void __glewFragmentLightModelivSGIX(GLenum, const GLint*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum pname, const GLint *params);
                                                                                  ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22676:51: note: previous declaration 'void (* __glewFragmentLightModelivSGIX)(GLenum, GLint*)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVSGIXPROC __glewFragmentLightModelivSGIX;
                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12092:86: error: 'void __glewFragmentMaterialfSGIX(GLenum, GLenum, GLfloat)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum face, GLenum pname, GLfloat param);
                                                                                      ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22681:48: note: previous declaration 'void (* __glewFragmentMaterialfSGIX)(GLenum, GLenum, GLfloat)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFSGIXPROC __glewFragmentMaterialfSGIX;
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12093:95: error: 'void __glewFragmentMaterialfvSGIX(GLenum, GLenum, const GLfloat*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum face, GLenum pname, const GLfloat *params);
                                                                                               ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22682:49: note: previous declaration 'void (* __glewFragmentMaterialfvSGIX)(GLenum, GLenum, const GLfloat*)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVSGIXPROC __glewFragmentMaterialfvSGIX;
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12094:84: error: 'void __glewFragmentMaterialiSGIX(GLenum, GLenum, GLint)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum face, GLenum pname, GLint param);
                                                                                    ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22683:48: note: previous declaration 'void (* __glewFragmentMaterialiSGIX)(GLenum, GLenum, GLint)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALISGIXPROC __glewFragmentMaterialiSGIX;
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12095:93: error: 'void __glewFragmentMaterialivSGIX(GLenum, GLenum, const GLint*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum face, GLenum pname, const GLint *params);
                                                                                             ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22684:49: note: previous declaration 'void (* __glewFragmentMaterialivSGIX)(GLenum, GLenum, const GLint*)'
 GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVSGIXPROC __glewFragmentMaterialivSGIX;
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12096:90: error: 'void __glewGetFragmentLightfvSGIX(GLenum, GLenum, GLfloat*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum light, GLenum pname, GLfloat *params);
                                                                                          ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22685:49: note: previous declaration 'void (* __glewGetFragmentLightfvSGIX)(GLenum, GLenum, GLfloat*)'
 GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVSGIXPROC __glewGetFragmentLightfvSGIX;
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12097:88: error: 'void __glewGetFragmentLightivSGIX(GLenum, GLenum, GLint*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum light, GLenum pname, GLint *params);
                                                                                        ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22686:49: note: previous declaration 'void (* __glewGetFragmentLightivSGIX)(GLenum, GLenum, GLint*)'
 GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVSGIXPROC __glewGetFragmentLightivSGIX;
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12098:92: error: 'void __glewGetFragmentMaterialfvSGIX(GLenum, GLenum, GLfloat*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum face, GLenum pname, GLfloat *params);
                                                                                            ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22687:52: note: previous declaration 'void (* __glewGetFragmentMaterialfvSGIX)(GLenum, GLenum, const GLfloat*)'
 GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVSGIXPROC __glewGetFragmentMaterialfvSGIX;
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from SludgeFloorMaker.cpp:32:
/usr/include/GL/glext.h:12099:90: error: 'void __glewGetFragmentMaterialivSGIX(GLenum, GLenum, GLint*)' redeclared as different kind of symbol
 GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum face, GLenum pname, GLint *params);
                                                                                          ^
In file included from SludgeFloorMaker.cpp:28:
/usr/include/GL/glew.h:22688:52: note: previous declaration 'void (* __glewGetFragmentMaterialivSGIX)(GLenum, GLenum, const GLint*)'
 GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSGIX;
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[3]: *** [Makefile:908: SludgeFloorMaker.o] Error 1
make[3]: Leaving directory '/home/dos/.cache/yay/sludge/src/sludge-2.2.2/GTK_Dev_Kit'
make[2]: *** [Makefile:951: all-recursive] Error 1
make[2]: Leaving directory '/home/dos/.cache/yay/sludge/src/sludge-2.2.2/GTK_Dev_Kit'
make[1]: *** [Makefile:427: all-recursive] Error 1
make[1]: Leaving directory '/home/dos/.cache/yay/sludge/src/sludge-2.2.2'
make: *** [Makefile:347: all] Error 2

GLES2 engine doesn't start @ 16bpp

Hi,

The gist of the problem on Odroid C1 is this happens to be the most problem-free colour depth at the moment. Here's a trace:

(gdb) run
Starting program: /home/odroid/sludge-engine -d 1 /usr/share/out-of-order/gamedata
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
EGL Opening X11 display
EGL Getting EGL display
[New Thread 0xb5d06450 (LWP 2190)]
EGL Initializing
[New Thread 0xb5506450 (LWP 2191)]
EGL_VENDOR: ARM
EGL_VERSION: 1.4 Linux-r5p0-01rel0
EGL_EXTENSIONS: EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_reusable_sync EGL_KHR_fence_sync EGL_EXT_swap_buffers_with_damage EGL_KHR_lock_surface EGL_KHR_lock_surface2 EGL_EXT_create_context_robustness EGL_ANDROID_blob_cache EGL_KHR_create_context 
*** Engine compiled Dec  9 2015 at 05:16:30.
Video mode 1024 768 set successfully.
EGL Found 3 available configs
EGL Config 0
EGL Binding API
EGL Creating Context
EGL Creating window surface
ERROR: EGL Error detected in file eglport/eglport.cpp at line 287: EGL_BAD_NATIVE_WINDOW (0x300B)
EGL ERROR: Unable to create EGL surface!
EGL ERROR: Unable to configure EGL. See previous error.
Compiling vertex shader... 

Compiling fragment shader... 

Shaders compiled. 
Shader program linked. 
[Thread 0xb5506450 (LWP 2191) exited]
EGL Closed

Program received signal SIGSEGV, Segmentation fault.
0xb675a862 in __GI___pthread_mutex_lock (mutex=0xb) at pthread_mutex_lock.c:66
66      pthread_mutex_lock.c: No such file or directory.
(gdb) bt
#0  0xb675a862 in __GI___pthread_mutex_lock (mutex=0xb) at pthread_mutex_lock.c:66
#1  0xb6ba943c in XrmDestroyDatabase () from /usr/lib/arm-linux-gnueabihf/libX11.so.6
#2  0xb6b99fe4 in _XFreeDisplayStructure () from /usr/lib/arm-linux-gnueabihf/libX11.so.6
#3  0xb6b8f2bc in XCloseDisplay () from /usr/lib/arm-linux-gnueabihf/libX11.so.6
#4  0xb6f7060e in ?? () from /usr/lib/arm-linux-gnueabihf/libSDL-1.2.so.0

One other GLES2 app I'd had a similar problem with, namely caveexpress, managed to make it work but it was using SDL2 however.

Thx

Fix MOD file playback

Playback of MOD files is broken for a long time, because libalure can't distinguish them from mp3's and sometimes this leads to libmpg123 playing MOD files, producing annoying noise. This is the case for the intro song of "Out Of Order". More info at https://bugs.debian.org/908352

I looked into it a bit more and it seems we can force libalure to play the module files using libdumb by ditching alures internal libdumb support and instead create callbacks and play the module files using alureCreateStreamFromCallback. As I just found out I even added such callbacks in the beginning and removed them in be6c922 when libalure gout libdumb support.

I'll try to get around doing this soon.

macOS app is old and doesn't work

The latest macOS release is 32-bit, so it doesn't work. There's no way to make it work unless you use an outdated version of macOS like 10.14 or below. For people on macOS 10.15-13.0, especially on ARM64, this programme simply will not work.

Segfault (Linux).

Hi! :-)
I tried to run "Frasse and the Peas of Kejick" on my system (Debian Jessie x64 KDE, last Open Sludge version), but I'm receiving a segfault when trying to "catch" something.

Here's the konsole's output:

>sludge-engine -f -a1 -d1 Gamedata.slg
*** Engine compiled May  3 2014 at 12:41:09.
Video mode 1360 768 set successfully.
Compiling vertex shader... 

Compiling fragment shader... 

Shaders compiled. 
Shader program linked. 
Built shader program: 3 (smartScaler)
Compiling vertex shader... 

Compiling fragment shader... 

Shaders compiled. 
Shader program linked. 
Built shader program: 6 (fixScaleSprite)
Compiling vertex shader...

Compiling fragment shader...

Shaders compiled.
Shader program linked.
Built shader program: 9 (yuv)
Compiling vertex shader...

Compiling fragment shader...

Shaders compiled.
Shader program linked.
Built shader program: 12 (texture)
Compiling vertex shader...

Compiling fragment shader...

Shaders compiled.
Shader program linked.
Built shader program: 15 (color)
OpenGL 2.0! All is good.
Max texture image units: 32
loadBankForAnim: New sprite bank created OK
loadBankForAnim: New sprite bank created OK
loadBankForAnim: New sprite bank created OK
loadBankForAnim: New sprite bank created OK
loadBankForAnim: New sprite bank created OK
loadBankForAnim: New sprite bank created OK
calling freeze()
loadBankForAnim: New sprite bank created OK
Failed to set stream order: Could not reload data
loadBankForAnim: New sprite bank created OK
Segmentation fault
>

Replace GLee library

Glee has been a dead project for many years and it was removed from Debian testing a while ago due to copyright issues. In order to keep sludge in Debian, Glee has to replaced by a OpenGL loading library that is still maintained.

I found GLEW and glbinding to be natural candidates. Any thoughts or opinions? Otherwise I'll try my luck with glbinding first.

Support of displaying non-english text

I added with the translation editor some greek text but when i compile and run
squares are displayed in the game instead of text.
Isnt utf8 text suporrted ?

It doesn't launch in Linux Mint Cinnamon 18 (64 bit)

Although the program is available in the Software Manager (that's how I found it, by chance)
and you can install it from there, it doesn't launch from either the menu or the Software Manager itself.

I hope this info helps!

Audible clicks with some video files

I've tried looking into why playing https://dosowisko.net/sludge/dosowisko30.webm with SLUDGE causes audible clicks.

Turns out that clicks happen in places where vorbis_synthesis_pcmout returns a lower value than usual. Usually it returns 4096, for other files I tested even all the time, however, in this file it sometimes returns lower values: 2304 and 512. The moments it happens correlate with audible clicks.

So, I have looked into how the audio samples are queued and fed into ALURE.

// send audio to audio device...
ALuint feedAudio (void *userdata, ALubyte *data, ALuint length) {
static char * buffer = NULL;
static unsigned int bufOffset = 0;
static unsigned int bufSize = 0;
ALuint got = 0;
int bufLen;
if (! buffer) {
bufSize = audio_queue_get(&audioQ, &buffer);
bufOffset = 0;
if (bufSize <= 0) {
bufSize = 0;
buffer = NULL;
if (! got) {
got = audioChannels*2;
memset(data, 0, got);
fprintf (stderr, "Faking audio...\n");
fakeAudio = true;
}
// SDL_CondSignal(audioQ.cond);
return got;
}
}
fakeAudio = false;
if (length > bufSize-bufOffset)
bufLen = bufSize-bufOffset;
else
bufLen = length;
memcpy(data, buffer+bufOffset, bufLen);
bufOffset += bufLen;
length -= bufLen;
got += bufLen;
if (bufSize <= bufOffset) {
buffer = NULL;
delete [] buffer;
}
// fprintf (stderr, "Sending %d bytes of audio.\n", got);
return got;
}

The code looks like it used to be a loop. When wrapping most of it with while (length > 0) and modifying the memcpy call a bit to take previous loop rolls into account (memcpy(data+got, buffer+bufOffset, bufLen);), the clicks are fixed - however, the A/V sync is now broken (the video is way too fast).

However, when adding if (length > 4096) { length = 4096; } before the loop, audible clicks are gone and A/V sync is left intact. This is a very ugly hack though and I'm not sure yet how to deal with it properly, so I'm opening this ticket instead.

Any ideas?

PS. Those two lines should be swapped around, shouldn't they?

if (bufSize <= bufOffset) {
buffer = NULL;
delete [] buffer;
}

I have a working WebGL Emscripten proof-of-concept

Hi folks, this isn't an issue per se, but I wasn't sure where else to post this. ๐Ÿ™‚

WebGL port

After some work, I have a working proof-of-concept for getting SLUDGE games running in the web browser.

Here is my (very!) old game Nathan's Second Chance running under WebGL2 in Chrome. After quite a lot of fiddling getting things working, I was very pleased to see this:
image

I've only played to the second chapter so far, but as far as I can tell the game itself is all running perfectly well:
image

Current status

  • No audio yet
  • No movie support yet (NSC doesn't use this)
  • Saving is only MEMFS at the moment
  • Fullscreen support currently broken
  • Antialiasing theoretically works but is untested (NSC doesn't use this)
  • Some WebGL INVALID_OPERATION errors you can see in the console, which don't appear to have visible impact, but are bothering me

Project structure

  • It's my first real outing with Emscripten and I was intimidated by build systems, so currently just built with a basic batch script
  • It took a bunch of gradually building up functionality, but in the end, the only files with substantial change are main, timing and graphics
  • It's not in a 'patch-ready' state yet: I have the files source-controlled separately on my sourcehut account

My plans

  • Get NSC fully working with audio + saving + fullscreen as an improved proof-of-concept
  • Bring in features required for other games as well
  • Eventually get the code in a state where I could do a nice clean pull request to integrate this work for the community

Here's the personal Trello I'm using to track stuff. Not very detailed as it's just been my own notes as I think of them: https://trello.com/b/hK7eZcQz/sludge-emscripten

Let me know if anyone is interested in this work โ€“ I'm keen to discuss, if there is interest in the community. And I would welcome advice/suggestions/help on how to get this all shipshape for an eventual pull request.

OpenSludge won't load a game on XP (GPU Shaders?)

With everything up to date, my XP machine fails because it cannot compile the graphics shaders for the demos. That would make this a mostly - if not totally - GPU issue in the engine.

It tries to load the fallback (linear scaling) and chokes miserably, giving me several errors - all of them failed shader compilation - before dying.

I understand XP is officially EoL'd by Microsoft; however I have a nagging suspicion I'll check when I return home off the road that machines that can run modern OSes may not be able to run SLUDGE based games if this is the case, and certainly XP itself is still widely used and will likely see many people resist the change to a newer OS for some time, despite the lack of current support from vendor.

I'm happy to give any help I can in this matter.

bass.h missing

I'm trying to get my macOS-building version up to date with the released version. sound_bass.cpp refers to bass.h which is not present anywhere in the source tree.

Poor audio quality

I have noticed that, at least on GNU/Linux, the audio as played by the engine differs greatly with the same audio file as played by music player.

I suspect that SLUDGE may be doing some downsampling as a relict from old times where it was somewhat reasonable to distribute audio in 22050 Hz. Needs looking into.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.