NagyD / SDLPoP

An open-source port of Prince of Persia, based on the disassembly of the DOS version.
GNU General Public License v3.0
1.1k stars 140 forks source link

Compilation fails under Windows 10 #308

Closed nicolasflorio1 closed 1 year ago

nicolasflorio1 commented 1 year ago

I'm trying to compile the proyect using Dev-Cpp 4.9.9.2 under Windows 10 and I'm getting the following warning and error messages:

In file included from common.h:54, from seg009.c:21:

types.h:561: warning: declaration does not declare anything types.h:585: warning: declaration does not declare anything types.h:600: warning: declaration does not declare anything types.h:623: warning: declaration does not declare anything types.h:1178: warning: declaration does not declare anything ... seg009.c:2296: error: structure has no member named "ogg" seg009.c:2297: error: structure has no member named "ogg" seg009.c:2298: error: structure has no member named "ogg" seg009.c: In function "play_ogg_sound": seg009.c:2326: error: structure has no member named "ogg" seg009.c:2329: error: structure has no member named "ogg" seg009.c: In function "determine_wave_version": seg009.c:2348: error: structure has no member named "digi" seg009.c:2349: error: structure has no member named "digi_new"

The declaration in types.h line 585 is as follows:

typedef struct sound_buffer_type { byte type; union { speaker_type speaker; digi_type digi; digi_new_type digi_new; midi_type midi; ogg_type ogg; converted_audio_type converted; }; } sound_buffer_type;

Naming the union seems to get rid of the warning but it still not able lo acces the members declared inside that union. I've tried using both gcc.exe (GCC) 3.4.2 (mingw-special) and mingw32-c++.exe (GCC) 3.4.2 (mingw-special) compilers but I'm still getting the same errors. What could be causing the issue?

nicolasflorio1 commented 1 year ago

I was using a wrong compiler and Dev-C++ version, also SDL was installed wrong. The instructions are in the README.