diff --git a/.gitignore b/.gitignore index 674deb6..da4eaab 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,5 @@ *.#* .*.swp .DS_store +/build # Simulated Subversion default ignores end here diff --git a/Makefile b/Makefile index d9d371b..7b44bd5 100644 --- a/Makefile +++ b/Makefile @@ -23,10 +23,6 @@ ifeq ($(COMPILE_PLATFORM),mingw32) endif endif -BUILD_GAME_SO = 0 -BUILD_GAME_QVM = 0 - - ############################################################################# # # If you require a different configuration from the defaults below, create a @@ -84,48 +80,16 @@ ifndef GENERATE_DEPENDENCIES GENERATE_DEPENDENCIES=1 endif -ifndef USE_OPENAL -USE_OPENAL=1 +ifndef BUILD_GAME_SO +BUILD_GAME_SO=1 endif -ifndef USE_OPENAL_DLOPEN - ifeq ($(PLATFORM),mingw32) - USE_OPENAL_DLOPEN=1 - else - USE_OPENAL_DLOPEN=0 - endif +ifndef BUILD_GAME_QVM +BUILD_GAME_QVM=1 endif -ifndef USE_CURL -USE_CURL=1 -endif - -ifndef USE_CURL_DLOPEN - ifeq ($(PLATFORM),mingw32) - USE_CURL_DLOPEN=0 - else - USE_CURL_DLOPEN=1 - endif -endif - -ifndef USE_CODEC_VORBIS -USE_CODEC_VORBIS=0 -endif - -ifndef USE_MUMBLE -USE_MUMBLE=1 -endif - -ifndef USE_VOIP -USE_VOIP=1 -endif - -ifndef USE_INTERNAL_SPEEX -USE_INTERNAL_SPEEX=1 -endif - -ifndef USE_LOCAL_HEADERS -USE_LOCAL_HEADERS=1 +ifdef BUILD_WRAPPER +BUILD_WRAPPER=1 endif ############################################################################# @@ -145,6 +109,7 @@ LBURGDIR=$(MOUNT_DIR)/tools/lcc/lburg Q3CPPDIR=$(MOUNT_DIR)/tools/lcc/cpp Q3LCCETCDIR=$(MOUNT_DIR)/tools/lcc/etc Q3LCCSRCDIR=$(MOUNT_DIR)/tools/lcc/src +WDIR=$(MOUNT_DIR)/wrapper TEMPDIR=/tmp # version info @@ -555,6 +520,12 @@ ifneq ($(BUILD_GAME_QVM),0) endif endif +ifneq ($(BUILD_WRAPPER),0) + TARGETS += \ + $(B)/baseia/ia-client \ + $(B)/baseia/ia-server +endif + ifdef DEFAULT_BASEDIR BASE_CFLAGS += -DDEFAULT_BASEDIR=\\\"$(DEFAULT_BASEDIR)\\\" endif @@ -1052,6 +1023,21 @@ $(B)/baseia/pak1.pk3: $(B)/baseia/productid.txt $(B)/baseia/vm/cgame.qvm $(B)/ba $(echo_cmd) "ZIP $@" @cd $(B)/baseia && zip -9r $(notdir $@) productid.txt vm + +############################################################################# +## WRAPPER SCRIPTS +############################################################################# +$(B)/baseia/ia-client: $(WDIR)/ia-client.in + $(echo_cmd) "GEN $@" + @sed "s#%%COPYDIR%%#${COPYDIR}#" $< > $@ + $(echo_cmd) "CHMOD $@" + @chmod 0755 $@ +$(B)/baseia/ia-server: $(WDIR)/ia-server.in + $(echo_cmd) "GEN $@" + @sed "s#COPYDIR#${COPYDIR}#" $< > $@ + $(echo_cmd) "CHMOD $@" + @chmod 0755 $@ + ############################################################################# # MISC ############################################################################# diff --git a/code/wrapper/ia-client.in b/code/wrapper/ia-client.in new file mode 100755 index 0000000..3719f31 --- /dev/null +++ b/code/wrapper/ia-client.in @@ -0,0 +1,25 @@ +#!/bin/sh +# Initialization script for Illusion Arena +# This is the client part + +CVARS="+set com_basegame baseia" +CVARS="$CVARS +set fs_basepath COPYDIR" +CVARS="$CVARS +set com_homepath .illusion" + +# OA uses a different protocol number to reflect incompatible game content. +# When it says "71", that's actually the legacy Quake III Arena 1.32c protocol, +# protocol 68. +CVARS="$CVARS +set com_legacyprotocol 71" + +# For the moment, disable the modern protocol, by setting this cvar to the +# same thing. When OA upstream decide what value they'll use, we should +# catch up. +CVARS="$CVARS +set com_protocol 71" + +# +CVARS="$CVARS +set sv_master1 dpmaster.deathmask.net" + +# update.quake3arena.com is pretty irrelevant if you're playing OA +CVARS="$CVARS +set cl_motd 0" + +exec "$(which ioquake3)" "${CVARS}" "$@" diff --git a/code/wrapper/ia-server.in b/code/wrapper/ia-server.in new file mode 100755 index 0000000..56402c0 --- /dev/null +++ b/code/wrapper/ia-server.in @@ -0,0 +1,28 @@ +#!/bin/sh +# Initialization script for Illusion Arena +# This is the server part + +CVARS="+set com_basegame baseia" +CVARS="$CVARS +set fs_basepath COPYDIR" +CVARS="$CVARS +set com_homepath .illusion" + +# OA uses a different protocol number to reflect incompatible game content. +# When it says "71", that's actually the legacy Quake III Arena 1.32c protocol, +# protocol 68. +CVARS="$CVARS +set com_legacyprotocol 71" + +# For the moment, disable the modern protocol, by setting this cvar to the +# same thing. When OA upstream decide what value they'll use, we should +# catch up. +CVARS="$CVARS +set com_protocol 71" + +# OA's default master server is different +CVARS="$CVARS +set sv_master1 dpmaster.deathmask.net" + +# update.quake3arena.com is pretty irrelevant if you're playing OA +CVARS="$CVARS +set cl_motd 0" + +# Run the dedicated server configuration file +CVARS="$CVARS +exec server.cfg" + +exec "$(which ioq3ded)" "${CVARS}" "$@"