Bill Currie
9fbff2f4d5
Do an audit of the Makefile.am files.
...
o All instances of LIBADD/LDADD have a corresponding DEPENDENCIES
specificatiion.
o libraries now use a lib_ldflags macro to keep things consistent
o duplication of source/lib names has been minimized (particularly in
the libraries; more work needs to be done for the executables)
o automake spec blocks have been organized (again, more work needs to be
done for the executables)
2012-02-07 16:04:19 +09:00
Bill Currie
b5019c8e33
Nuke the engine dicrectory from gamecode.
...
Not the contents, of course :) Anyway, finally, that totally useless
directory is gone.
2012-02-06 23:44:52 +09:00
Bill Currie
a694eed968
Add Draw_Picf to allow smooth placement on low-res consoles.
2012-02-06 19:32:30 +09:00
Bill Currie
14c0e22494
Tweak Draw_MakePic to be a little more usable.
2012-02-06 15:50:32 +09:00
Bill Currie
c98ffa4eda
Create a message buffer API for Ruamoko
...
The api hides all the gory details of message buffer setup and usage
(particularly the differences between writing and reading). Most
importantly, the api provides a safe way to read and write binary data
(always little endian).
2012-02-06 15:50:32 +09:00
Bill Currie
042f310ed7
Add MSG_WriteBytes to match MSG_ReadBytes.
2012-02-06 15:04:01 +09:00
Bill Currie
42b87ee80c
Fix the memory leak in rua Draw_CachePic.
2012-02-06 12:49:57 +09:00
Bill Currie
be9f05ea14
Catch progs zone errors and give a stack dump.
2012-02-06 12:48:22 +09:00
Bill Currie
cef004fc15
Fix a type mismatch on android.
2012-02-05 14:28:23 +09:00
Bill Currie
4bd6bca6f2
Fix a prototype/definition mismatch.
2012-02-05 14:27:48 +09:00
Bill Currie
8c3db9a10d
Fix regex.c for android.
...
Android's headers declare bcmp etc in strings.h, but don't the functions
don't exist in the libs.
2012-02-05 14:26:23 +09:00
Bill Currie
201532ea7e
Fix missing library references when linking.
2012-02-05 14:25:22 +09:00
Bill Currie
3bd75cefd8
Autoconfiscate log2f.
...
Android doesn't supply log2f for us (though it does have all the other
float calls ruamoko wants).
2012-02-05 14:23:33 +09:00
Bill Currie
6f10f0cea6
Fix the x86 sw renderer (intel asm).
...
I'd forgotten about assembly code versions when I was doing my testing
when I redid skins. Thanks to Sander for pointing it out.
2012-02-02 17:32:27 +09:00
Sander van Dijk
49453b690f
glsl_main.c: initialize t[] to silence compiler warning.
2012-02-02 16:55:33 +09:00
Sander van Dijk
82adc67a67
glsl_bsp.c: __builtin_expect() to avoid compiler warnings.
2012-02-02 16:55:25 +09:00
Bill Currie
f800e79a38
Make the init process more dependency based.
...
Most subsystems that depend on other subsystems now call the init functions
themselves. This makes for much cleaner client initialization (more work
needs to be done for the server).
2012-02-01 21:52:47 +09:00
Bill Currie
b9bb7d95bb
Remove calls to Sbar_Changed from the libraries.
...
If this breaks things, we'll have to sort something out, but again, no libs
reaching into the exe.
2012-02-01 20:06:14 +09:00
Bill Currie
5efc78b920
Move the call to R_Particles_Init_Cvars into R_Init_Cvars.
2012-02-01 20:05:11 +09:00
Bill Currie
4b390909f2
Move r_gravity to it's rightful home.
...
r_part.c makes much more sense.
2012-02-01 20:03:16 +09:00
Bill Currie
fa0ff96533
Clean up the mess with host_basepal and vid_colormap.
...
Libs should not be reaching into the exe :P
2012-02-01 19:52:13 +09:00
Bill Currie
d76e4608ab
Rewrite the ruamoko draw api internals.
...
Update for using resources, and add wrappers for Draw_MakePic and
Draw_DestroyPic/Draw_UncachePic.
2012-02-01 18:19:54 +09:00
Bill Currie
bc2aca53c3
Add functions to create/destroy qpics.
...
The creation uses raw 8-bit data (and the system palette). Destroying a
qpic loaded via other means will probably produce nasal demons.
2012-02-01 17:46:15 +09:00
Bill Currie
2b6adaa2d4
Do some more const correctness.
2012-02-01 17:44:55 +09:00
Bill Currie
7e406c20e5
Allow uncaching of qpics.
...
qpics loaded via Draw_CachePic can now be uncached via Draw_UncachePic.
2012-02-01 16:55:35 +09:00
Bill Currie
a849cf7698
Fix a stale include problem.
...
Thanks to iku for pointing it out.
2012-02-01 14:13:00 +09:00
Bill Currie
a131a7ab9d
Fix the gl test... again :/
...
Actually, it probably doesn't make any difference, but making it look
right is still important.
2012-02-01 13:01:24 +09:00
Bill Currie
706f09b247
Put the transparent surfaces on the water chain.
...
I'd actually done this the first time, but then got confused and forgot the
waterchain works with multiple textures. This is actually the right place
as all transparent surfaces need to be sorted irrespective to their
textures. Really, waterchain needs to be renamed.
2012-01-31 18:08:06 +09:00
Bill Currie
b286a35281
Sort transparent surfaces back to front.
...
This allows overlapping transparent surfaces to look like they are
overlapping each other rather than only the nearest one showing.
2012-01-31 16:17:09 +09:00
Bill Currie
1052bd2624
Fix the segfault on leaving e1m2.
...
Problem and solution found by Deek, reason by me.
2012-01-31 09:51:44 +09:00
Bill Currie
c3d2365bd8
Fix a missed default_color init.
...
Wish I'd caught this earlier :/
2012-01-30 21:02:13 +09:00
Bill Currie
c01255a387
Fix a case&paste error.
...
Doesn't fix the color problem for water surfaces on my eeepc, though :(
2012-01-30 20:31:58 +09:00
Bill Currie
8f0ce733ff
Sanitize color handling a little.
2012-01-30 20:31:37 +09:00
Bill Currie
4b948de225
Ensure the lightmap gets rebuilt when the dlights disappear.
...
I didn't realize what that line was for when I copied the code from GL :/
2012-01-30 18:41:27 +09:00
Bill Currie
e4f63fba6c
Fix some integer shift overflows.
...
Thanks to Ozkan Sezer for pointing them out.
2012-01-30 09:13:06 +09:00
Bill Currie
f8dfee6de7
Merge branch 'master' into glsl
2012-01-29 22:36:35 +09:00
Bill Currie
497718cc40
Plug the memory/texture/vbo leaks.
...
QF still leaks about 3MB/run on demo1, but even 100 runs didn't show any
render issues.
2012-01-29 22:32:35 +09:00
Bill Currie
b03e937b67
Implement brush entity alpha.
...
http://www.celephais.net/board/view_thread.php?id=60157& has a good map for
testing (you see an example straight away if you look up). (+set max_edicts
2048)
2012-01-29 16:56:50 +09:00
Bill Currie
8f869c001b
Fix the missing world on map reload.
...
If the map got reloaded but the current leaf didn't change the world (and
most entities) didn't get drawn. Forcing a vis update by first setting
r_viewleaf to null and marking surfaces does the trick :)
2012-01-29 16:09:35 +09:00
Bill Currie
462a9047c6
Fix the missing fog on particles and sprites.
...
Bah, definitely need a metter method of parameter interrogation.
2012-01-29 10:35:23 +09:00
Bill Currie
731236ee07
Implement global fog.
...
Sprites and particles don't seem to be getting fogged correctly, but bsp
and alias models are working.
2012-01-29 10:27:28 +09:00
Bill Currie
4734c5b64a
Implement water alpha.
2012-01-28 21:20:34 +09:00
Bill Currie
7e078c7f9c
Revamp cshifts and implement in glsl.
...
The renderer should now be free of any direct access to client code. Even
3d rendering is now done via a function pointer.
The cshift code is done as a 2d screen function.
2012-01-28 20:45:14 +09:00
Bill Currie
315db554b5
Add some instrumentation to check render speeds.
2012-01-28 14:10:47 +09:00
Bill Currie
2595251162
Do not update every visible lightmap every frame.
...
This takes nq from ~25fps to 65-72 fps on Unforgiven's start map.
2012-01-27 21:48:25 +09:00
Bill Currie
d18aa2fe3e
Do not try to unregister ports with a lost jackd.
...
libjack seems to get stuck when unregistering ports with a broken
connection.
2012-01-27 19:58:03 +09:00
Bill Currie
8ac9ff0134
Link libQFmodels* agains libQFimage.
...
This is the correct fix for server linking wrt LoadPCX. Sort of. Really, it
would be better to disconnect the dependencies.
2012-01-27 19:55:30 +09:00
Bill Currie
03c7441265
Fix server linking wrt skin stuff.
2012-01-27 17:37:52 +09:00
Bill Currie
ca2c861671
Fix team colors in GL NQ.
2012-01-26 13:53:52 +09:00
Bill Currie
5dcaeae97b
Fix custom skins in GL for QW.
2012-01-26 12:50:37 +09:00
Bill Currie
df87cffe15
Start working on the new GL skin code.
2012-01-24 23:06:07 +09:00
Bill Currie
695b38e5e5
Fix a segfault when merging rects.
2012-01-24 19:56:59 +09:00
Bill Currie
d8d21b00f4
Fix some issues found found by valgrind.
...
Buffer underflow and though strcpy has always been safe there, change to
memmove. Had the added benefit of helping me create more test cases for
better coverage.
2012-01-24 19:54:21 +09:00
Bill Currie
6104db50e1
Fix a gl matrix stack overflow.
...
I'd missed a couple of places for glPopMatrix (worse, one was push!).
2012-01-24 12:10:37 +09:00
Bill Currie
1ef24e0404
Fix a gl matrix stack overflow.
...
I'd missed a couple of places for glPopMatrix (worse, one was push!).
2012-01-24 12:08:12 +09:00
Bill Currie
6df8867d69
Implement custom skins for glsl.
2012-01-24 10:27:05 +09:00
Bill Currie
d6683711f4
Clean up some redundant defines.
2012-01-24 09:37:46 +09:00
Bill Currie
19dc579a5a
Fix custom player skins for the sw renderers.
2012-01-23 23:38:32 +09:00
Bill Currie
3dbb5724db
Rename Skin_SetColormap_ to Skin_SetupSkin.
2012-01-23 21:40:12 +09:00
Bill Currie
08990ebb5a
Make top/bottom color work for GLSL.
...
Works quite nicely (love those colormaps).
2012-01-23 19:24:12 +09:00
Bill Currie
9a4b065eaf
Fix top/bottom colors for the SW renderers.
2012-01-23 17:33:19 +09:00
Bill Currie
e3f76de898
Avoid a division by zero.
...
Doing a cache profile on an unused cache wasn't nice.
2012-01-23 16:46:52 +09:00
Bill Currie
7bfddd7ffe
Gut most of the old skin code.
...
Custom skins are smashed on most targets. Player colors don't work, etc.
However, this will let me do a much cleaner implementation.
2012-01-23 16:16:30 +09:00
Bill Currie
61c127abc0
Make a start on skin support.
...
I had this lying around for a while since it was more important to get
other things working first.
2012-01-22 15:49:01 +09:00
Bill Currie
76cb60461d
Tweak the size of point particles.
...
This looks fairly reasonable, but should probably be tweaked further to
base the point size on resolution.
2012-01-21 22:05:24 +09:00
Bill Currie
5080a6f37e
Enable the point size shader variable.
...
This is a rather "evil" hack because GLES doesn't seem to need
GL_VERTEX_PROGRAM_POINT_SIZE, but GL does, and all my work is currently
done in GL rather than GLES. Point particles now work, but the sizes are
all wrong.
2012-01-21 21:54:36 +09:00
Bill Currie
68d956583d
Draw ALL of the particles, not just 2/3 of them.
...
Using quads requires 4 elements, but triangles require 6. I'd gotten the
element array setup right, but I'd forgotten to tweak vacount when drawing
the particles.
2012-01-21 20:16:18 +09:00
Bill Currie
8345f07db2
Implement QF style particles.
...
Actually looks pretty good against the sw style world.
2012-01-21 19:51:18 +09:00
Bill Currie
4955caafe5
Make the dynamic textures more readily available.
...
I want to get QF style particles going in glsl (since id style is currently
stuck at one pixel), but I don't want multiple copies of the texture code.
2012-01-21 19:13:01 +09:00
Bill Currie
358bbc4439
Disable the sky spin effect.
...
It's cool, but not appropriate as a default. All that's needed is a way to
set (and optionally update) sky_velocity (map vars? qc?).
2012-01-21 17:18:29 +09:00
Bill Currie
62c5070d8b
Use the correct type for particle colors.
...
Sending byte data as floats doesn't work too well :P Fixes the colors of
the particles, but not the size :(.
2012-01-21 16:17:54 +09:00
Bill Currie
2cb2f230fd
Print out the point size range.
...
I'm not sure if there's a bug in mesa, or if I'm doing something wrong, but
GL_POINTS doesn't seem to be working properly. I get the points, but
writing to gl_PointSize doesn't make a difference despite the size range
being 1-255.
2012-01-21 15:48:21 +09:00
Sander van Dijk
197481bdbb
in_sdl.c: default to "have_focus" to "1".
2012-01-21 09:27:35 +09:00
Sander van Dijk
25ffe6bc3e
cd_sdl.c: fix typo.
2012-01-21 09:27:30 +09:00
Sander van Dijk
8e6c3f7bf8
Make gl_rsurf.c compile without warnings with "gcc (GCC) 4.4.5 20101112 (Red Hat 4.4.5-2)".
2012-01-20 20:51:29 +09:00
Bill Currie
5e1a80e016
Implement particles as points.
...
Unfortunately, the maximum point size on Intel hardwar seems to be 1, so I
can't tell if the colors are right.
This is largely just a hacked version of GL's particle code.
2012-01-19 10:39:03 +09:00
Bill Currie
63893b6a2f
Zap some magic numbers.
2012-01-19 10:36:10 +09:00
Sander van Dijk
d8432e78bb
Fix a wrongly negated condition in snd_win.c:SNDDMA_UnblockSound().
2012-01-18 21:39:17 +09:00
Bill Currie
470500f79d
Fix an oopsie between pahdr and paliashdr.
...
I understand the reasons, but ooh, the sw renderer is ugly in places.
2012-01-17 21:00:19 +09:00
Bill Currie
42bb10a3d7
Clear out the lightmap scrap at each level change.
...
This allows the demo loop to run more than 4 times (12 demos). Once the
rest of the resource management is done, demos should run indefinitely.
2012-01-17 19:31:50 +09:00
Bill Currie
fc43e5a307
Allow clearing of a scrap.
...
This "frees" all rectangles and subpics allocated from a scrap. subpics
are owned by the scrap from which they are allocated.
2012-01-17 19:31:50 +09:00
Bill Currie
3669e3aa2e
Make alias model caching optional.
...
For now, only the glsl loader disables caching, but it stores the frame
vertices in GL memory, so its hunk usage is relatively lower (and will be
lower still when I get skins sorted out).
2012-01-17 19:31:50 +09:00
Bill Currie
fb428f8067
Rename mod_flood.c to floodfill.c
2012-01-17 19:31:50 +09:00
Bill Currie
05bf637466
SDL sound patches from SVD.
...
Thanks to "Sander van Dijk" <a.h.vandijk@gmail.com>, we now have much
better SDL sound support.
Here's the promised cleaned up version of the "double buffer" approach
patch for "snd_sdl.c". I've taken some more time to re-read and test
it this time, and it seems to behave well. All memory that is used by
both the main thread and the SDL audio thread is prefixed with "shm_",
and locking is used to ensure that only one thread accesses it at the
same time.
2012-01-17 19:14:42 +09:00
Bill Currie
0abb8a7554
Merge the particle physics.
2012-01-15 20:14:36 +09:00
Bill Currie
ece78f7605
Clean out some useless functions.
...
D_Start/EndParticles in the sw renderers will likely never have any
content, so no point in calling or even having them.
2012-01-15 09:34:10 +09:00
Bill Currie
e7b01bb6b6
Put the transparent color back to 0,0,0,0 rgba.
...
Blended sprites were a tad ugly without that.
2012-01-14 22:20:23 +09:00
Bill Currie
c884ef5f80
Convert the colormap to a 2D palette.
...
This skips one level of indirection in the alias model and brush shaders.
Hopefully, this will improve performance on my eeepc.
2012-01-14 21:42:42 +09:00
Bill Currie
928dd92276
Use 0.0 instead of 0.5 for t for palette lookups.
...
I realized it's pretty silly using colormap + palette when I can just
combine the two into one and have a 2D palette. This is in preparation for
that.
2012-01-14 20:51:43 +09:00
Bill Currie
2425498479
Enable the view model.
2012-01-14 20:07:43 +09:00
Bill Currie
de022ae72d
Rewrite GL_LoadQuakeMipTex to generate mips itself.
...
Relying on GL to generate mips for 8 bit textures doesn't produce nice
results. These aren't the greatest, either, but they're better.
2012-01-14 19:02:06 +09:00
Bill Currie
7739ba3ea9
Move the 2D set out of the 3D code.
...
It really belongs exclusively in the screen setup code.
2012-01-13 19:51:45 +09:00
Bill Currie
f5f8b65c81
Fix the wonky viewsize border.
...
2D mode wasn't getting set after rendering the world. oops.
2012-01-13 19:47:16 +09:00
Bill Currie
eb2e688c9e
Clean up some whitespace.
2012-01-13 19:46:52 +09:00
Bill Currie
617107f9c1
Perform some black magic.
...
}:>
2012-01-12 21:23:39 +09:00
Bill Currie
cbd13ac54e
Implement QuatExp and fix up QuatBlend's param names.
2012-01-12 21:22:06 +09:00
Bill Currie
ba1b819173
Merge skyid and skybox begin/end.
2012-01-12 17:34:29 +09:00
Bill Currie
6e2d625d36
Load the skybox faces into the correct cubemap slots.
...
Quake and GL are rotated relative to each other, so care must be taken
when loading and rendering.
2012-01-12 15:13:19 +09:00
Bill Currie
f1eea0176c
Fix the too near far-clip plane.
...
I don't know if I miss-copied that, or if there's a bug in FTE's code.
2012-01-12 13:41:06 +09:00
Bill Currie
a66fcb8448
Implement skyboxes.
...
The texture assignments are incorrect, but it's otherwise working.
2012-01-12 11:05:34 +09:00
Bill Currie
8bcef272e6
Render the id skys :)
...
Wow... smooth.
2012-01-11 21:26:12 +09:00
Bill Currie
7ba7130f42
Load the sky texture as two separate textures.
...
The sky texture is normally 256x128, with each 128 wide side being the two
layers of the sky.
2012-01-11 21:09:57 +09:00
Bill Currie
b43d03a98b
Let the render specific texture loader decide on sky texture loading.
...
This is necessary to allow the glsl texture loader to process the sky
textures.
2012-01-11 21:08:04 +09:00
Bill Currie
f6f2e4f406
Create and load the id sky shader.
2012-01-11 16:02:20 +09:00
Bill Currie
89ae6eca8b
Even better?
...
It's difficult getting the same result because GL st are 0-1 but sw quake's
st are 0-inf % 64.
2012-01-11 07:51:15 +09:00
Bill Currie
5dbf913d41
Get the turbulence more correct.
...
This looks right, and should be easier to tweak.
2012-01-11 06:38:27 +09:00
Bill Currie
d2dae4cc58
Produce a saner turbulence.
...
I'm not quite sure it's right. Need to watch sw's turb a bit more.
2012-01-10 21:11:21 +09:00
Bill Currie
3508972d66
Draw water surfaces... with some really funky turbulence.
...
It seems I misunderstood the sw turbulence code.
2012-01-10 20:50:47 +09:00
Bill Currie
e38d72f50b
Get brush entity rendering working.
...
Unfortunately, the intel driver on my eeepc doesn't like the mipmas for
plat_top2 or +2floorsw. If I either don't load their mipmaps, or skip
drawing them, things seem to work nicely.
2012-01-10 13:06:02 +09:00
Bill Currie
3326aceed8
Rewrite the texture chain index list building.
...
It turns out my complicated plan was just that: complicated. Although there
are currently some bugs, the method I used to build the VBO in the first
place will work equally well for building the index lists.
2012-01-09 21:16:08 +09:00
Bill Currie
754dda92ff
Get the lightmap texture properly.
2012-01-09 21:13:40 +09:00
Bill Currie
ef311b60d6
Remove a now dead function.
2012-01-09 18:55:30 +09:00
Bill Currie
2b45cd693f
Fix the black overbright dlights.
...
t was unsigned and underflowing. This fixes the problem but keeps the
bitshift unsigned clean.
2012-01-09 18:05:41 +09:00
Bill Currie
310ba49f17
Make the dynamic lightmaps... dynamic.
2012-01-09 16:46:20 +09:00
Bill Currie
0005c97865
Temporary weaks so things look halfway decent.
...
GL mipmaps and paletted textures don't mix, and lightmaps work quite well
with linear sampling.
2012-01-09 16:26:28 +09:00
Bill Currie
12fd6bd390
Fix the segfault on map change.
...
I had forgotten to call R_ClearTextures when I'd rearranged the code.
2012-01-09 10:16:54 +09:00
Bill Currie
cd91fe7c8d
Set the pixel unpack alignment to 1.
...
4 hours chasing that one down. ouch.
2012-01-09 02:18:39 +09:00
Bill Currie
8779755e9c
Dump allocated rects for glsl_scraps BLAH.
2012-01-09 01:31:29 +09:00
Bill Currie
f658e6c32e
Initialize d_lightstylevalue.
...
"Let there be light!", but chaos still reigns (broken lightmap updates).
2012-01-09 01:30:26 +09:00
Bill Currie
1229d24ef6
Get world rendering mostly working.
...
Just some problems with lightmaps. There also seem to be some issues with
seams (t-junctions?) and far clip, but they're quite separate.
There's also a problem with a segfault when loading a second map.
2012-01-08 22:09:51 +09:00
Bill Currie
7428a91526
Try, but fail, to render the world.
2012-01-08 20:39:36 +09:00
Bill Currie
ea377b80c5
Remove some redundate statements.
2012-01-08 20:38:56 +09:00
Bill Currie
f8d7bcf271
Rename R_RecursiveWorldNode to R_VisitWorldNodes in gl.
2012-01-08 18:16:33 +09:00
Bill Currie
6abaa5ea74
Build the display list for all loaded brush models.
...
The entire vertex set from every model is put into one list (not yet
uploaded). chains of elements arrays are build for non-instanced models
(instanced models will have their chains built each frame).
2012-01-08 17:45:44 +09:00
Bill Currie
fa82c37bd0
Pre-invert subpic->size.
...
I forgot to do this earlier :/
2012-01-08 17:44:28 +09:00
Bill Currie
601cc6e3d1
Make a start on bsp rendering.
...
Still nothing being rendered: still in the process of building the display
lists, but I'm making good progress. Get this into git before something
goes wrong :)
2012-01-08 10:29:38 +09:00
Bill Currie
ec7d01f9b2
Merge out R_TextureAnimation.
2012-01-08 10:21:08 +09:00
Bill Currie
655252a506
Fix some warnings.
2012-01-07 23:11:56 +09:00
Bill Currie
aa27a3f49c
Load bsp model textures as repeating mipmaps.
2012-01-07 18:05:54 +09:00
Bill Currie
204c1aba03
Don't use the miptex_t after converting to texture_t.
2012-01-07 17:08:07 +09:00
Bill Currie
29a0dc0b68
Actually build the lightmaps, and fix a silly bug in the scrap allocator.
...
Also, add a command for dumping scrap statistics.
2012-01-07 15:35:08 +09:00
Bill Currie
8a5658ed61
Implement the bulk of the lightmap code.
...
Now just to get surface rendering going and hook in the lights.
2012-01-07 14:53:23 +09:00
Bill Currie
a988c192ab
Fix OSS sound. YAY!!!
...
Much thanks to Spirit from quaddicted for his patient help in testing, and
Spike for his heckling ;)
2012-01-06 21:21:45 +09:00
Bill Currie
0993803006
Add texture sub-image management.
...
The planned uses are lightmaps and 2d icons.
2012-01-06 16:24:13 +09:00
Bill Currie
c25327f4ed
Add union and merge functions and tests.
2012-01-06 12:57:25 +09:00
Bill Currie
73f2c12815
Delete the intersection rect when finished.
2012-01-06 11:04:50 +09:00
Bill Currie
981760e19a
Add tests for vrect.
2012-01-06 11:04:34 +09:00
Bill Currie
2ae044effd
Split out vrect_t to its own file and add support functions.
...
The rest is cleanup after removing a wart from one of the field names.
2012-01-06 09:52:14 +09:00
Bill Currie
42266cddd5
Get models being lit by the world's lightmaps.
...
Even though the world isn't rendered yet.
2012-01-05 22:37:02 +09:00
Bill Currie
423e08ce21
Add demo to "movie" conversion.
...
It currently writes a series of png files (QF/qfmvNNNNNN.png), at a fixed
rate of 30fps, with no sound recording.
2012-01-05 19:19:37 +09:00
Bill Currie
b13a2b6dbd
Move screenshots to $fs_userpath/QF.
...
I got tired of screenshots getting scatter across the tree. ShotsPath in
the dirconf can override this.
2012-01-05 17:07:27 +09:00
Bill Currie
297a4e2756
Put the D_FlushCaches mess back.
...
It turns out that when it is called is highly timing sensitive :(
However, the rest of R_ClearState remains.
2012-01-05 15:50:20 +09:00
Bill Currie
03bcfb9483
Set the default hudtype.
...
Yay, Deek for finding another bug in qf :). He had an old dirconf that
didn't specify HudType and thus caused the status bar code to blow up. Set
the default to "id" if none is found.
2012-01-05 14:02:53 +09:00
Bill Currie
764cd91879
Set the default hudtype.
...
Yay, Deek for finding another bug in qf :). He had an old dirconf that
didn't specify HudType and thus caused the status bar code to blow up. Set
the default to "id" if none is found.
2012-01-05 14:00:57 +09:00
Bill Currie
6f18035c12
Fix up alias-16 support.
...
After getting in contact with serplord, I now know that the sw alias
loading was correct. Turns out the gl loaders was mostly correct, just a
mistaken subtract rather than add. And with that, I can implement alias-16
support in glsl. better yet, since all the work is done in the loader, the
renderer doesn't know anything about it :) However, I need to create some
16-bit models for testing.
2012-01-05 12:52:12 +09:00
Bill Currie
c6bcd7aedb
Normalize the vertex normals.
...
I was wondering why the lighting looked a little extreme in overkill.
2012-01-05 12:45:43 +09:00
Bill Currie
bfc743fdcd
Add my point shaders before I lose them.
2012-01-04 18:47:03 +09:00
Bill Currie
8fbc6221f7
Get sprite interpolation working.
...
It's not perfect (it can't be), but it looks a whole lot nicer than no
interpolation.
2012-01-04 18:31:35 +09:00
Bill Currie
6050901e0e
Break out the entity blend calculations.
...
This allows alias and sprite model lerping to share the code.
2012-01-04 18:30:47 +09:00
Bill Currie
836209e5c6
Enable lerping of alias models.
...
Done in hardware }:>
2012-01-04 16:36:43 +09:00
Bill Currie
f0e88bbe85
Rip out the duplicate lerp code and merge it.
...
While the vertex lerping needs to be duplicated in the current GL code,
there's no need for the setup code to be duplicated. Also, I want it for
GLSL.
2012-01-04 16:26:52 +09:00
Bill Currie
99381b8b8c
Rework the alias vertex shader and rendering code for lerping.
...
Lerping isn't actually done yet (need to get both poses and blend), but
this still renders correctly with blend forced to 0.0.
2012-01-04 14:35:34 +09:00
Bill Currie
add5440ad1
Upload the normals with the vertex data.
...
Not all hardware can access a texture sampler from the vertex shader, and I
don't want multiple paths this early in the game. Now, vertex normals are
uploaded as shorts. Should be 14 bytes per vertex (was 10, could have been
8 if I had put the normal index with the vertex rather than st).
2012-01-04 09:42:00 +09:00
Bill Currie
fea7acd871
Enable vis calculation.
...
One nice thing about this project: I now KNOW that efrags works the way I
wanted it to: all those torches are now toggleable via r_novis :)
2012-01-03 23:20:01 +09:00
Bill Currie
d0a0440056
Make R_SplitEntityOnNode easier to read.
2012-01-03 23:19:21 +09:00
Bill Currie
454047ab92
Make r_novis 0 take effect immediately.
2012-01-03 23:17:49 +09:00
Bill Currie
0797183201
Merge R_MarkLeaves from gl, sw, and sw32.
...
Other than novis, they're functionally identical. Now sw and sw32 have
novis as well.
2012-01-03 21:09:13 +09:00
Bill Currie
091b714e4c
Implement dynamic lighting.
...
This uses the same calculations as the software renderer. However, as the
lightmap calculations are not done yet, if there is no dlight in the
vicinity, there will be no light. demo1 is pretty cool to watch :)
2012-01-03 20:36:07 +09:00
Bill Currie
209c4cda8b
Scale the light level index correctly before colormap lookup.
...
With this, lighting seems to be working. I'm not certain the normals are
100% correct, but I can see something happening on rotating models.
2012-01-03 19:57:47 +09:00
Bill Currie
e8f863c76f
Remove the hedgehogs from the garden.
...
While the first frame was fine, any subsequent ones were not. I had
forgotten that hdr->poseverts held the edited vertex count rather than
hdr->mdl.numverts.
2012-01-03 18:11:39 +09:00
Bill Currie
d7bc437e2c
Fix the borked texture coordinates.
...
Silly me, doing byte based pointer math on a non-byte pointer :P
2012-01-03 18:10:35 +09:00
Bill Currie
185fded944
Re-enable the matrix optimizations.
...
Turns out my concatenations were correct.
2012-01-03 18:09:33 +09:00
Bill Currie
21c7b84379
Enable face culling and depth testing.
...
I spent way too long trying to figure out why triangle order wasn't making
any difference... :P
2012-01-03 18:08:01 +09:00
Bill Currie
1437cbec91
Make the face culling a little more sensible.
...
GL Quake was weird, culling front faces. Partly understandable, since
Quake's front order is clockwise and GL's default order is
counter-clockwise. However, since the order can be specified, that should
be done instead. Thus, specify the winding order as clockwise (for quake's
data), set culling for back-face removal, and then mess with the winding
direction in the mirror and fish-eye code.
2012-01-03 18:06:26 +09:00
Bill Currie
62e564c5cd
Send ALL of the model's verts to GL.
...
Triangles have 3 vertices, not one :P
2012-01-03 11:47:40 +09:00
Bill Currie
ba04cf73d0
Add my test tetrahedrons.
2012-01-03 09:34:17 +09:00
Bill Currie
baab15279f
Correct the alias vertex data types.
...
Vertex locations need to be unsigned byte rather than byte (GL is funy
with that). s and t need to be at least short, and since the normal index
is embedded in the st vector, it needs to be the same type. With this, my
test tetrahedrons seem to be working.
2012-01-03 09:34:17 +09:00
Bill Currie
c378acab6b
Actually load up the mvp and normal matrices.
...
Rather critical. I thought I'd done that :/
2012-01-03 09:34:17 +09:00
Jeff Teunissen
86edf54c40
Build and ignore cleanups
...
GLSL renderer build was checking for BUILD_GL instead of BUILD_GLSL in a
few places. Also, ignore the GLSL .fc and .vc files and the binaries.
2012-01-02 14:16:19 -05:00
Bill Currie
2a3151cecd
Hook in alias model drawing.
...
Nothing is visible yet.
2012-01-02 20:28:40 +09:00
Bill Currie
72e3a8d507
Merge sw and sw32 alias frame selection.
...
I'm leaving GL for later because lerping complicates things. I'll sort it
out when I implement lerping in GLSL.
2012-01-02 17:47:22 +09:00
Bill Currie
1c480bf75e
Merge the alias skin selection code.
...
We really don't need 4 copies of identical code when 1 will do :P
2012-01-02 15:57:43 +09:00
Bill Currie
540bccbc27
Load all the alias vertex data as bytes.
...
I had forgotten I wanted to do it this way.
2012-01-02 13:41:12 +09:00
Bill Currie
a57835866a
Build the vertex normals texture.
2012-01-02 13:40:48 +09:00
Bill Currie
6b4a10819a
Add an RGB texture loader.
2012-01-02 13:15:19 +09:00
Bill Currie
7e5b3304fc
Create the colormap texture.
2012-01-02 11:19:23 +09:00
Bill Currie
fd67f3500b
Load the alias model shaders.
2012-01-02 11:18:34 +09:00
Bill Currie
df3d9fe4df
Correct the fullbright start color extraction.
...
I don't know what despair and I were thinking, but we obviously didn't
understand the colormap code at the time.
2012-01-02 10:53:57 +09:00
Bill Currie
7be08534be
Clearify the program dump info a little.
...
Calling programs shaders was a little confusing when I use shader to refer
to the sub-programs (vertex and fragment shaders). Also, print the program
number as well.
2012-01-02 10:22:03 +09:00
Bill Currie
2ad5aa7aed
Unbind the array and element array buffers when done.
...
Not doing so wreaked havoc on my 2d rendering (what's he doing here, and
why's he messing with my redering? ;)
2012-01-02 10:08:56 +09:00
Bill Currie
d1419c30db
Make a start on alias model rendering.
...
The vertex and fragment shaders are written, and R_InitAlias is stubbed,
but that's it so far.
2012-01-01 23:58:12 +09:00
Bill Currie
f3884c659c
Finish alias skin loading and load vertex data into GL.
2012-01-01 23:55:27 +09:00
Bill Currie
f18cd65526
Implement the "cache" in Draw_CachePic.
2011-12-31 20:36:24 +09:00
Bill Currie
3eae8426e6
Implement in-game screenshots.
2011-12-31 17:24:20 +09:00
Bill Currie
d8dbfa9c24
Create WritePNGqfs so screenshots can be written as png.
2011-12-31 17:23:32 +09:00
Bill Currie
718595db45
Implement sprite rendering.
...
Sprite interpolation seems to work, even :) (maybe)
2011-12-31 14:39:33 +09:00
Bill Currie
091e16f9d2
Bring in GL's R_RecursiveWorldNode as R_VisiteWorldNodes.
...
No surface queuing is done, but entities get queued.
2011-12-31 14:33:20 +09:00
Bill Currie
ea2ae1436c
Fix some bugs in the new matrix functions/macros.
2011-12-31 13:20:31 +09:00
Bill Currie
55e53b796d
Make a start on getting sprites rendering.
...
The plan is to do interpolated sprites based on a discussion I had with
LordHavoc about them: blending between the two sprite frames. He didn't
mention it, but it looks like blending between the sprite frames' verts is
necessary too.
2011-12-30 21:11:59 +09:00
Bill Currie
16f84cd496
Hopefully get the 3d view and projection transforms setup.
2011-12-30 21:10:24 +09:00
Bill Currie
20d93466c7
Frag some magic numbers.
...
More annoying than hipnotic's gremlins.
2011-12-30 21:07:35 +09:00
Bill Currie
35bf957d08
Add a 4x4 matrix type and some functions for it.
2011-12-30 20:11:53 +09:00
Bill Currie
edb05fdfce
Rename Vector3Scale and QuatCompScale.
...
They are now VectorCompMult and QuatCompMult.
2011-12-30 20:04:55 +09:00
Bill Currie
bcdcd7b36d
Implement sprint glsl loading.
...
That was... easy.
2011-12-30 09:36:57 +09:00
Bill Currie
a87a60a6fd
Flush the text buffer before drawing conback or menus.
...
Ok, now really done until I notice something else (I forgot this one
momentarily).
2011-12-29 18:23:09 +09:00
Bill Currie
047b7bcc32
Implement Draw_TileClear.
...
With this, 2d seems to be finished. YAY.
2011-12-29 18:15:15 +09:00
Bill Currie
a1035aafe9
Implement Draw_TextBox.
2011-12-29 17:51:31 +09:00
Bill Currie
0e521a7779
Correctly detect going past the end of the pcx data.
...
palette is just that, the palette, and often won't point to the end of the
pcx data. Use the right end :).
2011-12-29 11:27:54 +09:00
Bill Currie
2b44a25c6b
Flush console text after each screen function.
...
This on its own doesn't fix menus being overwritten with console text, but
it's an important step.
2011-12-29 11:26:14 +09:00
Bill Currie
9fec4d5be0
Implement Draw_Fill.
...
Almost there with 2d.
2011-12-29 11:25:27 +09:00
Bill Currie
9d0ed6b885
Fix the missing text.
...
Silly case and paste error cleared out my text vertex array prematurely.
2011-12-29 08:47:32 +09:00
Bill Currie
bece72e746
Use a quick hack to get colored crosshairs working.
2011-12-28 21:45:20 +09:00
Bill Currie
e69a583f1b
Work around a bug in mesa.
...
Since I'm not specifying the api when creating my context, mesa is giving
me GL2. This is fair enough, but in GL2, vertex attribute 0 is the vertex
position. This too, is fair enough. The problem is, mesa is assigning 0 to
my vcolor attribute and thus I can't set it. The work around is simply to
swap the declaration order of vcolor and vertex (this really shouldn't work
eiter, I suspect).
2011-12-28 20:43:56 +09:00
Bill Currie
6a44978a0f
Fix reading of GL_CURRENT_VERTEX_ATTRIB.
...
Turns out it returns a vec4. oops.
2011-12-28 20:41:26 +09:00
Bill Currie
8ee13ef8c2
Do some clipping in the draw routines.
...
After fixing Maraakate's crash, I thought it would be a good idea to put
the fixes into QF, too.
2011-12-28 19:20:18 +09:00
Bill Currie
4e7af5c3e0
Add a function to dump the info for all attribute arrays.
2011-12-28 14:27:59 +09:00
Bill Currie
411ab8f359
Be noisy when resolving uniforms and attributes.
2011-12-28 12:58:26 +09:00
Bill Currie
be9530afb6
Dump a lot of info about shader programs.
...
New developer bit: SYS_GLSL (2048).
2011-12-28 12:40:28 +09:00
Bill Currie
b657905c83
Bring in Despair's gl error checking from the gl renderer.
2011-12-28 09:05:36 +09:00
Bill Currie
151cc05882
Add support for vertex colors.
...
As I need to control the alpha, they're sent as rgba rather than quake
palette indices. Text works well. All other 2d stuff does not :(.
2011-12-28 09:04:26 +09:00
Bill Currie
b943b6d6e8
Implement crosshairs, mostly.
...
Colored crosshairs aren't supported yet (next).
2011-12-27 17:59:58 +09:00
Bill Currie
db8573b774
Make the cross-hair data sharable between renderers.
2011-12-26 21:43:15 +09:00
Bill Currie
705d07fa39
Implement most of the 2d rendering functions.
...
textbox, crosshair, tileclear, fill and fadescreen are the remaining
functions.
There's a problem with 2d icons being drawn over the text (instead of
under), but I'll leave that for later.
2011-12-26 20:33:40 +09:00
Bill Currie
e2a8de33cc
First real texture support function for glsl.
2011-12-26 18:34:51 +09:00
Bill Currie
42034acc03
Organize the text program data.
...
Also, rename the charmap uniform in quake2d.frag as it's more generic than
that.
2011-12-26 18:00:55 +09:00
Bill Currie
2ccfbb0c1c
Move the shader program code into vid_common_glsl.
...
Much more useful in the long run.
2011-12-26 17:17:29 +09:00
Bill Currie
5bed38dcd9
Rename quaketxt.frag to quake2d.frag.
...
It's actually fairly generic for 2d rendering (no lighting, palette lookup)
2011-12-26 17:11:31 +09:00
Bill Currie
f78db6c570
Clean up the generated shader files.
2011-12-26 16:39:02 +09:00
Bill Currie
d743c6c55f
Make a clean break heading for GLES compatibility.
...
Add GLSL directory to QF and use it for all gsls based code (instead of
GL). defines.h, types.h and funcs.h are derived from gl2.h from khronos.
Text drawing now uses triangles instead of quads.
2011-12-26 16:08:55 +09:00
Bill Currie
e6c6de3a2a
Fix the palette uploading.
...
Ooooops :P
2011-12-26 10:41:16 +09:00
Bill Currie
7bd5ab882c
Get text rendering working.
...
It comes out as a funky green (that's not in the quake palette!!!), but
it's mostly readable.
2011-12-26 10:16:16 +09:00
Bill Currie
9f5eacd1fb
Try to get text rendering.
...
Still a black screen :(
2011-12-26 08:12:05 +09:00
Bill Currie
c161a91d4a
Split out and partially implement the screen code.
2011-12-26 08:09:47 +09:00
Bill Currie
1268830082
Split out the particle code.
2011-12-26 08:02:18 +09:00
Bill Currie
7d653f3676
Start work on outputting text.
...
The shaders now compile. No linking is done yet. Char quads are generated,
but not sent to the card.
2011-12-25 19:42:39 +09:00
Bill Currie
91afdcf064
Don't call init_box when not doing a box trace.
...
I took the opportunity to pass qf through callgrind. init_box was
surprisingly expensive, especially considering its results were never used.
2011-12-25 17:11:48 +09:00
Bill Currie
55a0ed49cd
Build qw-client-glslx too.
...
I was asked about timedemo overkill (bigass1 currently gets 40kfps, haha),
so I had to add qw-client-glslx to the build.
2011-12-25 16:41:14 +09:00
Bill Currie
9df7370bcd
Create some shaders for quake text.
...
Still nothing drawn, but this gets my shader scripts into C without me
having to look at ugly strings.
2011-12-25 15:53:12 +09:00
Bill Currie
b7c90fa02d
Load the quake palete as a texture.
...
256x1 rgba.
2011-12-25 13:53:52 +09:00
Bill Currie
99c490ce52
Get glsl running as a null renderer.
...
This means that nq-glslx can get through demo1, demo2, demo3 and bigass1
without crashing. However, nothing is rendered, so unless you like black,
it's not very interesting.
2011-12-25 13:02:26 +09:00
Bill Currie
2894689f71
Clean up mod_lightmap_bytes.
...
Just how many definitions do we need?
2011-12-25 13:02:26 +09:00
Bill Currie
dcf2b14188
Implement alias model skin loading for glsl.
2011-12-25 13:02:26 +09:00
Bill Currie
e62eb23f67
And do the real merge.
...
That drastically simplifies the processes of alias model loading for glsl :)
2011-12-25 11:04:03 +09:00
Bill Currie
c0d37ddc1e
Pseudo merge gl and sw Mod_LoadAliasGroup.
...
Interestingly, this didn't break gl alias model renderering (but then, it
does weird things to the data anyway).
2011-12-25 10:53:53 +09:00
Bill Currie
1f8db5fe3a
Pseudo merge gl and sw Mod_LoadAliasFrame.
2011-12-25 10:34:29 +09:00
Bill Currie
cc5140e3a1
Move min/max/bound and field_offset into better locations.
...
min/max bound into mathlib.h (they /are/ math functions, after all) and
field_offset into qtypes.h.
2011-12-24 10:04:33 +09:00
Bill Currie
59ef1eae9d
Split out the floodfile code into its own file.
2011-12-23 19:01:31 +09:00
Bill Currie
6fe9557dae
Put in the final pieces so nq-glslx can link.
...
Everything is still stubs. Trying to run nq-glslx results in a segfault :)
2011-12-23 12:52:55 +09:00
Bill Currie
53d89bf85a
Clean up the mess around D_FlushCaches.
...
Create an R_ClearState and call that from the clients. It calls any
necessary functions itself.
2011-12-23 12:51:47 +09:00
Bill Currie
33c5320c0e
Create stubs for most of the required render functions.
...
nq-glslx almost links. Just some suspicious references in host.c I want to
check before doing anything more.
2011-12-23 12:19:50 +09:00
Bill Currie
497461b4c2
Make a start on making a pure GLSL renderer.
...
For now, only nq-glslx will be built, but as there is no actual code, it
doesn't link. However, this gets the glsl stuff into the build system.
2011-12-23 12:19:13 +09:00
Bill Currie
858d95de58
Add a bunch more keys to the X11 clients.
...
Now, QF does something reasonable for every key on my keyboar for which X
gives us a keycode.
2011-12-19 16:37:48 +09:00
Bill Currie
87390f53b0
Z_Realloc() should zero-fill the expandded part of the mem
...
Patch from Ozkan Sezer (sezero). Thank you.
2011-12-19 09:45:46 +09:00
Bill Currie
52d9269867
Merge brush model with world model rendering.
...
With this, non-mtex global fog now works properly :).
2011-12-18 08:09:55 +09:00
Bill Currie
a8e354536a
Implement the instance surface allocation/freeing.
...
Not actually used yet, so it's harmless at this stage.
2011-12-17 19:42:19 +09:00
Bill Currie
87b78e5533
Move the surface chain links out of the surfaces.
...
The links are now in "instance surfaces". For non-instanced models (world,
doors, plats etc (ie, world and its sub-models)), there will be one
instance surface per model surface. However, for instanced models (ammo
boxes etc), there will be many, dynamically allocated (not yet
implemented). This commit gets the static instance surfaces working.
2011-12-17 19:14:14 +09:00
Bill Currie
9f0bdf7794
Add some comments.
2011-12-17 09:39:57 +09:00
Bill Currie
933120d44f
Fake vertex arrays for text and particles.
...
Getting gl_vaelements_max -1 to work produced a rather nasty surprise :P
2011-12-16 20:09:05 +09:00
Bill Currie
5cd1f6f5cf
Fix a GL version check snafu.
...
Thanks to MH (on inside3d.com) for pointing this out to me.
2011-12-16 09:43:22 +09:00
Bill Currie
e67690a1a9
Restore the missing lightmaps in non-mtex mode.
...
I forgot to blend in the lightmaps in the fogless non-mtex path.
2011-12-16 09:21:39 +09:00
Bill Currie
b2aa5ce554
Register the textures of other brush models;
2011-12-15 17:09:02 +09:00
Bill Currie
962451e2fe
Create a list of texture chains.
...
This moves the texture chains out of the world model and into a separate
list, allowing other brush models to registter their textures.
2011-12-15 17:09:02 +09:00
Bill Currie
d6a668d517
Split out chain_surface() from visit_node().
2011-12-15 17:09:02 +09:00
Bill Currie
3eb859a88f
Move the entity transform setup into the clients.
...
This has several benifits:
o The silly issue with alias model pitches being backwards is kept out
of the renderer (it's a quakec thing: entites do their pitch
backwards, but originally, only alias models were rotated. Hipnotic
did brush entity rotations in the correct direction).
o Angle to frame vector conversions are done only when the entity's
angles vector changes, rather than every frame. This avoids a lot of
unnecessary trig function calls.
o Once transformed, an entity's frame vectors are always available.
However, the vectors are left handed rather than right handed (ie,
forward/left/up instead of forward/right/up): just a matter of
watching the sign. This avoids even more trig calls (flag models in
qw).
o This paves the way for merging brush entity surface rendering with the
world model surface rendering (the actual goal of this patch).
o This also paves the way for using quaternions to represent entity
orientation, as that would be a protocol change.
2011-12-15 17:09:01 +09:00
Bill Currie
f6ebb78140
More GL_Init_Common() cleanup.
...
Move the call to GL_Common_Init_Cvars() out of the block of check calls.
2011-12-15 17:09:01 +09:00
Bill Currie
51aaee5c3b
Put that OpenGL error message to rest.
...
The error was quite valid: setting GL_TEXTURE_MAX_ANISOTROPY_EXT to 0 is
incorrect. The problem was caused by the call to glTexParameterf being
before the gl_anisotropy cvar was initialized. Thus, move all of the setup
code in GL_Init_Common() to after all the checks and, more importantly,
after the call to GL_Common_Init_Cvars().
2011-12-15 17:09:01 +09:00
Bill Currie
da552e33e7
Remove execinfo checks.
...
It seems we no longer need it (if we ever really did).
2011-12-13 21:25:41 +09:00
Bill Currie
4b515a961b
Back out the fitzquake lerp changes.
...
That's not the direction I wish to take the renderer.
2011-12-13 17:01:15 +09:00
Bill Currie
b05be59ea0
Fix alias models in non-mtex fog.
...
It turns out that due to the way we do fullbrights, nothing special needs
to be done to get the fullbright texture blended with the model even when
fog is enabled.
2011-12-12 17:08:22 +09:00
Bill Currie
8e531a58c2
Get global fog working for multi-pass rendering.
...
For the world textures, anyway. Entity multi-pass rendering still needs to
be verified.
2011-12-12 17:08:22 +09:00
Bill Currie
206199652a
Fix a stray CFLAGS.
...
Should be AM_CFLAGS.
2011-12-10 20:45:33 +09:00
Bill Currie
c3d41326b3
Do key dest changing properly.
...
key_demo wasn't so well thought out. This seems to be much better (and nq
is known to be working nicely).
2011-12-10 16:14:25 +09:00
Bill Currie
16c8b2a18d
Use the new demo imt.
...
There are some problems with menus and the console messing up the key_dest
state (they assume console/menu or game, nothing else), but otherwise
things seem to work.
2011-12-10 15:18:50 +09:00
Bill Currie
3ae17e4d37
Fix a silly omission.
...
Must not check for IMT_MOD bindings when using IMT_CONSOLE etc.
2011-12-10 14:49:56 +09:00
Bill Currie
81a16c925b
Add IMT_DEMO for demo playback bindings.
...
This will allow special key bindings for use during demo playback without
interfering with normal keys.
2011-12-10 14:21:12 +09:00
Bill Currie
14d8e8669f
Rework the legacy bind/unbind commands.
...
in_bind_imt is now gone. I guess mercury was right in that it was a poor
design. However, it was (and still is necessary) to support "bind" and
"unbind". Now, instead, they work only with the IMT_MOD table. IMT_MOD sits
below IMT_0 in the imt hierarchy. If the key is not bound in IMT_0+, then
IMT_MOD will be checked. This way, "bind" and "unbind" can never mess with
a user's more sophisticated binding setup.
2011-12-10 13:56:02 +09:00
Bill Currie
49451eea80
Use the new menu/console bingings.
...
Now, the console toggle will always work (so long as the console is
toggleable in the first place).
2011-12-10 13:24:32 +09:00
Bill Currie
d9d56760e1
Add cvars to control the keys for menus and console.
...
The backquote is not always usable for toggling the console, and the new
bind system doesn't automatically bind a key to both game and console imts
(by design). Thus create a cvar that allows the "always works" console
toggle to be specified in eg $fs_globalcfg. While I'm at it, do one for the
menus, too.
2011-12-10 13:24:32 +09:00
Jeff Teunissen
361255cf31
Ruamoko: New math constants, some new math functions
...
Also, switch all of the math builtins functions we use from Rua to the
ones that accept and return floats, avoiding conversions to/from double.
2011-12-09 22:36:41 -05:00
Bill Currie
2edac1a438
Nuke a sprintf.
2011-12-08 22:16:59 +09:00
Bill Currie
1c82956dd7
net_udp.c FIONREAD fix from Ozkan Sezer.
...
net_udp.c: Fixed FIONREAD ioctl to take an int* argument instead of an
unsigned long*.
2011-12-08 21:50:55 +09:00
Bill Currie
8aa5a8139c
Split out the portal sanity tests.
...
With this, the portal code can be tested separately, including the freeing
of the portal information.
2011-12-08 14:59:35 +09:00
Bill Currie
f9877ce0e0
Add a function to free a hull's portal information.
2011-12-08 14:58:08 +09:00
Bill Currie
d3cf5c4b75
Beg for mmap access.
...
If the default sound device does not support mmap access, retry with
plughw. However, assume the user knows best and do not retry if snd_device
has been set to anything, including "default".
QF alsa support now works out of the box with pulseaudio.
2011-12-08 11:32:33 +09:00
Bill Currie
45288a1a7f
Fix the ghastly sound quality.
...
Due to quake's original sound engine using a push model, the actual place
to which the sound data should be written is not necessarily where the
"hardware" dma cursor is, but rather where the last write finished off.
Thus, the correct output location is indicated by snd_paintedtime rather
than snd_shm->framepos.
2011-12-08 11:02:19 +09:00
Bill Currie
fceed07d0b
Tidy up my diagrams.
2011-12-08 08:45:53 +09:00
Bill Currie
9f32004599
Add a fixme.
...
I've had enough of this for the moment, but I'm pretty sure the test needs
some more consideration, and I'll probably forget about it if I don't mark
it.
2011-12-07 17:27:13 +09:00
Bill Currie
2a27db146e
Use a bit of epsilon in trace_contents().
...
All tests pass again.
2011-12-07 15:35:19 +09:00
Bill Currie
66dffef936
Get trace_to_leaf working a little better.
...
I think the recursion decision needs a little more work, but this gets the
current tests working (though there's still a failure due to fp math).
2011-12-07 15:31:33 +09:00
Bill Currie
ccbc69a7f5
Carve out some more cave and add some more tests.
...
One of them even breaks the code :)
2011-12-07 13:31:21 +09:00
Bill Currie
4ed8b69e24
Check the cross product length before testing its direction.
...
This fixes the bogus portal crossings.
2011-12-07 12:20:04 +09:00
Bill Currie
5af88d33fe
Trace to the current portal rather than the portal's plane.
2011-12-07 12:17:51 +09:00
Bill Currie
9d2914474c
Fix the edge vectors when bounding the portal points.
2011-12-07 12:16:58 +09:00
Bill Currie
6a4021517b
Move the box face info into trace_state and init only once.
...
Then clean up the mess of excess function paramenters.
2011-12-07 10:54:37 +09:00
Bill Currie
fc14826cd6
Reorganize the code a little.
2011-12-07 10:42:39 +09:00
Bill Currie
4f13d19b7e
Optimize edges_intersect().
...
I found wolfram's line-line intersection page and noticed their equation
for the time of intersection was rather different to mine. After analyzing
the differences, it turns out they produce exactly the same results (when
the lines are coplanar), but their method allows me to eliminate one dot
product (4->3). Not only that, but it turns out that their method works
equally well for skew lines (ie, non-coplanar).
mine:
CxA.CxA
-------
CxA.AxB
theirs:
CxA.AxB
-------
AxB.AxB
2011-12-07 10:35:58 +09:00
Bill Currie
ff693a956a
Avoid missed portals in trace_to_leaf().
2011-12-06 22:09:40 +09:00
Bill Currie
8c840a7003
Sanitize trace_hits_plane().
...
While unit normals aren't needed, they were too big for sane math. Now
epsilon can be used for the distance tests. One of the two new tests passes
now :).
2011-12-06 22:06:25 +09:00
Bill Currie
2b65f81b72
Use a saner "infinity".
...
8e6 is just too big for reasonable floating point.
This fixes the bogus portals.
2011-12-06 20:50:09 +09:00
Bill Currie
632817fed5
Fail properly when the portals are bogus.
2011-12-06 20:48:31 +09:00
Bill Currie
f496f4d260
Whee, more tests that break things :)
2011-12-06 20:47:57 +09:00
Bill Currie
8fe703d747
Trace to adjoining leafs when necessary.
...
When the trace stradles a plane in the current leaf, check the other side
of the portal, too, as it is possible that leaf will restrict the movement
of the trace.
All current tests pass! However, I can think of some situations (and I
already have a solution) where things will fail, but that's next.
2011-12-06 17:27:05 +09:00
Bill Currie
4c17ca9583
Break out trace_hits_portal() from trace_enters_leaf().
2011-12-06 08:46:04 +09:00
Bill Currie
9a9079a2b3
Correct the start-solid in a corner test.
...
It turns out that the box trace CAN get out of the solid from that location
(though a similar point trace can not). This is because of my decision to
allow non-points to touch a plane from either side without crossing the
plane, whereas a point touching a plane is always considered to be on the
front side of the plane as there is no further information to disambiguate
on which side of the plane the point is.
2011-12-05 22:11:58 +09:00
Bill Currie
4419d4c4ad
Move the trace into the leaf before testing the contents.
...
The trace is moved as far into the leaf as possible without leaving the
other side of the leaf. This ensures that trace_contents is started from a
good location. There is currently a problem with traces that stradle a
plane getting, but this has cleared up all the current contents related
tests.
2011-12-05 22:11:58 +09:00
Bill Currie
c588d28b96
Clear contents flags before calling trace_contents.
2011-12-05 22:11:58 +09:00
Bill Currie
8307d9f233
Rename check_in_leaf to trace_enters_leaf.
2011-12-05 22:11:58 +09:00
Bill Currie
3bd029d599
Make the contents flags clear.
...
I got tired of not being able to remember which flag was which in the
output.
2011-12-05 22:11:47 +09:00
Bill Currie
8e512a087c
More failing contents tests.
...
However, I have a plan :)
2011-12-05 09:03:04 +09:00
Bill Currie
b4a497baab
Correctly restore the saved start point.
...
This fixes the point test failures.
2011-12-04 21:12:12 +09:00
Bill Currie
7da6df9dfb
Use the "real" contents of the trace's location when visiting a leaf.
...
When visiting a leaf in box mode, use trace_contents() to get the highest
priority contents of any leafs touched by the box in the current location.
I'm now down to one failing test case, and it's an "allsolid" issue that
might be an incorrect assumption in my test case.
2011-12-04 19:14:35 +09:00
Bill Currie
053d801e92
Break out the leaf visit code into its own funciton.
2011-12-04 18:52:17 +09:00
Bill Currie
4e76aa3025
Don't split on a plane parallel to the motion.
...
This seems to improve the start/all solid cases a little, and it should
speed things up a little by avoiding unnecessary polygon tests.
2011-12-04 12:46:22 +09:00
Bill Currie
ed8e09608a
Fix the negative fractions coming from edge_portal_dist().
...
I have a better fix in the works, but I wanted edge_portal_dist() to be
correct.
2011-12-04 12:11:27 +09:00
Bill Currie
e5903a60ff
Put the mistaken test case back in.
2011-12-04 11:00:38 +09:00
Bill Currie
eb5d2720e4
Avoid a segfault when there's no split plane.
2011-12-04 10:55:46 +09:00
Bill Currie
cdfc922bce
Fix a silly test case error.
2011-12-04 10:47:52 +09:00
Bill Currie
487a6b20ab
Test collisions with a ridge smaller than the box.
...
Whee, found a failing test case :)
2011-12-04 09:02:12 +09:00
Bill Currie
55eb88b52c
Create some tests for MOD_HullContents.
2011-12-03 22:18:43 +09:00
Bill Currie
581972c905
More file splitting for code reuse.
2011-12-03 21:13:01 +09:00
Bill Currie
dadfb78992
Split out the hull data so it can be used in other tests.
2011-12-03 20:23:42 +09:00
Bill Currie
9ad298a716
Check whether the portal and box intersect.
...
Now on to creating tests for MOD_HullContents :)
2011-12-03 19:59:12 +09:00
Bill Currie
d9a641c600
Avoid a segfault when the hull hasn't been portalized.
...
Serves me right for forgetting to test the main engine :P
2011-12-03 09:06:57 +09:00
Bill Currie
27642a080a
Avoid infinite recursion.
2011-12-01 12:57:06 +09:00
Bill Currie
f9d56f2941
Add MOD_HullContents().
...
If trace is null or point type, or the hull doesn't have portals, or the
first node is a leaf, MOD_HullContents operates in point mode (exactly the
same way as SV_HullPointContents()). However, in box mode, all leafs
touched by the trace are checked for their contents. The contents field of
trace (a bit field) will indicate the contents type of all touched leafs.
The returned contents value indicates the most important contents:
solid > lava > slime > water > empty
The one's complement value of the contents type is the bit number of the
contents bit field. I'm not sure how useful this will be as getting the
amount of overlap is currently not supported.
2011-12-01 12:26:33 +09:00
Bill Currie
7ee31dd475
Allow the trace start to be in multiple leafs.
...
This fixes a couple of in-solid tests, but something better is needed.
2011-11-28 20:56:21 +09:00
Bill Currie
13d37f4838
Add a bunch of in-solid tests.
...
Tests where the box is only partially in a solid tend to fail (particularly
when the solid is on the back side of the split plane).
2011-11-28 20:56:21 +09:00
Bill Currie
50b08c98fa
Add some snug-fit tests and fix the uncovered bugs.
...
The tests involve the box fitting into a hole with zero slop (this would be
impossible with point clipping).
2011-11-28 20:56:21 +09:00
Bill Currie
985667ecba
Fix plane touching box backsideness.
...
Because a box has size, even when touching a plane, the side on which the
box is can be determined (unlike a point).
2011-11-28 20:56:21 +09:00
Bill Currie
869cd19260
Box traces can now graze a corner.
2011-11-28 20:56:21 +09:00
Bill Currie
45d55d7e9a
Test the simple wedge.
2011-11-28 20:56:21 +09:00
Bill Currie
2c9b07b257
Scale the box edge vectors.
...
Now they represent the lengths of the edges as expected by the edge/polygon
code.
2011-11-28 20:56:20 +09:00
Bill Currie
60dbc0e342
Fix the last few bugs breaking the distance code.
...
The code itself seems to work now. There are still some problems: the box
faces are using unit vectors for the edges, or I should go back to unit
vectors for the portal edges; starting in a solid corner won't always work;
etc. However, that's just mopping up: the main algorithm seems to be
working.
2011-11-28 20:56:20 +09:00
Bill Currie
996859c367
Correct the projection code.
...
That needed to be the intersection of two coplanar lines.
2011-11-28 20:56:20 +09:00
Bill Currie
ab2ec644d6
Clip the portals when running the test cases.
...
When the portals are too big, floats break down and break the tests. This
might not be much of an issue in real maps, but my tests use "infinite"
planes.
2011-11-28 20:56:20 +09:00
Bill Currie
2abff68089
Fix some more silly bugs.
...
The target test now works, but some others have broken due to getting
negative fractions.
2011-11-28 20:56:20 +09:00
Bill Currie
a1da8ecdd0
Fix some silly errors that broke most of the box tests.
...
Uninitialized variables and crossed signs. Oops :/
2011-11-28 20:56:20 +09:00
Bill Currie
8fc99566ab
Add code to clip the motion of the box to the leaf's portals.
...
Unfortunately, something is broken (all box tests fail due to 0 fraction).
2011-11-28 20:56:20 +09:00
Bill Currie
5ee552ea5b
Don't normalize the portal edge vectors.
...
This simplifies the collision handling code.
2011-11-28 20:56:20 +09:00
Bill Currie
174f381125
Add some more tests for the ramp.
...
These tests pass, but show the basic polygon testing working (just not the
collision handling and thus fraction determination).
2011-11-28 20:56:20 +09:00
Bill Currie
750b5ba0ed
Be a little more lenient with float comparisons.
...
Unfortunately, Pythagorus and binary don't play well together, so rounding
errors are inevetible when testing with a slope. However, 1e-6 seems to be
a good epsilon (printf's %g hides it nicely :).
2011-11-28 20:56:20 +09:00
Bill Currie
73b93ffd74
Clean up the in_leaf test line.
2011-11-28 20:54:35 +09:00
Bill Currie
e3d8394b7a
Use the split_plane for the in-leaf test.
...
This seems to work better (all previously working tests pass again), but
the target test is still broken.
2011-11-28 20:54:35 +09:00
Bill Currie
7b59eaf0cd
Use the correct vector for the plane distance.
...
Oops :)
2011-11-28 20:54:35 +09:00
Bill Currie
cde0bbb807
For now, don't use box clipping for point traces.
...
Until I figure out how I want to handle zero sized boxes, don't test them.
2011-11-28 20:54:35 +09:00
Bill Currie
fd5aee1d5e
Use the portals to check leaf validity.
...
If the trace hits a portal on the plane that brought us to the leaf, then
we actually are in the leaf (otherwise, we shouldn't be here and thus
should ignore the leaf). At least, that's my thinking.
Many point tests fail (but they're really using box clipping with a zero
sized box) and two box tests fail.
2011-11-28 20:54:35 +09:00
Bill Currie
297275e3de
Create edge information for the portals.
2011-11-28 20:54:35 +09:00
Bill Currie
662c04dfdc
Add a function to obtain the unit vectors of a winding's edges.
2011-11-28 20:54:35 +09:00
Bill Currie
e41da2f579
Store the start fraction and position in the right stack slot.
...
Oops. Yay, valgrind.
2011-11-28 20:54:35 +09:00
Bill Currie
d61cb25a44
Add code to rebuild the bsp brushes.
...
Names and locations of declarations are still up in the air, but things
seem to be working assuming my test code is correct.
2011-11-28 20:54:35 +09:00
Bill Currie
853bf13d9e
Move the winding code into libQFmodels.
2011-11-28 20:54:35 +09:00
Bill Currie
91e65b6c80
Rename mplane_t to plane_t and clean up the mess.
...
I got rather tired of there being multiple definitions of mostly compatible
plane types (and I need a common type anyway). dplane_t still exists for
now because I want to be careful when messing with the actual bsp format.
2011-11-28 20:54:34 +09:00
Bill Currie
2f23cfa4d0
Add a new (failing) test case.
...
This one demonstrates the need for more information in the bsp tree
(surface polygons). When the box collides with a corner where one side is
flat and the other angled, but there's a partition plane cutting the two,
the box can instead collide with the angled side before it hits the corner.
2011-11-28 20:54:34 +09:00
Bill Currie
7a1faee460
Bail out when the trace advances past the nearest collision.
2011-11-28 20:54:34 +09:00
Bill Currie
a943cdf2c4
Handle dual collisions.
...
When the trace collides with something on both sides of a plane, the nearer
collision is required. The code now correctly checks both sides and keeps
the nearer collision.
2011-11-28 20:54:34 +09:00
Bill Currie
0cf5dec5bb
Fix the covered step tests.
...
However, there is still a problem with moves where the box is always cut
by the plane: both sides need to be tested (done), but when the first side
checked allows longer motion than the second, but still collides, only the
first side is checked. The shorter motion is required.
2011-11-28 20:54:34 +09:00
Bill Currie
8cc320b7ef
Move the start point to the near side of the crossed plane.
...
I'm not sure the end point needs to be moved at all, but I'll leave it
alone for now. I have a couple of failing test cases that seem to be caused
by not handling moves where the box is always cut by the plane.
2011-11-28 20:54:34 +09:00
Bill Currie
fa6390a46a
Correct the sign for the shift in frac.
...
However, this is not entirely correct as the new start point when testing
the other side of the plane also needs to be calculated.
2011-11-28 20:54:34 +09:00
Bill Currie
b82d9f5894
Another test, another bug.
...
Fix an incorrect test using offset (forgot to negate).
2011-11-28 20:54:34 +09:00
Bill Currie
9984a2e87a
Fix some missing usages of offset.
...
This fixes my one failing box clip test. Now I need to find more broken
cases. At least now, they should be real tests.
2011-11-28 20:54:33 +09:00
Bill Currie
9d63298032
Tweak a fixme comment.
...
The code is potentially slow, especially on big maps, but I haven't noticed
any issues yet.
2011-11-28 20:54:33 +09:00
Bill Currie
03abb3b27d
Add support for ellipsoids.
...
Not that boxes work yet, but the fix is the same.
2011-11-28 20:54:33 +09:00
Bill Currie
b4da9241f6
Make a fresh start on box clipping.
...
I even have a failing test to fix :)
2011-11-28 20:54:33 +09:00
Bill Currie
6d2b92125a
Make nva a little more memory efficient.
2011-11-15 13:47:05 +09:00
Bill Currie
940476dce1
Do some renaming to make things a little clearer.
2011-10-02 15:07:36 +09:00
Bill Currie
a356ce6572
Assume the trace will be allsolid.
...
Rather than setting allsolid when the trace fails to leave solid space,
clear it when the trace enters non-solid space. This is necessary because
the trace might visit only one node and thus the failure to leave solid
space will not be detected. This fixes the problem with hipnotic's bobbing
water.
2011-09-27 17:14:42 +09:00
Bill Currie
9c6693d567
Correct hull3 and its tests.
...
I'd gotten the solid/empty parts backwards.
2011-09-27 17:11:57 +09:00
Bill Currie
3e74aa5303
Add trace-qf-bad.c to Makefile.am and testclip.c.
2011-09-27 17:09:04 +09:00
Bill Currie
e23ee07b6f
Ensure id's trace is properly initialized.
2011-09-27 15:38:28 +09:00
Bill Currie
32ff639bf3
Add an old qf version of trace.c
...
This version is broken (it's the one "fixed" by commit 981622f9
), but it
does behave correctly for hipnotic's bobbing water. The question is, why?
2011-09-27 13:00:19 +09:00
Bill Currie
9daa0b7bde
Rename the empty and solid flags, and use them correctly.
...
seen_empty and seen_solid much better reflect their meanings, and also use
them correctly (eg, visiting an empty node does not clear seen_solid).
Hipnotic's bobbing water is still broken, though.
2011-09-27 12:33:50 +09:00
Bill Currie
a7482570b6
Document the geometry in the tests.
2011-09-27 12:30:21 +09:00
Bill Currie
aa6b7ef7e8
Add some water based tests.
...
Unfortunatly, they haven't uncovered the bug.
2011-09-26 21:02:54 +09:00
Bill Currie
800e8cb3da
Make the id trace code more readily usable in the engine.
2011-09-26 19:56:00 +09:00
Bill Currie
ae0dc6f06b
Disable the "shouldn't happen" code.
...
It causes the tests to fail, and doesn't affect the problem I'm currently
facing.
2011-09-26 19:56:00 +09:00
Bill Currie
baf9b7c181
Make the test nodes a little easier to read.
2011-09-26 19:56:00 +09:00
Bill Currie
683adf1850
Print the name and texture number for model skins.
...
Use SYS_GLT (1024) for gl texture debugging.
2011-09-26 13:03:53 +09:00
Bill Currie
d9ab3a1f54
Move the config file/command line parsing into qargs.c
...
I don't like the COM prefix, but it will do for now.
2011-09-11 14:57:05 +09:00
Bill Currie
a71acc9ae5
Move the essential init code into Sys_Init().
2011-09-11 14:56:47 +09:00
Bill Currie
6fb73b5ae8
Nuke some mystery code.
...
I have no idea why I did that, but it crept in with the var substitution
fix, so I guess it might have been an attempt to fix a bug, but it looks
like it was broken anyway.
2011-09-11 13:10:14 +09:00
Bill Currie
e5add8b4f5
Use dstring_freeze() to cleanup some code.
2011-09-11 13:09:24 +09:00
Bill Currie
8bab548d16
Make the hud type configurable via dirconf.
...
Currently only "id", "hipnotic" and "rogue" are supported (anything else is
treated as "id"). Has no effect in quakeworld (good thing too: changing
gamedirs is a little broken).
2011-09-11 08:13:26 +09:00
Bill Currie
8e30d3098e
Fix asm ilnking in mingw.
...
It seems that recent binutils/libtool doesn't like exporting symbols that
don't begin with a _.
2011-09-10 17:49:14 +09:00
Bill Currie
da7ddc35c0
Fix the segaults when trying to use snd_disk.
...
It's output is still bogus (and it writes to the current directory!), but
at least the plugin can be used without any nasty issues.
2011-09-10 12:07:18 +09:00
Bill Currie
bfd1680c15
Fix a 32/64 bit portability issue.
2011-09-09 19:56:16 +09:00
Bill Currie
999912e49a
I thought I'd tested those changes :(
2011-09-09 19:55:54 +09:00
Bill Currie
a426dacc8a
Add a missing \n
2011-09-09 17:43:48 +09:00
Bill Currie
d043e2bf17
Rewrite QFS_FileBase().
...
It now uses QFS_SkipPath() and QFS_FileExtention() to
find the file's base name.
2011-09-09 17:39:00 +09:00
Bill Currie
d92488ce9f
Rewrite QFS_DefaultExtension() and QFS_SetExtension().
...
They now use QFS_FileExtension() to find the correct
place for the extension.
2011-09-09 17:37:45 +09:00
Bill Currie
225f1cd06c
Rewrite QFS_StripExtension() to use QFS_FileExtension().
2011-09-09 17:35:12 +09:00
Bill Currie
96ef0ffaea
Rewrite QFS_FileExtension() to be more correct.
2011-09-09 17:33:29 +09:00
Bill Currie
08fa6be9f4
Fix a potential buffer underflow.
2011-09-09 17:30:07 +09:00
Bill Currie
20d056e6c5
Fix my broken warnings fixes.
...
That's what you get for blinding working on code you don't grok :P
2011-09-08 21:05:33 +09:00
Bill Currie
881d4babce
Fix some undefined symbols in snd_alsa.c.
...
Serves me right for testing with only my debug build :P
2011-09-08 18:10:09 +09:00
Bill Currie
6da725d510
Simplify and slightly improve Cmd_StuffCmds().
...
Make use of dstring to manage the built command mini-script.
Ensure + and - that do not come after whitespace do not start a new
command.
2011-09-08 12:37:52 +09:00
Bill Currie
e8e8dad535
Fix a potential crash with the cvar reset command.
2011-09-07 21:07:52 +09:00
Bill Currie
2ae33a753a
Support non-interleaved mmap sound.
...
Unfortuanately, I can't test this properly as I don't have any such
hardware, but as the code is mosly an edited copy of the interleaved code,
any errors should be easy to fix.
2011-09-07 17:00:57 +09:00
Bill Currie
a8ea3aaad9
Allow dma sound targets to specify an xfer function.
2011-09-07 17:00:18 +09:00
Bill Currie
9ffa1f410a
Detect the silent death of the jack client thread.
...
When jackd gets an unhandled xrun, it stops all processing but neglects to
tell the client about it. Thus, add a bit of a watchdog function to
s_update() and assume the client thread is dead if there's no sign of life
after one second. No more hanging on exit.
2011-09-07 15:16:27 +09:00
Bill Currie
581539f7af
Make debug printing a little smarter.
...
When a field or global name is used, the printed value reflects the type
of that variable.
2011-09-07 09:41:06 +09:00
Bill Currie
91f6b7f555
Better use of Sys_Printf.
2011-09-07 09:41:06 +09:00
Bill Currie
39190c5e2c
Remove an unnecessary include.
...
Don't need that :P
2011-09-07 09:41:05 +09:00
Bill Currie
deddb5cb6a
Partially document the message api.
2011-09-04 09:58:12 +09:00
Bill Currie
9afb691dd9
Change MSG_ReadShort to return an unsigned short.
...
Avoiding the sign extension by default seems to be more useful.
2011-09-04 09:58:12 +09:00
Bill Currie
12e238f806
Add a function to convert quake angles to a quaternion.
...
The test works by comparing the result of AngleVectors with forward,
right, and up vectors rotated by the quaternion resulting from AngleQuat.
2011-09-04 09:58:12 +09:00
Bill Currie
1c47f9e16d
Kill some magic numbers.
2011-09-04 09:58:12 +09:00
Bill Currie
fe3cdbcf5a
fix a snafu in quattomat
2011-09-04 09:58:12 +09:00
Bill Currie
eb205d73fd
Add a function to convert a quaternion to a rotation matrix.
2011-09-04 09:58:12 +09:00
Bill Currie
5c9ab2832f
Fix win32 cross-building.
...
No idea if the code actually works :(
2011-09-04 09:48:16 +09:00
Bill Currie
e50f0e18ba
Make netmain use netadr_t, same as netchan.
...
Having sockaddr and friends in a header file was bad news for portability
(especially windows).
2011-09-04 09:45:19 +09:00
Bill Currie
5ee01879ec
Missed a spot for net_family.
2011-09-03 16:28:00 +09:00
Bill Currie
80b2b82092
Add a cvar to control the address family.
...
OpenBSD doesn't allow mixed binding of ipv4 and ipv6, but being able to use
ipv6 enabled qf with ipv4 addresses would be nice...
2011-09-03 13:04:47 +09:00
Bill Currie
29a52a8cc8
FIx it for IPv4, too.
...
Oops, I forgot about that :P
2011-08-31 18:32:47 +09:00
Bill Currie
bfcdc5ed17
Fix qw networking on OpenBSD.
...
OpenBSD is very picky about the address size, but does provide sa_len and
friends to make life easier. Use them as appropriate :)
2011-08-31 18:07:41 +09:00
Bill Currie
f75b0a611b
Some compile fixes for OpenBSD
2011-08-25 22:35:20 +09:00
Bill Currie
0d5bebabe2
Replace qsockaddr with AF_address_t.
...
It seems qsockaddr's assumptions aren't necessarily portable, as OpenBSD
seems to be doing weird things with qsa_family. Even if that's not the
case, this is cleaner.
2011-08-24 09:14:02 +09:00
Jeff Teunissen
1cc2b1b178
whitespace
2011-08-23 01:39:40 -04:00
Jeff Teunissen
d2fa1e2479
QW IPv6: lose a pointless assign
...
We already assign a->family earlier, no need to do it again.
2011-08-23 01:39:40 -04:00
Bill Currie
87ad73f146
Add even more info to the address comparison failure.
...
It turns out the family check is failing. Why?
2011-08-22 18:34:52 +09:00
Bill Currie
ce07000054
Make the address comparison a little more informative.
...
Still hunting the openbsd connection issues. It seems the address
comparision isn't working.
2011-08-22 10:30:35 +09:00
Bill Currie
1402feafd2
Kill some magic numbers and clean up some whitespace.
2011-08-20 16:30:43 +09:00
Bill Currie
cf2845a387
Ensure Sys_Error can not form an infinite loop.
...
I don't remember what propted this change, but it seems like a good idea
anyway, so get it into the repository and clean out my stash :)
2011-08-20 13:13:43 +09:00
Bill Currie
bb065bd233
Be a little leniant with vector param stores.
...
qcc always used vector stores to load values into the function parameters,
but if the location of the value is too close to the end of the global data
block (the vector spans the end of the block), it would trigger the bounds
check code. Thus, allow such instructions without a murmer, so long as it
actually is a parameter write.
2011-08-16 12:10:05 +09:00
Bill Currie
53049e33eb
Make the interface code more portable.
...
It turns out SIOCGIFINDEX isn't (readily?) available in BSD, but
if_nametoindex() is defined by posix, so use that instead.
2011-08-16 10:03:43 +09:00
Bill Currie
4cec4b9f96
Rewrite the interface detection code.
...
Turns out SIOCGIFCONF is rather painful to get working cross-platform. This
should work better, and can be used even with ipv6 :)
2011-08-11 18:32:39 +09:00
Bill Currie
c1a60551ae
Clean up default rate setting and add explicit support for 48kHz.
2011-08-11 17:22:14 +09:00
Bill Currie
5feb0454ca
Add and use SYS_SND for both sound and cd debug prints.
2011-08-11 17:20:33 +09:00
Bill Currie
290ac30efc
Fix x11 gamma control.
...
Seems we lost a header include at one stage.
2011-08-11 16:08:20 +09:00
Bill Currie
d3c2afc5d7
Handle old global vector compontents.
...
In the original save gave format, global vectors were saved as individual
components rather than as a single vector, using the _x/_y/_z tags on the
vector name. However, recent qfcc completely dumped vector components as
separate defs, so old save games would have trouble loading with progs
built with a recent qfcc. Thus, do the component translation if necessary.
2011-08-11 15:36:51 +09:00
Bill Currie
ff857a9c71
Permit control of single character tokens.
2011-08-11 14:22:27 +09:00
Bill Currie
805256ff65
Use the last used interface address for the socket address.
...
This allows the correct address to be put in the server info packet
allowing nq to work on multi-homed hosts. More testing needs to be done to
ensure nothing is broken, or better yet, a rewrite of the networking code
to properly associate the information with the packets.
2011-08-06 21:47:57 +09:00
Bill Currie
ae9404cc27
Obtain the interface on which the packet arrived.
...
Once I sort out just how to get the information to the right place, this
should fix a lot of the problems with nq on multi-homed nodes.
2011-08-06 20:33:20 +09:00
Bill Currie
3088566502
Replace get_address() with get_iface_list().
2011-08-06 18:57:53 +09:00
Bill Currie
6f0ab844ea
Some more nq networking debug prints.
2011-08-06 16:54:01 +09:00
Bill Currie
eba66b1dde
Doc tweaks and some whitespace.
2011-08-02 17:32:36 +09:00
Bill Currie
76f894a29f
Add some debug prints for nq networking.
2011-08-02 15:22:57 +09:00
Bill Currie
e5876752f3
Document the datagram net driver interface.
2011-08-02 15:22:33 +09:00
Bill Currie
e89532cb9f
Fix a couple of missed view.h->clview.h changes.
2011-08-02 11:29:20 +09:00
Bill Currie
8e140bc97e
Use SYS_NET instead of SYS_DEV for networking debug prints.
2011-07-30 17:44:03 +09:00
Bill Currie
28610c08e3
Do not try to build testsound when not building sound libs.
2011-07-30 15:03:19 +09:00
Bill Currie
bf58ad9d80
And silence a "set but not used" warning.
2011-07-29 17:21:33 +09:00
Bill Currie
77dcd07b37
Remove a dead function.
2011-07-29 14:30:54 +09:00
Bill Currie
50341d0972
Whitespace.
2011-07-29 13:51:58 +09:00
Bill Currie
07d5b114bc
Clean out some dead code and variables.
...
We haven't had serial or ipx support for a long time.
2011-07-29 10:11:14 +09:00
Bill Currie
1d57477101
Document the "public" functions of NQ's networking code.
2011-07-26 14:15:41 +09:00
Bill Currie
64881d2eca
Finish the docs for netchan.
...
Also clean out some unnecessary declarations.
2011-07-26 11:30:02 +09:00
Bill Currie
688e5c7e24
Use ncqport_e on the right field.
...
Well, now, that was incredibly silly, wasn't it? :P
2011-07-23 21:39:13 +09:00
Bill Currie
9ccd570105
Fix a problem with linking FLAC libs.
2011-07-23 21:37:34 +09:00
Bill Currie
3678b610eb
Make a start on documenting netchan.
2011-07-23 17:53:06 +09:00
Bill Currie
2035e65bad
Make the qport flags a little more doc friendly.
2011-07-23 17:51:07 +09:00
Bill Currie
e15771f4a4
Nuke a dead function.
2011-07-23 15:58:45 +09:00
Bill Currie
efa0105748
Rename some headers to fix doxygen warnings.
2011-07-23 15:58:45 +09:00
Bill Currie
b17e37f802
Remove uneccessary differences between ip4 and ip6 code
2011-07-23 15:58:45 +09:00
Bill Currie
8ac5079ada
Get inputlines mostly working.
...
It should be only behind-the-scenes updates that are still a problem.
2011-07-09 21:16:38 +09:00
Bill Currie
652b434e7b
Rework the inputline wrapper.
...
Use the resource map code for handle management (much safer).
Add support for the enter callback (function or method).
Unfortunately, it still doesn't work due to poor design of the inputline
user data.
2011-07-09 09:44:37 +09:00
Bill Currie
3dd31b7de9
Fix some bugs found while hacking inputlines.
2011-07-09 09:42:11 +09:00
Antti Harri
358a844a42
Implement --version-info configure switch to override QuakeForge
...
library versioning. From Lasse Collin, thanks!
2011-07-09 01:23:36 +03:00
Bill Currie
4e66a5b327
Add rua rappers for the cvar alias functions.
2011-07-06 19:17:28 +09:00
Bill Currie
6114156b49
Add Cvar_RemoveAlias.
...
Now aliases can be deleted (needed for menus).
2011-07-05 21:59:47 +09:00
Bill Currie
a7291943f7
Fix up Cvar_MakeAlias's error checking.
2011-07-05 21:51:38 +09:00