mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-24 00:45:52 +00:00
Add vavoom 1.15.1,
Vavoom is a source port based on sources of Doom, Heretic, Hexen and a little bit from Quake. To play Vavoom you need main wad file from Doom, Ultimate Doom, Doom II, Heretic, Hexen or Strife. Differences from original game: * Polygonal engine with colored lighting, with software mode, * OpenGL support; * Translucency; * Complete support for freelook (look up & down) in all games; * A powerful language to describe game logic; * 100% client/server architecture with in-game joining; * Quake-style console, with key bindings; * Indirect support for DeHackEd; * Crosshair; * Jumping; PR: ports/61765 Submitted by: Igor Pokrovsky <tiamat@comset.net>
This commit is contained in:
parent
b0063e0814
commit
78ac02537e
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=98893
@ -424,6 +424,7 @@
|
||||
SUBDIR += utserver-asu
|
||||
SUBDIR += utserver-to
|
||||
SUBDIR += vamos
|
||||
SUBDIR += vavoom
|
||||
SUBDIR += vectoroids
|
||||
SUBDIR += virt
|
||||
SUBDIR += wesnoth
|
||||
|
76
games/vavoom/Makefile
Normal file
76
games/vavoom/Makefile
Normal file
@ -0,0 +1,76 @@
|
||||
# New ports collection makefile for: vavoom
|
||||
# Date created: 18 Jan 2004
|
||||
# Whom: Igor Pokrovsky <tiamat@comset.net>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= vavoom
|
||||
PORTVERSION= 1.15.1
|
||||
CATEGORIES= games
|
||||
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
|
||||
MASTER_SITE_SUBDIR= ${PORTNAME}
|
||||
DISTNAME= v115_1_src
|
||||
|
||||
MAINTAINER= tiamat@comset.net
|
||||
COMMENT= Doom, Doom II, Heretic, Hexen and Strife source port
|
||||
|
||||
.ifdef (WITH_OPENAL)
|
||||
LIB_DEPENDS+= openal.0:${PORTSDIR}/audio/openal
|
||||
.endif
|
||||
|
||||
USE_ZIP= yes
|
||||
USE_GMAKE= yes
|
||||
USE_REINPLACE= yes
|
||||
USE_SDL= mixer sdl
|
||||
USE_GL= yes
|
||||
ALL_TARGET= all sv
|
||||
ONLY_FOR_ARCHS= i386
|
||||
|
||||
EXTRACT_AFTER_ARGS= -d ${WRKSRC}
|
||||
|
||||
.ifdef (WITH_OPENAL)
|
||||
MAKE_ARGS= "USE_AL=1"
|
||||
.endif
|
||||
|
||||
.ifndef (WITH_OPENAL)
|
||||
pre-everything::
|
||||
@${ECHO_CMD} "********************************************************************"
|
||||
@${ECHO_CMD} "You can define WITH_OPENAL=yes to build Vavoom with 3D sound support"
|
||||
@${ECHO_CMD} "********************************************************************"
|
||||
.endif
|
||||
|
||||
post-patch:
|
||||
cd ${WRKSRC} && ${SH} ${WRKSRC}/fixunix.sh
|
||||
@${REINPLACE_CMD} -e 's|SDL\/||g' ${WRKSRC}/source/*.cpp
|
||||
|
||||
do-install:
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/Vavoom ${PREFIX}/bin
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/VavoomSV ${PREFIX}/bin
|
||||
|
||||
@${MKDIR} ${DATADIR}
|
||||
@${MKDIR} ${DATADIR}/basev
|
||||
${INSTALL_DATA} ${WRKSRC}/basev/default.cfg ${DATADIR}/basev
|
||||
${INSTALL_DATA} ${WRKSRC}/basev/startup.vs ${DATADIR}/basev
|
||||
${INSTALL_DATA} ${WRKSRC}/basev/games.txt ${DATADIR}/basev
|
||||
.for i in doom heretic hexen strife
|
||||
@${MKDIR} ${DATADIR}/basev/${i}
|
||||
${INSTALL_DATA} ${WRKSRC}/basev/${i}/wad0.wad ${DATADIR}/basev/${i}
|
||||
.endfor
|
||||
.for i in doom1 doom2 tnt plutonia
|
||||
@${MKDIR} ${DATADIR}/basev/${i}
|
||||
${INSTALL_DATA} ${WRKSRC}/basev/${i}/wad0.wad ${DATADIR}/basev/${i}
|
||||
${INSTALL_DATA} ${WRKSRC}/basev/${i}/base.txt ${DATADIR}/basev/${i}
|
||||
.endfor
|
||||
|
||||
.ifndef (NOPORTDOCS)
|
||||
@${MKDIR} ${DOCSDIR}
|
||||
${INSTALL_DATA} ${WRKSRC}/docs/vavmref.txt ${DOCSDIR}
|
||||
${INSTALL_DATA} ${WRKSRC}/docs/vavoom.txt ${DOCSDIR}
|
||||
.endif
|
||||
|
||||
post-install:
|
||||
@${SED} -e 's|%%PREFIX%%|${PREFIX}|; s|%%DATADIR%%|${DATADIR}|' \
|
||||
<${PKGMESSAGE}
|
||||
|
||||
.include <bsd.port.mk>
|
1
games/vavoom/distinfo
Normal file
1
games/vavoom/distinfo
Normal file
@ -0,0 +1 @@
|
||||
MD5 (v115_1_src.zip) = 58a9fad8ec2168b12fe7154ebbee04ad
|
112
games/vavoom/files/patch-Makefile
Normal file
112
games/vavoom/files/patch-Makefile
Normal file
@ -0,0 +1,112 @@
|
||||
--- Makefile.orig Fri Dec 19 20:00:14 2003
|
||||
+++ Makefile Fri Jan 23 16:41:34 2004
|
||||
@@ -8,7 +8,7 @@
|
||||
#DEBUG = 1
|
||||
|
||||
# Uncomment to compile using SDL
|
||||
-#USE_SDL = 1
|
||||
+USE_SDL = 1
|
||||
|
||||
# Uncomment to compile without OpenGL driver
|
||||
#NOGL = 1
|
||||
@@ -70,7 +70,7 @@
|
||||
obj/sys_i386.o \
|
||||
obj/sys_sdl.o
|
||||
GL_SYS_OBJ = obj/gl_sdl.o
|
||||
-LIBS := `sdl-config --libs` -lSDL_mixer -lm -lstdc++
|
||||
+LIBS := `${SDL_CONFIG} --libs` -lSDL_mixer -lm -lstdc++
|
||||
else
|
||||
#-- Linux with Allegro --
|
||||
SYS_OBJS = \
|
||||
@@ -214,7 +214,7 @@
|
||||
ifdef MESAGL
|
||||
LIBS := -lMesaGL $(LIBS)
|
||||
else
|
||||
-LIBS := -lGL $(LIBS)
|
||||
+LIBS := -lGL -L${X11BASE}/lib $(LIBS)
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -308,8 +308,8 @@
|
||||
|
||||
# ---------------------------------------
|
||||
|
||||
-C_ARGS = -c -W -Wall -march=pentiumpro -ffast-math
|
||||
-CPP_ARGS = -c -W -Wall -march=pentiumpro -ffast-math
|
||||
+C_ARGS = -c ${CFLAGS} -I${X11BASE}/include `${SDL_CONFIG} --cflags` -W -Wall -ffast-math
|
||||
+CPP_ARGS = -c ${CFLAGS} -I${X11BASE}/include `${SDL_CONFIG} --cflags` -W -Wall -ffast-math
|
||||
ASM_ARGS = -c -W -Wall -x assembler-with-cpp
|
||||
LINK_ARGS = -Wall
|
||||
|
||||
@@ -337,7 +337,7 @@
|
||||
exe: Vavoom$(EXE)
|
||||
|
||||
Vavoom$(EXE): $(OBJ_FILES) $(LIB_FILES)
|
||||
- gcc $(LINK_ARGS) -o $@ $^ $(LIBS)
|
||||
+ ${CC} $(LINK_ARGS) -o $@ $^ $(LIBS)
|
||||
|
||||
suid:
|
||||
chown root.root Vavoom
|
||||
@@ -347,13 +347,13 @@
|
||||
addr2line -e Vavoom -f < crash.txt >> basev/debug.txt
|
||||
|
||||
obj/%.o : source/%.c
|
||||
- gcc $(C_ARGS) -o $@ $<
|
||||
+ ${CC} $(C_ARGS) -o $@ $<
|
||||
|
||||
obj/%.o : source/%.cpp source/*.h
|
||||
- gcc $(CPP_ARGS) -o $@ $<
|
||||
+ ${CC} $(CPP_ARGS) -o $@ $<
|
||||
|
||||
obj/%.o : source/%.s source/asm_i386.h
|
||||
- gcc $(ASM_ARGS) -o $@ $<
|
||||
+ ${CC} $(ASM_ARGS) -o $@ $<
|
||||
|
||||
# ---------------------------------------
|
||||
|
||||
@@ -370,16 +370,16 @@
|
||||
svexe: VavoomSV$(EXE)
|
||||
|
||||
VavoomSV$(EXE): $(SV_OBJ_FILES)
|
||||
- gcc $(LINK_ARGS) -o $@ $(SV_OBJ_FILES) $(SV_LIBS)
|
||||
+ ${CC} $(LINK_ARGS) -o $@ $(SV_OBJ_FILES) $(SV_LIBS)
|
||||
|
||||
obj/sv/%.o : source/%.c
|
||||
- gcc $(C_ARGS) -DSERVER -o $@ $<
|
||||
+ ${CC} $(C_ARGS) -DSERVER -o $@ $<
|
||||
|
||||
obj/sv/%.o : source/%.cpp source/*.h
|
||||
- gcc $(CPP_ARGS) -DSERVER -o $@ $<
|
||||
+ ${CC} $(CPP_ARGS) -DSERVER -o $@ $<
|
||||
|
||||
obj/sv/%.o : source/%.s
|
||||
- gcc $(ASM_ARGS) -DSERVER -o $@ $<
|
||||
+ ${CC} $(ASM_ARGS) -DSERVER -o $@ $<
|
||||
|
||||
# ---------------------------------------
|
||||
|
||||
@@ -415,11 +415,11 @@
|
||||
# ---------------------------------------
|
||||
|
||||
ifndef INSTALL
|
||||
-INSTALL = ginstall
|
||||
+INSTALL = install -c
|
||||
endif
|
||||
|
||||
ifndef INSTALL_DIR
|
||||
-INSTALL_DIR = /usr/local/games/Vavoom
|
||||
+INSTALL_DIR = ${DATADIR}
|
||||
endif
|
||||
|
||||
ifndef INSTALL_GROUP
|
||||
@@ -511,8 +511,8 @@
|
||||
asm: $(ASM_FILES)
|
||||
|
||||
source/%.asm : source/%.s source/asm_i386.h source/gas2tasm.exe
|
||||
- gcc -x assembler-with-cpp -E -P -DGAS2TASM $< -o - | source/gas2tasm.exe > $@
|
||||
+ ${CC} -x assembler-with-cpp -E -P -DGAS2TASM $< -o - | source/gas2tasm.exe > $@
|
||||
|
||||
source/gas2tasm.exe : source/gas2tasm.c
|
||||
- gcc -O3 -ffast-math -fomit-frame-pointer -s -o $@ $<
|
||||
+ ${CC} -O3 -ffast-math -fomit-frame-pointer -s -o $@ $<
|
||||
|
18
games/vavoom/files/patch-source-asm_i386.h
Normal file
18
games/vavoom/files/patch-source-asm_i386.h
Normal file
@ -0,0 +1,18 @@
|
||||
--- source/asm_i386.h.orig Mon Jan 19 09:45:14 2004
|
||||
+++ source/asm_i386.h Mon Jan 19 09:46:32 2004
|
||||
@@ -27,13 +27,13 @@
|
||||
|
||||
#define USEASM
|
||||
|
||||
-#ifdef __linux__
|
||||
+#if defined(__linux__) || defined(__FreeBSD__)
|
||||
#define C(label) label // ELF format
|
||||
#else
|
||||
#define C(label) _##label // COFF format
|
||||
#endif
|
||||
|
||||
-#if !defined GAS2TASM && (defined DJGPP || defined __linux__)
|
||||
+#if !defined GAS2TASM && (defined DJGPP || defined __linux__ || defined __FreeBSD__)
|
||||
#define Align4 .p2align 2
|
||||
#define Align8 .p2align 3
|
||||
#define Align16 .p2align 4
|
186
games/vavoom/files/patch-source-cd_linux.cpp
Normal file
186
games/vavoom/files/patch-source-cd_linux.cpp
Normal file
@ -0,0 +1,186 @@
|
||||
--- source/cd_linux.cpp.orig Fri Jan 23 14:59:01 2004
|
||||
+++ source/cd_linux.cpp Fri Jan 23 14:59:04 2004
|
||||
@@ -32,7 +32,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <time.h>
|
||||
#include <errno.h>
|
||||
-#include <linux/cdrom.h>
|
||||
+#include <sys/cdio.h>
|
||||
|
||||
#include "gamedefs.h"
|
||||
#include "s_local.h"
|
||||
@@ -137,7 +137,8 @@
|
||||
void CD_Update(void)
|
||||
{
|
||||
guard(CD_Update);
|
||||
- struct cdrom_subchnl subchnl;
|
||||
+ struct ioc_read_subchannel subchnl;
|
||||
+ struct cd_sub_channel_info data;
|
||||
static time_t lastchk;
|
||||
|
||||
if (!cd_started)
|
||||
@@ -149,15 +150,18 @@
|
||||
if (playing && lastchk < time(NULL))
|
||||
{
|
||||
lastchk = time(NULL) + 2; //two seconds between chks
|
||||
- subchnl.cdsc_format = CDROM_MSF;
|
||||
- if (ioctl(cdfile, CDROMSUBCHNL, &subchnl) == -1 )
|
||||
+ subchnl.data = &data;
|
||||
+ subchnl.data_len = sizeof(data);
|
||||
+ subchnl.address_format = CD_MSF_FORMAT;
|
||||
+ subchnl.data_format = CD_CURRENT_POSITION;
|
||||
+ if (ioctl(cdfile, CDIOCREADSUBCHANNEL, (char*) &subchnl) == -1 )
|
||||
{
|
||||
- GCon->Log(NAME_Dev, "ioctl cdromsubchnl failed");
|
||||
+ GCon->Log(NAME_Dev, "ioctl CDIOCREADSUBCHANNEL failed");
|
||||
playing = false;
|
||||
return;
|
||||
}
|
||||
- if (subchnl.cdsc_audiostatus != CDROM_AUDIO_PLAY &&
|
||||
- subchnl.cdsc_audiostatus != CDROM_AUDIO_PAUSED)
|
||||
+ if (subchnl.data->header.audio_status != CD_AS_PLAY_IN_PROGRESS &&
|
||||
+ subchnl.data->header.audio_status != CD_AS_PLAY_PAUSED)
|
||||
{
|
||||
playing = false;
|
||||
if (playLooping)
|
||||
@@ -337,24 +341,24 @@
|
||||
|
||||
static void CD_GetInfo(void)
|
||||
{
|
||||
- struct cdrom_tochdr tochdr;
|
||||
+ struct ioc_toc_header tochdr;
|
||||
|
||||
cdValid = false;
|
||||
|
||||
- if (ioctl(cdfile, CDROMREADTOCHDR, &tochdr) == -1)
|
||||
+ if (ioctl(cdfile, CDIOREADTOCHEADER, &tochdr) == -1)
|
||||
{
|
||||
- GCon->Log(NAME_Dev, "ioctl cdromreadtochdr failed");
|
||||
+ GCon->Log(NAME_Dev, "ioctl CDIOREADTOCHEADER failed");
|
||||
return;
|
||||
}
|
||||
|
||||
- if (tochdr.cdth_trk0 < 1)
|
||||
+ if (tochdr.starting_track < 1)
|
||||
{
|
||||
GCon->Log(NAME_Dev, "CDAudio: no music tracks");
|
||||
return;
|
||||
}
|
||||
|
||||
cdValid = true;
|
||||
- maxTrack = tochdr.cdth_trk1;
|
||||
+ maxTrack = tochdr.ending_track;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
@@ -365,8 +369,8 @@
|
||||
|
||||
static void CD_Play(int track, boolean looping)
|
||||
{
|
||||
- struct cdrom_tocentry entry;
|
||||
- struct cdrom_ti ti;
|
||||
+ struct ioc_read_toc_single_entry entry;
|
||||
+ struct ioc_play_track ti;
|
||||
|
||||
if (!cdValid)
|
||||
{
|
||||
@@ -383,6 +387,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
+/*
|
||||
// don't try to play a non-audio track
|
||||
entry.cdte_track = track;
|
||||
entry.cdte_format = CDROM_MSF;
|
||||
@@ -396,7 +401,7 @@
|
||||
GCon->Logf("CDAudio: track %d is not audio", track);
|
||||
return;
|
||||
}
|
||||
-
|
||||
+*/
|
||||
if (playing)
|
||||
{
|
||||
if (playTrack == track)
|
||||
@@ -404,19 +409,19 @@
|
||||
CD_Stop();
|
||||
}
|
||||
|
||||
- ti.cdti_trk0 = track;
|
||||
- ti.cdti_trk1 = track;
|
||||
- ti.cdti_ind0 = 1;
|
||||
- ti.cdti_ind1 = 99;
|
||||
+ ti.start_track = track;
|
||||
+ ti.end_track = track;
|
||||
+ ti.start_index = 1;
|
||||
+ ti.end_index = 99;
|
||||
|
||||
- if (ioctl(cdfile, CDROMPLAYTRKIND, &ti) == -1)
|
||||
+ if (ioctl(cdfile, CDIOCPLAYTRACKS, &ti) == -1)
|
||||
{
|
||||
- GCon->Log(NAME_Dev, "ioctl cdromplaytrkind failed");
|
||||
+ GCon->Log(NAME_Dev, "ioctl CDIOCPLAYTRACKS failed");
|
||||
return;
|
||||
}
|
||||
|
||||
- if (ioctl(cdfile, CDROMRESUME) == -1)
|
||||
- GCon->Log(NAME_Dev, "ioctl cdromresume failed");
|
||||
+ if (ioctl(cdfile, CDIOCRESUME) == -1)
|
||||
+ GCon->Log(NAME_Dev, "ioctl CDIOCRESUME failed");
|
||||
|
||||
playLooping = looping;
|
||||
playTrack = track;
|
||||
@@ -434,8 +439,8 @@
|
||||
if (!playing)
|
||||
return;
|
||||
|
||||
- if (ioctl(cdfile, CDROMPAUSE) == -1)
|
||||
- GCon->Log(NAME_Dev, "ioctl cdrompause failed");
|
||||
+ if (ioctl(cdfile, CDIOCPAUSE) == -1)
|
||||
+ GCon->Log(NAME_Dev, "ioctl CDIOCPAUSE failed");
|
||||
|
||||
wasPlaying = playing;
|
||||
playing = false;
|
||||
@@ -452,8 +457,8 @@
|
||||
if (!wasPlaying)
|
||||
return;
|
||||
|
||||
- if (ioctl(cdfile, CDROMRESUME) == -1)
|
||||
- GCon->Log(NAME_Dev, "ioctl cdromresume failed");
|
||||
+ if (ioctl(cdfile, CDIOCRESUME) == -1)
|
||||
+ GCon->Log(NAME_Dev, "ioctl CDIOCRESUME failed");
|
||||
|
||||
playing = true;
|
||||
}
|
||||
@@ -469,8 +474,8 @@
|
||||
if (!playing)
|
||||
return;
|
||||
|
||||
- if (ioctl(cdfile, CDROMSTOP) == -1)
|
||||
- GCon->Log(NAME_Dev, "ioctl cdromstop failed");
|
||||
+ if (ioctl(cdfile, CDIOCSTOP) == -1)
|
||||
+ GCon->Log(NAME_Dev, "ioctl CDIOCSTOP failed");
|
||||
|
||||
wasPlaying = false;
|
||||
playing = false;
|
||||
@@ -484,8 +489,8 @@
|
||||
|
||||
static void CD_OpenDoor(void)
|
||||
{
|
||||
- if (ioctl(cdfile, CDROMEJECT) == -1)
|
||||
- GCon->Log(NAME_Dev, "ioctl cdromeject failed");
|
||||
+ if (ioctl(cdfile, CDIOCEJECT) == -1)
|
||||
+ GCon->Log(NAME_Dev, "ioctl CDIOCEJECT failed");
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
@@ -496,8 +501,8 @@
|
||||
|
||||
static void CD_CloseDoor(void)
|
||||
{
|
||||
- if (ioctl(cdfile, CDROMCLOSETRAY) == -1)
|
||||
- GCon->Log(NAME_Dev, "ioctl cdromclosetray failed");
|
||||
+ if (ioctl(cdfile, CDIOCCLOSE) == -1)
|
||||
+ GCon->Log(NAME_Dev, "ioctl CDIOCCLOSE failed");
|
||||
}
|
||||
|
||||
//**************************************************************************
|
150
games/vavoom/files/patch-source-s_sdl.cpp
Normal file
150
games/vavoom/files/patch-source-s_sdl.cpp
Normal file
@ -0,0 +1,150 @@
|
||||
--- source/s_sdl.cpp.orig Sat Mar 8 14:08:04 2003
|
||||
+++ source/s_sdl.cpp Wed Jan 21 15:41:52 2004
|
||||
@@ -82,8 +82,8 @@
|
||||
|
||||
IMPLEMENT_CLASS(VDefaultSoundDevice);
|
||||
|
||||
-static TCvarI mix_frequency ("mix_frequency", "22050", CVAR_ARCHIVE);
|
||||
-static TCvarI mix_bits ("mix_bits", "16", CVAR_ARCHIVE);
|
||||
+static TCvarI mix_frequency ("mix_frequency", "44100", CVAR_ARCHIVE);
|
||||
+static TCvarI mix_bits ("mix_bits", "8", CVAR_ARCHIVE);
|
||||
static TCvarI mix_channels ("mix_channels", "2", CVAR_ARCHIVE);
|
||||
|
||||
static TCvarI mix_chunksize ("mix_chunksize", "4096", CVAR_ARCHIVE);
|
||||
@@ -107,6 +107,8 @@
|
||||
static TVec listener_forward;
|
||||
static TVec listener_right;
|
||||
static TVec listener_up;
|
||||
+
|
||||
+SDL_AudioCVT wavecvt;
|
||||
|
||||
// CODE --------------------------------------------------------------------
|
||||
|
||||
@@ -337,6 +339,12 @@
|
||||
mix_bits = fmt & 0xFF;
|
||||
mix_channels = ch;
|
||||
|
||||
+ if (SDL_BuildAudioCVT(&wavecvt, AUDIO_S8, 2, 4096,
|
||||
+ fmt, mix_channels, mix_frequency) == -1) {
|
||||
+ Sys_Error("SDL_BuildAudioCVT: failed.\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
channels = Z_CNew<channel_t>(mix_voices);
|
||||
for (i = 0; i < mix_voices; i++)
|
||||
{
|
||||
@@ -425,13 +433,23 @@
|
||||
return;
|
||||
}
|
||||
|
||||
- // copy the lump to a SDL_Mixer chunk...
|
||||
- chunk = Mix_LoadRAW_RW(SDL_RWFromMem((void*)S_sfx[sound_id].data,
|
||||
- S_sfx[sound_id].len), 0, S_sfx[sound_id].freq, AUDIO_U8, 1);
|
||||
- if (chunk == NULL)
|
||||
- Sys_Error("Mix_LoadRAW_RW() failed!\n");
|
||||
- voice = Mix_LoadChannel(-1, chunk, 0);
|
||||
-
|
||||
+ wavecvt.len = S_sfx[sound_id].len;
|
||||
+ wavecvt.buf = (Uint8*)malloc(wavecvt.len*wavecvt.len_mult);
|
||||
+ memcpy(wavecvt.buf, S_sfx[sound_id].data, S_sfx[sound_id].len);
|
||||
+
|
||||
+ if (SDL_ConvertAudio(&wavecvt) == -1) {
|
||||
+ Sys_Error("SDL_ConvertAudio: error during conversion\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ // copy the lump to a SDL_Mixer chunk...
|
||||
+ chunk = Mix_QuickLoad_RAW((Uint8*)wavecvt.buf,
|
||||
+ wavecvt.len*wavecvt.len_mult);
|
||||
+ if (chunk == NULL)
|
||||
+ Sys_Error("Mix_QuickLoad_RAW() failed!\n");
|
||||
+
|
||||
+ voice = Mix_PlayChannel(-1, chunk, 0);
|
||||
+
|
||||
if (voice < 0)
|
||||
{
|
||||
S_DoneWithLump(sound_id);
|
||||
@@ -448,9 +466,6 @@
|
||||
pitch = CalcPitch(S_sfx[sound_id].freq, sound_id);
|
||||
#warning how to set the pitch? (CS)
|
||||
|
||||
- // ready to go...
|
||||
- Mix_Play(voice);
|
||||
-
|
||||
channels[chan].origin_id = origin_id;
|
||||
channels[chan].origin = origin;
|
||||
channels[chan].channel = channel;
|
||||
@@ -501,22 +516,28 @@
|
||||
return;
|
||||
}
|
||||
|
||||
- // copy the lump to a SDL_Mixer chunk...
|
||||
- chunk = Mix_LoadRAW_RW(SDL_RWFromMem((void*)S_VoiceInfo.data,
|
||||
- S_VoiceInfo.len), 0, S_VoiceInfo.freq, AUDIO_U8, 1);
|
||||
- if (chunk == NULL)
|
||||
- Sys_Error("Mix_LoadRAW_RW() failed!\n");
|
||||
- voice = Mix_LoadChannel(-1, chunk, 0);
|
||||
-
|
||||
+ wavecvt.len = S_sfx[VOICE_SOUND_ID].len;
|
||||
+ wavecvt.buf = (Uint8*)malloc(wavecvt.len*wavecvt.len_mult);
|
||||
+ memcpy(wavecvt.buf, S_sfx[VOICE_SOUND_ID].data, S_sfx[VOICE_SOUND_ID].len);
|
||||
+
|
||||
+ if (SDL_ConvertAudio(&wavecvt) == -1) {
|
||||
+ Sys_Error("SDL_ConvertAudio: error during conversion\n");
|
||||
+ return;
|
||||
+ }
|
||||
+ // copy the lump to a SDL_Mixer chunk...
|
||||
+ chunk = Mix_QuickLoad_RAW((Uint8*)wavecvt.buf,
|
||||
+ wavecvt.len*wavecvt.len_mult);
|
||||
+ if (chunk == NULL)
|
||||
+ Sys_Error("Mix_QuickLoad_RAW() failed!\n");
|
||||
+
|
||||
+ voice = Mix_PlayChannel(-1, chunk, 0);
|
||||
+
|
||||
if (voice < 0)
|
||||
{
|
||||
S_DoneWithLump(VOICE_SOUND_ID);
|
||||
return;
|
||||
}
|
||||
|
||||
- // ready to go...
|
||||
- Mix_Play(voice);
|
||||
-
|
||||
channels[chan].origin_id = 0;
|
||||
channels[chan].origin = TVec(0, 0, 0);
|
||||
channels[chan].channel = 1;
|
||||
@@ -558,19 +579,26 @@
|
||||
return;
|
||||
}
|
||||
|
||||
- chunk = Mix_LoadRAW_RW(SDL_RWFromMem((void*)S_sfx[sound_id].data,
|
||||
- S_sfx[sound_id].len), 0, S_sfx[sound_id].freq, AUDIO_U8, 1);
|
||||
- if (chunk == NULL)
|
||||
- Sys_Error("Mix_LoadRAW_RW() failed!\n");
|
||||
-
|
||||
- voice = Mix_LoadChannel(-1, chunk, 0);
|
||||
+ wavecvt.len = S_sfx[sound_id].len;
|
||||
+ wavecvt.buf = (Uint8*)malloc(wavecvt.len*wavecvt.len_mult);
|
||||
+ memcpy(wavecvt.buf, S_sfx[sound_id].data, S_sfx[sound_id].len);
|
||||
+
|
||||
+ if (SDL_ConvertAudio(&wavecvt) == -1) {
|
||||
+ Sys_Error("SDL_ConvertAudio: error during conversion\n");
|
||||
+ return;
|
||||
+ }
|
||||
+ // copy the lump to a SDL_Mixer chunk...
|
||||
+ chunk = Mix_QuickLoad_RAW((Uint8*)wavecvt.buf,
|
||||
+ wavecvt.len*wavecvt.len_mult);
|
||||
+ if (chunk == NULL)
|
||||
+ Sys_Error("Mix_QuickLoad_RAW() failed!\n");
|
||||
+
|
||||
+ voice = Mix_PlayChannel(-1, chunk, 0);
|
||||
|
||||
if (voice < 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
-
|
||||
- Mix_Play(voice);
|
||||
|
||||
start = Sys_Time();
|
||||
while (1)
|
74
games/vavoom/files/patch-source-sys_sdl.cpp
Normal file
74
games/vavoom/files/patch-source-sys_sdl.cpp
Normal file
@ -0,0 +1,74 @@
|
||||
--- source/sys_sdl.cpp.orig Wed Jan 21 15:22:13 2004
|
||||
+++ source/sys_sdl.cpp Wed Jan 21 15:29:23 2004
|
||||
@@ -45,7 +45,7 @@
|
||||
|
||||
// EXTERNAL FUNCTION PROTOTYPES --------------------------------------------
|
||||
|
||||
-#ifdef __i386__
|
||||
+#if defined(__i386__)
|
||||
extern "C" {
|
||||
|
||||
void Sys_SetFPCW(void);
|
||||
@@ -61,8 +61,10 @@
|
||||
|
||||
// PUBLIC DATA DEFINITIONS -------------------------------------------------
|
||||
|
||||
+#ifndef __FreeBSD__
|
||||
jmp_buf __Context::Env;
|
||||
const char* __Context::ErrToThrow;
|
||||
+#endif
|
||||
|
||||
// PRIVATE DATA DEFINITIONS ------------------------------------------------
|
||||
|
||||
@@ -256,6 +258,7 @@
|
||||
|
||||
void Sys_MakeCodeWriteable(unsigned long startaddr, unsigned long length)
|
||||
{
|
||||
+#ifndef __FreeBSD__
|
||||
int r;
|
||||
unsigned long addr;
|
||||
int psize = getpagesize();
|
||||
@@ -268,6 +271,7 @@
|
||||
{
|
||||
Sys_Error("Protection change failed\n");
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
@@ -726,6 +730,7 @@
|
||||
{
|
||||
signal(s, SIG_IGN); // Ignore future instances of this signal.
|
||||
|
||||
+#ifndef __FreeBSD__
|
||||
switch (s)
|
||||
{
|
||||
case SIGABRT:
|
||||
@@ -756,6 +761,27 @@
|
||||
__Context::ErrToThrow = "Terminated by signal";
|
||||
}
|
||||
longjmp(__Context::Env, 1);
|
||||
+#else
|
||||
+ switch (s)
|
||||
+ {
|
||||
+ case SIGABRT: throw VavoomError("Abnormal termination triggered by abort call");
|
||||
+ case SIGFPE: throw VavoomError("Floating Point Exception");
|
||||
+ case SIGILL: throw VavoomError("Illegal Instruction");
|
||||
+ case SIGINT: throw VavoomError("Interrupted by User");
|
||||
+ case SIGSEGV: throw VavoomError("Segmentation Violation");
|
||||
+ case SIGTERM: throw VavoomError("Software termination signal from kill");
|
||||
+#ifdef SIGKILL
|
||||
+ case SIGKILL: throw VavoomError("Killed");
|
||||
+#endif
|
||||
+#ifdef SIGQUIT
|
||||
+ case SIGQUIT: throw VavoomError("Quited");
|
||||
+#endif
|
||||
+#ifdef SIGNOFP
|
||||
+ case SIGNOFP: throw VavoomError("VAVOOM requires a floating-point processor");
|
||||
+#endif
|
||||
+ default: throw VavoomError("Terminated by signal");
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
|
||||
//==========================================================================
|
23
games/vavoom/pkg-descr
Normal file
23
games/vavoom/pkg-descr
Normal file
@ -0,0 +1,23 @@
|
||||
Vavoom is a source port based on sources of Doom, Heretic, Hexen
|
||||
and a little bit from Quake. To play Vavoom you need main wad file
|
||||
from Doom, Ultimate Doom, Doom II, Heretic, Hexen or Strife.
|
||||
|
||||
Differences from original game:
|
||||
* Polygonal engine with colored lighting, with software mode, OpenGL support;
|
||||
* Translucency;
|
||||
* Complete support for freelook (look up & down) in all games;
|
||||
* A powerful language to describe game logic;
|
||||
* 100% client/server architecture with in-game joining;
|
||||
* Quake-style console, with key bindings;
|
||||
* Indirect support for DeHackEd;
|
||||
* Crosshair;
|
||||
* Jumping;
|
||||
....
|
||||
|
||||
No music support is available in SDL compiled version at the moment.
|
||||
Sound effects are 8 bit, 44100KHz, stereo.
|
||||
|
||||
WWW: http://www.vavoom-engine.com/
|
||||
|
||||
- Igor Pokrovsky
|
||||
tiamat@comset.net
|
17
games/vavoom/pkg-message
Normal file
17
games/vavoom/pkg-message
Normal file
@ -0,0 +1,17 @@
|
||||
*****************************************************************************
|
||||
* In order to run Vavoom you will need original IWAD file from either:
|
||||
* Doom, Doom II, TNT, Plutonia, Heretic, Hexen or Strife.
|
||||
*
|
||||
* Manually do the following:
|
||||
* 1. Make directory for Vavoom data
|
||||
* mkdir ${HOME}/vavoom
|
||||
* 2. Copy Vavoom data into this directory
|
||||
* cp -r %%DATADIR%%/basev ${HOME}/vavoom
|
||||
* 3. Copy IWAD from original game here as well
|
||||
* cp /where/is/doom.wad ${HOME}/vavoom
|
||||
* 4. Execute Vavoom from directory with game data
|
||||
* cd ${HOME}/vavoom && %%PREFIX%%/bin/Vavoom -opengl
|
||||
* or
|
||||
* cd ${HOME}/vavoom && %%PREFIX%%/bin/Vavoom -opengl -openal
|
||||
* if you compiled Vavoom with OpenAL support
|
||||
*****************************************************************************
|
30
games/vavoom/pkg-plist
Normal file
30
games/vavoom/pkg-plist
Normal file
@ -0,0 +1,30 @@
|
||||
bin/Vavoom
|
||||
bin/VavoomSV
|
||||
%%DATADIR%%/basev/doom/wad0.wad
|
||||
@dirrm %%DATADIR%%/basev/doom
|
||||
%%DATADIR%%/basev/doom1/base.txt
|
||||
%%DATADIR%%/basev/doom1/wad0.wad
|
||||
@dirrm %%DATADIR%%/basev/doom1
|
||||
%%DATADIR%%/basev/doom2/base.txt
|
||||
%%DATADIR%%/basev/doom2/wad0.wad
|
||||
@dirrm %%DATADIR%%/basev/doom2
|
||||
%%DATADIR%%/basev/heretic/wad0.wad
|
||||
@dirrm %%DATADIR%%/basev/heretic
|
||||
%%DATADIR%%/basev/hexen/wad0.wad
|
||||
@dirrm %%DATADIR%%/basev/hexen
|
||||
%%DATADIR%%/basev/plutonia/base.txt
|
||||
%%DATADIR%%/basev/plutonia/wad0.wad
|
||||
@dirrm %%DATADIR%%/basev/plutonia
|
||||
%%DATADIR%%/basev/strife/wad0.wad
|
||||
@dirrm %%DATADIR%%/basev/strife
|
||||
%%DATADIR%%/basev/tnt/base.txt
|
||||
%%DATADIR%%/basev/tnt/wad0.wad
|
||||
@dirrm %%DATADIR%%/basev/tnt
|
||||
%%DATADIR%%/basev/default.cfg
|
||||
%%DATADIR%%/basev/games.txt
|
||||
%%DATADIR%%/basev/startup.vs
|
||||
@dirrm %%DATADIR%%/basev
|
||||
@dirrm %%DATADIR%%
|
||||
%%PORTDOCS%%%%DOCSDIR%%/vavmref.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/vavoom.txt
|
||||
%%PORTDOCS%%@dirrm %%DOCSDIR%%
|
Loading…
Reference in New Issue
Block a user