some major speed enhancements

This commit is contained in:
eukos 2015-08-06 21:59:01 +02:00
parent 9bf7606aed
commit 0ee8c2f1be
21 changed files with 413 additions and 4368 deletions

246
Makefile
View file

@ -36,7 +36,7 @@ BUILD_RELEASE_DIR=release
CC=gcc -m32
BASE_CFLAGS=-Dstricmp=strcasecmp -I./dumb/include/
BASE_CFLAGS=-Dstricmp=strcasecmp -Wunused
RELEASE_CFLAGS=$(BASE_CFLAGS) -O6 -ffast-math -funroll-loops
DEBUG_CFLAGS=$(BASE_CFLAGS) -g
LDFLAGS=-lm -ldl
@ -45,13 +45,11 @@ XCFLAGS=-DX11
DO_CC=$(CC) $(CFLAGS) -o $@ -c $<
DO_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) -o $@ -c $<
DO_GL_CC=$(CC) $(CFLAGS) $(GLCFLAGS) -o $@ -c $<
DO_GL_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) $(GLCFLAGS) -o $@ -c $<
DO_X11_CC=$(CC) $(CFLAGS) $(XCFLAGS) -o $@ -c $<
DO_X11_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) $(XCFLAGS) -o $@ -c $<
DO_O_CC=$(CC) -O $(CFLAGS) -o $@ -c $<
DO_AS=$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
DO_GL_AS=$(CC) $(CFLAGS) $(GLCFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
DO_DUMB=$(CC) $(CFLAGS) -I./dumb/include/ -o $@ -c $<
#############################################################################
# SETUP AND BUILD
@ -77,7 +75,7 @@ targets: $(TARGETS)
# X11 Quake
#############################################################################
X11_OBJS = \
NGUNIX_OBJS = \
$(BUILDDIR)/atexit.o \
$(BUILDDIR)/duhlen.o \
$(BUILDDIR)/duhtag.o \
@ -216,362 +214,362 @@ X11_OBJS = \
$(BUILDDIR)/snd_mixa.o \
$(BUILDDIR)/sys_dosa.o
$(MASTER_DIR)/engoo.x11 : $(X11_OBJS)
$(CC) $(CFLAGS) -o $@ $(X11_OBJS) $(XLDFLAGS) $(LDFLAGS)
$(MASTER_DIR)/engoo.x11 : $(NGUNIX_OBJS)
$(CC) $(CFLAGS) -o $@ $(NGUNIX_OBJS) $(XLDFLAGS) $(LDFLAGS)
$(BUILDDIR)/atexit.o : $(MOUNT_DIR)/../dumb/core/atexit.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/duhlen.o : $(MOUNT_DIR)/../dumb/core/duhlen.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/duhtag.o : $(MOUNT_DIR)/../dumb/core/duhtag.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/dumbfile.o : $(MOUNT_DIR)/../dumb/core/dumbfile.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/loadduh.o : $(MOUNT_DIR)/../dumb/core/loadduh.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/makeduh.o : $(MOUNT_DIR)/../dumb/core/makeduh.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/rawsig.o : $(MOUNT_DIR)/../dumb/core/rawsig.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/readduh.o : $(MOUNT_DIR)/../dumb/core/readduh.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/register.o : $(MOUNT_DIR)/../dumb/core/register.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/rendduh.o : $(MOUNT_DIR)/../dumb/core/rendduh.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/rendsig.o : $(MOUNT_DIR)/../dumb/core/rendsig.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/unload.o : $(MOUNT_DIR)/../dumb/core/unload.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/clickrem.o : $(MOUNT_DIR)/../dumb/helpers/clickrem.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/memfile.o : $(MOUNT_DIR)/../dumb/helpers/memfile.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/resample.o : $(MOUNT_DIR)/../dumb/helpers/resample.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/sampbuf.o : $(MOUNT_DIR)/../dumb/helpers/sampbuf.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/silence.o : $(MOUNT_DIR)/../dumb/helpers/silence.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/stdfile.o : $(MOUNT_DIR)/../dumb/helpers/stdfile.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/itload.o : $(MOUNT_DIR)/../dumb/it/itload.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/itread.o : $(MOUNT_DIR)/../dumb/it/itread.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/itload2.o : $(MOUNT_DIR)/../dumb/it/itload2.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/itread2.o : $(MOUNT_DIR)/../dumb/it/itread2.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/itrender.o : $(MOUNT_DIR)/../dumb/it/itrender.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/itunload.o : $(MOUNT_DIR)/../dumb/it/itunload.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/loads3m.o : $(MOUNT_DIR)/../dumb/it/loads3m.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/reads3m.o : $(MOUNT_DIR)/../dumb/it/reads3m.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/loadxm.o : $(MOUNT_DIR)/../dumb/it/loadxm.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/readxm.o : $(MOUNT_DIR)/../dumb/it/readxm.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/loadmod.o : $(MOUNT_DIR)/../dumb/it/loadmod.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/readmod.o : $(MOUNT_DIR)/../dumb/it/readmod.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/loads3m2.o : $(MOUNT_DIR)/../dumb/it/loads3m2.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/reads3m2.o : $(MOUNT_DIR)/../dumb/it/reads3m2.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/loadxm2.o : $(MOUNT_DIR)/../dumb/it/loadxm2.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/readxm2.o : $(MOUNT_DIR)/../dumb/it/readxm2.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/loadmod2.o : $(MOUNT_DIR)/../dumb/it/loadmod2.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/readmod2.o : $(MOUNT_DIR)/../dumb/it/readmod2.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/xmeffect.o : $(MOUNT_DIR)/../dumb/it/xmeffect.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/itorder.o : $(MOUNT_DIR)/../dumb/it/itorder.c
$(DO_CC)
$(DO_DUMB)
$(BUILDDIR)/itmisc.o : $(MOUNT_DIR)/../dumb/it/itmisc.c
$(DO_CC)
$(DO_DUMB)
####
$(BUILDDIR)/cl_demo.o : $(MOUNT_DIR)/cl_demo.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/cl_input.o : $(MOUNT_DIR)/cl_input.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/cl_main.o : $(MOUNT_DIR)/cl_main.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/cl_parse.o : $(MOUNT_DIR)/cl_parse.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/cl_tent.o : $(MOUNT_DIR)/cl_tent.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/chase.o : $(MOUNT_DIR)/chase.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/cmd.o : $(MOUNT_DIR)/cmd.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/common.o : $(MOUNT_DIR)/common.c
$(DO_X11_DEBUG_CC)
$(DO_CC)
$(BUILDDIR)/console.o : $(MOUNT_DIR)/console.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/crc.o : $(MOUNT_DIR)/crc.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/cvar.o : $(MOUNT_DIR)/cvar.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/draw.o : $(MOUNT_DIR)/draw.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/d_edge.o : $(MOUNT_DIR)/d_edge.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/d_fill.o : $(MOUNT_DIR)/d_fill.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/d_init.o : $(MOUNT_DIR)/d_init.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/d_modech.o : $(MOUNT_DIR)/d_modech.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/d_part.o : $(MOUNT_DIR)/d_part.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/d_polyse.o : $(MOUNT_DIR)/d_polyse.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/d_scan.o : $(MOUNT_DIR)/d_scan.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/d_sky.o : $(MOUNT_DIR)/d_sky.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/d_sprite.o : $(MOUNT_DIR)/d_sprite.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/d_surf.o : $(MOUNT_DIR)/d_surf.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/d_vars.o : $(MOUNT_DIR)/d_vars.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/d_zpoint.o : $(MOUNT_DIR)/d_zpoint.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/host.o : $(MOUNT_DIR)/host.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/host_cmd.o : $(MOUNT_DIR)/host_cmd.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/keys.o : $(MOUNT_DIR)/keys.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/menu.o : $(MOUNT_DIR)/menu.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/mathlib.o : $(MOUNT_DIR)/mathlib.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/model.o : $(MOUNT_DIR)/model.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/model_common.o :$(MOUNT_DIR)/model_common.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/net_dgrm.o : $(MOUNT_DIR)/net_dgrm.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/net_loop.o : $(MOUNT_DIR)/net_loop.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/net_main.o : $(MOUNT_DIR)/net_main.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/net_vcr.o : $(MOUNT_DIR)/net_vcr.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/net_udp.o : $(MOUNT_DIR)/net_udp.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/net_bsd.o : $(MOUNT_DIR)/net_bsd.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/nonintel.o : $(MOUNT_DIR)/nonintel.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/pr_cmds.o : $(MOUNT_DIR)/pr_cmds.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/pr_edict.o : $(MOUNT_DIR)/pr_edict.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/pr_exec.o : $(MOUNT_DIR)/pr_exec.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/r_aclip.o : $(MOUNT_DIR)/r_aclip.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/r_alias.o : $(MOUNT_DIR)/r_alias.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/r_bsp.o : $(MOUNT_DIR)/r_bsp.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/r_light.o : $(MOUNT_DIR)/r_light.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/r_draw.o : $(MOUNT_DIR)/r_draw.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/r_efrag.o : $(MOUNT_DIR)/r_efrag.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/r_edge.o : $(MOUNT_DIR)/r_edge.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/r_misc.o : $(MOUNT_DIR)/r_misc.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/r_main.o : $(MOUNT_DIR)/r_main.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/r_sky.o : $(MOUNT_DIR)/r_sky.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/r_sprite.o : $(MOUNT_DIR)/r_sprite.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/r_surf.o : $(MOUNT_DIR)/r_surf.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/r_part.o : $(MOUNT_DIR)/r_part.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/r_vars.o : $(MOUNT_DIR)/r_vars.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/screen.o : $(MOUNT_DIR)/screen.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/sbar.o : $(MOUNT_DIR)/sbar.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/sv_main.o : $(MOUNT_DIR)/sv_main.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/sv_phys.o : $(MOUNT_DIR)/sv_phys.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/sv_move.o : $(MOUNT_DIR)/sv_move.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/sv_user.o : $(MOUNT_DIR)/sv_user.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/zone.o : $(MOUNT_DIR)/zone.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/view.o : $(MOUNT_DIR)/view.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/wad.o : $(MOUNT_DIR)/wad.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/world.o : $(MOUNT_DIR)/world.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/tracker_linux.o : $(MOUNT_DIR)/tracker_linux.c
$(DO_X11_CC)
$(DO_DUMB)
$(BUILDDIR)/cd_null.o : $(MOUNT_DIR)/cd_null.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/sys_linux.o :$(MOUNT_DIR)/sys_linux.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/vid_x.o: $(MOUNT_DIR)/vid_x.c
$(DO_O_CC)
$(BUILDDIR)/snd_dma.o : $(MOUNT_DIR)/snd_dma.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/snd_mem.o : $(MOUNT_DIR)/snd_mem.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/snd_mix.o : $(MOUNT_DIR)/snd_mix.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/snd_linux.o :$(MOUNT_DIR)/snd_linux.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/bot.o :$(MOUNT_DIR)/bot.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/nvs_client.o :$(MOUNT_DIR)/nvs_client.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/nvs_common.o :$(MOUNT_DIR)/nvs_common.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/nvs_server.o :$(MOUNT_DIR)/nvs_server.c
$(DO_X11_CC)
$(DO_CC)
$(BUILDDIR)/nvs_server_data.o :$(MOUNT_DIR)/nvs_server_data.c
$(DO_X11_CC)
$(DO_CC)
#####
@ -649,4 +647,4 @@ clean-release:
$(MAKE) clean2 BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(DEBUG_CFLAGS)"
clean2:
-rm -f $(X11_OBJS)
-rm -f $(NGUNIX_OBJS)

2
TODO Normal file
View file

@ -0,0 +1,2 @@
- Cleanup of d_scan, d_polyse and d_surf
- Fixing up of coloured statusbars

View file

@ -1,18 +0,0 @@
@echo off
set OUTPUT_DIR=lcc_lib_gl
cls
echo This script assumes that LCC is in your path
echo.
echo Creating preprocessor assembler files (.i) of all GAS files (.s) for GLQuake in %OUTPUT_DIR%
pause
mkdir %OUTPUT_DIR%
del "%OUTPUT_DIR%\*.i"
@echo on
lcc -EP -DGLQUAKE math.s -Fo%OUTPUT_DIR%/math.i
lcc -EP -DGLQUAKE snd_mixa.s -Fo%OUTPUT_DIR%/snd_mixa.i
lcc -EP -DGLQUAKE sys_wina.s -Fo%OUTPUT_DIR%/sys_wina.i
lcc -EP -DGLQUAKE worlda.s -Fo%OUTPUT_DIR%/worlda.i
@echo off
echo.
echo Step #1 for GLQuake is done
echo.

View file

@ -1,19 +0,0 @@
@echo off
set OUTPUT_DIR=lcc_lib_gl
cls
echo Step #2: Go through all .i files in %OUTPUT_DIR% and remove additional spaces from
echo A) Jump points, before the name and between it and the colon (:)
echo Example: " _Invert24To16 :"
echo B) Calculations
echo Example: "addl _paintbuffer + 0 - 8 *2(,%ecx,8),%edi"
echo.
echo After this you can go on to the next step.
echo.
echo Tips:
echo If you use UltraEdit use regular expressions:
echo for A replace "^(_*^) :" with "^1:"
echo for B search " +", " -", " *" and "+ ", "- ", "* "
echo.
echo URL:
echo UltraEdit - http://www.ultraedit.com/
echo.

View file

@ -1,16 +0,0 @@
@echo off
set OUTPUT_DIR=lcc_lib_gl
cls
echo This script assumes that GAS2MASM is in ..\..\gas2masm\lcc_release
echo.
echo Creating MASM assembler files (.asm) of all precompiler files (.i) for GLQuake in %OUTPUT_DIR%
pause
@echo on
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\math.i >%OUTPUT_DIR%\math.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\snd_mixa.i >%OUTPUT_DIR%\snd_mixa.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\sys_wina.i >%OUTPUT_DIR%\sys_wina.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\worlda.i >%OUTPUT_DIR%\worlda.asm
@echo off
echo.
echo Step #3 for GLQuake is done
echo.

View file

@ -1,18 +0,0 @@
@echo off
set OUTPUT_DIR=lcc_lib_gl
cls
echo This script assumes that MASM is in your path
echo.
echo Creating object files (.obj) of all MASM assembler files (.asm) for GLQuake in %OUTPUT_DIR%
pause
cd %OUTPUT_DIR%
@echo on
ml /c /Cp /coff /Zm /Zi math.asm
ml /c /Cp /coff /Zm /Zi snd_mixa.asm
ml /c /Cp /coff /Zm /Zi sys_wina.asm
ml /c /Cp /coff /Zm /Zi worlda.asm
@echo off
cd ..
echo.
echo Step #4 for GLQuake is done
echo.

View file

@ -1,15 +0,0 @@
@echo off
set OUTPUT_DIR=lcc_lib_gl
cls
echo This script assumes that LCC is in your path
echo.
echo Creating library (.lib) of object files for GLQuake in %OUTPUT_DIR%
pause
cd %OUTPUT_DIR%
@echo on
lcclib quakeasm_gl.lib *.obj
@echo off
cd ..
echo.
echo Step #5 for GLQuake is done
echo.

View file

@ -1,32 +0,0 @@
@echo off
set OUTPUT_DIR=lcc_lib_wq
cls
echo This script assumes that LCC is in your path
echo.
echo Creating preprocessor assembler files (.i) of all GAS files (.s) for WinQuake in %OUTPUT_DIR%
pause
mkdir %OUTPUT_DIR%
del "%OUTPUT_DIR%\*.i"
@echo on
lcc -EP d_draw.s -Fo%OUTPUT_DIR%/d_draw.i
lcc -EP d_draw16.s -Fo%OUTPUT_DIR%/d_draw16.i
lcc -EP d_parta.s -Fo%OUTPUT_DIR%/d_parta.i
lcc -EP d_polysa.s -Fo%OUTPUT_DIR%/d_polysa.i
lcc -EP d_scana.s -Fo%OUTPUT_DIR%/d_scana.i
lcc -EP d_spr8.s -Fo%OUTPUT_DIR%/d_spr8.i
lcc -EP d_varsa.s -Fo%OUTPUT_DIR%/d_varsa.i
lcc -EP math.s -Fo%OUTPUT_DIR%/math.i
lcc -EP r_aclipa.s -Fo%OUTPUT_DIR%/r_aclipa.i
lcc -EP r_aliasa.s -Fo%OUTPUT_DIR%/r_aliasa.i
lcc -EP r_drawa.s -Fo%OUTPUT_DIR%/r_drawa.i
lcc -EP r_edgea.s -Fo%OUTPUT_DIR%/r_edgea.i
lcc -EP r_varsa.s -Fo%OUTPUT_DIR%/r_varsa.i
lcc -EP snd_mixa.s -Fo%OUTPUT_DIR%/snd_mixa.i
lcc -EP surf16.s -Fo%OUTPUT_DIR%/surf16.i
lcc -EP surf8.s -Fo%OUTPUT_DIR%/surf8.i
lcc -EP sys_wina.s -Fo%OUTPUT_DIR%/sys_wina.i
lcc -EP worlda.s -Fo%OUTPUT_DIR%/worlda.i
@echo off
echo.
echo Step #1 for WinQuake is done
echo.

View file

@ -1,19 +0,0 @@
@echo off
set OUTPUT_DIR=lcc_lib_wq
cls
echo Step #2: Go through all .i files in %OUTPUT_DIR% and remove additional spaces from
echo A) Jump points, before the name and between it and the colon (:)
echo Example: " _Invert24To16 :"
echo B) Calculations
echo Example: "addl _paintbuffer + 0 - 8 *2(,%ecx,8),%edi"
echo.
echo After this you can go on to the next step.
echo.
echo Tips:
echo If you use UltraEdit use regular expressions:
echo for A replace "^(_*^) :" with "^1:"
echo for B search " +", " -", " *" and "+ ", "- ", "* "
echo.
echo URL:
echo UltraEdit - http://www.ultraedit.com/
echo.

View file

@ -1,30 +0,0 @@
@echo off
set OUTPUT_DIR=lcc_lib_wq
cls
echo This script assumes that GAS2MASM is in ..\..\gas2masm\lcc_release
echo.
echo Creating MASM assembler files (.asm) of all precompiler files (.i) for WinQuake in %OUTPUT_DIR%
pause
@echo on
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\d_draw.i >%OUTPUT_DIR%\d_draw.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\d_draw16.i >%OUTPUT_DIR%\d_draw16.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\d_parta.i >%OUTPUT_DIR%\d_parta.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\d_polysa.i >%OUTPUT_DIR%\d_polysa.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\d_scana.i >%OUTPUT_DIR%\d_scana.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\d_spr8.i >%OUTPUT_DIR%\d_spr8.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\d_varsa.i >%OUTPUT_DIR%\d_varsa.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\math.i >%OUTPUT_DIR%\math.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\r_aclipa.i >%OUTPUT_DIR%\r_aclipa.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\r_aliasa.i >%OUTPUT_DIR%\r_aliasa.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\r_drawa.i >%OUTPUT_DIR%\r_drawa.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\r_edgea.i >%OUTPUT_DIR%\r_edgea.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\r_varsa.i >%OUTPUT_DIR%\r_varsa.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\snd_mixa.i >%OUTPUT_DIR%\snd_mixa.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\surf16.i >%OUTPUT_DIR%\surf16.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\surf8.i >%OUTPUT_DIR%\surf8.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\sys_wina.i >%OUTPUT_DIR%\sys_wina.asm
..\gas2masm\lcc_release\gas2masm.exe <%OUTPUT_DIR%\worlda.i >%OUTPUT_DIR%\worlda.asm
@echo off
echo.
echo Step #3 for WinQuake is done
echo.

View file

@ -1,32 +0,0 @@
@echo off
set OUTPUT_DIR=lcc_lib_wq
cls
echo This script assumes that MASM is in your path
echo.
echo Creating object files (.obj) of all MASM assembler files (.asm) for WinQuake in %OUTPUT_DIR%
pause
cd %OUTPUT_DIR%
@echo on
ml /c /Cp /coff /Zm /Zi d_draw.asm
ml /c /Cp /coff /Zm /Zi d_draw16.asm
ml /c /Cp /coff /Zm /Zi d_parta.asm
ml /c /Cp /coff /Zm /Zi d_polysa.asm
ml /c /Cp /coff /Zm /Zi d_scana.asm
ml /c /Cp /coff /Zm /Zi d_spr8.asm
ml /c /Cp /coff /Zm /Zi d_varsa.asm
ml /c /Cp /coff /Zm /Zi math.asm
ml /c /Cp /coff /Zm /Zi r_aclipa.asm
ml /c /Cp /coff /Zm /Zi r_aliasa.asm
ml /c /Cp /coff /Zm /Zi r_drawa.asm
ml /c /Cp /coff /Zm /Zi r_edgea.asm
ml /c /Cp /coff /Zm /Zi r_varsa.asm
ml /c /Cp /coff /Zm /Zi snd_mixa.asm
ml /c /Cp /coff /Zm /Zi surf16.asm
ml /c /Cp /coff /Zm /Zi surf8.asm
ml /c /Cp /coff /Zm /Zi sys_wina.asm
ml /c /Cp /coff /Zm /Zi worlda.asm
@echo off
cd ..
echo.
echo Step #4 for WinQuake is done
echo.

View file

@ -1,15 +0,0 @@
@echo off
set OUTPUT_DIR=lcc_lib_wq
cls
echo This script assumes that LCC is in your path
echo.
echo Creating library (.lib) of object files for WinQuake in %OUTPUT_DIR%
pause
cd %OUTPUT_DIR%
@echo on
lcclib quakeasm_wq.lib *.obj
@echo off
cd ..
echo.
echo Step #5 for WinQuake is done
echo.

Binary file not shown.

View file

@ -17,9 +17,144 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifdef QUAKE2
#include "progdefs.q2"
#else
#include "progdefs.q1"
//#include "progdefs.qb"
#endif
typedef struct
{ int pad[28];
int self;
int other;
int world;
float time;
float frametime;
float force_retouch;
string_t mapname;
float deathmatch;
float coop;
float teamplay;
float serverflags;
float total_secrets;
float total_monsters;
float found_secrets;
float killed_monsters;
float parm1;
float parm2;
float parm3;
float parm4;
float parm5;
float parm6;
float parm7;
float parm8;
float parm9;
float parm10;
float parm11;
float parm12;
float parm13;
float parm14;
float parm15;
float parm16;
vec3_t v_forward;
vec3_t v_up;
vec3_t v_right;
float trace_allsolid;
float trace_startsolid;
float trace_fraction;
vec3_t trace_endpos;
vec3_t trace_plane_normal;
float trace_plane_dist;
int trace_ent;
float trace_inopen;
float trace_inwater;
int msg_entity;
func_t main;
func_t StartFrame;
func_t PlayerPreThink;
func_t PlayerPostThink;
func_t ClientKill;
func_t ClientConnect;
func_t PutClientInServer;
func_t ClientDisconnect;
func_t SetNewParms;
func_t SetChangeParms;
} globalvars_t;
typedef struct
{
float modelindex;
vec3_t absmin;
vec3_t absmax;
float ltime;
float movetype;
float solid;
vec3_t origin;
vec3_t oldorigin;
vec3_t velocity;
vec3_t angles;
vec3_t avelocity;
vec3_t punchangle;
string_t classname;
string_t model;
float frame;
float skin;
float effects;
vec3_t mins;
vec3_t maxs;
vec3_t size;
func_t touch;
func_t use;
func_t think;
func_t blocked;
float nextthink;
int groundentity;
float health;
float frags;
float weapon;
string_t weaponmodel;
float weaponframe;
float currentammo;
float ammo_shells;
float ammo_nails;
float ammo_rockets;
float ammo_cells;
float items;
float takedamage;
int chain;
float deadflag;
vec3_t view_ofs;
float button0;
float button1;
float button2;
float impulse;
float fixangle;
vec3_t v_angle;
float idealpitch;
string_t netname;
int enemy;
float flags;
float colormap;
float team;
float max_health;
float teleport_time;
float armortype;
float armorvalue;
float waterlevel;
float watertype;
float ideal_yaw;
float yaw_speed;
int aiment;
int goalentity;
float spawnflags;
string_t target;
string_t targetname;
float dmg_take;
float dmg_save;
int dmg_inflictor;
int owner;
vec3_t movedir;
string_t message;
float sounds;
string_t noise;
string_t noise1;
string_t noise2;
string_t noise3;
} entvars_t;
#define PROGHEADER_CRC 5927

View file

@ -1,143 +0,0 @@
/* file generated by qcc, do not modify */
typedef struct
{ int pad[28];
int self;
int other;
int world;
float time;
float frametime;
float force_retouch;
string_t mapname;
float deathmatch;
float coop;
float teamplay;
float serverflags;
float total_secrets;
float total_monsters;
float found_secrets;
float killed_monsters;
float parm1;
float parm2;
float parm3;
float parm4;
float parm5;
float parm6;
float parm7;
float parm8;
float parm9;
float parm10;
float parm11;
float parm12;
float parm13;
float parm14;
float parm15;
float parm16;
vec3_t v_forward;
vec3_t v_up;
vec3_t v_right;
float trace_allsolid;
float trace_startsolid;
float trace_fraction;
vec3_t trace_endpos;
vec3_t trace_plane_normal;
float trace_plane_dist;
int trace_ent;
float trace_inopen;
float trace_inwater;
int msg_entity;
func_t main;
func_t StartFrame;
func_t PlayerPreThink;
func_t PlayerPostThink;
func_t ClientKill;
func_t ClientConnect;
func_t PutClientInServer;
func_t ClientDisconnect;
func_t SetNewParms;
func_t SetChangeParms;
} globalvars_t;
typedef struct
{
float modelindex;
vec3_t absmin;
vec3_t absmax;
float ltime;
float movetype;
float solid;
vec3_t origin;
vec3_t oldorigin;
vec3_t velocity;
vec3_t angles;
vec3_t avelocity;
vec3_t punchangle;
string_t classname;
string_t model;
float frame;
float skin;
float effects;
vec3_t mins;
vec3_t maxs;
vec3_t size;
func_t touch;
func_t use;
func_t think;
func_t blocked;
float nextthink;
int groundentity;
float health;
float frags;
float weapon;
string_t weaponmodel;
float weaponframe;
float currentammo;
float ammo_shells;
float ammo_nails;
float ammo_rockets;
float ammo_cells;
float items;
float takedamage;
int chain;
float deadflag;
vec3_t view_ofs;
float button0;
float button1;
float button2;
float impulse;
float fixangle;
vec3_t v_angle;
float idealpitch;
string_t netname;
int enemy;
float flags;
float colormap;
float team;
float max_health;
float teleport_time;
float armortype;
float armorvalue;
float waterlevel;
float watertype;
float ideal_yaw;
float yaw_speed;
int aiment;
int goalentity;
float spawnflags;
string_t target;
string_t targetname;
float dmg_take;
float dmg_save;
int dmg_inflictor;
int owner;
vec3_t movedir;
string_t message;
float sounds;
string_t noise;
string_t noise1;
string_t noise2;
string_t noise3;
} entvars_t;
#define PROGHEADER_CRC 5927

View file

@ -1,157 +0,0 @@
/* file generated by qcc, do not modify */
typedef struct
{ int pad[28];
int self;
int other;
int world;
float time;
float frametime;
float force_retouch;
string_t mapname;
string_t startspot;
float deathmatch;
float coop; float teamplay;
float serverflags;
float total_secrets;
float total_monsters;
float found_secrets;
float killed_monsters;
float parm1;
float parm2;
float parm3;
float parm4;
float parm5;
float parm6;
float parm7;
float parm8;
float parm9;
float parm10;
float parm11;
float parm12;
float parm13;
float parm14;
float parm15;
float parm16;
vec3_t v_forward;
vec3_t v_up;
vec3_t v_right;
float trace_allsolid;
float trace_startsolid;
float trace_fraction;
vec3_t trace_endpos;
vec3_t trace_plane_normal;
float trace_plane_dist;
int trace_ent;
float trace_inopen;
float trace_inwater;
int msg_entity;
string_t null;
func_t main;
func_t StartFrame;
func_t PlayerPreThink;
func_t PlayerPostThink;
func_t ClientKill;
func_t ClientConnect;
func_t PutClientInServer;
func_t ClientDisconnect;
func_t SetNewParms;
func_t SetChangeParms;
} globalvars_t;
typedef struct
{
float modelindex;
vec3_t absmin;
vec3_t absmax;
float ltime;
float movetype;
float solid;
vec3_t origin;
vec3_t oldorigin;
vec3_t velocity;
vec3_t angles;
vec3_t avelocity;
vec3_t basevelocity;
vec3_t punchangle;
string_t classname;
string_t model;
float frame;
float skin;
float effects;
float drawPercent;
float gravity;
float mass;
float light_level;
vec3_t mins;
vec3_t maxs;
vec3_t size;
func_t touch;
func_t use;
func_t think;
func_t blocked;
float nextthink;
int groundentity;
float health;
float frags;
float weapon;
string_t weaponmodel;
float weaponframe;
float currentammo;
float ammo_shells;
float ammo_nails;
float ammo_rockets;
float ammo_cells;
float items;
float items2;
float takedamage;
int chain;
float deadflag;
vec3_t view_ofs;
float button0;
float button1;
float button2;
float impulse;
float fixangle;
vec3_t v_angle;
float idealpitch;
float pitch_speed;
string_t netname;
int enemy;
float flags;
float colormap;
float team;
float max_health;
float teleport_time;
float armortype;
float armorvalue;
float waterlevel;
float watertype;
float ideal_yaw;
float yaw_speed;
int aiment;
int goalentity;
float spawnflags;
string_t target;
string_t targetname;
float dmg_take;
float dmg_save;
int dmg_inflictor;
int owner;
vec3_t movedir;
string_t message;
float sounds;
string_t noise;
string_t noise1;
string_t noise2;
string_t noise3;
float dmg;
float dmgtime;
float air_finished;
float pain_finished;
float radsuit_finished;
float speed;
} entvars_t;
#define PROGHEADER_CRC 31586

View file

@ -42,16 +42,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// to a stupidly high amount for debugging. Please read below
// for why.
// EXPERIMENTALY HACKS
#define twentyfourbithack // Converts textures to 24-bit for dithered rendering. Doesn't work
//#define twentyfourbithack // Converts textures to 24-bit for dithered rendering. Doesn't work
//#define dithermodelhack // Attempts dithered lighting on models
//#define statictest // uses Static for the tables used by rgb surfaceblocks
//#define LOOKANGLE // adds aimangle (crude pointing of the viewmodel to autoaim angle)
//#define LOOKANGLE // adds aimangle (crude pointing of the viewmodel to autoaim angle)
#define ITSFIX
//#define ANTIPACKETOVERFLOW // argh
//#define WINDOWS31 // to allow the engine to be run in windows 3 w/ win32s
// it doesn't work right now (and latest win32s aborts it too)
// but theoretically it is broken at the TIMER level, at least
// in older mid-1995 win32s versions
// it doesn't work right now (and latest win32s aborts it too)
// but theoretically it is broken at the TIMER level, at least
// in older mid-1995 win32s versions
//#define SPLIT // Splitscreen hack (NOTE: Depends on GLOBOT for now, for client functionality)
#define REALLYCRASHESITHINK
@ -59,29 +59,28 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// Video Features
// -----------------------------------------
//#define EGA // EGA 4-bit colors experiment *WIP*
//#define EGAHACK // EGA Palette Hackup Test
//#define VGA // VGA 4-bit colors experiment to allow game running in safe mode *WIP*
//#define INTERPOL // buggy interpolation (ToChriS/makaqu port - this will crash.)
//#define MHINTERPOL // other interpolation (still buggy)*WIP*
#define INTERPOL7 // other interpolation again (still buggy)*WIP*
//#define EGA // EGA 4-bit colors experiment *WIP*
//#define EGAHACK // EGA Palette Hackup Test
//#define VGA // VGA 4-bit colors experiment to allow game running in safe mode *WIP*
//#define INTERPOL // buggy interpolation (ToChriS/makaqu port - this will crash.)
//#define MHINTERPOL // other interpolation (still buggy)*WIP*
#define INTERPOL7 // other interpolation again (still buggy)*WIP*
//#define NOFULLSCREENEVER // absolutely force windowed mode
//#define INTERPOL2 // Tochris interpolation
//#define ALPHASCALE // enable .alpha and .scale*WIP* (may break protocol?)
//#define SCALEE // enable just the scale ocde, no protocols
#define SCALED2D // enables scaled hud/menu etc. adapted from siggi's uhexen2 patch
//#define THIRTYTWOBITHACK
//#define MMXHACK // try to shove in MMX intrinsics to some functions
//#define INTERPOL2 // Tochris interpolation
//#define ALPHASCALE // enable .alpha and .scale*WIP* (may break protocol?)
//#define SCALEE // enable just the scale ocde, no protocols
#define SCALED2D // enables scaled hud/menu etc. adapted from siggi's uhexen2 patch
//#define THIRTYTWOBITHACK
//#define MMXHACK // try to shove in MMX intrinsics to some functions
//#define DECALS // Port of FTEQW's disabled SW DECALS feature. Probably doesn't work.
//#define DECALS // Port of FTEQW's disabled SW DECALS feature. Probably doesn't work.
//#define COMBINED
//#define STAINMAPS // I don't like this common feature much, but we'll try it anyway.
//#define WATERLOW // Use a warpbuffer clone for storing the reflection in, rendering it stretched to the buffer (why)
//#define EXPREND // Experimental shadowmap rendering mode
#define WATERREFLECTIONS
//#define INTERPOLENTITIES
//#define VOODOO // vid_win.c only - try to mock 3dfx Voodoo 4x1 filter
//#define STAINMAPS // I don't like this common feature much, but we'll try it anyway.
//#define WATERLOW // Use a warpbuffer clone for storing the reflection in, rendering it stretched to the buffer (why)
//#define EXPREND // Experimental shadowmap rendering mode
//#define WATERREFLECTIONS
//#define INTERPOLENTITIES
//#define VOODOO // vid_win.c only - try to mock 3dfx Voodoo 4x1 filter
// -----------------------------------------
// Audio Features
@ -89,13 +88,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//#define DUMB // Use DUMB Module playback library *WIP*
#ifndef linux
#define ASS_MIDI // Use Apogee Sound System for MIDI playback only*WIP*
#define ASS_MIDI // Use Apogee Sound System for MIDI playback only*WIP*
#endif
int inthedos;
//#define NOASM
#define EFFINGMOUSE // disables "Enhance Pointer Precision"
// a definite MUST for debugging
// a definite MUST for debugging
// -----------------------------------------
// Gameplay Features
@ -104,34 +103,32 @@ int inthedos;
#define GLOBOT // tomaz globots
//#define VMTOC // viewmodelforclient changes
#define SONOFABITS // Bits workaround :(
//#define BITSAGAIN // qip way
//#define BITSAGAIN // qip way
// -----------------------------------------
// Versioning
// -----------------------------------------
int qbeta; // when 1, it tries to force guestimated pre-1.00 behaviors
int protocol; // OK.
int Nehahrademcompatibility; // LordHavoc: to allow playback of the early Nehahra movie segments
int qbeta; // when 1, it tries to force guestimated pre-1.00 behaviors
int protocol; // OK.
int Nehahrademcompatibility; // LordHavoc: to allow playback of the early Nehahra movie segments
int dpprotocol;
#define DPPROTOCOLS
#define QIP_VERSION "Build 278"
#define QIP_URL "nowhere"
#define VERSION 1.08
#define TNQ_VERSION 240 // todo: increment build numbers
#define QIP_VERSION "Build 278"
#define QIP_URL "nowhere"
#define VERSION 1.08
#define TNQ_VERSION 240 // todo: increment build numbers
#define GLQUAKE_VERSION 1.00
#define D3DQUAKE_VERSION 0.01
#define WINQUAKE_VERSION 2.78 // was 0.996, but WinQuake was already final
#define LINUX_VERSION 1.30
#define X11_VERSION 1.10
#define X11_VERSION 1.10
#define PROTOCOL_STOCK 0 // old 1.09
#define PROTOCOL_QUAKEDP 1 // dp105
#define PROTOCOL_TQ 2 // Tomazquake
//define PARANOID // speed sapping error checking
// -----------------------------------------
@ -170,14 +167,14 @@ int gamemode;
#define GAME_TRANSFUSION 5 // 2002
#define GAME_CIA_OPERATIVE 6 // 2001 - trainwreck
#define GAME_JESUSTHEFPS 7 // 2003 - very jesusy
#define GAME_GRASS 8 // 2002
#define GAME_GRASS 8 // 2002
#define GAME_MINIRACER 9 // 2002
//#define GAME_HEXEN_II 10 // 1997 - too many system vars changes atm
#define GAME_FIEND_HUNTER 11 // 2001 v0.64
#define GAME_NEHAHRA 12 // 2000
#define GAME_URBANMERC 13 // 2000 - profits are "emulated"
#define GAME_KUROK 14 // 2008
#define GAME_FIGHT 15 // 2015?
#define GAME_KUROK 14 // 2008
#define GAME_FIGHT 15 // 2015?
#include <math.h>
#include <string.h>
@ -198,80 +195,61 @@ int gamemode;
//
#if defined(_WIN32) && !defined(WINDED)
#if defined(_M_IX86)
#define __i386__ 1
#endif
#if defined(_M_IX86)
#define __i386__ 1
#endif
void VID_LockBuffer (void);
void VID_UnlockBuffer (void);
void VID_LockBuffer (void);
void VID_UnlockBuffer (void);
#else
#define VID_LockBuffer()
#define VID_UnlockBuffer()
#define VID_LockBuffer()
#define VID_UnlockBuffer()
#endif
#if defined __i386__ && !defined NOASM // && !defined __sun__
#define id386 1
#define id386poly 0
#define id386rgb 0
#define id386 1
#define id386poly 0
#define id386rgb 0
#else
#define id386 0
#define id386poly 0
#define id386rgb 0
#define id386 0
#define id386poly 0
#define id386rgb 0
#endif
#if id386
#define UNALIGNED_OK 1 // set to 0 if unaligned accesses are not supported
#define UNALIGNED_OK 1 // set to 0 if unaligned accesses are not supported
#else
#define UNALIGNED_OK 0
#define UNALIGNED_OK 0
#endif
// !!! if this is changed, it must be changed in d_ifacea.h too !!!
#define CACHE_SIZE 32 // used to align key data structures
#define UNUSED(x) (x = x) // for pesky compiler / lint warnings
#ifdef BENCH
#define MINIMUM_MEMORY 0x0186A0 // 100kb hack test
#else
#define MINIMUM_MEMORY 0x550000
#endif
#define MINIMUM_MEMORY_LEVELPAK (MINIMUM_MEMORY + 0x100000)
#ifdef BENCH
#define MINIMUM_MEMORY 0x0186A0 // 100kb hack test
#else
#define MINIMUM_MEMORY 0x550000
#endif
#define MINIMUM_MEMORY_LEVELPAK (MINIMUM_MEMORY + 0x100000)
#define MAX_NUM_ARGVS 50
// up / down
#define PITCH 0
#define PITCH 0 // up / down
#define YAW 1 // left / right
#define ROLL 2 // fall over
// left / right
#define YAW 1
#define MAX_QPATH 64 // max length of a quake game pathname
#define MAX_OSPATH 128 // max length of a filesystem pathname
#define ON_EPSILON 0.1 // point on plane side epsilon
// fall over
#define ROLL 2
#define MAX_QPATH 64 // max length of a quake game pathname
#define MAX_OSPATH 128 // max length of a filesystem pathname
#define ON_EPSILON 0.1 // point on plane side epsilon
#ifdef QSB_NET
#define MAX_MSGLEN 65536 // max length of a reliable message
//#define MAX_DATAGRAM 1400 // max length of unreliable message
#define MAX_DATAGRAM 16000 // max length of unreliable message
// leilei - I only raised this just to
// have fun with excessive entity stress.
// (craploads of monsters) because it's nice
// to not see "PACKET OVERFLOW" spammed.
// please lower this to 1400 for serious
// QSB standard use.
#define MAX_MSGLEN 65536 // max length of a reliable message
#define MAX_DATAGRAM 1400 // max length of unreliable message
#else
#define MAX_MSGLEN 8000 // max length of a reliable message
#define MAX_DATAGRAM 1024 // max length of unreliable message
#define MAX_MSGLEN 8000 // max length of a reliable message
#define MAX_DATAGRAM 1024 // max length of unreliable message
#endif
@ -286,26 +264,26 @@ void VID_UnlockBuffer (void);
#ifdef QSB_NET
#define MAX_MODELS 4096 // these are sent over the net as bytes
#define MAX_SOUNDS 4096 // so they cannot be blindly increased
#define MAX_SOUNDS 4096 // so they cannot be blindly increased
#define MIN_EDICTS 600 // must be the original default value: 600
#define MIN_EDICTS 600 // must be the original default value: 600
#define MAX_EDICTS 8192 // Maximum without network changes, as entity number is send as signed short (2 bytes)
#define MIN_TEMP_ENTITIES 1024 // lightning bolts, etc
#define MIN_STATIC_ENTITIES 1024 // torches, etc
#define MIN_TEMP_ENTITIES 1024 // lightning bolts, etc
#define MIN_STATIC_ENTITIES 1024 // torches, etc
// 2001-09-20 Configurable entity limits by Maddes end
#define MAX_LIGHTSTYLES 64
#else
#define MAX_MODELS 256 // these are sent over the net as bytes
#define MAX_SOUNDS 256 // so they cannot be blindly increased
#define MAX_MODELS 256 // these are sent over the net as bytes
#define MAX_SOUNDS 256 // so they cannot be blindly increased
#define MIN_EDICTS 600 // must be the original default value: 600
#define MAX_EDICTS 0x7FFF // Maximum without network changes, as entity number is send as signed short (2 bytes)
#define MIN_EDICTS 600 // must be the original default value: 600
#define MAX_EDICTS 0x7FFF // Maximum without network changes, as entity number is send as signed short (2 bytes)
#define MIN_TEMP_ENTITIES 64 // lightning bolts, etc
#define MIN_STATIC_ENTITIES 128 // torches, etc
#define MIN_TEMP_ENTITIES 64 // lightning bolts, etc
#define MIN_STATIC_ENTITIES 128 // torches, etc
// 2001-09-20 Configurable entity limits by Maddes end
#define MAX_LIGHTSTYLES 64
@ -319,16 +297,16 @@ void VID_UnlockBuffer (void);
// stats are integers communicated to the client by the server
//
#define MAX_CL_STATS 32
#define STAT_HEALTH 0
#define STAT_FRAGS 1
#define STAT_WEAPON 2
#define STAT_AMMO 3
#define STAT_ARMOR 4
#define STAT_HEALTH 0
#define STAT_FRAGS 1
#define STAT_WEAPON 2
#define STAT_AMMO 3
#define STAT_ARMOR 4
#define STAT_WEAPONFRAME 5
#define STAT_SHELLS 6
#define STAT_NAILS 7
#define STAT_SHELLS 6
#define STAT_NAILS 7
#define STAT_ROCKETS 8
#define STAT_CELLS 9
#define STAT_CELLS 9
#define STAT_ACTIVEWEAPON 10
#define STAT_TOTALSECRETS 11
#define STAT_TOTALMONSTERS 12
@ -337,54 +315,54 @@ void VID_UnlockBuffer (void);
// stock defines
#define IT_SHOTGUN 1
#define IT_SUPER_SHOTGUN 2
#define IT_NAILGUN 4
#define IT_SUPER_NAILGUN 8
#define IT_GRENADE_LAUNCHER 16
#define IT_ROCKET_LAUNCHER 32
#define IT_LIGHTNING 64
#define IT_SUPER_LIGHTNING 128
#define IT_SHELLS 256
#define IT_NAILS 512
#define IT_ROCKETS 1024
#define IT_CELLS 2048
#define IT_AXE 4096
#define IT_ARMOR1 8192
#define IT_ARMOR2 16384
#define IT_ARMOR3 32768
#define IT_SUPERHEALTH 65536
#define IT_KEY1 131072
#define IT_KEY2 262144
#define IT_INVISIBILITY 524288
#define IT_INVULNERABILITY 1048576
#define IT_SUIT 2097152
#define IT_QUAD 4194304
#define IT_SIGIL1 (1<<28)
#define IT_SIGIL2 (1<<29)
#define IT_SIGIL3 (1<<30)
#define IT_SIGIL4 (1<<31)
#define IT_SHOTGUN 1
#define IT_SUPER_SHOTGUN 2
#define IT_NAILGUN 4
#define IT_SUPER_NAILGUN 8
#define IT_GRENADE_LAUNCHER 16
#define IT_ROCKET_LAUNCHER 32
#define IT_LIGHTNING 64
#define IT_SUPER_LIGHTNING 128
#define IT_SHELLS 256
#define IT_NAILS 512
#define IT_ROCKETS 1024
#define IT_CELLS 2048
#define IT_AXE 4096
#define IT_ARMOR1 8192
#define IT_ARMOR2 16384
#define IT_ARMOR3 32768
#define IT_SUPERHEALTH 65536
#define IT_KEY1 131072
#define IT_KEY2 262144
#define IT_INVISIBILITY 524288
#define IT_INVULNERABILITY 1048576
#define IT_SUIT 2097152
#define IT_QUAD 4194304
#define IT_SIGIL1 (1<<28)
#define IT_SIGIL2 (1<<29)
#define IT_SIGIL3 (1<<30)
#define IT_SIGIL4 (1<<31)
//===========================================
//rogue changed and added defines
#define RIT_SHELLS 128
#define RIT_NAILS 256
#define RIT_ROCKETS 512
#define RIT_CELLS 1024
#define RIT_AXE 2048
#define RIT_SHELLS 128
#define RIT_NAILS 256
#define RIT_ROCKETS 512
#define RIT_CELLS 1024
#define RIT_AXE 2048
#define RIT_LAVA_NAILGUN 4096
#define RIT_LAVA_SUPER_NAILGUN 8192
#define RIT_LAVA_SUPER_NAILGUN 8192
#define RIT_MULTI_GRENADE 16384
#define RIT_MULTI_ROCKET 32768
#define RIT_PLASMA_GUN 65536
#define RIT_ARMOR1 8388608
#define RIT_ARMOR2 16777216
#define RIT_ARMOR3 33554432
#define RIT_ARMOR1 8388608
#define RIT_ARMOR2 16777216
#define RIT_ARMOR3 33554432
#define RIT_LAVA_NAILS 67108864
#define RIT_PLASMA_AMMO 134217728
#define RIT_MULTI_ROCKETS 268435456
#define RIT_SHIELD 536870912
#define RIT_SHIELD 536870912
#define RIT_ANTIGRAV 1073741824
#define RIT_SUPERHEALTH 2147483648
@ -392,13 +370,13 @@ void VID_UnlockBuffer (void);
//===========================================
//hipnotic added defines
#define HIT_PROXIMITY_GUN_BIT 16
#define HIT_MJOLNIR_BIT 7
#define HIT_MJOLNIR_BIT 7
#define HIT_LASER_CANNON_BIT 23
#define HIT_PROXIMITY_GUN (1<<HIT_PROXIMITY_GUN_BIT)
#define HIT_MJOLNIR (1<<HIT_MJOLNIR_BIT)
#define HIT_LASER_CANNON (1<<HIT_LASER_CANNON_BIT)
#define HIT_WETSUIT (1<<(23+2))
#define HIT_EMPATHY_SHIELDS (1<<(23+3))
#define HIT_PROXIMITY_GUN (1<<HIT_PROXIMITY_GUN_BIT)
#define HIT_MJOLNIR (1<<HIT_MJOLNIR_BIT)
#define HIT_LASER_CANNON (1<<HIT_LASER_CANNON_BIT)
#define HIT_WETSUIT (1<<(23+2))
#define HIT_EMPATHY_SHIELDS (1<<(23+3))
//===========================================
@ -430,7 +408,6 @@ typedef struct
int effects;
} entity_state_t;
#include "wad.h"
#include "draw.h"
#include "cvar.h"
@ -447,12 +424,8 @@ typedef struct
#include "nvs_common.h" // 2000-04-30 NVS COMMON by Maddes
#ifdef GLQUAKE
#include "gl_model.h"
#else
#include "model.h"
#include "d_iface.h"
#endif
#include "model_common.h" // 2001-12-28 Merged model functions by Maddes
#include "input.h"
@ -465,10 +438,6 @@ typedef struct
#include "cdaudio.h"
#include "tracker.h"
#ifdef GLQUAKE
#include "glquake.h"
#endif
//=============================================================================
// the host system specifies the base of the directory tree, the

View file

@ -1312,43 +1312,41 @@ void R_DrawSurface (void)
#ifdef EXPREND
unsigned char *pcolumnshadowdest;
#endif
void (*pblockdrawer)(void);
texture_t *mt;
int merp = 1;
void (*pblockdrawer)(void);
texture_t *mt;
int merp = 1;
#ifdef twentyfourbithack
if (coloredlights == 2)
merp = 1;
#endif
if (!palmap2){
if (!palmap2)
{
hqlite = 0; // don't do 18-bit lighting if we don't have this table
coloredlights = 0; // disable colored lights anyway. :(
}
else
hqlite = 1; // always use hqlite
// calculate the lightings
if (reallycrap)
R_BuildLightMapReallyCrap ();
R_BuildLightMapReallyCrap ();
else
{
if (coloredlights)
R_BuildLightMapRGB ();
else
R_BuildLightMap ();
if (coloredlights)
R_BuildLightMapRGB ();
else
R_BuildLightMap ();
}
// calculate the lightings
surfrowbytes = r_drawsurf.rowbytes;
mt = r_drawsurf.texture;
r_source = (byte *)mt + mt->offsets[r_drawsurf.surfmip];
// the fractional light values should range from 0 to (VID_GRADES - 1) << 16
// from a source range of 0 - 255

View file

@ -29,12 +29,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define PAINTBUFFER_SIZE 2048
portable_samplepair_t paintbuffer[PAINTBUFFER_SIZE];
int snd_scaletable[32][256];
int snd_scaletable[32][256];
int *snd_p, snd_linear_count, snd_vol;
short *snd_out;
extern cvar_t *s_underwater;
void Snd_WriteLinearBlastStereo16 (void);
int playersnd; // leilei - dsp effects
int playersnd; // leilei - dsp effects
#if !id386
void Snd_WriteLinearBlastStereo16 (void)
{
@ -461,7 +461,7 @@ void
// leilei - VERY BAD attempt at stereo sound support
sfx = (unsigned char *)sc->data;
// sfx = (unsigned char *)sc->data;
sfx = (unsigned char *)sc->data;
for (i = 0; i < count; i++)

View file

@ -900,9 +900,7 @@ void SV_WriteClientdataToMessage (edict_t *ent, sizebuf_t *msg)
int i;
edict_t *other;
int items;
#ifndef QUAKE2
eval_t *val;
#endif
//
// send a damage message
@ -958,21 +956,12 @@ void SV_WriteClientdataToMessage (edict_t *ent, sizebuf_t *msg)
if (ent->v.idealpitch)
bits |= SU_IDEALPITCH;
// stuff the sigil bits into the high bits of items for sbar, or else
// mix in items2
#ifdef QUAKE2
items = (int)ent->v.items | ((int)ent->v.items2 << 23);
#else
// 2001-11-15 Better GetEdictFieldValue performance by LordHavoc/Maddes start
// val = GetEdictFieldValue(ent, "items2");
val = GETEDICTFIELDVALUE(ent, pr_field_items2);
// 2001-11-15 Better GetEdictFieldValue performance by LordHavoc/Maddes end
if (val)
items = (int)ent->v.items | ((int)val->_float << 23);
else
items = (int)ent->v.items | ((int)pr_global_struct->serverflags << 28);
#endif
bits |= SU_ITEMS;
@ -1342,11 +1331,7 @@ void SV_SendReconnect (void)
NET_SendToAll (&msg, 5);
if (cls.state != ca_dedicated)
#ifdef QUAKE2
Cbuf_InsertText ("reconnect\n");
#else
Cmd_ExecuteString ("reconnect\n", src_command);
#endif
}
@ -1387,11 +1372,7 @@ This is called at the start of each level
*/
extern float scr_centertime_off;
#ifdef QUAKE2
void SV_SpawnServer (char *server, char *startspot)
#else
void SV_SpawnServer (char *server)
#endif
{
edict_t *ent;
int i;
@ -1433,10 +1414,6 @@ void SV_SpawnServer (char *server)
memset (&sv, 0, sizeof(sv));
strcpy (sv.name, server);
#ifdef QUAKE2
if (startspot)
strcpy(sv.startspot, startspot);
#endif
// load progs to get entity field count
PR_LoadProgs ();
@ -1534,10 +1511,6 @@ void SV_SpawnServer (char *server)
pr_global_struct->deathmatch = deathmatch->value;
pr_global_struct->mapname = sv.name - pr_strings;
#ifdef QUAKE2
pr_global_struct->startspot = sv.startspot - pr_strings;
#endif
// serverflags are for cross level information (sigils)
pr_global_struct->serverflags = svs.serverflags;

File diff suppressed because it is too large Load diff