Index: head/games/stormbaancoureur/Makefile =================================================================== --- head/games/stormbaancoureur/Makefile (revision 473073) +++ head/games/stormbaancoureur/Makefile (revision 473074) @@ -1,46 +1,50 @@ # Created by: Dmitry Marakasov # $FreeBSD$ PORTNAME= stormbaancoureur PORTVERSION= 2.1.6 PORTREVISION= 1 CATEGORIES= games MASTER_SITES= http://www.stolk.org/stormbaancoureur/download/ \ http://mirror.amdmi3.ru/distfiles/ MAINTAINER= amdmi3@FreeBSD.org COMMENT= Simulated obstacle course for automobiles +LICENSE= GPLv3 + BUILD_DEPENDS= ${LOCALBASE}/lib/libplibsl.a:x11-toolkits/plib \ ${LOCALBASE}/lib/libode.a:devel/ode -USE_GL= glut +USE_GL= gl glu glut MAKE_ENV= DATADIR="${DATADIR}" + +CXXFLAGS+= -Wno-c++11-narrowing BUILD_WRKSRC= ${WRKSRC}/src-stormbaancoureur INSTALL_WRKSRC= ${WRKSRC}/src-stormbaancoureur PLIST_FILES= bin/${PORTNAME} PORTDOCS= * PORTDATA= * OPTIONS_DEFINE= ALSA DOCS OPTIONS_DEFAULT=ALSA ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins ALSA_MAKE_ENV= ALSA_LIBS="-lasound" ALSA_EXTRA_PATCHES_OFF= ${FILESDIR}/extra-patch-src-common-soundenginealsa.cxx \ ${FILESDIR}/extra-patch-src-common-soundenginealsa.h post-patch: @${REINPLACE_CMD} -e 's|__DATADIR|"${DATADIR}"|' \ ${WRKSRC}/src-stormbaancoureur/main.cxx post-install: ${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${INSTALL_WRKSRC}/README ${STAGEDIR}${DOCSDIR} ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME} .include Index: head/games/stormbaancoureur/files/extra-patch-src-common-soundenginealsa.cxx =================================================================== --- head/games/stormbaancoureur/files/extra-patch-src-common-soundenginealsa.cxx (revision 473073) +++ head/games/stormbaancoureur/files/extra-patch-src-common-soundenginealsa.cxx (revision 473074) @@ -1,222 +1,222 @@ ---- src-common/soundenginealsa.cxx.orig 2008-03-22 21:45:22.000000000 +0300 -+++ src-common/soundenginealsa.cxx 2008-03-30 17:58:09.000000000 +0400 -@@ -38,219 +38,46 @@ +--- src-common/soundenginealsa.cxx.orig 2008-06-18 01:36:34 UTC ++++ src-common/soundenginealsa.cxx +@@ -38,219 +38,46 @@ SoundEngineAlsa::SoundEngineAlsa(int lag complexfeed(0), enginefeed(0), activefeed(0), - handle(0), - periodsz(0), batchsize(0), framelag(lag), lpfilter(0.0) { - // test endiness - unsigned int scratch=0; - unsigned char *p = (unsigned char*) &scratch; - *p = 1; - assert(scratch == 1 || scratch == 16777216); - SoundClip::bigendian = (scratch == 16777216); - //fprintf(stderr,"soundenginealsa.cxx: %s endian\n", (SoundClip::bigendian)?"big":"little"); - - /* Open PCM device for playback. */ - int rc = snd_pcm_open(&handle, "default", SND_PCM_STREAM_PLAYBACK, 0); - if (rc < 0) - { - fprintf(stderr, "unable to open pcm device: %s\n", snd_strerror(rc)); - return; - } - snd_pcm_hw_params_t *params=0; - - /* Allocate a hardware parameters object. */ - snd_pcm_hw_params_alloca(¶ms); - /* Fill it in with default values. */ - snd_pcm_hw_params_any(handle, params); - /* Set the desired hardware parameters. */ - /* Interleaved mode */ - snd_pcm_hw_params_set_access(handle, params, SND_PCM_ACCESS_RW_INTERLEAVED); - /* Signed 16-bit little-endian format */ - snd_pcm_hw_params_set_format(handle, params, (SoundClip::bigendian)?SND_PCM_FORMAT_S16_BE:SND_PCM_FORMAT_S16_LE); - /* Two channels (stereo) */ - snd_pcm_hw_params_set_channels(handle, params, 2); - /* 44100 bits/second sampling rate (CD quality) */ - const unsigned int cd_rate = 44100; - unsigned int playback_sampling_rate = cd_rate; - int dir=-1; // round down actual rate, please. - snd_pcm_hw_params_set_rate_near(handle, params, &playback_sampling_rate, &dir); - if (playback_sampling_rate != cd_rate) - { - fprintf - ( - stderr, - "Asked for %dHz playback rate, but got %dHz\n", - cd_rate, - playback_sampling_rate - ); - } - - snd_pcm_uframes_t frames_in_buffer = framelag; - snd_pcm_uframes_t frames_in_period = framelag/8; - - snd_pcm_hw_params_set_buffer_size_near(handle, params, &frames_in_buffer); - snd_pcm_hw_params_set_period_size_near(handle, params, &frames_in_period, &dir); - - /* Write the parameters to the driver */ - rc = snd_pcm_hw_params(handle, params); - if (rc < 0) - { - fprintf(stderr, "unable to set hw parameters: %s\n", snd_strerror(rc)); - return; - } - snd_pcm_hw_params_get_period_size(params, &periodsz, &dir); - snd_pcm_hw_params_get_buffer_size(params, &buffersz); - - fprintf(stderr,"soundenginealsa.cxx: period size SOLL-WERT %d, IST-WERT %d\n", framelag/8, (int) periodsz); - fprintf(stderr,"soundenginealsa.cxx: buffer size SOLL-WERT %d, IST-WERT %d\n", framelag, (int) buffersz); - - if (buffersz % periodsz) - fprintf(stderr,"soundenginealsa.cxx: WARNING - buffersz is not a multiple of periodsz\n"); - - simplefeed = new SoundFeedSimple(periodsz); - complexfeed = new SoundFeedComplex(periodsz); - modulatedfeed = new SoundFeedModulated(periodsz); - enginefeed = new SoundFeedEngine(periodsz); - activefeed = simplefeed; - opened = true; } SoundEngineAlsa::~SoundEngineAlsa() { - if (opened) - { - fprintf(stderr,"Closing down SoundEngineAlsa\n"); - snd_pcm_drain(handle); - snd_pcm_close(handle); - } } void SoundEngineAlsa::Play(const std::string &fname, int delay, bool looping) { - activefeed->Paste(fname, delay, looping); } void SoundEngineAlsa::StopPlay(void) { - puts("NOT YET IMPLEMENTED"); } void SoundEngineAlsa::SetMode(const std::string &modename) { - if (modename=="complex") - { - activefeed = complexfeed; - return; - } - if (modename=="simple") - { - activefeed = simplefeed; - return; - } - if (modename=="modulated") - { - activefeed = modulatedfeed; - return; - } - if (modename=="engine") - { - activefeed = enginefeed; - return; - } - if (modename=="none") - { - activefeed = 0; - return; - } - assert(0); } void SoundEngineAlsa::SetModulation(float freq, float ampl) { - modulatedfeed->SetModulation(freq, ampl); - complexfeed->SetModulation(freq, ampl); - enginefeed->SetModulation(freq, ampl); } void SoundEngineAlsa::SetLowPass(float f) { - lpfilter = f; } float SoundEngineAlsa::Sustain(void) { - if (!activefeed) - return 0.0; - snd_pcm_sframes_t delay; - int avail = snd_pcm_avail_update(handle); - int rc = snd_pcm_delay(handle, &delay); - if (rc<0) - snd_strerror(rc); - if (rc==-EPIPE) - fprintf(stderr,"soundenginealsa.cxx: EPIPE\n"); - else - assert(!rc); - - // We can only trust pcm_delay if the state is running. - snd_pcm_state_t pcm_state = snd_pcm_state(handle); - if (pcm_state != SND_PCM_STATE_RUNNING || delay<0) - { - delay=0; - if (pcm_state == SND_PCM_STATE_XRUN) - snd_pcm_prepare(handle); - } - -#if 0 - if (delay<0) - fprintf(stderr,"delay=%d, avail=%d, periodsz=%d\n", (int) delay, (int) avail, (int) periodsz); -#else - (void) avail; -#endif - - float fractiondone = activefeed->FractionDone(delay); - - if (delay < (int) buffersz) - { - int todo = buffersz - delay; -#if 1 - int cnt = (todo + periodsz-1) / periodsz; // Use this with pulse audio (fedora) -#else - int cnt = todo / periodsz; // Use this with all other alsa implementations -#endif - short *data = activefeed->Get(cnt); - if (cnt) - { - assert(data); - if (lpfilter>0.01) - low_pass_filter(data, cnt*periodsz, lpfilter); - rc = snd_pcm_writei(handle, data, cnt*periodsz); - assert(rc == -EPIPE || rc >= 0); - if (rc == -EPIPE) - { - snd_pcm_prepare(handle); - fprintf(stderr,"Underrrun!\n"); - } - else - if (rc != (int) (cnt*periodsz)) - fprintf(stderr, "short write, wrote %d frames instead of %d\n", rc, (int) periodsz); -#if 0 - else - fprintf(stderr, "wrote %d sound frames\n", rc); -#endif - } - } - return fractiondone; } clipmap_t SoundClip::clips; Index: head/games/stormbaancoureur/files/extra-patch-src-common-soundenginealsa.h =================================================================== --- head/games/stormbaancoureur/files/extra-patch-src-common-soundenginealsa.h (revision 473073) +++ head/games/stormbaancoureur/files/extra-patch-src-common-soundenginealsa.h (revision 473074) @@ -1,21 +1,21 @@ ---- src-common/soundenginealsa.h.orig 2008-01-03 07:29:23.000000000 +0300 -+++ src-common/soundenginealsa.h 2008-02-09 00:52:09.000000000 +0300 -@@ -2,8 +2,6 @@ - #ifndef SOUNDENGINE_ALSA_H - #define SOUNDENGINE_ALSA_H +--- src-common/soundenginealsa.h.orig 2008-04-20 16:00:03 UTC ++++ src-common/soundenginealsa.h +@@ -4,8 +4,6 @@ + #include + -#include - class SoundClip; class SoundFeed; class SoundFeedSimple; -@@ -29,9 +27,6 @@ +@@ -31,9 +29,6 @@ class SoundEngineAlsa SoundFeedModulated *modulatedfeed; SoundFeedEngine *enginefeed; SoundFeed *activefeed; - snd_pcm_t *handle; - snd_pcm_uframes_t periodsz; // in frames - snd_pcm_uframes_t buffersz; // in frames int batchsize; // in periods int framelag; // in frames float lpfilter; Index: head/games/stormbaancoureur/files/patch-src-stormbaancoureur-Makefile =================================================================== --- head/games/stormbaancoureur/files/patch-src-stormbaancoureur-Makefile (revision 473073) +++ head/games/stormbaancoureur/files/patch-src-stormbaancoureur-Makefile (revision 473074) @@ -1,69 +1,69 @@ ---- src-stormbaancoureur/Makefile.orig 2008-06-11 18:12:01.000000000 +0400 -+++ src-stormbaancoureur/Makefile 2013-09-30 06:14:07.576519380 +0400 -@@ -5,23 +5,20 @@ +--- src-stormbaancoureur/Makefile.orig 2009-12-01 03:23:51 UTC ++++ src-stormbaancoureur/Makefile +@@ -5,23 +5,20 @@ VERSION=2.1.6-generic GLPREFIX=/usr PLIBPREFIX=/usr ODEPREFIX=/usr -CXX=g++ +CXX?=g++ LIBDIRNAME=lib # END OF CUSTOM SETTINGS -CXXFLAGS=\ - -I$(GLPREFIX)/include \ - -I$(ODEPREFIX)/include \ - -I$(PLIBPREFIX)/include \ +CXXFLAGS+=\ + -I$(LOCALBASE)/include \ -I../src-common \ -I. \ -DGAMEVERSION=$(VERSION) \ - -O2 -g -Wall + -g -Wall LFLAGS=\ - -L$(PLIBPREFIX)/$(LIBDIRNAME) \ - -L/usr/X11R6/$(LIBDIRNAME) + -L$(LOCALBASE)/lib OBJS=\ -@@ -39,15 +36,15 @@ +@@ -39,15 +36,15 @@ OBJS=\ LIBS=\ - $(ODEPREFIX)/$(LIBDIRNAME)/libode.a \ + $(LOCALBASE)/lib/libode.a \ -lplibssgaux -lplibssg -lplibsg -lplibpu -lplibfnt -lplibul \ - -lglut -lGLU -lGL -lasound + -lglut -lGLU -lGL $(ALSA_LIBS) all: stormbaancoureur -stormbaancoureur: $(OBJS) $(ODEPREFIX)/$(LIBDIRNAME)/libode.a +stormbaancoureur: $(OBJS) $(CXX) -o stormbaancoureur $(OBJS) $(LFLAGS) $(LIBS) staticworldobject.o: ../src-common/staticworldobject.cxx ../src-common/staticworldobject.h ../src-common/worldobject.h -@@ -92,16 +89,15 @@ +@@ -92,16 +89,15 @@ run: stormbaancoureur clean: rm -f *.o stormbaancoureur -GAMEDIR=$(DESTDIR)/usr/share/games/stormbaancoureur +GAMEDIR=$(DESTDIR)$(PREFIX)/share/stormbaancoureur install: stormbaancoureur # Directories - mkdir -p $(DESTDIR)/usr/games/ mkdir -p $(GAMEDIR)/images/ mkdir -p $(GAMEDIR)/sounds/ mkdir -p $(GAMEDIR)/shaders/ mkdir -p $(GAMEDIR)/models/ # Binary - install stormbaancoureur $(DESTDIR)/usr/games/stormbaancoureur + install stormbaancoureur $(DESTDIR)$(PREFIX)/bin/stormbaancoureur # Images install -m 644 images/info_carpet_smooth.rgb $(GAMEDIR)/images/info_carpet_smooth.rgb install -m 644 images/info_door_smooth.rgb $(GAMEDIR)/images/info_door_smooth.rgb Index: head/games/stormbaancoureur/files/patch-src-stormbaancoureur-controllerpad.cxx =================================================================== --- head/games/stormbaancoureur/files/patch-src-stormbaancoureur-controllerpad.cxx (revision 473073) +++ head/games/stormbaancoureur/files/patch-src-stormbaancoureur-controllerpad.cxx (revision 473074) @@ -1,193 +1,193 @@ ---- src-stormbaancoureur/controllerpad.cxx.orig Mon Jul 17 00:26:08 2006 -+++ src-stormbaancoureur/controllerpad.cxx Mon Jul 17 00:28:23 2006 -@@ -14,7 +14,6 @@ +--- src-stormbaancoureur/controllerpad.cxx.orig 2008-04-20 15:56:35 UTC ++++ src-stormbaancoureur/controllerpad.cxx +@@ -15,7 +15,6 @@ #include #include #else -#include #include // for ioctl() #include // for close() #include // for perror() -@@ -81,100 +80,7 @@ +@@ -82,100 +81,7 @@ action_button(-1), accel_axis(-1), accel_button(-1) { -#ifdef WIN32 - JOYINFOEX joyinfo; - JOYCAPS joycaps; - MMRESULT result; - int axisCounter; - - id = 0; - - joyinfo.dwSize = sizeof(joyinfo); - joyinfo.dwFlags = JOY_RETURNALL; - - result = joyGetPosEx(id, &joyinfo); - if(result != JOYERR_NOERROR) { - fprintf(stderr, "No input devices found\n"); - return; - } - else { - result = joyGetDevCaps(id, &joycaps, sizeof(joycaps)); - if(result != JOYERR_NOERROR) { - fprintf(stderr, "No input devices found\n"); - return; - } - } - - opened = true; - - fprintf(stderr, "x min %d max %d\n", joycaps.wXmin, joycaps.wXmax); - buttoncount = joycaps.wNumButtons; - axiscount = joycaps.wNumAxes; -#else - fd = open(devfile.c_str(), O_RDONLY | O_NONBLOCK); - if (fd==-1) - { - if (errno != ENODEV) - perror("open() on joystick device failed"); - return; - } - opened = true; - - int retval; - - int version; - retval = ioctl(fd, JSIOCGVERSION, &version); - if (retval == -1) - perror("ioctl JSIOCGVERSION failed"); - - unsigned char lo = version; - unsigned char md = (version>>8); - unsigned char hi = (version>>16); - - retval = ioctl(fd, JSIOCGAXES, &axiscount); - if (retval == -1) - perror("ioctl JSIOCGAXES failed"); - - retval = ioctl(fd, JSIOCGBUTTONS, &buttoncount); - if (retval == -1) - perror("ioctl JSIOCGBUTTONS failed"); - - char n[128]; - retval = ioctl(fd, JSIOCGNAME(128), n); - if (retval == -1) - perror("ioctl JSIOCGNAME failed"); - - name = n; - fprintf(stderr,"joystick name: %s\n", name.c_str()); - fprintf(stderr,"driver version: %d.%d.%d\n", hi,md,lo); - fprintf(stderr,"button count: %d, axiscount: %d\n", buttoncount, axiscount); -#endif - - // search db - assert(sizeof(joydb_names) == sizeof(joydb_descs)); - int cnt = sizeof(joydb_names) / sizeof(void *) - 1; - for (int i=0; i0); -#endif } Index: head/games/stormbaancoureur/files/patch-src-stormbaancoureur-main.cxx =================================================================== --- head/games/stormbaancoureur/files/patch-src-stormbaancoureur-main.cxx (revision 473073) +++ head/games/stormbaancoureur/files/patch-src-stormbaancoureur-main.cxx (revision 473074) @@ -1,16 +1,16 @@ ---- src-stormbaancoureur/main.cxx.orig 2007-12-28 23:09:41.000000000 +0300 -+++ src-stormbaancoureur/main.cxx 2007-12-31 16:48:41.000000000 +0300 -@@ -1176,12 +1176,7 @@ +--- src-stormbaancoureur/main.cxx.orig 2008-04-20 15:58:29 UTC ++++ src-stormbaancoureur/main.cxx +@@ -837,12 +837,7 @@ int main(int argc, char *argv[]) fprintf(stderr,"OpenDE is (c) by Russel L. Smith\n"); char *bindirname = dirname(argv[0]); - if (!strcmp(bindirname,".")) - dirprefix="/usr/share/games/stormbaancoureur"; - else - { - dirprefix = dirname(bindirname) + std::string("/share/games/stormbaancoureur"); - } + dirprefix=__DATADIR; if (getenv("PLODE_DATADIR")) dirprefix = getenv("PLODE_DATADIR"); if (getenv("PLODE_DISPLAYMODE"))