mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-10 23:02:03 +00:00
Updated synthesis script, moved some non-essential files around, updated license headers on all non-BUILDLIC files, added memory cache on top of texcache to improve load times, moved some duplicated keyboard handling stuff from winlayer/sdlayer to baselayer, fixed keypad / in Mapster32 tile selector, fixed bug where p->rotscrnang and p->look_ang never reset to 0, added support for reloading maphack based polymer lights after mode changes/savegame loads, other minor changes
git-svn-id: https://svn.eduke32.com/eduke32@1652 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
8ae2a7c1ac
commit
ac7767986a
86 changed files with 1007 additions and 2439 deletions
|
@ -18,20 +18,22 @@ ENETLIB=libenet.lib
|
|||
ENGINELIB=engine.lib
|
||||
EDITORLIB=build.lib
|
||||
|
||||
# the WDK allows us to link against msvcrt.dll instead of msvcrxxx.dll
|
||||
# this path should match build\Makefile.msvc
|
||||
WDKROOT="C:\WinDDK\7600.16385.1"
|
||||
DXROOT="C:\Program Files\Microsoft DirectX SDK (February 2010)"
|
||||
|
||||
!ifdef DEBUG
|
||||
# debugging options
|
||||
flags_cl= /Od /Zi
|
||||
flags_link=/DEBUG
|
||||
!else
|
||||
# release options
|
||||
flags_cl=/O2 /GL /arch:SSE /MP
|
||||
flags_link=/RELEASE /LTCG
|
||||
flags_cl=/O2 /GL /arch:SSE /MP /I$(WDKROOT)\inc\crt
|
||||
flags_link=/RELEASE /LTCG /LIBPATH:$(WDKROOT)\lib\wxp\i386 /LIBPATH:$(WDKROOT)\lib\Crt\i386
|
||||
!endif
|
||||
|
||||
|
||||
DXROOT="C:\Program Files\Microsoft DirectX SDK (February 2010)"
|
||||
|
||||
ENGINEOPTS=/DSUPERBUILD /DPOLYMOST /DUSE_OPENGL /DPOLYMER # /DNEDMALLOC
|
||||
ENGINEOPTS=/DSUPERBUILD /DPOLYMOST /DUSE_OPENGL /DPOLYMER
|
||||
|
||||
CC=cl
|
||||
AS=ml
|
||||
|
@ -39,20 +41,23 @@ LINK=link /nologo /opt:ref
|
|||
MT=mt
|
||||
CFLAGS= /MT /J /nologo $(flags_cl) \
|
||||
/I$(INC) /I$(EINC)\msvc /I$(EINC)\ /I$(SRC)\jmact /I$(JAUDIOLIBDIR)\include /I$(ENETDIR)\include \
|
||||
/D "_CRT_SECURE_NO_DEPRECATE" /W2 $(ENGINEOPTS) \
|
||||
/W2 $(ENGINEOPTS) \
|
||||
/I$(DXROOT)\include /DRENDERTYPEWIN=1
|
||||
|
||||
LIBS=user32.lib gdi32.lib shell32.lib winmm.lib ws2_32.lib dxguid.lib comctl32.lib \
|
||||
/NODEFAULTLIB:glu32.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:msvcrtd.lib
|
||||
vorbisfile_static.lib vorbis_static.lib ogg_static.lib dsound.lib advapi32.lib
|
||||
|
||||
LIBS=vorbisfile_static.lib vorbis_static.lib ogg_static.lib dsound.lib advapi32.lib $(LIBS)
|
||||
LIBS=/NODEFAULTLIB:glu32.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:msvcrtd.lib /NODEFAULTLIB:libcmt.lib \
|
||||
/NODEFAULTLIB:libcmtd.lib $(LIBS)
|
||||
|
||||
ASFLAGS=/nologo /coff /c
|
||||
EXESUFFIX=.exe
|
||||
!ifdef DEBUG
|
||||
CFLAGS=$(CFLAGS) /DDEBUGGINGAIDS
|
||||
LIBS=$(LIBS) /NODEFAULTLIB:libcmt.lib libcmtd.lib
|
||||
CFLAGS=$(CFLAGS) /DDEBUGGINGAIDS /D "_CRT_SECURE_NO_DEPRECATE"
|
||||
LIBS=$(LIBS) msvcrtd.lib
|
||||
!else
|
||||
LIBS=$(LIBS) /NODEFAULTLIB:libcmtd.lib libcmt.lib
|
||||
# comment msvcrt_winxp.obj if not using the WDK
|
||||
LIBS=$(LIBS) msvcrt.lib msvcrt_winxp.obj
|
||||
!endif
|
||||
|
||||
JMACTOBJ=$(OBJ)\util_lib.$o \
|
||||
|
|
|
@ -1,887 +0,0 @@
|
|||
// m32 script test & show-off file
|
||||
// do "include a" in the console
|
||||
|
||||
include names.h
|
||||
|
||||
// flag 1: per-block (top-level, event, or state) variable
|
||||
gamevar i 0 1
|
||||
gamevar j 0 1
|
||||
gamevar k 0 1
|
||||
gamevar l 0 1
|
||||
gamevar m 0 1
|
||||
gamevar p 0 1
|
||||
gamevar q 0 1
|
||||
gamevar r 0 1
|
||||
|
||||
gamevar x 0 0
|
||||
gamevar y 0 0
|
||||
gamevar z 0 0
|
||||
|
||||
gamevar gi 0 0
|
||||
gamevar gj 0 0
|
||||
gamevar gk 0 0
|
||||
|
||||
gamevar dx 0 0
|
||||
gamevar dy 0 0
|
||||
gamevar dz 0 0
|
||||
gamevar dang 0 0
|
||||
|
||||
gamevar tmp 0 0
|
||||
gamevar cnt 0 0
|
||||
|
||||
gamevar davr 65536 0
|
||||
gamevar dayx 65536 0
|
||||
|
||||
gamevar drawcol 9 0
|
||||
|
||||
define TQUOTE 3
|
||||
|
||||
definequote 0 OK
|
||||
definequote 1 DAMN
|
||||
|
||||
definequote 2 BU:%d ABS:%d
|
||||
definequote TQUOTE write on me!
|
||||
|
||||
definequote 4 ASPECT: VR=%d, YX=%d
|
||||
definequote 5 ALPHA KEY: %d (SCANCODE: %d)
|
||||
|
||||
definequote 6 time: %d ms
|
||||
|
||||
definequote 7 door sector not an island sector!
|
||||
definequote 8 door sector has no SE sprite!
|
||||
|
||||
//light sector x y z range r g b radi fade angle horiz mins maxs prio tile
|
||||
definequote 9 light %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d
|
||||
definequote 10 --PRLIGHTS--
|
||||
definequote 11 --ENDPRLIGHTS--
|
||||
|
||||
definequote 12 RED:
|
||||
definequote 13 GREEN:
|
||||
definequote 14 BLUE:
|
||||
|
||||
definequote 15 x/yoffset: %d %d
|
||||
definequote 16 (r/g/b)color: %d %d %d
|
||||
definequote 17 PICNUM:
|
||||
|
||||
definequote 18 NUMBER KEY: %d (SCANCODE: %d)
|
||||
|
||||
// Corruption checker
|
||||
definequote 19 PANIC!!! SECTOR OR WALL LIMIT EXCEEDED!!!
|
||||
definequote 20 SECTOR[%d].WALLPTR=%d out of range: numwalls=%d!!!
|
||||
definequote 21 SECTOR[%d].WALLPTR=%d inconsistent, expected %d!!!
|
||||
definequote 22 SECTOR[%d]: wallptr+wallnum=%d out of range: numwalls=%d!!!
|
||||
definequote 23 WALL[%d].POINT2=%d out of range: sector[%d].wallptr=%d, endwall=%d!!!
|
||||
definequote 24 WALL[%d].NEXTWALL=%d out of range: numwalls=%d!!!
|
||||
definequote 25 WALL[%d].NEXTSECTOR=%d out of range: numsectors=%d!!!
|
||||
|
||||
definequote 26 FLOAT ACCESS TEST
|
||||
|
||||
definequote 27 OVERRIDE POLYMER PARALLAX & SPECULAR: OFF
|
||||
definequote 28 OVERRIDE POLYMER PARALLAX & SPECULAR: ON
|
||||
|
||||
definequote 29 PARALLAX SCALE: %f
|
||||
definequote 30 PARALLAX BIAS: %f
|
||||
definequote 31 SPECULAR FACTOR: %f
|
||||
definequote 32 SPECULAR POWER: %f
|
||||
|
||||
define PRSCALE 1000
|
||||
// NOTE: inline constants >=32768 are sometimes broken ATM (when loading a second time?).
|
||||
// This should always work
|
||||
define MAXSPECULAR 100000
|
||||
|
||||
gamearray ar 128
|
||||
gamearray parm 8
|
||||
|
||||
// various tests of m32-script features
|
||||
defstate tests
|
||||
// array test
|
||||
getarraysize ar tmp
|
||||
resizearray ar 65536
|
||||
getticks parm[2]
|
||||
for j range 65536
|
||||
set ar[j] j
|
||||
set i 0
|
||||
for j range 65536
|
||||
add i ar[j]
|
||||
getticks parm[3]
|
||||
resizearray ar tmp
|
||||
ife i 2147450880 quote 0 else quote 1
|
||||
sub parm[3] parm[2]
|
||||
qsprintf TQUOTE 6 parm[3]
|
||||
quote TQUOTE
|
||||
|
||||
// iteration and break test
|
||||
for i range 10
|
||||
{
|
||||
addlogvar i
|
||||
ife i 5 break
|
||||
}
|
||||
ife i 5 quote 0 else quote 1
|
||||
|
||||
quote 26
|
||||
set tmp pr_parallaxscale
|
||||
|
||||
set gi tmp set gj tmp set gk tmp
|
||||
al gi al gj al gk
|
||||
ftoi gi 20 ftoi gj 200 ftoi gk 2000
|
||||
al gi al gj al gk
|
||||
mul gk 2
|
||||
itof gk 2000
|
||||
ends
|
||||
|
||||
// prints out maphack light definitions based on SE lights in map
|
||||
defstate printlights
|
||||
print 10
|
||||
for i allsprites, ifactor SECTOREFFECTOR, ifge .lotag 49, ifle .lotag 50
|
||||
{
|
||||
ife .lotag 50
|
||||
{
|
||||
set j 128, sub j .shade, shiftl j 1
|
||||
set k j, mul k 3, div k 4
|
||||
}
|
||||
else
|
||||
{
|
||||
set j 0, set k 0
|
||||
}
|
||||
|
||||
set l 0
|
||||
ifand .cstat 2
|
||||
{
|
||||
ifand .cstat 512
|
||||
set l 4
|
||||
else
|
||||
set l 2
|
||||
}
|
||||
qsprintf TQUOTE 9 .sectnum .x .y .z .hitag .xvel .yvel .zvel
|
||||
j k .ang .extra .xoffset .yoffset l .owner
|
||||
print TQUOTE
|
||||
}
|
||||
print 11
|
||||
ends
|
||||
|
||||
// convenient polymer SE light manipulation with keypad keys
|
||||
// when aiming at light SE (49 or 50):
|
||||
// KP 4,5,6,8: angle/horiz
|
||||
// KP 7,9: range
|
||||
// KP+/-: radius
|
||||
// KP 1,2,3: RGB color (Shift inverts)
|
||||
//
|
||||
// when aiming at wall or sector:
|
||||
// KP/ enable/disable overrides
|
||||
// when overrides are on:
|
||||
// KP 4,7: parallaxscale
|
||||
// KP 8,9: parallaxbias
|
||||
// KP 1,2: specularfactor
|
||||
// KP 3,6: specularpower
|
||||
//
|
||||
// Also try Shift and/or Ctrl modifiers for different increments
|
||||
defstate fiddlewithlights
|
||||
ife searchstat 3 nullop else
|
||||
{
|
||||
ifhitkey KEY_gSLASH
|
||||
{
|
||||
ife pr_overrideparallax 0
|
||||
{
|
||||
set pr_overrideparallax 1
|
||||
set pr_overridespecular 1
|
||||
quote 28
|
||||
}
|
||||
else
|
||||
{
|
||||
set pr_overrideparallax 0
|
||||
set pr_overridespecular 0
|
||||
quote 27
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// if aiming at sector or wall
|
||||
ife searchstat 3 nullop
|
||||
else ifn pr_overrideparallax 0
|
||||
{
|
||||
// polymer override parallaxscale
|
||||
set j 0 set k 0
|
||||
|
||||
ifhitkey KEY_KP4 set j -1
|
||||
ifhitkey KEY_KP7 set j 1
|
||||
ifn j 0 set k 1
|
||||
|
||||
ifhitkey KEY_KP8 set j -1
|
||||
ifhitkey KEY_KP9 set j 1
|
||||
ife k 0 ifn j 0 set k 2
|
||||
|
||||
ifhitkey KEY_KP1 set j -1
|
||||
ifhitkey KEY_KP2 set j 1
|
||||
ife k 0 ifn j 0 set k 3
|
||||
|
||||
ifhitkey KEY_KP3 set j -1
|
||||
ifhitkey KEY_KP6 set j 1
|
||||
ife k 0 ifn j 0 set k 4
|
||||
|
||||
ifeithershift mul j 2 else mul j 10
|
||||
ifeitherctrl mul j 10
|
||||
|
||||
switch k
|
||||
case 0: break;
|
||||
case 1:
|
||||
{
|
||||
set k pr_parallaxscale
|
||||
ftoi k PRSCALE // must convert to scaled integer, scale is 1:PRSCALE
|
||||
add k j, clamp k -10000 10000
|
||||
itof k PRSCALE // convert back
|
||||
qsprintf TQUOTE 29 k, quote TQUOTE
|
||||
set pr_parallaxscale k
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
set k pr_parallaxbias
|
||||
ftoi k PRSCALE, add k j, clamp k -10000 10000, itof k PRSCALE
|
||||
qsprintf TQUOTE 30 k, quote TQUOTE
|
||||
set pr_parallaxbias k
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
set k pr_specularfactor
|
||||
ftoi k PRSCALE, add k j, clamp k -10000 MAXSPECULAR, itof k PRSCALE
|
||||
qsprintf TQUOTE 31 k, quote TQUOTE
|
||||
set pr_specularfactor k
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
set k pr_specularpower
|
||||
ftoi k PRSCALE, add k j, clamp k -10000 MAXSPECULAR, itof k PRSCALE
|
||||
qsprintf TQUOTE 32 k, quote TQUOTE
|
||||
set pr_specularpower k
|
||||
break;
|
||||
}
|
||||
endswitch
|
||||
}
|
||||
|
||||
// if aiming at an SE with lotag 49 or 50
|
||||
ife searchstat 3 ife sprite[searchwall].picnum SECTOREFFECTOR
|
||||
ifge sprite[searchwall].lotag 49 ifle sprite[searchwall].lotag 50
|
||||
{
|
||||
set i searchwall, seti i // set current sprite = targeted sprite
|
||||
|
||||
// horiz
|
||||
ifeithershift set j 1 else set j 10
|
||||
ifhitkey KEY_gUP add .extra j
|
||||
else ifhitkey KEY_gKP5 sub .extra j
|
||||
clamp .extra -500 500
|
||||
|
||||
// angle
|
||||
set j 128
|
||||
ifeitherctrl set j 4
|
||||
ifeithershift { ifeitherctrl set j 1 else set j 32 }
|
||||
ifhitkey KEY_gLEFT sub .ang j
|
||||
else ifhitkey KEY_gRIGHT add .ang j
|
||||
|
||||
// range
|
||||
ifeithershift set j 10
|
||||
else ifeitherctrl set j 1000
|
||||
else set j 100
|
||||
ifhitkey KEY_gPGUP add .hitag j
|
||||
else ifhitkey KEY_gHOME sub .hitag j
|
||||
clamp .hitag 0 16000
|
||||
|
||||
// radius
|
||||
ifeitherctrl
|
||||
{
|
||||
ifholdkey KEY_gMINUS add .shade 9
|
||||
else ifholdkey KEY_gPLUS sub .shade 9
|
||||
|
||||
clamp .shade -118 117
|
||||
}
|
||||
|
||||
// min/max shade
|
||||
ifeithershift set j -1 else set j 1
|
||||
ifeitherctrl
|
||||
{
|
||||
ifhitkey KEY_gSLASH
|
||||
{
|
||||
set .xoffset 0
|
||||
set .yoffset 0
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
set k 0
|
||||
ifhitkey KEY_gSLASH { add .xoffset j, set k 1 }
|
||||
else ifhitkey KEY_gSTAR { add .yoffset j, set k 1 }
|
||||
|
||||
ife k 1
|
||||
{
|
||||
qsprintf TQUOTE 15 .xoffset .yoffset
|
||||
quote TQUOTE
|
||||
}
|
||||
}
|
||||
|
||||
// color/picnum
|
||||
ifeitheralt
|
||||
{
|
||||
ifhitkey KEY_gEND
|
||||
{
|
||||
getnumber256 .xvel 12 255
|
||||
getnumber256 .yvel 13 255
|
||||
getnumber256 .zvel 14 255
|
||||
}
|
||||
else ifhitkey KEY_gDOWN
|
||||
{
|
||||
getnumber256 .owner 17 -MAXTILES
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ifeitherctrl set j 1 else set j 10
|
||||
ifeithershift inv j
|
||||
|
||||
set k 0
|
||||
ifhitkey KEY_gEND { add .xvel j, set k 1 }
|
||||
ifhitkey KEY_gDOWN { add .yvel j, set k 1 }
|
||||
ifhitkey KEY_gPGDN { add .zvel j, set k 1 }
|
||||
|
||||
ife k 1
|
||||
{
|
||||
clamp .xvel 1 255
|
||||
clamp .yvel 1 255
|
||||
clamp .zvel 1 255
|
||||
|
||||
qsprintf TQUOTE 16 .xvel .yvel .zvel
|
||||
quote TQUOTE
|
||||
}
|
||||
}
|
||||
}
|
||||
ends
|
||||
|
||||
/*
|
||||
defstate testkeyavail
|
||||
for i range 27
|
||||
{
|
||||
ifholdkey alphakeys[i]
|
||||
{
|
||||
qsprintf TQUOTE 5 i alphakeys[i]
|
||||
quote TQUOTE
|
||||
}
|
||||
}
|
||||
|
||||
for i range 10
|
||||
{
|
||||
ifholdkey numberkeys[i]
|
||||
{
|
||||
qsprintf TQUOTE 18 i numberkeys[i]
|
||||
quote TQUOTE
|
||||
}
|
||||
}
|
||||
ends
|
||||
*/
|
||||
|
||||
// rotate highlighted sprites around selected (closest to mouse) sprite
|
||||
// global parameter: dang
|
||||
defstate rotselspr
|
||||
ifg highlightcnt 0
|
||||
ifge pointhighlight 16384, ifl pointhighlight 32768
|
||||
{
|
||||
ife dang 0 return
|
||||
|
||||
set p pointhighlight, and p 16383
|
||||
|
||||
add sprite[p].ang dang
|
||||
|
||||
for i selsprites, ifn i p
|
||||
{
|
||||
rotatepoint sprite[p].x sprite[p].y .x .y dang (x y)
|
||||
add .ang dang
|
||||
bsetsprite I x y .z
|
||||
}
|
||||
}
|
||||
ends
|
||||
|
||||
onevent EVENT_PREKEYS2D
|
||||
// state testkeyavail
|
||||
|
||||
set j 0
|
||||
ifeitherctrl
|
||||
{
|
||||
ifhitkey KEY_COMMA set j -1
|
||||
ifhitkey KEY_PERIOD set j 1
|
||||
}
|
||||
|
||||
ifn j 0
|
||||
{
|
||||
mul j 512
|
||||
set dang j
|
||||
state rotselspr
|
||||
}
|
||||
endevent
|
||||
|
||||
onevent EVENT_PREKEYS3D
|
||||
// state testkeyavail
|
||||
state fiddlewithlights
|
||||
endevent
|
||||
|
||||
defstate setas
|
||||
set j dayx
|
||||
mul j ydim mul j 8
|
||||
div j xdim div j 5
|
||||
setaspect davr j
|
||||
ends
|
||||
|
||||
onevent EVENT_ENTER3DMODE
|
||||
state setas
|
||||
endevent
|
||||
|
||||
defstate cmp_by_lotag // comparator subroutine for sorting
|
||||
set RETURN sprite[SV2].lotag
|
||||
sub RETURN sprite[SV1].lotag
|
||||
ends
|
||||
|
||||
onevent EVENT_DRAW2DSCREEN
|
||||
ifl cursectnum 0 return
|
||||
|
||||
// connect LOCATORS in a sector by lines
|
||||
getarraysize ar tmp
|
||||
set j 0
|
||||
for i spritesofsector cursectnum
|
||||
{
|
||||
ifge j tmp nullop else
|
||||
ifactor LOCATORS
|
||||
{
|
||||
set ar[j] i
|
||||
add j 1
|
||||
}
|
||||
}
|
||||
|
||||
set tmp j
|
||||
sort ar tmp cmp_by_lotag
|
||||
|
||||
sub tmp 1
|
||||
for i range tmp
|
||||
{
|
||||
set j ar[i]
|
||||
set k i, add k 1, set k ar[k]
|
||||
drawline16b sprite[j].x sprite[j].y sprite[k].x sprite[k].y drawcol
|
||||
}
|
||||
/*
|
||||
set drawlinepat -1
|
||||
for i allsprites
|
||||
ifactor LIZTROOP
|
||||
drawcircle16b sprite[i].x sprite[i].y 256 drawcol
|
||||
*/
|
||||
endevent
|
||||
|
||||
// LOCATORS auto-incrementer
|
||||
onevent EVENT_INSERTSPRITE2D
|
||||
set k I
|
||||
set j -1
|
||||
for i spritesofsector .sectnum
|
||||
{
|
||||
ifn i k, ifactor LOCATORS, ifg .lotag j
|
||||
set j .lotag
|
||||
}
|
||||
ifg j -1
|
||||
{
|
||||
add j 1
|
||||
set .lotag j
|
||||
}
|
||||
endevent
|
||||
|
||||
|
||||
//////////////////// SPRITE DUPLICATORS ////////////////////
|
||||
|
||||
defstate transcnt
|
||||
ifle cnt 0 { inv cnt, add cnt 128 }
|
||||
ends
|
||||
|
||||
define DUP_ROT_MAGIC 123
|
||||
|
||||
// duplicates and rotates selected sprites around
|
||||
// pivot sprite with fields
|
||||
// .extra=123 (magic)
|
||||
// .ang: angle delta
|
||||
// .yrepeat*32: z delta (positive if pal!=0, i.e. going down)
|
||||
// .shade: count (-128 to 0 -> 255 to 128)
|
||||
defstate duprot
|
||||
ifn searchstat 3 return
|
||||
ifn sprite[searchwall].extra DUP_ROT_MAGIC return
|
||||
|
||||
set p searchwall // pivot sprite
|
||||
set cnt sprite[p].shade, state transcnt
|
||||
|
||||
set sprite[p].extra -1
|
||||
|
||||
for i range cnt
|
||||
{
|
||||
for j selsprites, ifn j p
|
||||
{
|
||||
dupsprite j // duplicate sprite j, I becomes index of newly created sprite
|
||||
|
||||
set dang i, add dang 1, mul dang sprite[p].ang
|
||||
rotatepoint sprite[p].x sprite[p].y .x .y dang (x y)
|
||||
add .ang dang
|
||||
|
||||
set z i, add z 1, mul z sprite[p].yrepeat, shiftl z 5
|
||||
ife sprite[p].pal 0, inv z
|
||||
add z .z
|
||||
|
||||
bsetsprite I x y z
|
||||
}
|
||||
}
|
||||
ends
|
||||
|
||||
// same as above but with tsprite[], as a kind of preview
|
||||
defstate tduprot
|
||||
ifn searchstat 3 return
|
||||
ifn sprite[searchwall].extra DUP_ROT_MAGIC return
|
||||
|
||||
set p searchwall // pivot sprite
|
||||
set cnt sprite[p].shade, state transcnt
|
||||
|
||||
for i range cnt
|
||||
{
|
||||
for j selsprites, ifn j p
|
||||
{
|
||||
set k spritesortcnt
|
||||
tdupsprite j
|
||||
|
||||
set dang i, add dang 1, mul dang sprite[p].ang
|
||||
rotatepoint sprite[p].x sprite[p].y tsprite[k].x tsprite[k].y dang (x y)
|
||||
add tsprite[k].ang dang
|
||||
|
||||
set z i, add z 1, mul z sprite[p].yrepeat, shiftl z 5
|
||||
ife sprite[p].pal 0 inv z
|
||||
add z tsprite[k].z
|
||||
|
||||
set tsprite[k].x x
|
||||
set tsprite[k].y y
|
||||
set tsprite[k].z z
|
||||
|
||||
or tsprite[k].cstat 514
|
||||
}
|
||||
}
|
||||
ends
|
||||
|
||||
define DUP_LIN_MAGIC 234
|
||||
define DUP_LIN_MAGIC2 345
|
||||
|
||||
// duplicates and translates selected sprites in the direction between two
|
||||
// reference sprites with fields
|
||||
// .extra=234 (1st sprite), =345 (2nd, aimed at sprite)
|
||||
// .shade: count (-128 to 0 -> 255 to 128)
|
||||
defstate duplin
|
||||
ifn searchstat 3 return
|
||||
ifn sprite[searchwall].extra DUP_LIN_MAGIC2 return
|
||||
|
||||
set r searchwall // 2nd reference point
|
||||
|
||||
set cnt sprite[r].shade, state transcnt
|
||||
|
||||
set p -1 // 1st reference point
|
||||
for i selsprites, ifn i r
|
||||
{
|
||||
ife .extra DUP_LIN_MAGIC { set p i, break }
|
||||
}
|
||||
ifl p 0 return
|
||||
|
||||
set sprite[p].extra -1
|
||||
set sprite[r].extra -1
|
||||
|
||||
set dx sprite[r].x, sub dx sprite[p].x
|
||||
set dy sprite[r].y, sub dy sprite[p].y
|
||||
set dz sprite[r].z, sub dz sprite[p].z
|
||||
|
||||
for i range cnt
|
||||
{
|
||||
for j selsprites, ifn j r
|
||||
{
|
||||
dupsprite j
|
||||
|
||||
set x i, add x 1, mul x dx, add x .x
|
||||
set y i, add y 1, mul y dy, add y .y
|
||||
set z i, add z 1, mul z dz, add z .z
|
||||
bsetsprite I x y z
|
||||
}
|
||||
}
|
||||
ends
|
||||
|
||||
defstate tduplin
|
||||
ifn searchstat 3 return
|
||||
ifn sprite[searchwall].extra DUP_LIN_MAGIC2 return
|
||||
|
||||
set r searchwall // 2nd reference point
|
||||
|
||||
set cnt sprite[r].shade, state transcnt
|
||||
|
||||
set p -1 // 1st reference point
|
||||
for i selsprites, ifn i r
|
||||
{
|
||||
ife .extra DUP_LIN_MAGIC { set p i, break }
|
||||
}
|
||||
ifl p 0 return
|
||||
|
||||
set dx sprite[r].x, sub dx sprite[p].x
|
||||
set dy sprite[r].y, sub dy sprite[p].y
|
||||
set dz sprite[r].z, sub dz sprite[p].z
|
||||
|
||||
for i range cnt
|
||||
{
|
||||
for j selsprites, ifn j r
|
||||
{
|
||||
set k spritesortcnt
|
||||
tdupsprite j
|
||||
|
||||
set tmp i, add tmp 1, mul tmp dx
|
||||
add tsprite[k].x tmp
|
||||
set tmp i, add tmp 1, mul tmp dy
|
||||
add tsprite[k].y tmp
|
||||
set tmp i, add tmp 1, mul tmp dz
|
||||
add tsprite[k].z tmp
|
||||
|
||||
or tsprite[k].cstat 514
|
||||
// bsetsprite I x y z
|
||||
}
|
||||
}
|
||||
ends
|
||||
|
||||
onevent EVENT_ANALYZESPRITES
|
||||
state tduprot
|
||||
state tduplin
|
||||
/*
|
||||
for i drawnsprites
|
||||
{
|
||||
set j tsprite[i].owner
|
||||
switch sprite[j].picnum
|
||||
case LIZTROOP spritepal 1 break
|
||||
case PIGCOP spritepal 2 break
|
||||
case BOSS1 spritepal 6 break
|
||||
endswitch
|
||||
}
|
||||
*/
|
||||
endevent
|
||||
|
||||
onevent EVENT_KEYS3D
|
||||
// door sound tester
|
||||
ife searchstat 0
|
||||
ifholdkey KEY_SPACE
|
||||
{
|
||||
set k wall[searchwall].nextsector
|
||||
ifl k 0 set k searchsector
|
||||
|
||||
ife sector[k].lotag 0 return
|
||||
|
||||
for i spritesofsector k
|
||||
{
|
||||
ifactor MUSICANDSFX
|
||||
ifge .lotag 0 ifl .lotag MAXSOUNDS
|
||||
{
|
||||
getsoundflags .lotag m
|
||||
ifand m 1 nullop else soundonce .lotag
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// swinging doors tester -- hit space on a door wall
|
||||
ife searchstat 0
|
||||
ifhitkey KEY_SPACE // SE11 ST23 up:ccw
|
||||
{
|
||||
set k wall[searchwall].nextsector
|
||||
ifl k 0 return
|
||||
ifn sector[k].lotag 23 return
|
||||
set tmp 0
|
||||
for i loopofwall searchwall
|
||||
{
|
||||
ifl wall[i].nextsector 0 set tmp 1 else
|
||||
ifn wall[i].nextsector k set tmp 1
|
||||
}
|
||||
// a weaker condition
|
||||
// for i loopofwall wall[searchwall].nextwall
|
||||
// {
|
||||
// ifl wall[i].nextsector 0 set tmp 1 else
|
||||
// ifn wall[i].nextsector searchsector set tmp 1
|
||||
// }
|
||||
ifn tmp 0
|
||||
{
|
||||
quote 7
|
||||
return
|
||||
}
|
||||
|
||||
set l -1
|
||||
for i spritesofsector k
|
||||
{
|
||||
ifactor SECTOREFFECTOR ife sprite[i].lotag 11
|
||||
{
|
||||
set l i
|
||||
ifn sprite[i].ang 512 ifn sprite[i].ang 1024 ifn sprite[i].ang 1536 set l -1
|
||||
}
|
||||
}
|
||||
ifl l 0
|
||||
{
|
||||
quote 8
|
||||
return
|
||||
}
|
||||
|
||||
for tmp wallsofsector k
|
||||
{
|
||||
rotatepoint (sprite[l].x sprite[l].y) (wall[tmp].x wall[tmp].y) sprite[l].ang (i j)
|
||||
dragpoint tmp i j
|
||||
}
|
||||
for tmp spritesofsector k
|
||||
{
|
||||
ifn tmp l
|
||||
{
|
||||
rotatepoint (sprite[l].x sprite[l].y) (sprite[tmp].x sprite[tmp].y) sprite[l].ang (i j)
|
||||
bsetsprite tmp i j sprite[tmp].z
|
||||
}
|
||||
}
|
||||
inv sprite[l].ang
|
||||
}
|
||||
|
||||
// teleporter -- works on SE7 and SE17 (elevator)
|
||||
ife searchstat 3
|
||||
ifhitkey KEY_SPACE
|
||||
{
|
||||
ife sprite[searchwall].picnum SECTOREFFECTOR
|
||||
{
|
||||
set tmp 0
|
||||
ife sprite[searchwall].lotag 7 set tmp 1
|
||||
ife sprite[searchwall].lotag 17 set tmp 1
|
||||
ife tmp 0 return
|
||||
|
||||
for i allsprites
|
||||
{
|
||||
ifn i searchwall, ifactor SECTOREFFECTOR, ife sprite[i].lotag sprite[searchwall].lotag
|
||||
ife sprite[i].hitag sprite[searchwall].hitag
|
||||
{
|
||||
add posx sprite[i].x, sub posx sprite[searchwall].x
|
||||
add posy sprite[i].y, sub posy sprite[searchwall].y
|
||||
add posz sprite[i].z, sub posz sprite[searchwall].z
|
||||
|
||||
updatecursectnum
|
||||
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
else ife sprite[searchwall].extra DUP_ROT_MAGIC
|
||||
{
|
||||
state duprot
|
||||
}
|
||||
else ife sprite[searchwall].extra DUP_LIN_MAGIC2
|
||||
{
|
||||
state duplin
|
||||
}
|
||||
}
|
||||
|
||||
ifholdkey KEY_0
|
||||
// ife 0 1
|
||||
{
|
||||
ifeithershift sub davr 512 else add davr 512
|
||||
ifl davr 32768 set davr 32768
|
||||
ifg davr 256000 set davr 256000
|
||||
setaspect davr yxaspect
|
||||
qsprintf TQUOTE 4 davr yxaspect
|
||||
quote TQUOTE
|
||||
}
|
||||
endevent
|
||||
|
||||
defstate replacestuff
|
||||
for i spritesofsector searchsector
|
||||
// ife sprite[i].picnum AMMO set sprite[i].picnum BATTERYAMMO
|
||||
ifactor parm[0] cactor parm[1]
|
||||
ends
|
||||
|
||||
defstate convlights // convert (0,0,0) lights to (255,255,255)-ones
|
||||
for i allsprites ifactor 1 ifge .lotag 49 ifle .lotag 50 ife .xvel 0 ife .yvel 0 ife .zvel 0
|
||||
{ set .xvel 255 set .yvel 255 set .zvel 255 }
|
||||
ends
|
||||
|
||||
defstate resetallws // reset all sprites and walls to default repeat/panning
|
||||
for i allsprites
|
||||
{
|
||||
set .xrepeat 64
|
||||
set .yrepeat 64
|
||||
}
|
||||
for i allwalls
|
||||
{
|
||||
set wall[i].cstat 0
|
||||
set wall[i].xpanning 0
|
||||
set wall[i].ypanning 0
|
||||
set wall[i].yrepeat 8
|
||||
fixrepeats i
|
||||
}
|
||||
ends
|
||||
|
||||
defstate jumptosec // (tmp)
|
||||
for i allsectors
|
||||
{
|
||||
ife i tmp
|
||||
{
|
||||
set j sector[i].wallptr
|
||||
set posx wall[j].x
|
||||
set posy wall[j].y
|
||||
}
|
||||
}
|
||||
ends
|
||||
|
||||
// Map corruption checker
|
||||
|
||||
gamevar ewall 0 0
|
||||
gamevar endwall 0 0
|
||||
|
||||
defstate corruptchk
|
||||
ifle numsectors MAXSECTORS ifle numwalls MAXWALLS nullop else
|
||||
{ quote 19 printmessage16 19 return }
|
||||
|
||||
set ewall 0 // expected wall index
|
||||
for i allsectors
|
||||
{
|
||||
set k 1
|
||||
ifge sector[i].wallptr 0 ifl sector[i].wallptr numwalls nullop else
|
||||
{
|
||||
qsprintf TQUOTE 20 i sector[i].wallptr numwalls
|
||||
quote TQUOTE printmessage16 TQUOTE
|
||||
set k 0
|
||||
}
|
||||
ifn ewall sector[i].wallptr
|
||||
{
|
||||
qsprintf TQUOTE 21 i sector[i].wallptr ewall
|
||||
quote TQUOTE printmessage16 TQUOTE
|
||||
set ewall sector[i].wallptr
|
||||
}
|
||||
add ewall sector[i].wallnum
|
||||
|
||||
set endwall sector[i].wallptr add endwall sector[i].wallnum
|
||||
ifg endwall numwalls
|
||||
{
|
||||
qsprintf TQUOTE 22 i endwall numwalls
|
||||
quote TQUOTE printmessage16 TQUOTE
|
||||
set k 0
|
||||
}
|
||||
|
||||
ifn k 0
|
||||
{
|
||||
for j wallsofsector i
|
||||
{
|
||||
ifge wall[j].point2 sector[i].wallptr ifl wall[i].point2 endwall nullop else
|
||||
{
|
||||
qsprintf TQUOTE 23 j wall[j].point2 i sector[i].wallptr endwall
|
||||
quote TQUOTE printmessage16 TQUOTE
|
||||
}
|
||||
|
||||
ifge wall[i].nextwall numwalls
|
||||
{
|
||||
qsprintf TQUOTE 24 j wall[j].nextwall numwalls
|
||||
quote TQUOTE printmessage16 TQUOTE
|
||||
}
|
||||
|
||||
ifge wall[i].nextsector numsectors
|
||||
{
|
||||
qsprintf TQUOTE 25 j wall[j].nextsector numsectors
|
||||
quote TQUOTE printmessage16 TQUOTE
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ends
|
|
@ -19,7 +19,8 @@ asm=masm
|
|||
ENGINELIB=engine.lib
|
||||
EDITORLIB=build.lib
|
||||
|
||||
# ENETROOT=$(SRC)\enet
|
||||
# this path should match eduke32\Makefile.msvc
|
||||
WDKROOT="C:\WinDDK\7600.16385.1"
|
||||
|
||||
# /D these to enable certain features of the port's compile process
|
||||
# NOASM When defined, uses C instead of assembly code
|
||||
|
@ -34,20 +35,20 @@ flags_link=/DEBUG
|
|||
flags_lib=
|
||||
!else
|
||||
# release options
|
||||
flags_cl=/O2 /GL /arch:SSE /MP
|
||||
flags_link=/RELEASE /LTCG
|
||||
flags_cl=/O2 /GL /arch:SSE /MP /I$(WDKROOT)\inc\crt
|
||||
flags_link=/RELEASE /LTCG /LIBPATH:$(WDKROOT)\lib\Crt\i386 /LIBPATH:$(WDKROOT)\lib\wxp\i386
|
||||
flags_lib=/LTCG
|
||||
!endif
|
||||
|
||||
CC=cl
|
||||
AS=ml
|
||||
RC=rc
|
||||
LINK=link /opt:ref /nologo
|
||||
CFLAGS=$(CFLAGS) /nologo /MT /J $(flags_cl) $(TARGETOPTS) /I$(INC) # /I$(ENETROOT)\include"
|
||||
LINK=link /opt:ref /nologo
|
||||
CFLAGS=$(CFLAGS) /nologo /MT /J $(flags_cl) $(TARGETOPTS) /I$(INC)
|
||||
ASFLAGS=/nologo /coff /c
|
||||
EXESUFFIX=.exe
|
||||
!ifdef DEBUG
|
||||
CFLAGS=$(CFLAGS) /DDEBUGGINGAIDS
|
||||
CFLAGS=$(CFLAGS) /DDEBUGGINGAIDS /D "_CRT_SECURE_NO_DEPRECATE"
|
||||
!endif
|
||||
|
||||
ENGINEOBJS= \
|
||||
|
@ -78,8 +79,7 @@ ENGINEOBJS= \
|
|||
$(OBJ)\winlayer.$o \
|
||||
$(OBJ)\polymer.$o \
|
||||
$(OBJ)\mutex.$o \
|
||||
$(OBJ)\rawinput.$o \
|
||||
# $(OBJ)\nedmalloc.$o
|
||||
$(OBJ)\rawinput.$o
|
||||
|
||||
EDITOROBJS=$(OBJ)\build.$o \
|
||||
$(OBJ)\startwin.editor.$o \
|
||||
|
@ -87,7 +87,7 @@ EDITOROBJS=$(OBJ)\build.$o \
|
|||
|
||||
RENDERTYPE=WIN
|
||||
LIBS=$(LIBS) user32.lib gdi32.lib shell32.lib wsock32.lib comctl32.lib dxguid.lib
|
||||
CFLAGS=$(CFLAGS) /DRENDERTYPE$(RENDERTYPE)=1 /D "_CRT_SECURE_NO_DEPRECATE" /W2
|
||||
CFLAGS=$(CFLAGS) /DRENDERTYPE$(RENDERTYPE)=1 /W2
|
||||
|
||||
# RULES
|
||||
.SUFFIXES: .masm
|
||||
|
|
|
@ -76,7 +76,10 @@ extern char inputdevices;
|
|||
#define KEYFIFOSIZ 64
|
||||
extern char keystatus[256], keyfifo[KEYFIFOSIZ], keyfifoplc, keyfifoend;
|
||||
extern char keyasciififo[KEYFIFOSIZ], keyasciififoplc, keyasciififoend;
|
||||
extern char scantoasc[128];
|
||||
extern char scantoasc[128], remap[256], key_names[256][24];
|
||||
extern int32_t remapinit;
|
||||
|
||||
extern void SetKey(int32_t key, int32_t state);
|
||||
|
||||
// mouse
|
||||
extern volatile int32_t mousex, mousey, mouseb;
|
||||
|
@ -100,9 +103,10 @@ extern inline void idle(void);
|
|||
extern inline void idle_waitevent(void);
|
||||
extern inline void idle_waitevent_timeout(uint32_t timeout);
|
||||
|
||||
typedef void (*KeyPressCallback)(int32_t,int32_t);
|
||||
typedef void (*MousePressCallback)(int32_t,int32_t);
|
||||
typedef void (*JoyPressCallback)(int32_t,int32_t);
|
||||
extern void (*keypresscallback)(int32_t,int32_t);
|
||||
extern void (*mousepresscallback)(int32_t,int32_t);
|
||||
extern void (*joypresscallback)(int32_t,int32_t);
|
||||
|
||||
int32_t initinput(void);
|
||||
void uninitinput(void);
|
||||
void releaseallbuttons(void);
|
||||
|
|
|
@ -614,7 +614,6 @@ extern int32_t gltexmaxsize;
|
|||
void gltexapplyprops (void);
|
||||
void invalidatecache(void);
|
||||
|
||||
extern int32_t r_depthpeeling, r_peelscount;
|
||||
extern int32_t r_detailmapping;
|
||||
extern int32_t r_glowmapping;
|
||||
extern int32_t r_vertexarrays;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define VERSION " 1.3.0devel"
|
||||
#define VERSION " 2.0.0devel"
|
||||
|
||||
// Build keys
|
||||
#define BK_MOVEFORWARD 0
|
||||
|
|
|
@ -45,6 +45,7 @@ void polymost_drawrooms(void);
|
|||
|
||||
void polymost_glinit(void);
|
||||
void polymost_glreset(void);
|
||||
void polymost_cachesync(void);
|
||||
|
||||
void gltexinvalidate(int32_t dapicnum, int32_t dapalnum, int32_t dameth);
|
||||
void gltexinvalidateall(void);
|
||||
|
@ -53,21 +54,12 @@ int32_t polymost_printext256(int32_t xpos, int32_t ypos, int16_t col, int16_t ba
|
|||
|
||||
extern float curpolygonoffset;
|
||||
|
||||
/*
|
||||
// Depth peeling control
|
||||
extern int32_t r_curpeel;
|
||||
extern int32_t peelcompiling;
|
||||
|
||||
// Depth peeling data
|
||||
extern GLuint ztexture[3];
|
||||
extern GLuint *peels;
|
||||
extern GLuint *peelfbos;
|
||||
extern GLuint peelprogram[2];
|
||||
*/
|
||||
|
||||
extern int32_t cachefilehandle;
|
||||
extern FILE *cacheindexptr;
|
||||
extern hashtable_t h_texcache;
|
||||
extern uint8_t *memcachedata;
|
||||
extern int32_t memcachesize;
|
||||
extern int32_t cachepos;
|
||||
|
||||
struct cacheitem_t
|
||||
{
|
||||
|
|
|
@ -16,10 +16,6 @@ int32_t win_gethinstance(void);
|
|||
void win_allowtaskswitching(int32_t onf);
|
||||
int32_t win_checkinstance(void);
|
||||
|
||||
extern void (*keypresscallback)(int32_t,int32_t);
|
||||
extern void (*mousepresscallback)(int32_t,int32_t);
|
||||
extern void (*joypresscallback)(int32_t,int32_t);
|
||||
|
||||
#include "baselayer.h"
|
||||
|
||||
#else
|
||||
|
|
|
@ -9,6 +9,29 @@
|
|||
|
||||
#include "polymost.h"
|
||||
|
||||
// input
|
||||
char inputdevices=0;
|
||||
char keystatus[256], keyfifo[KEYFIFOSIZ], keyfifoplc, keyfifoend;
|
||||
char keyasciififo[KEYFIFOSIZ], keyasciififoplc, keyasciififoend;
|
||||
char remap[256];
|
||||
int32_t remapinit=0;
|
||||
char key_names[256][24];
|
||||
volatile int32_t mousex=0,mousey=0,mouseb=0;
|
||||
int32_t *joyaxis = NULL, joyb=0, *joyhat = NULL;
|
||||
char joyisgamepad=0, joynumaxes=0, joynumbuttons=0, joynumhats=0;
|
||||
int32_t joyaxespresent=0;
|
||||
|
||||
void(*keypresscallback)(int32_t,int32_t) = 0;
|
||||
void(*mousepresscallback)(int32_t,int32_t) = 0;
|
||||
void(*joypresscallback)(int32_t,int32_t) = 0;
|
||||
|
||||
//
|
||||
// set{key|mouse|joy}presscallback() -- sets a callback which gets notified when keys are pressed
|
||||
//
|
||||
void setkeypresscallback(void (*callback)(int32_t, int32_t)) { keypresscallback = callback; }
|
||||
void setmousepresscallback(void (*callback)(int32_t, int32_t)) { mousepresscallback = callback; }
|
||||
void setjoypresscallback(void (*callback)(int32_t, int32_t)) { joypresscallback = callback; }
|
||||
|
||||
char scantoasc[128] =
|
||||
{
|
||||
0,0,'1','2','3','4','5','6','7','8','9','0','-','=',0,0,
|
||||
|
@ -21,6 +44,44 @@ char scantoasc[128] =
|
|||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
};
|
||||
|
||||
void SetKey(int32_t key, int32_t state)
|
||||
{
|
||||
keystatus[remap[key]] = state;
|
||||
|
||||
if (state)
|
||||
{
|
||||
keyfifo[keyfifoend] = remap[key];
|
||||
keyfifo[(keyfifoend+1)&(KEYFIFOSIZ-1)] = state;
|
||||
keyfifoend = ((keyfifoend+2)&(KEYFIFOSIZ-1));
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// bgetchar, bflushchars -- character-based input functions
|
||||
//
|
||||
char bgetchar(void)
|
||||
{
|
||||
if (keyasciififoplc == keyasciififoend)
|
||||
return 0;
|
||||
|
||||
{
|
||||
char c = keyasciififo[keyasciififoplc];
|
||||
keyasciififoplc = ((keyasciififoplc+1)&(KEYFIFOSIZ-1));
|
||||
return c;
|
||||
}
|
||||
}
|
||||
|
||||
void bflushchars(void)
|
||||
{
|
||||
Bmemset(&keyasciififo,0,sizeof(keyasciififo));
|
||||
keyasciififoplc = keyasciififoend = 0;
|
||||
}
|
||||
|
||||
const char *getkeyname(int32_t num)
|
||||
{
|
||||
return ((unsigned)num >= 256) ? NULL : key_names[num];
|
||||
}
|
||||
|
||||
#ifdef USE_OPENGL
|
||||
struct glinfo_t glinfo =
|
||||
{
|
||||
|
@ -85,8 +146,8 @@ static int32_t osdfunc_setrendermode(const osdfuncparm_t *parm)
|
|||
|
||||
char *modestrs[] =
|
||||
{
|
||||
"classic software", "completely broken polygonal flat-shaded software",
|
||||
"polygonal textured software", "polygonal OpenGL", "great justice"
|
||||
"classic software", "",
|
||||
"", "polygonal OpenGL", "great justice (Polymer)"
|
||||
};
|
||||
|
||||
if (parm->numparms != 1) return OSDCMD_SHOWHELP;
|
||||
|
@ -256,11 +317,9 @@ int32_t baselayer_init(void)
|
|||
OSD_RegisterFunction("setrendermode","setrendermode <number>: sets the engine's rendering mode.\n"
|
||||
"Mode numbers are:\n"
|
||||
" 0 - Classic Build software\n"
|
||||
" 1 - Polygonal flat-shaded software\n"
|
||||
" 2 - Polygonal textured software\n"
|
||||
#ifdef USE_OPENGL
|
||||
" 3 - Polygonal OpenGL\n"
|
||||
" 4 - Great justice renderer\n"
|
||||
" 4 - Great justice renderer (Polymer)\n"
|
||||
#endif
|
||||
,
|
||||
osdfunc_setrendermode);
|
||||
|
|
|
@ -680,7 +680,7 @@ struct Bdirent* Breaddir(BDIR *dir)
|
|||
if (fn)
|
||||
{
|
||||
Bsprintf(fn,"%s/%s",dirr->name,dirr->info.name);
|
||||
if (!stat(fn, &st))
|
||||
if (!Bstat(fn, &st))
|
||||
{
|
||||
dirr->info.mode = st.st_mode;
|
||||
dirr->info.size = st.st_size;
|
||||
|
|
|
@ -6042,24 +6042,6 @@ static inline int32_t sameside(_equation* eq, _point2d* p1, _point2d* p2
|
|||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
#ifdef USE_OPENGL
|
||||
void drawpeel(int32_t peel)
|
||||
{
|
||||
bglBindTexture(GL_TEXTURE_RECTANGLE, peels[peel]);
|
||||
bglBegin(GL_QUADS);
|
||||
bglTexCoord2f(0.0f, 0.0f);
|
||||
bglVertex2f(-1.0f, -1.0f);
|
||||
bglTexCoord2i(xdim, 0);
|
||||
bglVertex2f(1.0f, -1.0f);
|
||||
bglTexCoord2i(xdim, ydim);
|
||||
bglVertex2f(1.0f, 1.0f);
|
||||
bglTexCoord2i(0, ydim);
|
||||
bglVertex2f(-1.0f, 1.0f);
|
||||
bglEnd();
|
||||
}
|
||||
#endif
|
||||
*/
|
||||
|
||||
//
|
||||
// drawmasks
|
||||
|
@ -6106,7 +6088,7 @@ killsprite:
|
|||
}
|
||||
|
||||
#ifdef USE_OPENGL
|
||||
// if ((!r_depthpeeling) || (rendmode < 3))
|
||||
// if (rendmode < 3)
|
||||
#endif
|
||||
{
|
||||
|
||||
|
@ -6185,7 +6167,7 @@ killsprite:
|
|||
}*/
|
||||
|
||||
#if defined(USE_OPENGL) && defined(POLYMOST)
|
||||
// if ((!r_depthpeeling) || (rendmode < 3))
|
||||
// if (rendmode < 3)
|
||||
#endif
|
||||
{
|
||||
#if defined(USE_OPENGL) && defined(POLYMOST)
|
||||
|
@ -6253,130 +6235,7 @@ killsprite:
|
|||
if (totalclock >= lastcullcheck + CULL_DELAY)
|
||||
lastcullcheck = (totalclock + CULL_DELAY);
|
||||
#endif
|
||||
} /* depthpeeling */
|
||||
#if defined(USE_OPENGL) && defined(POLYMOST)
|
||||
/*
|
||||
else
|
||||
{
|
||||
curpolygonoffset = 0;
|
||||
cullcheckcnt = 0;
|
||||
j = spritesortcnt;
|
||||
k = maskwallcnt;
|
||||
|
||||
while (j > 0) drawsprite(--j);
|
||||
while (k > 0) drawmaskwall(--k);
|
||||
if (totalclock < lastcullcheck - CULL_DELAY)
|
||||
lastcullcheck = totalclock;
|
||||
if (totalclock >= lastcullcheck + CULL_DELAY)
|
||||
lastcullcheck = (totalclock + CULL_DELAY);
|
||||
}
|
||||
*/
|
||||
#endif
|
||||
|
||||
#if defined(USE_OPENGL) && defined(POLYMOST)
|
||||
/*
|
||||
if ((r_depthpeeling) && (rendmode >= 3))
|
||||
{
|
||||
bglPopAttrib();
|
||||
bglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
||||
|
||||
bglNewList(1, GL_COMPILE);
|
||||
|
||||
peelcompiling = 1;
|
||||
curpolygonoffset = 0;
|
||||
|
||||
while (spritesortcnt > 0) drawsprite(--spritesortcnt);
|
||||
while (maskwallcnt > 0) drawmaskwall(--maskwallcnt);
|
||||
|
||||
peelcompiling = 0;
|
||||
|
||||
bglEndList();
|
||||
|
||||
bglDisable(GL_BLEND);
|
||||
bglEnable(GL_ALPHA_TEST);
|
||||
bglAlphaFunc(GL_GREATER, 0.0f);
|
||||
bglEnable(GL_FRAGMENT_PROGRAM_ARB);
|
||||
|
||||
i = 0;
|
||||
while (i < r_peelscount)
|
||||
{
|
||||
|
||||
if (i > 0)
|
||||
{
|
||||
bglBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, peelprogram[1]);
|
||||
bglActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
bglBindTexture(GL_TEXTURE_RECTANGLE, ztexture[(i - 1) % 2]);
|
||||
bglActiveTextureARB(GL_TEXTURE2_ARB);
|
||||
bglBindTexture(GL_TEXTURE_RECTANGLE, ztexture[2]);
|
||||
bglActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
}
|
||||
else
|
||||
{
|
||||
bglBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, peelprogram[0]);
|
||||
bglActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
bglBindTexture(GL_TEXTURE_RECTANGLE, ztexture[2]);
|
||||
bglActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
}
|
||||
|
||||
if (i == (r_peelscount - 1))
|
||||
bglEnable(GL_BLEND);
|
||||
|
||||
bglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, peelfbos[i]);
|
||||
bglPushAttrib(GL_VIEWPORT_BIT);
|
||||
bglViewport(0, 0, xdim, ydim);
|
||||
|
||||
bglClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
bglCallList(1);
|
||||
|
||||
bglPopAttrib();
|
||||
bglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
bglDisable(GL_FRAGMENT_PROGRAM_ARB);
|
||||
bglEnable(GL_BLEND);
|
||||
bglDisable(GL_DEPTH_TEST);
|
||||
|
||||
bglColor4f(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
|
||||
// identity for screen aligned quads
|
||||
bglMatrixMode(GL_PROJECTION);
|
||||
bglPushMatrix();
|
||||
bglLoadIdentity();
|
||||
bglMatrixMode(GL_MODELVIEW);
|
||||
bglPushMatrix();
|
||||
bglLoadIdentity();
|
||||
|
||||
bglEnable(GL_TEXTURE_RECTANGLE);
|
||||
|
||||
// backbuffer
|
||||
drawpeel(r_peelscount);
|
||||
|
||||
if (r_curpeel == -1)
|
||||
{
|
||||
i = r_peelscount - 1;
|
||||
while (i >= 0)
|
||||
drawpeel(i--);
|
||||
}
|
||||
else
|
||||
drawpeel(r_curpeel);
|
||||
|
||||
bglDisable(GL_TEXTURE_RECTANGLE);
|
||||
bglEnable(GL_TEXTURE_2D);
|
||||
|
||||
// restore the polymost projection
|
||||
bglMatrixMode(GL_PROJECTION);
|
||||
bglPopMatrix();
|
||||
bglMatrixMode(GL_MODELVIEW);
|
||||
bglPopMatrix();
|
||||
|
||||
bglEnable(GL_DEPTH_TEST);
|
||||
|
||||
bglDeleteLists(1, 1);
|
||||
}
|
||||
*/
|
||||
#endif
|
||||
}
|
||||
|
||||
indrawroomsandmasks = 0;
|
||||
enddrawing(); //}}}
|
||||
|
@ -6797,10 +6656,13 @@ int32_t loadboard(char *filename, char fromwhere, int32_t *daposx, int32_t *dapo
|
|||
|
||||
kclose(fil);
|
||||
|
||||
#if defined(POLYMOST) && defined(USE_OPENGL)
|
||||
Bmemset(spriteext, 0, sizeof(spriteext_t) * MAXSPRITES);
|
||||
|
||||
#if defined(POLYMOST) && defined(USE_OPENGL)
|
||||
Bmemset(spritesmooth, 0, sizeof(spritesmooth_t) *(MAXSPRITES+MAXUNIQHUDID));
|
||||
|
||||
// polymost_cachesync();
|
||||
|
||||
# ifdef POLYMER
|
||||
if (rendmode == 4)
|
||||
polymer_loadboard();
|
||||
|
@ -7316,16 +7178,27 @@ int32_t loadmaphack(char *filename)
|
|||
{ NULL, -1 }
|
||||
};
|
||||
|
||||
scriptfile *script;
|
||||
scriptfile *script = NULL;
|
||||
char *tok, *cmdtokptr;
|
||||
int32_t i;
|
||||
int32_t whichsprite = -1;
|
||||
static char fn[BMAX_PATH];
|
||||
|
||||
script = scriptfile_fromfile(filename);
|
||||
if (!script) return -1;
|
||||
if (filename)
|
||||
{
|
||||
memset(spriteext, 0, sizeof(spriteext_t) * MAXSPRITES);
|
||||
memset(spritesmooth, 0, sizeof(spritesmooth_t) *(MAXSPRITES+MAXUNIQHUDID));
|
||||
Bstrcpy(fn, filename);
|
||||
script = scriptfile_fromfile(filename);
|
||||
}
|
||||
else if (fn[0])
|
||||
script = scriptfile_fromfile(fn);
|
||||
|
||||
memset(spriteext, 0, sizeof(spriteext_t) * MAXSPRITES);
|
||||
memset(spritesmooth, 0, sizeof(spritesmooth_t) *(MAXSPRITES+MAXUNIQHUDID));
|
||||
if (!script)
|
||||
{
|
||||
fn[0] = 0;
|
||||
return -1;
|
||||
}
|
||||
|
||||
while (1)
|
||||
{
|
||||
|
@ -7333,6 +7206,9 @@ int32_t loadmaphack(char *filename)
|
|||
if (!tok) break;
|
||||
for (i=0; legaltokens[i].text; i++) if (!Bstrcasecmp(tok,legaltokens[i].text)) break;
|
||||
cmdtokptr = script->ltextptr;
|
||||
|
||||
if (!filename && legaltokens[i].tokenid != T_LIGHT) continue;
|
||||
|
||||
switch (legaltokens[i].tokenid)
|
||||
{
|
||||
case T_SPRITE: // sprite <xx>
|
||||
|
@ -7727,9 +7603,11 @@ int32_t setgamemode(char davidoption, int32_t daxdim, int32_t daydim, int32_t da
|
|||
#endif
|
||||
if ((qsetmode == 200) && (videomodereset == 0) &&
|
||||
(davidoption == fullscreen) && (xdim == daxdim) && (ydim == daydim) && (bpp == dabpp)
|
||||
/*
|
||||
#ifdef POLYMER
|
||||
&& glrendmode != 4
|
||||
#endif // POLYMER
|
||||
*/
|
||||
)
|
||||
return(0);
|
||||
|
||||
|
@ -8060,12 +7938,6 @@ void loadtile(int16_t tilenume)
|
|||
artfilplc = tilefileoffs[tilenume]+dasiz;
|
||||
}
|
||||
|
||||
void checktile(int16_t tilenume)
|
||||
{
|
||||
if (!waloff[tilenume])
|
||||
loadtile(tilenume);
|
||||
}
|
||||
|
||||
//
|
||||
// allocatepermanenttile
|
||||
//
|
||||
|
@ -11122,7 +10994,7 @@ void draw2dscreen(int32_t posxe, int32_t posye, int16_t ange, int32_t zoome, int
|
|||
if (j < 0)
|
||||
{
|
||||
col = 15;
|
||||
if (i == linehighlight) if (totalclock & 16) col -= (2<<2);
|
||||
if (i == linehighlight) col = (totalclock & 16) ? 15 : 7;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -11132,14 +11004,6 @@ void draw2dscreen(int32_t posxe, int32_t posye, int16_t ange, int32_t zoome, int
|
|||
if ((i == linehighlight) || ((linehighlight >= 0) && (i == wall[linehighlight].nextwall)))
|
||||
if (totalclock & 16) col += (2<<2);
|
||||
}
|
||||
if (showfirstwall && (sector[searchsector].wallptr==i||sector[searchsector].wallptr==wall[i].nextwall))
|
||||
{
|
||||
col = 14;
|
||||
if (i == linehighlight) if (totalclock & 16) col -= (2<<2);
|
||||
}
|
||||
|
||||
if (circlewall >= 0 && (i == circlewall || wal->nextwall == circlewall))
|
||||
col = 14;
|
||||
|
||||
xp1 = mulscale14(wal->x-posxe,zoome);
|
||||
yp1 = mulscale14(wal->y-posye,zoome);
|
||||
|
@ -11149,12 +11013,20 @@ void draw2dscreen(int32_t posxe, int32_t posye, int16_t ange, int32_t zoome, int
|
|||
dx=wal->x-wall[wal->point2].x;
|
||||
dy=wal->y-wall[wal->point2].y;
|
||||
dist=dx*dx+dy*dy;
|
||||
if (dist>0xffffffff)
|
||||
|
||||
if (dist > 0xffffffff)
|
||||
{
|
||||
col=9;
|
||||
if (i == linehighlight || ((linehighlight >= 0) && (i == wall[linehighlight].nextwall)))
|
||||
if (totalclock & 16) col -= (2<<2);
|
||||
}
|
||||
else if (showfirstwall && (sector[searchsector].wallptr == i || sector[searchsector].wallptr == wall[i].nextwall))
|
||||
{
|
||||
col = 14;
|
||||
if (i == linehighlight) if (totalclock & 16) col -= (2<<2);
|
||||
}
|
||||
else if (circlewall >= 0 && (i == circlewall || wal->nextwall == circlewall))
|
||||
col = 14;
|
||||
|
||||
if ((wal->cstat&64) > 0)
|
||||
{
|
||||
|
@ -11215,39 +11087,26 @@ void draw2dscreen(int32_t posxe, int32_t posye, int16_t ange, int32_t zoome, int
|
|||
if (((midydim16+yp1) >= 2) && ((midydim16+yp1) <= ydim16-3))
|
||||
{
|
||||
int32_t pointsize = 2;
|
||||
col = 15;
|
||||
if (i == pointhighlight || ((pointhighlight < MAXWALLS) && (pointhighlight >= 0) && (wall[i].x == wall[pointhighlight].x) && (wall[i].y == wall[pointhighlight].y)))
|
||||
|
||||
if (i == pointhighlight || ((pointhighlight < MAXWALLS) && (pointhighlight >= 0) &&
|
||||
(wall[i].x == wall[pointhighlight].x) && (wall[i].y == wall[pointhighlight].y)))
|
||||
{
|
||||
if (totalclock & 16)
|
||||
{
|
||||
//col += (2<<2); // JBF 20040116: two braces is all this needed. man I'm a fool sometimes.
|
||||
pointsize += 1;
|
||||
}
|
||||
pointsize++;
|
||||
}
|
||||
else if ((highlightcnt > 0) && (editstatus == 1))
|
||||
{
|
||||
if (show2dwall[i>>3]&pow2char[i&7])
|
||||
{
|
||||
if (totalclock & 16)
|
||||
{
|
||||
// col += (2<<2); // JBF 20040116: two braces is all this needed. man I'm a fool sometimes.
|
||||
pointsize += 1;
|
||||
}
|
||||
pointsize++;
|
||||
}
|
||||
}
|
||||
|
||||
tempint = ((midydim16+yp1)*bytesperline)+(halfxdim16+xp1)+frameplace;
|
||||
#if 1
|
||||
do
|
||||
{
|
||||
/* drawline16(halfxdim16+xp1-pointsize,midydim16+yp1+pointsize,halfxdim16+xp1+pointsize,midydim16+yp1+pointsize,col);
|
||||
drawline16(halfxdim16+xp1+pointsize,midydim16+yp1+pointsize,halfxdim16+xp1+pointsize,midydim16+yp1-pointsize,col);
|
||||
drawline16(halfxdim16+xp1+pointsize,midydim16+yp1-pointsize,halfxdim16+xp1-pointsize,midydim16+yp1-pointsize,col);
|
||||
drawline16(halfxdim16+xp1-pointsize,midydim16+yp1-pointsize,halfxdim16+xp1-pointsize,midydim16+yp1+pointsize,col); */
|
||||
drawcircle16(halfxdim16+xp1, midydim16+yp1, pointsize, editorcolors[col]);
|
||||
}
|
||||
while (pointsize--);
|
||||
#else
|
||||
drawcircle16(halfxdim16+xp1, midydim16+yp1, pointsize, col);
|
||||
#endif
|
||||
drawcircle16(halfxdim16+xp1, midydim16+yp1, pointsize--, editorcolors[15]);
|
||||
while (pointsize);
|
||||
}
|
||||
}
|
||||
faketimerhandler();
|
||||
|
|
|
@ -60,7 +60,7 @@ static uint16_t SSWAPIL(uint16_t a) { return((a>>8)+(a<<8)); }
|
|||
typedef long long __int64;
|
||||
static __inline int32_t _lrotl(int32_t i, int sh)
|
||||
{ return((i>>(-sh))|(i<<sh)); }
|
||||
static __inline int32_t filelength(int h)
|
||||
__inline int32_t filelength(int h)
|
||||
{
|
||||
struct stat st;
|
||||
if (fstat(h,&st) < 0) return(-1);
|
||||
|
|
|
@ -556,15 +556,31 @@ int32_t mdloadskin_trytexcache(char *fn, int32_t len, int32_t pal, char effect,
|
|||
texcacheindex *cacheindexptr = cacheptrs[i];
|
||||
len = cacheindexptr->len;
|
||||
offset = cacheindexptr->offset;
|
||||
// initprintf("got a match for %s offset %d\n",cachefn,offset);
|
||||
// initprintf("got a match for %s offset %d\n",cachefn,offset);
|
||||
}
|
||||
if (len == 0) return -1; // didn't find it
|
||||
Blseek(cachefilehandle, offset, BSEEK_SET);
|
||||
cachepos = offset;
|
||||
}
|
||||
|
||||
// initprintf("Loading cached skin: %s\n", cachefn);
|
||||
|
||||
if (Bread(cachefilehandle, head, sizeof(texcacheheader)) < (int32_t)sizeof(texcacheheader)) goto failure;
|
||||
if (memcachedata && memcachesize >= (signed)(cachepos + sizeof(texcacheheader)))
|
||||
{
|
||||
// initprintf("using memcache!\n");
|
||||
Bmemcpy(head, memcachedata + cachepos, sizeof(texcacheheader));
|
||||
cachepos += sizeof(texcacheheader);
|
||||
}
|
||||
else
|
||||
{
|
||||
Blseek(cachefilehandle, cachepos, BSEEK_SET);
|
||||
if (Bread(cachefilehandle, head, sizeof(texcacheheader)) < (int32_t)sizeof(texcacheheader))
|
||||
{
|
||||
cachepos += sizeof(texcacheheader);
|
||||
goto failure;
|
||||
}
|
||||
cachepos += sizeof(texcacheheader);
|
||||
}
|
||||
|
||||
if (memcmp(head->magic, TEXCACHEMAGIC, 4)) goto failure;
|
||||
|
||||
head->xdim = B_LITTLE32(head->xdim);
|
||||
|
@ -607,7 +623,9 @@ static int32_t mdloadskin_cached(int32_t fil, texcacheheader *head, int32_t *doa
|
|||
// load the mipmaps
|
||||
for (level = 0; level==0 || (pict.xdim > 1 || pict.ydim > 1); level++)
|
||||
{
|
||||
Blseek(fil, cachepos, BSEEK_SET);
|
||||
r = Bread(fil, &pict, sizeof(texcachepicture));
|
||||
cachepos += sizeof(texcachepicture);
|
||||
if (r < (int32_t)sizeof(texcachepicture)) goto failure;
|
||||
|
||||
pict.size = B_LITTLE32(pict.size);
|
||||
|
@ -831,7 +849,7 @@ int32_t mdloadskin(md2model_t *m, int32_t number, int32_t pal, int32_t surf)
|
|||
if (ysiz == pow2long[j]) { i |= 2; }
|
||||
}
|
||||
cachead.flags = (i!=3) | (hasalpha ? 2 : 0);
|
||||
OSD_Printf("No cached tex for %s.\n",fn);
|
||||
OSD_Printf("Caching \"%s\"\n",fn);
|
||||
writexcache(fn, picfillen, pal<<8, (globalnoeffect)?0:(hictinting[pal].f&HICEFFECTMASK), &cachead);
|
||||
}
|
||||
|
||||
|
@ -1872,14 +1890,13 @@ static int32_t md3draw(md3model_t *m, spritetype *tspr)
|
|||
float al = 0.0;
|
||||
if (alphahackarray[globalpicnum] != 0)
|
||||
al=alphahackarray[globalpicnum];
|
||||
/*if (!peelcompiling)*/
|
||||
bglEnable(GL_BLEND);
|
||||
bglEnable(GL_ALPHA_TEST);
|
||||
bglAlphaFunc(GL_GREATER,al);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (tspr->cstat&2/* && (!peelcompiling)*/) bglEnable(GL_BLEND); //else bglDisable(GL_BLEND);
|
||||
if (tspr->cstat&2) bglEnable(GL_BLEND); //else bglDisable(GL_BLEND);
|
||||
}
|
||||
bglColor4f(pc[0],pc[1],pc[2],pc[3]);
|
||||
//if (m->head.flags == 1337)
|
||||
|
@ -1973,7 +1990,7 @@ static int32_t md3draw(md3model_t *m, spritetype *tspr)
|
|||
//i = mdloadskin((md2model *)m,tile2model[Ptile2tile(tspr->picnum,lpal)].skinnum,surfi); //hack for testing multiple surfaces per MD3
|
||||
bglBindTexture(GL_TEXTURE_2D, i);
|
||||
|
||||
if (r_detailmapping && /*!r_depthpeeling &&*/ !(tspr->cstat&1024))
|
||||
if (r_detailmapping && !(tspr->cstat&1024))
|
||||
i = mdloadskin((md2model_t *)m,tile2model[Ptile2tile(tspr->picnum,lpal)].skinnum,DETAILPAL,surfi);
|
||||
else
|
||||
i = 0;
|
||||
|
@ -2013,7 +2030,7 @@ static int32_t md3draw(md3model_t *m, spritetype *tspr)
|
|||
bglMatrixMode(GL_MODELVIEW);
|
||||
}
|
||||
|
||||
if (r_glowmapping && /*!r_depthpeeling &&*/ !(tspr->cstat&1024))
|
||||
if (r_glowmapping && !(tspr->cstat&1024))
|
||||
i = mdloadskin((md2model_t *)m,tile2model[Ptile2tile(tspr->picnum,lpal)].skinnum,GLOWPAL,surfi);
|
||||
else
|
||||
i = 0;
|
||||
|
@ -2055,7 +2072,7 @@ static int32_t md3draw(md3model_t *m, spritetype *tspr)
|
|||
indexhandle = m->vindexes;
|
||||
|
||||
//PLAG: delayed polygon-level sorted rendering
|
||||
if (m->usesalpha && !(tspr->cstat & 1024)/* && !r_depthpeeling*/)
|
||||
if (m->usesalpha && !(tspr->cstat & 1024))
|
||||
{
|
||||
for (i=s->numtris-1; i>=0; i--)
|
||||
{
|
||||
|
@ -3030,7 +3047,7 @@ int32_t voxdraw(voxmodel_t *m, spritetype *tspr)
|
|||
pc[2] *= (float)hictinting[globalpal].b / 255.0;
|
||||
if (tspr->cstat&2) { if (!(tspr->cstat&512)) pc[3] = 0.66f; else pc[3] = 0.33f; }
|
||||
else pc[3] = 1.0;
|
||||
if (tspr->cstat&2/* && (!peelcompiling)*/) bglEnable(GL_BLEND); //else bglDisable(GL_BLEND);
|
||||
if (tspr->cstat&2) bglEnable(GL_BLEND); //else bglDisable(GL_BLEND);
|
||||
//------------
|
||||
|
||||
//transform to Build coords
|
||||
|
|
|
@ -1373,9 +1373,6 @@ void OSD_Draw(void)
|
|||
|
||||
clearbackground(osdcols,osdrowscur+1);
|
||||
|
||||
if (osdver[0] && osdrowscur>2)
|
||||
drawosdstr(osdcols-osdverlen,osdrowscur-2,osdver,osdverlen,(sintable[(totalclock<<4)&2047]>>11),osdverpal);
|
||||
|
||||
for (; lines>0; lines--, row--)
|
||||
{
|
||||
drawosdstr(0,row,osdtext+topoffs,osdcols,osdtextshade,osdtextpal);
|
||||
|
@ -1397,7 +1394,13 @@ void OSD_Draw(void)
|
|||
for (x=len-1; x>=0; x--)
|
||||
drawosdchar(3+x+offset,osdrowscur,osdeditbuf[osdeditwinstart+x],osdeditshade<<1,osdeditpal);
|
||||
|
||||
drawosdcursor(3+osdeditcursor-osdeditwinstart+offset,osdrowscur,osdflags & OSD_OVERTYPE,keytime);
|
||||
offset += 3+osdeditcursor-osdeditwinstart;
|
||||
|
||||
drawosdcursor(offset,osdrowscur,osdflags & OSD_OVERTYPE,keytime);
|
||||
|
||||
if (osdver[0])
|
||||
drawosdstr(osdcols-osdverlen,osdrowscur - (offset >= osdcols-osdverlen),
|
||||
osdver,osdverlen,(sintable[(totalclock<<4)&2047]>>11),osdverpal);
|
||||
}
|
||||
|
||||
enddrawing();
|
||||
|
|
|
@ -747,6 +747,8 @@ void polymer_resetlights(void)
|
|||
}
|
||||
|
||||
lightcount = 0;
|
||||
|
||||
loadmaphack(NULL);
|
||||
}
|
||||
|
||||
void polymer_loadboard(void)
|
||||
|
|
|
@ -87,6 +87,10 @@ Low priority:
|
|||
#include "cache1d.h"
|
||||
#include "kplib.h"
|
||||
|
||||
#ifndef _WIN32
|
||||
extern int32_t filelength(int h); // kplib.c
|
||||
#endif
|
||||
|
||||
extern char textfont[2048], smalltextfont[2048];
|
||||
|
||||
int32_t rendmode=0;
|
||||
|
@ -241,32 +245,8 @@ void drawline2d(float x0, float y0, float x1, float y1, char col)
|
|||
}
|
||||
|
||||
#ifdef USE_OPENGL
|
||||
|
||||
#include "md4.h"
|
||||
|
||||
#define USELZF
|
||||
#define USEKENFILTER 1
|
||||
|
||||
#ifdef USELZF
|
||||
# include "quicklz.h"
|
||||
#else
|
||||
# include "lzwnew.h"
|
||||
#endif
|
||||
|
||||
int32_t cachefilehandle = -1; // texture cache file handle
|
||||
FILE *cacheindexptr = NULL;
|
||||
|
||||
hashtable_t h_texcache = { 1024, NULL };
|
||||
|
||||
char TEXCACHEFILE[BMAX_PATH] = "textures";
|
||||
|
||||
int32_t mdtims, omdtims;
|
||||
float alphahackarray[MAXTILES];
|
||||
|
||||
texcacheindex *firstcacheindex = NULL;
|
||||
texcacheindex *curcacheindex = NULL;
|
||||
texcacheindex *cacheptrs[MAXTILES<<1];
|
||||
int32_t numcacheentries = 0;
|
||||
#include "quicklz.h"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
//TEXTURE MANAGEMENT: treats same texture with different .PAL as a separate texture. This makes the
|
||||
|
@ -292,6 +272,25 @@ int32_t numcacheentries = 0;
|
|||
struct pthtyp_t *ofb; // only fullbright
|
||||
} pthtyp;*/
|
||||
|
||||
int32_t cachefilehandle = -1; // texture cache file handle
|
||||
FILE *cacheindexptr = NULL;
|
||||
uint8_t *memcachedata = NULL;
|
||||
int32_t memcachesize = -1;
|
||||
int32_t cachepos = 0;
|
||||
|
||||
hashtable_t h_texcache = { 1024, NULL };
|
||||
|
||||
char TEXCACHEFILE[BMAX_PATH] = "textures";
|
||||
|
||||
int32_t mdtims, omdtims;
|
||||
float alphahackarray[MAXTILES];
|
||||
|
||||
texcacheindex *firstcacheindex = NULL;
|
||||
texcacheindex *curcacheindex = NULL;
|
||||
texcacheindex *cacheptrs[MAXTILES<<1];
|
||||
int32_t numcacheentries = 0;
|
||||
|
||||
|
||||
#define GLTEXCACHEADSIZ 8192
|
||||
pthtyp *gltexcachead[GLTEXCACHEADSIZ];
|
||||
|
||||
|
@ -551,6 +550,21 @@ float glox1, gloy1, glox2, gloy2;
|
|||
//Use this for both initialization and uninitialization of OpenGL.
|
||||
static int32_t gltexcacnum = -1;
|
||||
extern void freevbos(void);
|
||||
|
||||
void polymost_cachesync(void)
|
||||
{
|
||||
if (memcachedata && cachefilehandle != -1 && filelength(cachefilehandle) > memcachesize)
|
||||
{
|
||||
size_t len = filelength(cachefilehandle);
|
||||
initprintf("Syncing memcache to texcache\n");
|
||||
memcachedata = (uint8_t *)Brealloc(memcachedata, len);
|
||||
Blseek(cachefilehandle, memcachesize, BSEEK_SET);
|
||||
Bread(cachefilehandle, memcachedata + memcachesize, len - memcachesize);
|
||||
memcachesize = len;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void polymost_glreset()
|
||||
{
|
||||
int32_t i;
|
||||
|
@ -602,17 +616,19 @@ void polymost_glreset()
|
|||
memset(gltexcachead,0,sizeof(gltexcachead));
|
||||
glox1 = -1;
|
||||
|
||||
if (cachefilehandle != -1)
|
||||
{
|
||||
Bclose(cachefilehandle);
|
||||
cachefilehandle = -1;
|
||||
}
|
||||
/*
|
||||
if (cachefilehandle != -1)
|
||||
{
|
||||
Bclose(cachefilehandle);
|
||||
cachefilehandle = -1;
|
||||
}
|
||||
|
||||
if (cacheindexptr)
|
||||
{
|
||||
Bfclose(cacheindexptr);
|
||||
cacheindexptr = NULL;
|
||||
}
|
||||
if (cacheindexptr)
|
||||
{
|
||||
Bfclose(cacheindexptr);
|
||||
cacheindexptr = NULL;
|
||||
}
|
||||
*/
|
||||
|
||||
for (i = numcacheentries-1; i >= 0; i--)
|
||||
if (cacheptrs[i])
|
||||
|
@ -625,9 +641,11 @@ void polymost_glreset()
|
|||
cacheptrs[ii] = NULL;
|
||||
}
|
||||
|
||||
Bfree(cacheptrs[i]);
|
||||
cacheptrs[i] = NULL;
|
||||
Bfree(cacheptrs[i]);
|
||||
cacheptrs[i] = NULL;
|
||||
}
|
||||
|
||||
polymost_cachesync();
|
||||
}
|
||||
|
||||
// one-time initialization of OpenGL for polymost
|
||||
|
@ -685,7 +703,7 @@ void polymost_glinit()
|
|||
bglEnableClientState(GL_VERTEX_ARRAY);
|
||||
bglEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
|
||||
if (cachefilehandle > -1)
|
||||
if (cachefilehandle != -1)
|
||||
{
|
||||
Bclose(cachefilehandle);
|
||||
cachefilehandle = -1;
|
||||
|
@ -697,6 +715,13 @@ void polymost_glinit()
|
|||
cacheindexptr = NULL;
|
||||
}
|
||||
|
||||
if (memcachedata)
|
||||
{
|
||||
Bfree(memcachedata);
|
||||
memcachedata = NULL;
|
||||
memcachesize = -1;
|
||||
}
|
||||
|
||||
for (i = numcacheentries-1; i >= 0; i--)
|
||||
if (cacheptrs[i])
|
||||
{
|
||||
|
@ -748,6 +773,24 @@ void polymost_glinit()
|
|||
return;
|
||||
}
|
||||
|
||||
memcachesize = filelength(cachefilehandle);
|
||||
|
||||
if (memcachesize > 0)
|
||||
memcachedata = (uint8_t *)Brealloc(memcachedata, memcachesize);
|
||||
|
||||
if (!memcachedata)
|
||||
{
|
||||
initprintf("Failed allocating %d bytes for memcache\n", memcachesize);
|
||||
memcachesize = -1;
|
||||
}
|
||||
|
||||
if (memcachesize > 0 && Bread(cachefilehandle, memcachedata, memcachesize) != memcachesize)
|
||||
{
|
||||
initprintf("Failed reading texcache into memcache!\n");
|
||||
Bfree(memcachedata);
|
||||
memcachesize = -1;
|
||||
}
|
||||
|
||||
i = 0;
|
||||
|
||||
curcacheindex = firstcacheindex;
|
||||
|
@ -770,6 +813,7 @@ void invalidatecache(void)
|
|||
r_downsizevar = r_downsize; // update the cvar representation when the menu changes r_downsize
|
||||
|
||||
polymost_glreset();
|
||||
|
||||
if (cachefilehandle != -1)
|
||||
{
|
||||
Bclose(cachefilehandle);
|
||||
|
@ -782,6 +826,13 @@ void invalidatecache(void)
|
|||
cacheindexptr = NULL;
|
||||
}
|
||||
|
||||
if (memcachedata)
|
||||
{
|
||||
Bfree(memcachedata);
|
||||
memcachedata = NULL;
|
||||
memcachesize = -1;
|
||||
}
|
||||
|
||||
for (i = numcacheentries-1; i >= 0; i--)
|
||||
if (cacheptrs[i])
|
||||
{
|
||||
|
@ -1285,16 +1336,28 @@ int32_t trytexcache(char *fn, int32_t len, int32_t dameth, char effect, texcache
|
|||
}
|
||||
else return -1; // didn't find it
|
||||
|
||||
if (Blseek(cachefilehandle, offset, BSEEK_SET) == -1)
|
||||
{
|
||||
OSD_Printf("Cache seek error: %s\n",strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
cachepos = offset;
|
||||
}
|
||||
|
||||
// initprintf("Loading cached tex: %s\n", cachefn);
|
||||
|
||||
if (Bread(cachefilehandle, head, sizeof(texcacheheader)) < (int32_t)sizeof(texcacheheader)) goto failure;
|
||||
if (memcachedata && memcachesize >= (signed)(cachepos + sizeof(texcacheheader)))
|
||||
{
|
||||
// initprintf("using memcache!\n");
|
||||
Bmemcpy(head, memcachedata + cachepos, sizeof(texcacheheader));
|
||||
cachepos += sizeof(texcacheheader);
|
||||
}
|
||||
else
|
||||
{
|
||||
Blseek(cachefilehandle, cachepos, BSEEK_SET);
|
||||
if (Bread(cachefilehandle, head, sizeof(texcacheheader)) < (int32_t)sizeof(texcacheheader))
|
||||
{
|
||||
cachepos += sizeof(texcacheheader);
|
||||
goto failure;
|
||||
}
|
||||
cachepos += sizeof(texcacheheader);
|
||||
}
|
||||
|
||||
if (Bmemcmp(head->magic, TEXCACHEMAGIC, 4)) goto failure;
|
||||
head->xdim = B_LITTLE32(head->xdim);
|
||||
head->ydim = B_LITTLE32(head->ydim);
|
||||
|
@ -1358,7 +1421,7 @@ void writexcache(char *fn, int32_t len, int32_t dameth, char effect, texcachehea
|
|||
Blseek(cachefilehandle, 0, BSEEK_END);
|
||||
|
||||
offset = Blseek(cachefilehandle, 0, BSEEK_CUR);
|
||||
OSD_Printf("Caching %s, offset 0x%x\n", cachefn, offset);
|
||||
// OSD_Printf("Caching %s, offset 0x%x\n", cachefn, offset);
|
||||
|
||||
Bmemcpy(head->magic, TEXCACHEMAGIC, 4); // sizes are set by caller
|
||||
|
||||
|
@ -1380,7 +1443,7 @@ void writexcache(char *fn, int32_t len, int32_t dameth, char effect, texcachehea
|
|||
bglGetTexLevelParameteriv(GL_TEXTURE_2D, level, GL_TEXTURE_INTERNAL_FORMAT, (GLint *)&gi);
|
||||
if (bglGetError() != GL_NO_ERROR) goto failure;
|
||||
#ifdef __APPLE__
|
||||
if(pr_ati_textureformat_one && gi == 1 ) gi = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
|
||||
if (pr_ati_textureformat_one && gi == 1) gi = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
|
||||
#endif
|
||||
pict.format = B_LITTLE32(gi);
|
||||
bglGetTexLevelParameteriv(GL_TEXTURE_2D, level, GL_TEXTURE_WIDTH, (GLint *)&gi);
|
||||
|
@ -1494,8 +1557,19 @@ int32_t gloadtile_cached(int32_t fil, texcacheheader *head, int32_t *doalloc, pt
|
|||
// load the mipmaps
|
||||
for (level = 0; level==0 || (pict.xdim > 1 || pict.ydim > 1); level++)
|
||||
{
|
||||
r = Bread(fil, &pict, sizeof(texcachepicture));
|
||||
if (r < (int32_t)sizeof(texcachepicture)) goto failure;
|
||||
if (memcachedata && memcachesize >= (signed)(cachepos + sizeof(texcachepicture)))
|
||||
{
|
||||
// initprintf("using memcache!\n");
|
||||
Bmemcpy(&pict, memcachedata + cachepos, sizeof(texcachepicture));
|
||||
cachepos += sizeof(texcachepicture);
|
||||
}
|
||||
else
|
||||
{
|
||||
Blseek(fil, cachepos, BSEEK_SET);
|
||||
r = Bread(fil, &pict, sizeof(texcachepicture));
|
||||
cachepos += sizeof(texcachepicture);
|
||||
if (r < (int32_t)sizeof(texcachepicture)) goto failure;
|
||||
}
|
||||
|
||||
pict.size = B_LITTLE32(pict.size);
|
||||
pict.format = B_LITTLE32(pict.format);
|
||||
|
@ -1802,7 +1876,7 @@ int32_t gloadtile_hi(int32_t dapic,int32_t dapalnum, int32_t facen, hicreplctyp
|
|||
if (ysiz == pow2long[j]) { x |= 2; }
|
||||
}
|
||||
cachead.flags = (x!=3) | (hasalpha != 255 ? 2 : 0) | (hicr->flags & 16?8:0); // handle nocompress
|
||||
OSD_Printf("No cached tex for tile %d pal %d.\n",dapic,dapalnum);
|
||||
OSD_Printf("Caching \"%s\"\n", fn);
|
||||
writexcache(fn, picfillen+(dapalnum<<8), dameth, effect, &cachead);
|
||||
}
|
||||
|
||||
|
@ -3558,12 +3632,13 @@ static void polymost_drawalls(int32_t bunch)
|
|||
oy = -vv[0]/vv[1];
|
||||
if ((oy < cy0) && (oy < cy1)) domost(x1,oy,x0,oy);
|
||||
else if ((oy < cy0) != (oy < cy1))
|
||||
{ /* cy1 cy0
|
||||
// / \
|
||||
//oy---------- oy---------
|
||||
// / \
|
||||
// cy0 cy1
|
||||
*/
|
||||
{
|
||||
/* cy1 cy0
|
||||
// / \
|
||||
//oy---------- oy---------
|
||||
// / \
|
||||
// cy0 cy1
|
||||
*/
|
||||
ox = (oy-cy0)*(x1-x0)/(cy1-cy0) + x0;
|
||||
if (oy < cy0) { domost(ox,oy,x0,oy); domost(x1,cy1,ox,oy); }
|
||||
else { domost(ox,oy,x0,cy0); domost(x1,oy,ox,oy); }
|
||||
|
@ -5970,10 +6045,14 @@ void polymost_initosdfuncs(void)
|
|||
{ "r_multisample","r_multisample: sets the number of samples used for antialiasing (0 = off)",(void *)&r_glowmapping, CVAR_BOOL, 0, 1 }
|
||||
{ "r_nvmultisamplehint","r_nvmultisamplehint: enable/disable Nvidia multisampling hinting",(void *)&glnvmultisamplehint, CVAR_BOOL, 0, 1 }
|
||||
*/
|
||||
{ "r_parallaxskyclamping","r_parallaxskyclamping: enable/disable parallaxed floor/ceiling sky texture clamping",
|
||||
(void *)&r_parallaxskyclamping, CVAR_BOOL, 0, 1 },
|
||||
{ "r_parallaxskypanning","r_parallaxskypanning: enable/disable parallaxed floor/ceiling panning when drawing a parallaxed sky",
|
||||
(void *)&r_parallaxskypanning, CVAR_BOOL, 0, 1 },
|
||||
{
|
||||
"r_parallaxskyclamping","r_parallaxskyclamping: enable/disable parallaxed floor/ceiling sky texture clamping",
|
||||
(void *)&r_parallaxskyclamping, CVAR_BOOL, 0, 1
|
||||
},
|
||||
{
|
||||
"r_parallaxskypanning","r_parallaxskypanning: enable/disable parallaxed floor/ceiling panning when drawing a parallaxed sky",
|
||||
(void *)&r_parallaxskypanning, CVAR_BOOL, 0, 1
|
||||
},
|
||||
{ "r_polygonmode","r_polygonmode: debugging feature",(void *)&glpolygonmode, CVAR_INT | CVAR_NOSAVE, 0, 3 },
|
||||
{ "r_redbluemode","r_redbluemode: enable/disable experimental OpenGL red-blue glasses mode",(void *)&glredbluemode, CVAR_BOOL, 0, 1 },
|
||||
{ "r_shadescale","r_shadescale: multiplier for lighting",(void *)&shadescale, CVAR_FLOAT, 0, 10 },
|
||||
|
@ -6029,7 +6108,7 @@ void polymost_initosdfuncs(void)
|
|||
continue;
|
||||
|
||||
OSD_RegisterFunction(cvars_polymost[i].name, cvars_polymost[i].helpstr,
|
||||
cvars_polymost[i].type & CVAR_FUNCPTR ? osdcmd_cvar_set_polymost : osdcmd_cvar_set);
|
||||
cvars_polymost[i].type & CVAR_FUNCPTR ? osdcmd_cvar_set_polymost : osdcmd_cvar_set);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6129,164 +6208,107 @@ Description of Ken's filter to improve LZW compression of DXT1 format by ~15%: (
|
|||
*/
|
||||
|
||||
#if defined(POLYMOST) && defined(USE_OPENGL)
|
||||
int32_t dxtfilter(int32_t fil, texcachepicture *pict, char *pic, void *midbuf, char *packbuf, uint32_t miplen)
|
||||
{
|
||||
void *writebuf;
|
||||
#if (USEKENFILTER == 0)
|
||||
uint32_t cleng,j;
|
||||
if (glusetexcache == 2)
|
||||
{
|
||||
#ifdef USELZF
|
||||
cleng = qlz_compress(pic, packbuf, miplen, state_compress);
|
||||
if (cleng == 0 || cleng > j-1)
|
||||
{
|
||||
// failed to compress
|
||||
cleng = miplen;
|
||||
writebuf = pic;
|
||||
}
|
||||
else writebuf = packbuf;
|
||||
#else
|
||||
cleng = lzwcompress(pic,miplen,packbuf);
|
||||
writebuf = packbuf;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
cleng = miplen;
|
||||
writebuf = pic;
|
||||
}
|
||||
if (cleng < 0) return -1; j = B_LITTLE32(cleng);
|
||||
if (Bwrite(fil, &j, sizeof(uint32_t)) != sizeof(uint32_t)) return -1;
|
||||
if (Bwrite(fil, writebuf, cleng) != cleng) return -1;
|
||||
#else
|
||||
uint32_t j, k, offs, stride, cleng;
|
||||
char *cptr;
|
||||
|
||||
if ((pict->format == B_LITTLE32(GL_COMPRESSED_RGB_S3TC_DXT1_EXT)) ||
|
||||
(pict->format == B_LITTLE32(GL_COMPRESSED_RGBA_S3TC_DXT1_EXT))) { offs = 0; stride = 8; }
|
||||
else if ((pict->format == B_LITTLE32(GL_COMPRESSED_RGBA_S3TC_DXT3_EXT)) ||
|
||||
(pict->format == B_LITTLE32(GL_COMPRESSED_RGBA_S3TC_DXT5_EXT))) { offs = 8; stride = 16; }
|
||||
else { offs = 0; stride = 8; }
|
||||
|
||||
if (stride == 16) //If DXT3...
|
||||
{
|
||||
//alpha_4x4
|
||||
cptr = midbuf;
|
||||
for (k=0; k<8; k++) *cptr++ = pic[k];
|
||||
for (j=stride; (unsigned)j<miplen; j+=stride)
|
||||
for (k=0; k<8; k++) *cptr++ = pic[j+k];
|
||||
if (glusetexcache == 2)
|
||||
{
|
||||
#ifdef USELZF
|
||||
j = (miplen/stride)<<3;
|
||||
cleng = qlz_compress(midbuf,packbuf,j,state_compress);
|
||||
if (cleng == 0 || cleng > j-1)
|
||||
{
|
||||
cleng = j;
|
||||
writebuf = midbuf;
|
||||
}
|
||||
else writebuf = packbuf;
|
||||
#else
|
||||
cleng = lzwcompress(midbuf,(miplen/stride)*8,packbuf);
|
||||
writebuf = packbuf;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
cleng = (miplen/stride)<<3;
|
||||
writebuf = midbuf;
|
||||
}
|
||||
j = B_LITTLE32(cleng);
|
||||
Bwrite(fil,&j,sizeof(j));
|
||||
Bwrite(fil,writebuf,cleng);
|
||||
}
|
||||
|
||||
//rgb0,rgb1
|
||||
cptr = midbuf;
|
||||
for (k=0; k<=2; k+=2)
|
||||
for (j=0; (unsigned)j<miplen; j+=stride)
|
||||
{ *(int16_t *)cptr = hicosub(*(int16_t *)(&pic[offs+j+k])); cptr += 2; }
|
||||
if (glusetexcache == 2)
|
||||
{
|
||||
#ifdef USELZF
|
||||
j = (miplen/stride)<<2;
|
||||
cleng = qlz_compress(midbuf,packbuf,j,state_compress);
|
||||
if (cleng == 0 || cleng > j-1)
|
||||
{
|
||||
cleng = j;
|
||||
writebuf = midbuf;
|
||||
}
|
||||
else writebuf = packbuf;
|
||||
#else
|
||||
cleng = lzwcompress(midbuf,(miplen/stride)*4,packbuf);
|
||||
writebuf = packbuf;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
cleng = (miplen/stride)<<2;
|
||||
writebuf = midbuf;
|
||||
}
|
||||
j = B_LITTLE32(cleng);
|
||||
Bwrite(fil,&j,sizeof(j));
|
||||
Bwrite(fil,writebuf,cleng);
|
||||
|
||||
//index_4x4
|
||||
cptr = midbuf;
|
||||
for (j=0; (unsigned)j<miplen; j+=stride)
|
||||
{
|
||||
char *c2 = &pic[j+offs+4];
|
||||
cptr[0] = ((c2[0]>>0)&3) + (((c2[1]>>0)&3)<<2) + (((c2[2]>>0)&3)<<4) + (((c2[3]>>0)&3)<<6);
|
||||
cptr[1] = ((c2[0]>>2)&3) + (((c2[1]>>2)&3)<<2) + (((c2[2]>>2)&3)<<4) + (((c2[3]>>2)&3)<<6);
|
||||
cptr[2] = ((c2[0]>>4)&3) + (((c2[1]>>4)&3)<<2) + (((c2[2]>>4)&3)<<4) + (((c2[3]>>4)&3)<<6);
|
||||
cptr[3] = ((c2[0]>>6)&3) + (((c2[1]>>6)&3)<<2) + (((c2[2]>>6)&3)<<4) + (((c2[3]>>6)&3)<<6);
|
||||
cptr += 4;
|
||||
}
|
||||
if (glusetexcache == 2)
|
||||
{
|
||||
#ifdef USELZF
|
||||
j = (miplen/stride)<<2;
|
||||
cleng = qlz_compress(midbuf,packbuf,j,state_compress);
|
||||
if (cleng == 0 || cleng > j-1)
|
||||
{
|
||||
cleng = j;
|
||||
writebuf = midbuf;
|
||||
}
|
||||
else writebuf = packbuf;
|
||||
#else
|
||||
cleng = lzwcompress(midbuf,(miplen/stride)*4,packbuf);
|
||||
writebuf = packbuf;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
cleng = (miplen/stride)<<2;
|
||||
writebuf = midbuf;
|
||||
}
|
||||
j = B_LITTLE32(cleng);
|
||||
Bwrite(fil,&j,sizeof(j));
|
||||
Bwrite(fil,writebuf,cleng);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
int32_t dxtfilter(int32_t fil, texcachepicture *pict, char *pic, void *midbuf, char *packbuf, uint32_t miplen)
|
||||
{
|
||||
void *writebuf;
|
||||
uint32_t j, k, offs, stride, cleng;
|
||||
char *cptr;
|
||||
|
||||
if ((pict->format == B_LITTLE32(GL_COMPRESSED_RGB_S3TC_DXT1_EXT)) ||
|
||||
(pict->format == B_LITTLE32(GL_COMPRESSED_RGBA_S3TC_DXT1_EXT))) { offs = 0; stride = 8; }
|
||||
else if ((pict->format == B_LITTLE32(GL_COMPRESSED_RGBA_S3TC_DXT3_EXT)) ||
|
||||
(pict->format == B_LITTLE32(GL_COMPRESSED_RGBA_S3TC_DXT5_EXT))) { offs = 8; stride = 16; }
|
||||
else { offs = 0; stride = 8; }
|
||||
|
||||
if (stride == 16) //If DXT3...
|
||||
{
|
||||
//alpha_4x4
|
||||
cptr = midbuf;
|
||||
for (k=0; k<8; k++) *cptr++ = pic[k];
|
||||
for (j=stride; (unsigned)j<miplen; j+=stride)
|
||||
for (k=0; k<8; k++) *cptr++ = pic[j+k];
|
||||
if (glusetexcache == 2)
|
||||
{
|
||||
j = (miplen/stride)<<3;
|
||||
cleng = qlz_compress(midbuf,packbuf,j,state_compress);
|
||||
if (cleng == 0 || cleng > j-1)
|
||||
{
|
||||
cleng = j;
|
||||
writebuf = midbuf;
|
||||
}
|
||||
else writebuf = packbuf;
|
||||
}
|
||||
else
|
||||
{
|
||||
cleng = (miplen/stride)<<3;
|
||||
writebuf = midbuf;
|
||||
}
|
||||
j = B_LITTLE32(cleng);
|
||||
Bwrite(fil,&j,sizeof(j));
|
||||
Bwrite(fil,writebuf,cleng);
|
||||
}
|
||||
|
||||
//rgb0,rgb1
|
||||
cptr = midbuf;
|
||||
for (k=0; k<=2; k+=2)
|
||||
for (j=0; (unsigned)j<miplen; j+=stride)
|
||||
{ *(int16_t *)cptr = hicosub(*(int16_t *)(&pic[offs+j+k])); cptr += 2; }
|
||||
if (glusetexcache == 2)
|
||||
{
|
||||
j = (miplen/stride)<<2;
|
||||
cleng = qlz_compress(midbuf,packbuf,j,state_compress);
|
||||
if (cleng == 0 || cleng > j-1)
|
||||
{
|
||||
cleng = j;
|
||||
writebuf = midbuf;
|
||||
}
|
||||
else writebuf = packbuf;
|
||||
}
|
||||
else
|
||||
{
|
||||
cleng = (miplen/stride)<<2;
|
||||
writebuf = midbuf;
|
||||
}
|
||||
j = B_LITTLE32(cleng);
|
||||
Bwrite(fil,&j,sizeof(j));
|
||||
Bwrite(fil,writebuf,cleng);
|
||||
|
||||
//index_4x4
|
||||
cptr = midbuf;
|
||||
for (j=0; (unsigned)j<miplen; j+=stride)
|
||||
{
|
||||
char *c2 = &pic[j+offs+4];
|
||||
cptr[0] = ((c2[0]>>0)&3) + (((c2[1]>>0)&3)<<2) + (((c2[2]>>0)&3)<<4) + (((c2[3]>>0)&3)<<6);
|
||||
cptr[1] = ((c2[0]>>2)&3) + (((c2[1]>>2)&3)<<2) + (((c2[2]>>2)&3)<<4) + (((c2[3]>>2)&3)<<6);
|
||||
cptr[2] = ((c2[0]>>4)&3) + (((c2[1]>>4)&3)<<2) + (((c2[2]>>4)&3)<<4) + (((c2[3]>>4)&3)<<6);
|
||||
cptr[3] = ((c2[0]>>6)&3) + (((c2[1]>>6)&3)<<2) + (((c2[2]>>6)&3)<<4) + (((c2[3]>>6)&3)<<6);
|
||||
cptr += 4;
|
||||
}
|
||||
if (glusetexcache == 2)
|
||||
{
|
||||
j = (miplen/stride)<<2;
|
||||
cleng = qlz_compress(midbuf,packbuf,j,state_compress);
|
||||
if (cleng == 0 || cleng > j-1)
|
||||
{
|
||||
cleng = j;
|
||||
writebuf = midbuf;
|
||||
}
|
||||
else writebuf = packbuf;
|
||||
}
|
||||
else
|
||||
{
|
||||
cleng = (miplen/stride)<<2;
|
||||
writebuf = midbuf;
|
||||
}
|
||||
j = B_LITTLE32(cleng);
|
||||
Bwrite(fil,&j,sizeof(j));
|
||||
Bwrite(fil,writebuf,cleng);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32_t dedxtfilter(int32_t fil, texcachepicture *pict, char *pic, void *midbuf, char *packbuf, int32_t ispacked)
|
||||
{
|
||||
void *inbuf;
|
||||
#if (USEKENFILTER == 0)
|
||||
uint32_t cleng;
|
||||
if (Bread(fil, &cleng, sizeof(uint32_t)) != sizeof(uint32_t)) return -1; cleng = B_LITTLE32(cleng);
|
||||
#ifdef USELZF
|
||||
if (ispacked && cleng < pict->size) inbuf = packbuf; else inbuf = pic;
|
||||
if (Bread(fil, inbuf, cleng) != cleng) return -1;
|
||||
if (ispacked && cleng < pict->size)
|
||||
if (qlz_decompress(packbuf, pic, state_decompress) == 0) return -1;
|
||||
#else
|
||||
if (ispacked) inbuf = packbuf; else inbuf = pic;
|
||||
if (Bread(fil, inbuf, cleng) != cleng) return -1;
|
||||
if (ispacked && lzwuncompress(packbuf, cleng, pic, pict->size) != pict->size) return -1;
|
||||
#endif
|
||||
#else
|
||||
int32_t j, k, offs, stride, cleng;
|
||||
char *cptr;
|
||||
|
||||
|
@ -6301,17 +6323,48 @@ int32_t dedxtfilter(int32_t fil, texcachepicture *pict, char *pic, void *midbuf,
|
|||
if (stride == 16) //If DXT3...
|
||||
{
|
||||
//alpha_4x4
|
||||
if (Bread(fil,&cleng,4) < 4) return -1; cleng = B_LITTLE32(cleng);
|
||||
if (memcachedata && memcachesize >= (signed)(cachepos + sizeof(int32_t)))
|
||||
{
|
||||
cleng = *(int32_t *)(memcachedata + cachepos);
|
||||
cachepos += sizeof(int32_t);
|
||||
}
|
||||
else
|
||||
{
|
||||
Blseek(fil, cachepos, BSEEK_SET);
|
||||
cachepos += sizeof(int32_t);
|
||||
if (Bread(fil,&cleng,sizeof(int32_t)) < (signed)sizeof(int32_t)) return -1;
|
||||
cleng = B_LITTLE32(cleng);
|
||||
}
|
||||
|
||||
j = (pict->size/stride)*8;
|
||||
#ifdef USELZF
|
||||
|
||||
if (ispacked && cleng < j) inbuf = packbuf; else inbuf = midbuf;
|
||||
if (Bread(fil,inbuf,cleng) < cleng) return -1;
|
||||
if (ispacked && cleng < j)
|
||||
if (qlz_decompress(packbuf,midbuf,state_decompress) == 0) return -1;
|
||||
#else
|
||||
if (Bread(fil,inbuf,cleng) < cleng) return -1;
|
||||
if (ispacked && lzwuncompress(packbuf,cleng,midbuf,j) != j) return -1;
|
||||
#endif
|
||||
|
||||
if (memcachedata && memcachesize >= (signed)(cachepos + cleng))
|
||||
{
|
||||
if (ispacked && cleng < j)
|
||||
{
|
||||
if (qlz_decompress((const char *)memcachedata + cachepos,midbuf,state_decompress) == 0)
|
||||
{
|
||||
cachepos += cleng;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else Bmemcpy(inbuf, memcachedata + cachepos, cleng);
|
||||
|
||||
cachepos += cleng;
|
||||
}
|
||||
else
|
||||
{
|
||||
Blseek(fil, cachepos, BSEEK_SET);
|
||||
cachepos += cleng;
|
||||
if (Bread(fil,inbuf,cleng) < cleng) return -1;
|
||||
|
||||
|
||||
if (ispacked && cleng < j)
|
||||
if (qlz_decompress(packbuf,midbuf,state_decompress) == 0) return -1;
|
||||
}
|
||||
|
||||
cptr = midbuf;
|
||||
for (k=0; k<8; k++) pic[k] = *cptr++;
|
||||
for (j=stride; j<pict->size; j+=stride)
|
||||
|
@ -6319,37 +6372,97 @@ int32_t dedxtfilter(int32_t fil, texcachepicture *pict, char *pic, void *midbuf,
|
|||
}
|
||||
|
||||
//rgb0,rgb1
|
||||
if (Bread(fil,&cleng,4) < 4) return -1; cleng = B_LITTLE32(cleng);
|
||||
if (memcachedata && memcachesize >= (signed)(cachepos + sizeof(int32_t)))
|
||||
{
|
||||
cleng = *(int32_t *)(memcachedata + cachepos);
|
||||
cachepos += sizeof(int32_t);
|
||||
}
|
||||
else
|
||||
{
|
||||
Blseek(fil, cachepos, BSEEK_SET);
|
||||
cachepos += sizeof(int32_t);
|
||||
if (Bread(fil,&cleng,sizeof(int32_t)) < (signed)sizeof(int32_t)) return -1;
|
||||
cleng = B_LITTLE32(cleng);
|
||||
}
|
||||
|
||||
j = (pict->size/stride)*4;
|
||||
#ifdef USELZF
|
||||
if (ispacked && cleng < j) inbuf = packbuf; else inbuf = midbuf;
|
||||
if (Bread(fil,inbuf,cleng) < cleng) return -1;
|
||||
if (ispacked && cleng < j)
|
||||
if (qlz_decompress(packbuf,midbuf,state_decompress) == 0) return -1;
|
||||
#else
|
||||
if (Bread(fil,inbuf,cleng) < cleng) return -1;
|
||||
if (ispacked && lzwuncompress(packbuf,cleng,midbuf,j) != j) return -1;
|
||||
#endif
|
||||
|
||||
if (memcachedata && memcachesize >= (signed)(cachepos + cleng))
|
||||
{
|
||||
if (ispacked && cleng < j)
|
||||
{
|
||||
if (qlz_decompress((const char *)memcachedata + cachepos,midbuf,state_decompress) == 0)
|
||||
{
|
||||
cachepos += cleng;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else Bmemcpy(inbuf, memcachedata + cachepos, cleng);
|
||||
|
||||
cachepos += cleng;
|
||||
}
|
||||
else
|
||||
{
|
||||
Blseek(fil, cachepos, BSEEK_SET);
|
||||
cachepos += cleng;
|
||||
if (Bread(fil,inbuf,cleng) < cleng) return -1;
|
||||
|
||||
if (ispacked && cleng < j)
|
||||
if (qlz_decompress(packbuf,midbuf,state_decompress) == 0) return -1;
|
||||
}
|
||||
|
||||
cptr = midbuf;
|
||||
for (k=0; k<=2; k+=2)
|
||||
{
|
||||
for (j=0; j<pict->size; j+=stride)
|
||||
{
|
||||
*(int16_t *)(&pic[offs+j+k]) = hicoadd(*(int16_t *)cptr);
|
||||
cptr += 2;
|
||||
}
|
||||
}
|
||||
|
||||
//index_4x4:
|
||||
if (Bread(fil,&cleng,4) < 4) return -1; cleng = B_LITTLE32(cleng);
|
||||
if (memcachedata && memcachesize >= (signed)(cachepos + sizeof(int32_t)))
|
||||
{
|
||||
cleng = *(int32_t *)(memcachedata + cachepos);
|
||||
cachepos += sizeof(int32_t);
|
||||
}
|
||||
else
|
||||
{
|
||||
Blseek(fil, cachepos, BSEEK_SET);
|
||||
cachepos += sizeof(int32_t);
|
||||
if (Bread(fil,&cleng,sizeof(int32_t)) < (signed)sizeof(int32_t)) return -1;
|
||||
cleng = B_LITTLE32(cleng);
|
||||
}
|
||||
|
||||
j = (pict->size/stride)*4;
|
||||
#ifdef USELZF
|
||||
if (ispacked && cleng < j) inbuf = packbuf; else inbuf = midbuf;
|
||||
if (Bread(fil,inbuf,cleng) < cleng) return -1;
|
||||
if (ispacked && cleng < j)
|
||||
if (qlz_decompress(packbuf,midbuf,state_decompress) == 0) return -1;
|
||||
#else
|
||||
if (Bread(fil,inbuf,cleng) < cleng) return -1;
|
||||
if (ispacked && lzwuncompress(packbuf,cleng,midbuf,j) != j) return -1;
|
||||
#endif
|
||||
|
||||
if (memcachedata && memcachesize >= (signed)(cachepos + cleng))
|
||||
{
|
||||
if (ispacked && cleng < j)
|
||||
{
|
||||
if (qlz_decompress((const char *)memcachedata + cachepos,midbuf,state_decompress) == 0)
|
||||
{
|
||||
cachepos += cleng;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else Bmemcpy(inbuf, memcachedata + cachepos, cleng);
|
||||
|
||||
cachepos += cleng;
|
||||
}
|
||||
else
|
||||
{
|
||||
Blseek(fil, cachepos, BSEEK_SET);
|
||||
cachepos += cleng;
|
||||
if (Bread(fil,inbuf,cleng) < cleng) return -1;
|
||||
|
||||
if (ispacked && cleng < j)
|
||||
if (qlz_decompress(packbuf,midbuf,state_decompress) == 0) return -1;
|
||||
}
|
||||
|
||||
cptr = midbuf;
|
||||
for (j=0; j<pict->size; j+=stride)
|
||||
{
|
||||
|
@ -6359,7 +6472,6 @@ int32_t dedxtfilter(int32_t fil, texcachepicture *pict, char *pic, void *midbuf,
|
|||
pic[j+offs+7] = ((cptr[0]>>6)&3) + (((cptr[1]>>6)&3)<<2) + (((cptr[2]>>6)&3)<<4) + (((cptr[3]>>6)&3)<<6);
|
||||
cptr += 4;
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -108,6 +108,11 @@ static inline void RI_ProcessKeyboard(const RAWKEYBOARD* rkbd)
|
|||
case VK_NUMPAD6:
|
||||
if (rkbd->Flags & RI_KEY_E0) VKey = VK_RIGHT, key = sc_RightArrow;
|
||||
else VKey = VK_NUMPAD6, key = sc_kpad_6; break;
|
||||
case VK_DIVIDE:
|
||||
// if (rkbd->Flags & RI_KEY_E0) key = sc_Slash;
|
||||
// else
|
||||
key = sc_kpad_Slash;
|
||||
break;
|
||||
case VK_INSERT:
|
||||
key = sc_Insert; break;
|
||||
case VK_HOME:
|
||||
|
|
|
@ -73,23 +73,6 @@ char nogl=0;
|
|||
#endif
|
||||
int32_t vsync=0;
|
||||
|
||||
// input
|
||||
char inputdevices=0;
|
||||
char keystatus[256], keyfifo[KEYFIFOSIZ], keyfifoplc, keyfifoend;
|
||||
char keyasciififo[KEYFIFOSIZ], keyasciififoplc, keyasciififoend;
|
||||
char remap[256];
|
||||
int32_t remapinit=0;
|
||||
static char key_names[256][24];
|
||||
volatile int32_t mousex=0,mousey=0,mouseb=0;
|
||||
int32_t *joyaxis = NULL, joyb=0, *joyhat = NULL;
|
||||
char joyisgamepad=0, joynumaxes=0, joynumbuttons=0, joynumhats=0;
|
||||
int32_t joyaxespresent=0;
|
||||
|
||||
|
||||
void(*keypresscallback)(int32_t,int32_t) = 0;
|
||||
void(*mousepresscallback)(int32_t,int32_t) = 0;
|
||||
void(*joypresscallback)(int32_t,int32_t) = 0;
|
||||
|
||||
#if (SDL_MAJOR_VERSION == 1 && SDL_MINOR_VERSION < 3)
|
||||
static char keytranslation[SDLK_LAST];
|
||||
#else
|
||||
|
@ -502,11 +485,6 @@ void uninitinput(void)
|
|||
}
|
||||
}
|
||||
|
||||
const char *getkeyname(int32_t num)
|
||||
{
|
||||
return ((unsigned)num >= 256) ? NULL : key_names[num];
|
||||
}
|
||||
|
||||
const char *getjoyname(int32_t what, int32_t num)
|
||||
{
|
||||
static char tmp[64];
|
||||
|
@ -533,33 +511,6 @@ const char *getjoyname(int32_t what, int32_t num)
|
|||
}
|
||||
}
|
||||
|
||||
//
|
||||
// bgetchar, bflushchars -- character-based input functions
|
||||
//
|
||||
char bgetchar(void)
|
||||
{
|
||||
if (keyasciififoplc == keyasciififoend)
|
||||
return 0;
|
||||
|
||||
{
|
||||
char c = keyasciififo[keyasciififoplc];
|
||||
keyasciififoplc = ((keyasciififoplc+1)&(KEYFIFOSIZ-1));
|
||||
return c;
|
||||
}
|
||||
}
|
||||
|
||||
void bflushchars(void)
|
||||
{
|
||||
keyasciififoplc = keyasciififoend = 0;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// set{key|mouse|joy}presscallback() -- sets a callback which gets notified when keys are pressed
|
||||
//
|
||||
void setkeypresscallback(void(*callback)(int32_t, int32_t)) { keypresscallback = callback; }
|
||||
void setmousepresscallback(void(*callback)(int32_t, int32_t)) { mousepresscallback = callback; }
|
||||
void setjoypresscallback(void(*callback)(int32_t, int32_t)) { joypresscallback = callback; }
|
||||
|
||||
//
|
||||
// initmouse() -- init mouse input
|
||||
|
@ -1417,16 +1368,14 @@ void showframe(int32_t w)
|
|||
bglEnable(GL_BLEND);
|
||||
bglColor4ub(palfadergb.r, palfadergb.g, palfadergb.b, palfadedelta);
|
||||
|
||||
bglBegin(GL_QUADS);
|
||||
bglVertex2i(-1, -1);
|
||||
bglVertex2i(1, -1);
|
||||
bglVertex2i(1, 1);
|
||||
bglVertex2i(-1, 1);
|
||||
bglBegin(GL_TRIANGLES);
|
||||
bglVertex2f(-2.5f, 1.f);
|
||||
bglVertex2f(2.5f, 1.f);
|
||||
bglVertex2f(.0f, -2.5f);
|
||||
bglEnd();
|
||||
|
||||
bglDisable(GL_BLEND);
|
||||
|
||||
bglMatrixMode(GL_MODELVIEW);
|
||||
bglPopMatrix();
|
||||
bglMatrixMode(GL_PROJECTION);
|
||||
bglPopMatrix();
|
||||
|
@ -1549,18 +1498,6 @@ static SDL_Surface * loadappicon(void)
|
|||
// returns !0 if there was an important event worth checking (like quitting)
|
||||
//
|
||||
|
||||
static inline void SetKey(int32_t key, int32_t state)
|
||||
{
|
||||
keystatus[remap[key]] = state;
|
||||
|
||||
if (state)
|
||||
{
|
||||
keyfifo[keyfifoend] = remap[key];
|
||||
keyfifo[(keyfifoend+1)&(KEYFIFOSIZ-1)] = state;
|
||||
keyfifoend = ((keyfifoend+2)&(KEYFIFOSIZ-1));
|
||||
}
|
||||
}
|
||||
|
||||
int32_t handleevents(void)
|
||||
{
|
||||
int32_t code, rv=0, j;
|
||||
|
|
|
@ -1,14 +1,5 @@
|
|||
// Windows DIB/DirectDraw interface layer
|
||||
// for the Build Engine
|
||||
// by Jonathon Fowler (jonof@edgenetwk.com)
|
||||
//
|
||||
// This is all very ugly.
|
||||
//
|
||||
// Written for DirectX 6.0
|
||||
|
||||
#ifndef _WIN32
|
||||
#error winlayer.c is for Windows only.
|
||||
#endif
|
||||
// Windows DIB/DirectDraw interface layer for the Build Engine
|
||||
// Originally by Jonathon Fowler (jonof@edgenetwk.com)
|
||||
|
||||
#define DIRECTINPUT_VERSION 0x0700
|
||||
#define DIRECTDRAW_VERSION 0x0600
|
||||
|
@ -24,7 +15,6 @@
|
|||
|
||||
#include "dxdidf.h" // comment this out if c_dfDI* is being reported as multiply defined
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <signal.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
|
@ -99,48 +89,50 @@ static BOOL CreateAppWindow(int32_t modenum);
|
|||
static void DestroyAppWindow(void);
|
||||
|
||||
// video
|
||||
static int32_t desktopxdim=0,desktopydim=0,desktopbpp=0,modesetusing=-1;
|
||||
int32_t xres=-1, yres=-1, fullscreen=0, bpp=0, bytesperline=0, imageSize=0;
|
||||
intptr_t frameplace=0;
|
||||
int32_t lockcount=0;
|
||||
static int32_t desktopxdim=0;
|
||||
static int32_t desktopydim=0;
|
||||
static int32_t desktopbpp=0;
|
||||
static int32_t modesetusing=-1;
|
||||
static int32_t curvidmode = -1;
|
||||
static int32_t customxdim = 640, customydim = 480, custombpp = 8, customfs = 0;
|
||||
static int32_t customxdim = 640;
|
||||
static int32_t customydim = 480;
|
||||
static int32_t custombpp = 8;
|
||||
static int32_t customfs = 0;
|
||||
static uint32_t modeschecked=0;
|
||||
uint32_t maxrefreshfreq=60;
|
||||
char modechange=1, repaintneeded=0;
|
||||
char offscreenrendering=0;
|
||||
int32_t xres=-1;
|
||||
int32_t yres=-1;
|
||||
int32_t fullscreen=0;
|
||||
int32_t bpp=0;
|
||||
int32_t bytesperline=0;
|
||||
int32_t imageSize=0;
|
||||
int32_t lockcount=0;
|
||||
int32_t glcolourdepth=32;
|
||||
int32_t vsync=0;
|
||||
uint32_t maxrefreshfreq=60;
|
||||
intptr_t frameplace=0;
|
||||
char modechange=1;
|
||||
char repaintneeded=0;
|
||||
char offscreenrendering=0;
|
||||
char videomodereset = 0;
|
||||
char silentvideomodeswitch = 0;
|
||||
int32_t vsync=0;
|
||||
// input and events
|
||||
char inputdevices=0;
|
||||
char quitevent=0, appactive=1, realfs=0, regrabmouse=0;
|
||||
volatile int32_t mousex=0, mousey=0, mouseb=0;
|
||||
uint32_t mousewheel[2] = { 0,0 };
|
||||
|
||||
int32_t *joyaxis = NULL, joyb=0, *joyhat = NULL;
|
||||
char joyisgamepad=0, joynumaxes=0, joynumbuttons=0, joynumhats=0;
|
||||
// input and events
|
||||
char quitevent=0;
|
||||
char appactive=1;
|
||||
char realfs=0;
|
||||
char regrabmouse=0;
|
||||
uint32_t mousewheel[2] = { 0,0 };
|
||||
|
||||
static char taskswitching=1;
|
||||
|
||||
char keystatus[256], keyfifo[KEYFIFOSIZ], keyfifoplc, keyfifoend;
|
||||
char keyasciififo[KEYFIFOSIZ], keyasciififoplc, keyasciififoend;
|
||||
char remap[256];
|
||||
int32_t remapinit=0;
|
||||
static char key_names[256][24];
|
||||
|
||||
static OSVERSIONINFOEX osv;
|
||||
|
||||
#ifdef NEDMALLOC
|
||||
extern int32_t largepagesavailable;
|
||||
#else
|
||||
static HMODULE nedhandle = NULL;
|
||||
#endif
|
||||
|
||||
void (*keypresscallback)(int32_t,int32_t) = 0;
|
||||
void (*mousepresscallback)(int32_t,int32_t) = 0;
|
||||
void (*joypresscallback)(int32_t,int32_t) = 0;
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// DINPUT (JOYSTICK)
|
||||
|
@ -244,6 +236,8 @@ int32_t wm_msgbox(char *name, char *fmt, ...)
|
|||
MessageBox(hWindow,buf,name,MB_OK|MB_TASKMODAL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int32_t wm_ynbox(char *name, char *fmt, ...)
|
||||
{
|
||||
char buf[2048];
|
||||
|
@ -360,7 +354,7 @@ int32_t WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, in
|
|||
ReleaseDC(NULL, hdc);
|
||||
if (r < 8)
|
||||
{
|
||||
MessageBox(0, "This application requires a desktop colour depth of 256-colours or more.",
|
||||
MessageBox(0, "This application requires a desktop color depth of 256-colors or better.",
|
||||
apptitle, MB_OK|MB_ICONSTOP);
|
||||
return -1;
|
||||
}
|
||||
|
@ -646,7 +640,7 @@ void uninitsystem(void)
|
|||
#endif
|
||||
|
||||
#ifndef NEDMALLOC
|
||||
if (nedhandle) FreeLibrary(nedhandle), nedhandle = NULL;
|
||||
// if (nedhandle) FreeLibrary(nedhandle), nedhandle = NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -749,19 +743,6 @@ int32_t handleevents(void)
|
|||
}
|
||||
|
||||
|
||||
// I don't see any pressing need to store the key-up events yet
|
||||
inline void SetKey(int32_t key, int32_t state)
|
||||
{
|
||||
keystatus[remap[key]] = state;
|
||||
|
||||
if (state)
|
||||
{
|
||||
keyfifo[keyfifoend] = remap[key];
|
||||
keyfifo[(keyfifoend+1)&(KEYFIFOSIZ-1)] = state;
|
||||
keyfifoend = ((keyfifoend+2)&(KEYFIFOSIZ-1));
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// initinput() -- init input system
|
||||
//
|
||||
|
@ -812,33 +793,6 @@ void uninitinput(void)
|
|||
}
|
||||
|
||||
|
||||
//
|
||||
// bgetchar, bflushchars -- character-based input functions
|
||||
//
|
||||
char bgetchar(void)
|
||||
{
|
||||
char c;
|
||||
if (keyasciififoplc == keyasciififoend) return 0;
|
||||
c = keyasciififo[keyasciififoplc];
|
||||
keyasciififoplc = ((keyasciififoplc+1)&(KEYFIFOSIZ-1));
|
||||
//OSD_Printf("bgetchar %d, %d-%d\n",c,keyasciififoplc,keyasciififoend);
|
||||
return c;
|
||||
}
|
||||
|
||||
void bflushchars(void)
|
||||
{
|
||||
Bmemset(&keyasciififo,0,sizeof(keyasciififo));
|
||||
keyasciififoplc = keyasciififoend = 0;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// set{key|mouse|joy}presscallback() -- sets a callback which gets notified when keys are pressed
|
||||
//
|
||||
void setkeypresscallback(void (*callback)(int32_t, int32_t)) { keypresscallback = callback; }
|
||||
void setmousepresscallback(void (*callback)(int32_t, int32_t)) { mousepresscallback = callback; }
|
||||
void setjoypresscallback(void (*callback)(int32_t, int32_t)) { joypresscallback = callback; }
|
||||
|
||||
inline void idle_waitevent_timeout(uint32_t timeout)
|
||||
{
|
||||
// timeout becomes a completion deadline
|
||||
|
@ -1257,11 +1211,6 @@ static void GetKeyNames(void)
|
|||
}
|
||||
}
|
||||
|
||||
const char *getkeyname(int32_t num)
|
||||
{
|
||||
return ((unsigned)num >= 256) ? NULL : key_names[num];
|
||||
}
|
||||
|
||||
const char *getjoyname(int32_t what, int32_t num)
|
||||
{
|
||||
switch (what)
|
||||
|
@ -2042,16 +1991,14 @@ void showframe(int32_t w)
|
|||
bglEnable(GL_BLEND);
|
||||
bglColor4ub(palfadergb.r, palfadergb.g, palfadergb.b, palfadedelta);
|
||||
|
||||
bglBegin(GL_QUADS);
|
||||
bglVertex2i(-1, -1);
|
||||
bglVertex2i(1, -1);
|
||||
bglVertex2i(1, 1);
|
||||
bglVertex2i(-1, 1);
|
||||
bglBegin(GL_TRIANGLES);
|
||||
bglVertex2f(-2.5f, 1.f);
|
||||
bglVertex2f(2.5f, 1.f);
|
||||
bglVertex2f(.0f, -2.5f);
|
||||
bglEnd();
|
||||
|
||||
bglDisable(GL_BLEND);
|
||||
|
||||
bglMatrixMode(GL_MODELVIEW);
|
||||
bglPopMatrix();
|
||||
bglMatrixMode(GL_PROJECTION);
|
||||
bglPopMatrix();
|
||||
|
|
|
@ -1,69 +0,0 @@
|
|||
// Duke Nukem 3D Sample Defs file
|
||||
//
|
||||
// For an explanation of the contents of this file, read releasenotes.html
|
||||
// in the section titled "DEF-file Language"
|
||||
|
||||
include DEFS.CON
|
||||
|
||||
// These entries define Hightile tints
|
||||
// definetint <pal> <r> <g> <b> <effects>
|
||||
definetint 1 110 110 255 1
|
||||
definetint 2 255 110 80 1
|
||||
definetint 4 0 0 0 0
|
||||
definetint 6 192 255 138 3
|
||||
definetint 7 228 200 172 0
|
||||
definetint 8 180 255 200 0
|
||||
|
||||
// This entry defines a texture replacement
|
||||
// definetexture <tilenum> <pal> 0 0 -1 -1 <filename>
|
||||
//definetexture FEMPIC7 0 0 0 -1 -1 "textures/rikaa.png"
|
||||
|
||||
// These entries demonstrate replacing the Pig Cop character with a model
|
||||
// Editart tile indices:
|
||||
// walk 2000-2019
|
||||
// pump 2025-2027
|
||||
// stand 2030-2034
|
||||
// shoot 2035-2037
|
||||
// dive 2040-2044
|
||||
// dived 2045-2049
|
||||
// dshoot 2050-2052
|
||||
// hit 2055
|
||||
// die 2056-2059
|
||||
// dead 2060
|
||||
// definemodel <filename> <scale> <shadeoffs>
|
||||
// defineskin <palette> <filename>
|
||||
// definemodelanim <startframe> <endframe> <fps> <flags>
|
||||
// definemodelframe <framename> <starttile> <endtile>
|
||||
definemodel "models/pigcop.md2" 1.30 0
|
||||
definemodelskin 0 "models/pigcop.jpg"
|
||||
|
||||
definemodelanim "walk0" "walk13" 20 0
|
||||
definemodelframe "walk0" 2000 2019
|
||||
|
||||
definemodelanim "pump0" "pump2" 10 1
|
||||
definemodelframe "pump0" 2025 2027
|
||||
|
||||
definemodelframe "stand" 2030 2034
|
||||
|
||||
definemodelanim "shoot0" "shoot2" 10 1
|
||||
definemodelframe "shoot0" 2035 2037
|
||||
|
||||
definemodelanim "dive0" "dive3" 8 1
|
||||
definemodelframe "dive0" 2040 2044
|
||||
definemodelframe "dive3" 2045 2049
|
||||
|
||||
definemodelanim "dshoot0" "dshoot2" 10 1
|
||||
definemodelframe "dshoot0" 2050 2052
|
||||
|
||||
definemodelframe "die0" 2055 2055
|
||||
definemodelanim "die1" "dead" 13 1
|
||||
definemodelframe "die1" 2056 2059
|
||||
definemodelframe "dead" 2060 2060
|
||||
|
||||
|
||||
// These entries demonstrate voxel replacements
|
||||
// definevoxel <filename>
|
||||
// definevoxeltiles <starttile> <endtile>
|
||||
//definevoxel "voxels/barstool.kvx"
|
||||
//definevoxeltiles 1006 1006
|
||||
|
|
@ -257,6 +257,10 @@
|
|||
<ClCompile Include="source\enet\src\unix.c" />
|
||||
<ClCompile Include="source\enet\src\win32.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="build\Makefile.msvc" />
|
||||
<None Include="Makefile.msvc" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
|
|
@ -600,4 +600,12 @@
|
|||
<Filter>build\source</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Makefile.msvc">
|
||||
<Filter>eduke32</Filter>
|
||||
</None>
|
||||
<None Include="build\Makefile.msvc">
|
||||
<Filter>build</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,389 +0,0 @@
|
|||
// include this file at the top of your game.con or eduke.con
|
||||
|
||||
// Game Events
|
||||
|
||||
// SYNTAX:
|
||||
//
|
||||
// onevent <eventid>
|
||||
// {
|
||||
// ... actions
|
||||
// }
|
||||
// endevent
|
||||
|
||||
// Internal event IDs
|
||||
|
||||
/*
|
||||
enum events {
|
||||
EVENT_INIT,
|
||||
EVENT_ENTERLEVEL,
|
||||
EVENT_RESETWEAPONS,
|
||||
EVENT_RESETINVENTORY,
|
||||
EVENT_HOLSTER,
|
||||
EVENT_LOOKLEFT,
|
||||
EVENT_LOOKRIGHT,
|
||||
EVENT_SOARUP,
|
||||
EVENT_SOARDOWN,
|
||||
EVENT_CROUCH,
|
||||
EVENT_JUMP,
|
||||
EVENT_RETURNTOCENTER,
|
||||
EVENT_LOOKUP,
|
||||
EVENT_LOOKDOWN,
|
||||
EVENT_AIMUP,
|
||||
EVENT_FIRE,
|
||||
EVENT_CHANGEWEAPON,
|
||||
EVENT_GETSHOTRANGE,
|
||||
EVENT_GETAUTOAIMANGLE,
|
||||
EVENT_GETLOADTILE,
|
||||
EVENT_CHEATGETSTEROIDS,
|
||||
EVENT_CHEATGETHEAT,
|
||||
EVENT_CHEATGETBOOT,
|
||||
EVENT_CHEATGETSHIELD,
|
||||
EVENT_CHEATGETSCUBA,
|
||||
EVENT_CHEATGETHOLODUKE,
|
||||
EVENT_CHEATGETJETPACK,
|
||||
EVENT_CHEATGETFIRSTAID,
|
||||
EVENT_QUICKKICK,
|
||||
EVENT_INVENTORY,
|
||||
EVENT_USENIGHTVISION,
|
||||
EVENT_USESTEROIDS,
|
||||
EVENT_INVENTORYLEFT,
|
||||
EVENT_INVENTORYRIGHT,
|
||||
EVENT_HOLODUKEON,
|
||||
EVENT_HOLODUKEOFF,
|
||||
EVENT_USEMEDKIT,
|
||||
EVENT_USEJETPACK,
|
||||
EVENT_TURNAROUND,
|
||||
EVENT_DISPLAYWEAPON,
|
||||
EVENT_FIREWEAPON,
|
||||
EVENT_SELECTWEAPON,
|
||||
EVENT_MOVEFORWARD,
|
||||
EVENT_MOVEBACKWARD,
|
||||
EVENT_TURNLEFT,
|
||||
EVENT_TURNRIGHT,
|
||||
EVENT_STRAFELEFT,
|
||||
EVENT_STRAFERIGHT,
|
||||
EVENT_WEAPKEY1,
|
||||
EVENT_WEAPKEY2,
|
||||
EVENT_WEAPKEY3,
|
||||
EVENT_WEAPKEY4,
|
||||
EVENT_WEAPKEY5,
|
||||
EVENT_WEAPKEY6,
|
||||
EVENT_WEAPKEY7,
|
||||
EVENT_WEAPKEY8,
|
||||
EVENT_WEAPKEY9,
|
||||
EVENT_WEAPKEY10,
|
||||
EVENT_DRAWWEAPON,
|
||||
EVENT_DISPLAYCROSSHAIR,
|
||||
EVENT_DISPLAYREST,
|
||||
EVENT_RESETPLAYER,
|
||||
EVENT_INCURDAMAGE,
|
||||
EVENT_AIMDOWN,
|
||||
EVENT_GAME,
|
||||
EVENT_PREVIOUSWEAPON,
|
||||
EVENT_NEXTWEAPON,
|
||||
EVENT_SWIMUP,
|
||||
EVENT_SWIMDOWN,
|
||||
EVENT_GETMENUTILE,
|
||||
EVENT_SPAWN,
|
||||
EVENT_LOGO,
|
||||
EVENT_EGS,
|
||||
EVENT_DOFIRE,
|
||||
EVENT_PRESSEDFIRE,
|
||||
EVENT_USE,
|
||||
EVENT_PROCESSINPUT
|
||||
};
|
||||
*/
|
||||
|
||||
// Internal projectile stuff
|
||||
|
||||
/*
|
||||
enum projectilelabels {
|
||||
PROJ_WORKSLIKE,
|
||||
PROJ_SPAWNS,
|
||||
PROJ_SXREPEAT,
|
||||
PROJ_SYREPEAT,
|
||||
PROJ_SOUND,
|
||||
PROJ_ISOUND,
|
||||
PROJ_VEL,
|
||||
PROJ_EXTRA,
|
||||
PROJ_DECAL,
|
||||
PROJ_TRAIL,
|
||||
PROJ_TXREPEAT,
|
||||
PROJ_TYREPEAT,
|
||||
PROJ_TOFFSET,
|
||||
PROJ_TNUM,
|
||||
PROJ_DROP,
|
||||
PROJ_CSTAT,
|
||||
PROJ_CLIPDIST,
|
||||
PROJ_SHADE,
|
||||
PROJ_XREPEAT,
|
||||
PROJ_YREPEAT,
|
||||
PROJ_PAL,
|
||||
PROJ_EXTRA_RAND,
|
||||
PROJ_HITRADIUS,
|
||||
PROJ_VEL_MULT,
|
||||
PROJ_OFFSET,
|
||||
PROJ_BOUNCES,
|
||||
PROJ_BSOUND,
|
||||
PROJ_RANGE
|
||||
};
|
||||
*/
|
||||
|
||||
// Variable definition Flags
|
||||
|
||||
#define GAMEVAR_FLAG_GLOBAL 0 // global variable (default)
|
||||
#define GAMEVAR_FLAG_PERPLAYER 1 // per-player variable
|
||||
#define GAMEVAR_FLAG_PERACTOR 2 // per-actor variable
|
||||
|
||||
// Weapon Flags
|
||||
// 1 Holstering Clears Clip
|
||||
// 2 Glows
|
||||
// 4 Automatic
|
||||
// 8 Fire Every other frame
|
||||
// 16 Fire Every third frame
|
||||
// 32 Random restart on automatic
|
||||
// 64 Use Ammo per burst
|
||||
// 128 Is a Bomb trigger
|
||||
// 256 Using does NOT cause player to become 'visible'
|
||||
// 512 Use 'throws' the 'shoots' item
|
||||
// 1024 Check weapon availability at 'reload' time
|
||||
// 2048 player should stop jumping
|
||||
// 0 Spawn Type 1 (pistol shells)
|
||||
// 4096 Spawn Type 2 (Shotgun shells)
|
||||
// 8192 Spawn Type 3 (CHAINGUN shells)
|
||||
// 16384 Semi-automatic
|
||||
// 32768 Pistol reload sound hack
|
||||
// 65536 Cycle kickback_pic back to 1 if fire is held down, else set to 0
|
||||
|
||||
// TRIPBOMB_CONTROL
|
||||
// 1 Tripwire. Trip Bomb works with tripwire.
|
||||
// 2 On timer. Trip Bomb works on timer
|
||||
|
||||
// PIPEBOMB_CONTROL
|
||||
// 1 Detonator. Pipe Bomb works with detonator.
|
||||
// 2 On timer. Pipe Bomb works on timer
|
||||
|
||||
gamevar WEAPON0_WORKSLIKE 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON0_CLIP 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON0_RELOAD 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON0_FIREDELAY 7 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON0_TOTALTIME 14 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON0_HOLDDELAY 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON0_FLAGS 292 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON0_SHOOTS 2521 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON0_SPAWNTIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON0_SPAWN 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON0_SHOTSPERBURST 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON0_INITIALSOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON0_FIRESOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON0_SOUND2TIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON0_SOUND2SOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON0_RELOADSOUND1 4 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON0_RELOADSOUND2 5 GAMEVAR_FLAG_PERPLAYER
|
||||
|
||||
gamevar WEAPON1_WORKSLIKE 1 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON1_CLIP 12 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON1_RELOAD 27 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON1_FIREDELAY 2 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON1_TOTALTIME 5 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON1_HOLDDELAY 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON1_FLAGS 32768 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON1_SHOOTS 2595 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON1_SPAWNTIME 2 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON1_SPAWN 2533 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON1_SHOTSPERBURST 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON1_INITIALSOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON1_FIRESOUND 3 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON1_SOUND2TIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON1_SOUND2SOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON1_RELOADSOUND1 4 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON1_RELOADSOUND2 5 GAMEVAR_FLAG_PERPLAYER
|
||||
|
||||
gamevar WEAPON2_WORKSLIKE 2 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON2_CLIP 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON2_RELOAD 13 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON2_FIREDELAY 4 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON2_TOTALTIME 30 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON2_HOLDDELAY 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON2_FLAGS 1024 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON2_SHOOTS 2613 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON2_SPAWNTIME 24 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON2_SPAWN 2535 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON2_SHOTSPERBURST 7 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON2_INITIALSOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON2_FIRESOUND 109 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON2_SOUND2TIME 15 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON2_SOUND2SOUND 169 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON2_RELOADSOUND1 4 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON2_RELOADSOUND2 5 GAMEVAR_FLAG_PERPLAYER
|
||||
|
||||
gamevar WEAPON3_WORKSLIKE 3 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON3_CLIP 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON3_RELOAD 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON3_FIREDELAY 3 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON3_TOTALTIME 12 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON3_HOLDDELAY 3 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON3_FLAGS 73812 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON3_SHOOTS 2536 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON3_SPAWNTIME 1 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON3_SPAWN 2533 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON3_SHOTSPERBURST 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON3_INITIALSOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON3_FIRESOUND 6 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON3_SOUND2TIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON3_SOUND2SOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON3_RELOADSOUND1 4 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON3_RELOADSOUND2 5 GAMEVAR_FLAG_PERPLAYER
|
||||
|
||||
gamevar WEAPON4_WORKSLIKE 4 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON4_CLIP 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON4_RELOAD 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON4_FIREDELAY 4 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON4_TOTALTIME 20 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON4_HOLDDELAY 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON4_FLAGS 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON4_SHOOTS 2605 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON4_SPAWNTIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON4_SPAWN 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON4_SHOTSPERBURST 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON4_INITIALSOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON4_FIRESOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON4_SOUND2TIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON4_SOUND2SOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON4_RELOADSOUND1 4 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON4_RELOADSOUND2 5 GAMEVAR_FLAG_PERPLAYER
|
||||
|
||||
gamevar WEAPON5_WORKSLIKE 5 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON5_CLIP 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON5_RELOAD 30 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON5_FIREDELAY 6 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON5_TOTALTIME 19 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON5_HOLDDELAY 12 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON5_FLAGS 512 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON5_SHOOTS 26 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON5_SPAWNTIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON5_SPAWN 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON5_SHOTSPERBURST 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON5_INITIALSOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON5_FIRESOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON5_SOUND2TIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON5_SOUND2SOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON5_RELOADSOUND1 4 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON5_RELOADSOUND2 5 GAMEVAR_FLAG_PERPLAYER
|
||||
|
||||
gamevar WEAPON6_WORKSLIKE 6 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON6_CLIP 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON6_RELOAD 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON6_FIREDELAY 10 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON6_TOTALTIME 12 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON6_HOLDDELAY 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON6_FLAGS 2 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON6_SHOOTS 2556 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON6_SPAWNTIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON6_SPAWN 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON6_SHOTSPERBURST 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON6_INITIALSOUND 11 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON6_FIRESOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON6_SOUND2TIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON6_SOUND2SOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON6_RELOADSOUND1 4 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON6_RELOADSOUND2 5 GAMEVAR_FLAG_PERPLAYER
|
||||
|
||||
gamevar WEAPON7_WORKSLIKE 7 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON7_CLIP 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON7_RELOAD 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON7_FIREDELAY 3 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON7_TOTALTIME 6 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON7_HOLDDELAY 5 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON7_FLAGS 72 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON7_SHOOTS 2605 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON7_SPAWNTIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON7_SPAWN 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON7_SHOTSPERBURST 2 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON7_INITIALSOUND 10 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON7_FIRESOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON7_SOUND2TIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON7_SOUND2SOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON7_RELOADSOUND1 4 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON7_RELOADSOUND2 5 GAMEVAR_FLAG_PERPLAYER
|
||||
|
||||
gamevar WEAPON8_WORKSLIKE 8 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON8_CLIP 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON8_RELOAD 16 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON8_FIREDELAY 3 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON8_TOTALTIME 16 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON8_HOLDDELAY 7 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON8_FLAGS 3072 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON8_SHOOTS 2563 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON8_SPAWNTIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON8_SPAWN 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON8_SHOTSPERBURST 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON8_INITIALSOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON8_FIRESOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON8_SOUND2TIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON8_SOUND2SOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON8_RELOADSOUND1 4 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON8_RELOADSOUND2 5 GAMEVAR_FLAG_PERPLAYER
|
||||
|
||||
gamevar WEAPON9_WORKSLIKE 9 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON9_CLIP 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON9_RELOAD 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON9_FIREDELAY 3 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON9_TOTALTIME 5 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON9_HOLDDELAY 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON9_FLAGS 65536 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON9_SHOOTS 1641 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON9_SPAWNTIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON9_SPAWN 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON9_SHOTSPERBURST 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON9_INITIALSOUND 10 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON9_FIRESOUND 10 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON9_SOUND2TIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON9_SOUND2SOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON9_RELOADSOUND1 4 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON9_RELOADSOUND2 5 GAMEVAR_FLAG_PERPLAYER
|
||||
|
||||
gamevar WEAPON10_WORKSLIKE 10 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON10_CLIP 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON10_RELOAD 10 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON10_FIREDELAY 2 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON10_TOTALTIME 10 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON10_HOLDDELAY 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON10_FLAGS 384 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON10_SHOOTS 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON10_SPAWNTIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON10_SPAWN 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON10_SHOTSPERBURST 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON10_INITIALSOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON10_FIRESOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON10_SOUND2TIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON10_SOUND2SOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON10_RELOADSOUND1 4 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON10_RELOADSOUND2 5 GAMEVAR_FLAG_PERPLAYER
|
||||
|
||||
gamevar WEAPON11_WORKSLIKE 11 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON11_CLIP 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON11_RELOAD 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON11_FIREDELAY 4 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON11_TOTALTIME 5 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON11_HOLDDELAY 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON11_FLAGS 2 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON11_SHOOTS 2448 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON11_SPAWNTIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON11_SPAWN 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON11_SHOTSPERBURST 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON11_INITIALSOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON11_FIRESOUND 388 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON11_SOUND2TIME 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON11_SOUND2SOUND 0 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON11_RELOADSOUND1 4 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar WEAPON11_RELOADSOUND2 5 GAMEVAR_FLAG_PERPLAYER
|
||||
|
||||
gamevar GRENADE_LIFETIME 120 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar GRENADE_LIFETIME_VAR 30 GAMEVAR_FLAG_PERPLAYER
|
||||
|
||||
gamevar STICKYBOMB_LIFETIME 120 GAMEVAR_FLAG_PERPLAYER
|
||||
gamevar STICKYBOMB_LIFETIME_VAR 30 GAMEVAR_FLAG_PERPLAYER
|
||||
|
||||
gamevar TRIPBOMB_CONTROL 1 GAMEVAR_FLAG_PERPLAYER // set value to 2 for timed bomb
|
||||
gamevar PIPEBOMB_CONTROL 1 GAMEVAR_FLAG_PERPLAYER // set value to 2 for grenade behavior
|
Binary file not shown.
|
@ -1,9 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2004, 2005 - Richard Gobeille (EDuke32 functionality)
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
@ -21,6 +19,7 @@ along with this program; if not, write to the Free Software
|
|||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
#include "duke3d.h"
|
||||
#include "gamedef.h"
|
||||
#include "compat.h"
|
||||
|
@ -8118,6 +8117,7 @@ void G_MoveWorld(void)
|
|||
G_AddGameLight(0, i, ((s->yrepeat*tilesizy[s->picnum])<<1), 128 * s->yrepeat, 255+(95<<8),PR_LIGHT_PRIO_LOW_GAME);
|
||||
break;
|
||||
case SHOTSPARK1__STATIC:
|
||||
if (actor[i].t_data[2] == 0) // check for first frame of action
|
||||
{
|
||||
int32_t x = ((sintable[(s->ang+512)&2047])>>7);
|
||||
int32_t y = ((sintable[(s->ang)&2047])>>7);
|
||||
|
@ -8126,6 +8126,7 @@ void G_MoveWorld(void)
|
|||
s->y -= y;
|
||||
|
||||
G_AddGameLight(0, i, ((s->yrepeat*tilesizy[s->picnum])<<1), 16 * s->yrepeat, 255+(95<<8),PR_LIGHT_PRIO_LOW_GAME);
|
||||
actor[i].lightcount = 1;
|
||||
|
||||
s->x += x;
|
||||
s->y += y;
|
||||
|
@ -8149,7 +8150,8 @@ void G_MoveWorld(void)
|
|||
{
|
||||
int32_t x, y;
|
||||
|
||||
if ((s->cstat & 32768) || A_CheckSpriteFlags(i, SPRITE_NOLIGHT) || !inside(s->x+((sintable[(s->ang+512)&2047])>>9), s->y+((sintable[(s->ang)&2047])>>9), s->sectnum))
|
||||
if ((s->cstat & 32768) || A_CheckSpriteFlags(i, SPRITE_NOLIGHT) ||
|
||||
!inside(s->x+((sintable[(s->ang+512)&2047])>>9), s->y+((sintable[(s->ang)&2047])>>9), s->sectnum))
|
||||
{
|
||||
if (actor[i].lightptr != NULL)
|
||||
{
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
@ -53,7 +52,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
#include <shellapi.h>
|
||||
#endif
|
||||
|
||||
#define BUILDDATE " 20090616"
|
||||
#define BUILDDATE " 20100521"
|
||||
|
||||
static int32_t floor_over_floor;
|
||||
|
||||
|
@ -3087,7 +3086,7 @@ static int32_t OnGotoTile(int32_t iTile)
|
|||
if (handleevents())
|
||||
quitevent = 0;
|
||||
|
||||
idle();
|
||||
idle_waitevent();
|
||||
|
||||
ch = bgetchar();
|
||||
|
||||
|
@ -3172,7 +3171,7 @@ static int32_t OnSelectTile(int32_t iTile)
|
|||
if (handleevents())
|
||||
quitevent = 0;
|
||||
|
||||
idle();
|
||||
idle_waitevent();
|
||||
|
||||
//
|
||||
// Display the description strings for each available tile group
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
@ -674,7 +672,7 @@ int32_t CONFIG_ReadSetup(void)
|
|||
struct stat st;
|
||||
SCRIPT_GetString(ud.config.scripthandle, "Setup","ModDir",&g_modDir[0]);
|
||||
|
||||
if (stat(g_modDir, &st))
|
||||
if (Bstat(g_modDir, &st))
|
||||
{
|
||||
if ((st.st_mode & S_IFDIR) != S_IFDIR)
|
||||
{
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
@ -198,7 +196,7 @@ uint32_t g_frameDelay = 0;
|
|||
extern char forcegl;
|
||||
#endif
|
||||
|
||||
void M32RunScript(const char *s) {}; // needed for linking since it's referenced from build/src/osd.c
|
||||
void M32RunScript(const char *s) { UNREFERENCED_PARAMETER(s); }; // needed for linking since it's referenced from build/src/osd.c
|
||||
|
||||
int32_t kopen4loadfrommod(char *filename, char searchfirst)
|
||||
{
|
||||
|
@ -5100,9 +5098,9 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio)
|
|||
}
|
||||
else
|
||||
{
|
||||
tiltcs = xres/240;
|
||||
tiltcx = xres;
|
||||
tiltcy = yres;
|
||||
tiltcs = 2;
|
||||
tiltcx = 640;
|
||||
tiltcy = 400;
|
||||
}
|
||||
|
||||
walock[TILE_TILT] = 255;
|
||||
|
@ -11397,7 +11395,7 @@ void app_main(int32_t argc,const char **argv)
|
|||
else dir[0] = '\0';
|
||||
|
||||
Bsprintf(tempbuf,"%stexcache",dir);
|
||||
if (stat(tempbuf, &st) >= 0)
|
||||
if (Bstat(tempbuf, &st) >= 0)
|
||||
{
|
||||
if ((st.st_mode & S_IFDIR) == S_IFDIR)
|
||||
{
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
@ -5229,7 +5227,7 @@ repeatcase:
|
|||
int32_t glrm = glrendmode;
|
||||
#endif
|
||||
|
||||
if (stat(g_modDir, &st) < 0)
|
||||
if (Bstat(g_modDir, &st) < 0)
|
||||
{
|
||||
if (errno == ENOENT) // path doesn't exist
|
||||
{
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
@ -21,6 +19,7 @@ along with this program; if not, write to the Free Software
|
|||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
/*
|
||||
#include "duke3d.h"
|
||||
#include "gamedef.h"
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
@ -21,6 +19,7 @@ along with this program; if not, write to the Free Software
|
|||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
#include "duke3d.h"
|
||||
|
||||
const char *s_buildDate = "20100514";
|
||||
|
|
|
@ -1,3 +1,25 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
#include "compat.h"
|
||||
#include "baselayer.h"
|
||||
|
||||
|
|
|
@ -1,3 +1,25 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
#ifndef __grpscan_h__
|
||||
#define __grpscan_h__
|
||||
|
||||
|
|
|
@ -1,26 +1,22 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1997, 2005 - 3D Realms Entertainment
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of Shadow Warrior version 1.2
|
||||
This file is part of EDuke32.
|
||||
|
||||
Shadow Warrior is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Original Source: 1997 - Frank Maddin and Jim Norwood
|
||||
Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,3 +1,25 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
// Macros, some from SW source
|
||||
|
||||
#define GTFLAGS(x) (GametypeFlags[ud.coop] & x)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
@ -2961,7 +2959,7 @@ cheat_for_port_credits:
|
|||
int32_t osdmode = OSD_GetTextMode();
|
||||
if (x==io) osdmode = !osdmode;
|
||||
modval(0,1,(int32_t *)&osdmode,1,probey==io);
|
||||
mgametextpal(d,yy, osdmode? "Monochrome" : "Sprites", MENUHIGHLIGHT(io), 0);
|
||||
mgametextpal(d,yy, osdmode? "Basic" : "Sprites", MENUHIGHLIGHT(io), 0);
|
||||
if (OSD_GetTextMode() != osdmode)
|
||||
OSD_SetTextMode(osdmode);
|
||||
break;
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
|
@ -15,9 +17,9 @@ See the GNU General Public License for more details.
|
|||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Modifications for JonoF's port by Jonathon Fowler (jonof@edgenetwk.com)
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
/**********************************************************************
|
||||
module: MIDI.C
|
||||
|
||||
|
|
|
@ -31,10 +31,10 @@ BEGIN
|
|||
CONTROL "&Always show this window at startup", IDCALWAYSSHOW, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 118, 116, 140, 8
|
||||
END
|
||||
|
||||
#define FILEVER 1,2,9,9
|
||||
#define PRODUCTVER 1,2,9,9
|
||||
#define STRFILEVER "1.3.0devel\0"
|
||||
#define STRPRODUCTVER "1.3.0devel\0"
|
||||
#define FILEVER 1,9,9,9
|
||||
#define PRODUCTVER 1,9,9,9
|
||||
#define STRFILEVER "2.0.0devel\0"
|
||||
#define STRPRODUCTVER "2.0.0devel\0"
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION FILEVER
|
||||
|
@ -56,7 +56,7 @@ BEGIN
|
|||
VALUE "FileDescription", "Mapster32"
|
||||
VALUE "FileVersion", STRFILEVER
|
||||
VALUE "InternalName", "Mapster32"
|
||||
VALUE "LegalCopyright", "Copyright © 1996, 2003 3D Realms Entertainment, 2009 EDuke32 Developers"
|
||||
VALUE "LegalCopyright", "Copyright © 2010 EDuke32 Developers, 1996, 2003 3D Realms Entertainment"
|
||||
VALUE "LegalTrademarks", "Duke Nukem® is a Registered Trademark of Apogee Software, Ltd."
|
||||
VALUE "OriginalFilename", "mapster32.exe"
|
||||
VALUE "ProductName", "Mapster32"
|
||||
|
|
|
@ -64,7 +64,7 @@ BEGIN
|
|||
VALUE "FileDescription", "EDuke32"
|
||||
VALUE "FileVersion", STRFILEVER
|
||||
VALUE "InternalName", "EDuke32"
|
||||
VALUE "LegalCopyright", "Copyright © 1996, 2003 3D Realms Entertainment, 2009 EDuke32 Developers"
|
||||
VALUE "LegalCopyright", "Copyright © 2010 EDuke32 Developers, 1996, 2003 3D Realms Entertainment"
|
||||
VALUE "LegalTrademarks", "Duke Nukem® is a Registered Trademark of Apogee Software, Ltd."
|
||||
VALUE "OriginalFilename", "eduke32.exe"
|
||||
VALUE "ProductName", "EDuke32"
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
|
@ -15,9 +17,9 @@ See the GNU General Public License for more details.
|
|||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Modifications for JonoF's port by Jonathon Fowler (jonof@edgenetwk.com)
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
/**********************************************************************
|
||||
module: MPU401.C
|
||||
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
|
@ -15,9 +17,9 @@ See the GNU General Public License for more details.
|
|||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Modifications for JonoF's port by Jonathon Fowler (jonof@edgenetwk.com)
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
/**********************************************************************
|
||||
module: MUSIC.C
|
||||
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
@ -1290,7 +1288,9 @@ static int32_t osdcmd_cvar_set_game(const osdfuncparm_t *parm)
|
|||
}
|
||||
else if (!Bstrcasecmp(parm->name, "r_ambientlight"))
|
||||
{
|
||||
r_ambientlightrecip = 1.f/r_ambientlight;
|
||||
if (r_ambientlight == 0)
|
||||
r_ambientlightrecip = 256.f;
|
||||
else r_ambientlightrecip = 1.f/r_ambientlight;
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
@ -1,3 +1,25 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
#ifndef __osdcmds_h__
|
||||
#define __osdcmds_h__
|
||||
|
||||
|
|
|
@ -1,3 +1,25 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
#include "duke3d.h"
|
||||
#include "build.h"
|
||||
#include "namesdyn.h"
|
||||
|
|
|
@ -1,3 +1,25 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
void GAME_drawosdchar(int32_t x, int32_t y, char ch, int32_t shade, int32_t pal);
|
||||
void GAME_drawosdstr(int32_t x, int32_t y, char *ch, int32_t len, int32_t shade, int32_t pal);
|
||||
void GAME_drawosdcursor(int32_t x, int32_t y, int32_t type, int32_t lastkeypress);
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
@ -22,8 +20,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
// Savage Baggage Masters
|
||||
|
||||
#include "duke3d.h"
|
||||
#include "osd.h"
|
||||
#include "gamedef.h"
|
||||
|
@ -4443,7 +4439,7 @@ int32_t P_DoFist(DukePlayer_t *p)
|
|||
if (p->buttonpalette && ud.from_bonus == 0)
|
||||
{
|
||||
ud.from_bonus = ud.level_number+1;
|
||||
if (ud.secretlevel > 0 && ud.secretlevel < MAXLEVELS)
|
||||
if (ud.secretlevel > 0 && ud.secretlevel <= MAXLEVELS)
|
||||
ud.level_number = ud.secretlevel-1;
|
||||
ud.m_level_number = ud.level_number;
|
||||
}
|
||||
|
@ -4702,10 +4698,16 @@ void P_ProcessInput(int32_t snum)
|
|||
return;
|
||||
}
|
||||
|
||||
p->rotscrnang -= ((p->rotscrnang>>1) + (p->rotscrnang != 0));
|
||||
p->rotscrnang -= (p->rotscrnang>>1);
|
||||
|
||||
if (p->rotscrnang && !(p->rotscrnang>>1))
|
||||
p->rotscrnang -= ksgn(p->rotscrnang);
|
||||
|
||||
p->look_ang -= (p->look_ang>>2);
|
||||
|
||||
if (p->look_ang && !(p->look_ang>>2))
|
||||
p->look_ang -= ksgn(p->look_ang);
|
||||
|
||||
if (TEST_SYNC_KEY(sb_snum, SK_LOOK_LEFT))
|
||||
{
|
||||
// look_left
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
@ -220,6 +218,31 @@ int32_t G_LoadPlayer(int32_t spot)
|
|||
if (kdfread(&ud.level_number,sizeof(ud.level_number),1,fil) != 1) goto corrupt;
|
||||
if (kdfread(&ud.player_skill,sizeof(ud.player_skill),1,fil) != 1) goto corrupt;
|
||||
if (kdfread(&boardfilename[0],BMAX_PATH,1,fil) != 1) goto corrupt;
|
||||
|
||||
currentboardfilename[0] = 0;
|
||||
|
||||
if (boardfilename[0])
|
||||
strcpy(currentboardfilename, boardfilename);
|
||||
else if (MapInfo[(ud.volume_number * MAXLEVELS) + ud.level_number].filename)
|
||||
strcpy(currentboardfilename, MapInfo[(ud.volume_number * MAXLEVELS) + ud.level_number].filename);
|
||||
|
||||
if (currentboardfilename[0])
|
||||
{
|
||||
char *p;
|
||||
|
||||
p = Bstrrchr(currentboardfilename,'.');
|
||||
if (!p) strcat(currentboardfilename,".mhk");
|
||||
else
|
||||
{
|
||||
p[1]='m';
|
||||
p[2]='h';
|
||||
p[3]='k';
|
||||
p[4]=0;
|
||||
}
|
||||
|
||||
loadmaphack(currentboardfilename);
|
||||
}
|
||||
|
||||
Bmemcpy(¤tboardfilename[0],&boardfilename[0],BMAX_PATH);
|
||||
|
||||
ud.m_level_number = ud.level_number;
|
||||
|
@ -593,11 +616,11 @@ int32_t G_LoadPlayer(int32_t spot)
|
|||
int32_t i = 0;
|
||||
|
||||
polymer_loadboard();
|
||||
|
||||
while (i < MAXSPRITES)
|
||||
{
|
||||
if (actor[i].lightptr)
|
||||
{
|
||||
polymer_deletelight(actor[i].lightId);
|
||||
actor[i].lightptr = NULL;
|
||||
actor[i].lightId = -1;
|
||||
}
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 2003-2004 Ryan C. Gordon. and James Bentler
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
|
@ -15,11 +17,9 @@ See the GNU General Public License for more details.
|
|||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Originally written by Ryan C. Gordon. (icculus@clutteredmind.org)
|
||||
Adapted to work with JonoF's port by James Bentler (bentler@cs.umn.edu)
|
||||
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
/*
|
||||
* A reimplementation of Jim Dose's FX_MAN routines, using SDL_mixer 1.2.
|
||||
* Whee. FX_MAN is also known as the "Apogee Sound System", or "ASS" for
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 1996, 2003 - 3D Realms Entertainment
|
||||
Copyright (C) 2000, 2003 - Matt Saettler (EDuke Enhancements)
|
||||
Copyright (C) 2004, 2007 - EDuke32 developers
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
|
|
|
@ -1,3 +1,25 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
#ifndef __sounds_mapster32_h__
|
||||
#define __sounds_mapster32_h__
|
||||
|
||||
|
|
|
@ -1,3 +1,25 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
#if defined(LINKED_GTK)
|
||||
#include <gtk/gtk.h>
|
||||
#include <gdk-pixbuf/gdk-pixdata.h>
|
||||
|
|
|
@ -1,3 +1,25 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
#ifndef RENDERTYPEWIN
|
||||
#error Only for Windows
|
||||
#endif
|
||||
|
|
|
@ -1,3 +1,25 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of EDuke32.
|
||||
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
// resource ids
|
||||
#define WIN_STARTWIN 1000
|
||||
#define WIN_STARTWINPAGE_CONFIG 2000
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
//-------------------------------------------------------------------------
|
||||
/*
|
||||
Duke Nukem Copyright (C) 1996, 2003 3D Realms Entertainment
|
||||
Copyright (C) 2010 EDuke32 developers and contributors
|
||||
|
||||
This file is part of Duke Nukem 3D version 1.5 - Atomic Edition
|
||||
This file is part of EDuke32.
|
||||
|
||||
Duke Nukem 3D is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
EDuke32 is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 2
|
||||
as published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
|
@ -17,8 +17,6 @@ See the GNU General Public License for more details.
|
|||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Windows-specific hooks for JonoF's Duke3D port.
|
||||
*/
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -1,219 +0,0 @@
|
|||
// Mapster32 tile grouping configuration file
|
||||
// Press T on the tile selection screen to access the tileset selection menu
|
||||
|
||||
#include "names.h"
|
||||
|
||||
tilegroup "Player"
|
||||
{
|
||||
hotkey "P"
|
||||
|
||||
// Colors are the colors for Blocking OFF and Blocking ON.
|
||||
colors 2 2
|
||||
|
||||
tiles
|
||||
{
|
||||
APLAYER
|
||||
}
|
||||
}
|
||||
|
||||
tilegroup "Actors"
|
||||
{
|
||||
hotkey "A"
|
||||
|
||||
colors 31 31
|
||||
|
||||
tiles
|
||||
{
|
||||
LIZTROOP LIZTROOPRUNNING LIZTROOPSTAYPUT LIZTROOPSHOOT LIZTROOPJETPACK
|
||||
LIZTROOPONTOILET LIZTROOPJUSTSIT LIZTROOPDUCKING
|
||||
PIGCOP PIGCOPSTAYPUT PIGCOPDIVE
|
||||
LIZMAN LIZMANSTAYPUT LIZMANSPITTING LIZMANFEEDING LIZMANJUMP
|
||||
COMMANDER COMMANDERSTAYPUT
|
||||
OCTABRAIN OCTABRAINSTAYPUT
|
||||
ORGANTIC
|
||||
DRONE
|
||||
NEWBEAST NEWBEASTSTAYPUT NEWBEASTHANG NEWBEASTJUMP
|
||||
EGG GREENSLIME ROTATEGUN RECON TANK BOUNCEMINE
|
||||
FLOORFLAME
|
||||
// FEMS
|
||||
FEM1 FEM2 FEM3 FEM4 FEM5 FEM6 FEM7 FEM8 FEM9 FEM10 NAKED1
|
||||
// Lil' critters
|
||||
SHARK
|
||||
// BIG critters
|
||||
BOSS1 BOSS1STAYPUT BOSS1SHOOT BOSS1LOB
|
||||
BOSS2
|
||||
BOSS3
|
||||
BOSS4 BOSS4STAYPUT
|
||||
}
|
||||
}
|
||||
|
||||
tilegroup "Doors"
|
||||
{
|
||||
hotkey "D"
|
||||
|
||||
tiles
|
||||
{
|
||||
DOORTILE1 DOORTILE2 DOORTILE3 DOORTILE4 DOORTILE5
|
||||
DOORTILE6 DOORTILE7 DOORTILE8 DOORTILE9 DOORTILE10
|
||||
312 313 314 345
|
||||
DOORTILE22 DOORTILE18 DOORTILE19 DOORTILE20
|
||||
450 455 457 458 459 469 470 477
|
||||
DOORTILE14
|
||||
719 735 771
|
||||
DOORTILE16
|
||||
843 858 883
|
||||
DOORTILE15 DOORTILE21
|
||||
1173
|
||||
DOORTILE11 DOORTILE12
|
||||
353 355
|
||||
// Related items
|
||||
DOORSHOCK ACCESSCARD
|
||||
}
|
||||
}
|
||||
|
||||
tilegroup "Effectors"
|
||||
{
|
||||
hotkey "E"
|
||||
|
||||
tilerange 1 10
|
||||
|
||||
colors 15 15
|
||||
}
|
||||
|
||||
tilegroup "Switches"
|
||||
{
|
||||
hotkey "S"
|
||||
|
||||
tiles
|
||||
{
|
||||
ACCESSSWITCH ACCESSSWITCH2 ACCESSCARD SLOTDOOR LIGHTSWITCH SPACEDOORSWITCH SPACELIGHTSWITCH
|
||||
FRANKENSTINESWITCH MULTISWITCH
|
||||
DIPSWITCH DIPSWITCH2 DIPSWITCH3 TECHSWITCH
|
||||
LIGHTSWITCH2 713 // LIGHTSWITCH2+1
|
||||
POWERSWITCH1 LOCKSWITCH1 POWERSWITCH2 HANDSWITCH PULLSWITCH
|
||||
ALIENSWITCH HANDPRINTSWITCH NUKEBUTTON
|
||||
TARGET
|
||||
4083 4954 // Busted switches (Atomic)
|
||||
}
|
||||
}
|
||||
|
||||
tilegroup "Items"
|
||||
{
|
||||
hotkey "I"
|
||||
|
||||
colors 24 24
|
||||
|
||||
tiles
|
||||
{
|
||||
// Ammo
|
||||
AMMO SHOTGUNAMMO BATTERYAMMO RPGAMMO HEAVYHBOMB FREEZEAMMO GROWAMMO CRYSTALAMMO
|
||||
DEVISTATORAMMO HBOMBAMMO
|
||||
|
||||
// Items (healthetc)
|
||||
COLA SIXPAK FIRSTAID SHIELD STEROIDS AIRTANK JETPACK HEATSENSOR ACCESSCARD
|
||||
BOOTS ATOMICHEALTH HOLODUKE
|
||||
|
||||
// Weapons
|
||||
FIRSTGUNSPRITE CHAINGUNSPRITE RPGSPRITE FREEZESPRITE SHRINKERSPRITE
|
||||
TRIPBOMBSPRITE SHOTGUNSPRITE DEVISTATORSPRITE
|
||||
}
|
||||
}
|
||||
|
||||
tilegroup "Respawn triggers"
|
||||
{
|
||||
hotkey "R"
|
||||
|
||||
tiles
|
||||
{
|
||||
CANWITHSOMETHING CANWITHSOMETHING2 CANWITHSOMETHING3 CANWITHSOMETHING4
|
||||
// FEMS
|
||||
FEM1 FEM2 FEM3 FEM4 FEM5 FEM6 FEM7 FEM8 FEM9 FEM10 NAKED1
|
||||
}
|
||||
}
|
||||
|
||||
tilegroup "Exploding stuff"
|
||||
{
|
||||
hotkey "X"
|
||||
|
||||
tiles
|
||||
{
|
||||
CRACK1 CRACK2 CRACK3 CRACK4
|
||||
FIREEXT SEENINE OOZFILTER
|
||||
EXPLODINGBARREL EXPLODINGBARREL2 FIREBARREL GUNPOWDERBARREL
|
||||
REACTOR2SPARK BOLT1 SIDEBOLT1
|
||||
CEILINGSTEAM
|
||||
FIREVASE 2066 BURNING FIRE BURNING2 FIRE2
|
||||
}
|
||||
}
|
||||
|
||||
tilegroup "Letters and numbers"
|
||||
{
|
||||
hotkey "L"
|
||||
|
||||
tilerange 2822 2915
|
||||
tilerange 2929 3022
|
||||
tilerange 3072 3135
|
||||
tilerange 3162 3165
|
||||
tilerange 640 649
|
||||
tilerange 2472 2481
|
||||
}
|
||||
|
||||
|
||||
// Alphabet configuration for text entry tool in 3D mode
|
||||
// (press Ctrl-T on a wall-aligned letter)
|
||||
// 32 alphabets max.
|
||||
|
||||
alphabet // blue font
|
||||
{
|
||||
maprange 33 126 STARTALPHANUM
|
||||
|
||||
offseta "^" 0 2
|
||||
offseta "qQ;" 0 -1
|
||||
}
|
||||
|
||||
alphabet
|
||||
{
|
||||
maprange 33 126 MINIFONT
|
||||
maprangea "a" "z" 3104
|
||||
|
||||
// offset "\\" 0 3 doesn't work
|
||||
offset 92 0 3
|
||||
offseta "qQ" 0 -1
|
||||
offseta ":" 0 1
|
||||
offseta "'\"" 0 3
|
||||
}
|
||||
|
||||
alphabet // red font
|
||||
{
|
||||
maprangea "0" "9" 2930
|
||||
maprangea "A" "Z" BIGALPHANUM
|
||||
maprangea "a" "z" BIGALPHANUM
|
||||
mapa "-" 2929
|
||||
mapa ".,!?;:/%" 3002
|
||||
mapa "'" 3022
|
||||
}
|
||||
|
||||
alphabet // silver font
|
||||
{
|
||||
maprangea "0" "9" 2992
|
||||
maprangea "A" "Z" 2966
|
||||
maprangea "a" "z" 2966
|
||||
}
|
||||
|
||||
alphabet // yellow numbers 3x5
|
||||
{
|
||||
maprangea "0" "9" THREEBYFIVE
|
||||
mapa ":/" 3020
|
||||
offseta ":" 0 1
|
||||
}
|
||||
|
||||
alphabet // silver numbers
|
||||
{
|
||||
maprangea "1" "9" W_NUMBERS
|
||||
mapa "0" 649
|
||||
}
|
||||
|
||||
alphabet
|
||||
{
|
||||
maprangea "0" "9" DIGITALNUM
|
||||
}
|
Loading…
Reference in a new issue