Created attachment 2820[details]
range marker functionality, buildable range markers
the code is not well documented with comments, i will add them S00N(TM). the added code is somewhat redundant and modular to allow easier future expansion (ie., new range marker shapes, and range markers for other things, like map-specific areas).
this change depends on the change in bug 3736, which breaks server compatibility (do not merge into the GPP branch in its current state).
Created attachment 2821[details]
assets required for rendering
credits go to Uniq PhoeniX for creating the models, and devising a method (which we call "binary shaders") to draw lines on the map geometry and outlines of shapes.
Created attachment 2822[details]
menu options to set range marker cvars
new settings in: Options -> System -> Range Markers.
this may not be the best location where to put range marker settings.
Created attachment 2823[details]
a simple compatibility hack for the gpp branch
however, i recommend a better method (shortly!), so i provide this patch only for show, and i'm obsoleting it immediately.
Created attachment 2824[details]
64-bit clientmask hack, for compatibility
first, apply the patch in bug 5010 (in the master branch), then (after merging), in the gpp branch, apply this patch.
Created attachment 2825[details]
range marker compatibility hack
(the "advanced" hack.)
this patch is to be applied to the gpp branch, after applying the patch above.
Created attachment 2834[details]
range marker functionality, buildable range markers
oops, it turns out that VectorCopy() isn't defined as a series of assignments in QVMs, causing bugs in QVMs when VectorCopy()ing float[3]s to byte[3]s. the VectorCopy() usage is now fixed.
binary shaders are not guaranteed to work with the ioq3 engine by default. a video mode with an alpha channel must be requested (which is not done by ioquake3 generally). thx to gimhael for pointing this out.
I'm sorry but this binary shaders thing is far too messy for trunk. Even besides that it seems to not work for some people, binary.shader is just a mega-hack on a level we cannot do. The proper way to do this is by adding that functionality to the shader/renderer code, not such grotesque work-arounds for its absence. This feature is good in theory, but not with this implementation.
Created attachment 2821 [details] assets required for rendering credits go to Uniq PhoeniX for creating the models, and devising a method (which we call "binary shaders") to draw lines on the map geometry and outlines of shapes.
Created attachment 2822 [details] menu options to set range marker cvars new settings in: Options -> System -> Range Markers. this may not be the best location where to put range marker settings.
Created attachment 2823 [details] a simple compatibility hack for the gpp branch however, i recommend a better method (shortly!), so i provide this patch only for show, and i'm obsoleting it immediately.
Created attachment 2825 [details] range marker compatibility hack (the "advanced" hack.) this patch is to be applied to the gpp branch, after applying the patch above.
Created attachment 2826 [details] all-in-one patch for the current state of the GPP branch only for testing. provided for the impatient.
Created attachment 2828 [details] 64-bit clientmask hack, for compatibility (whitespace...)
Created attachment 2829 [details] all-in-one patch for the current state of the GPP branch with minor updates.
Created attachment 2830 [details] range marker functionality, buildable range markers (whitespace...)
Created attachment 2831 [details] range marker functionality, buildable range markers (whitespace...)
Created attachment 2832 [details] all-in-one patch for the current state of the GPP branch (updated with whitespace changes...)
Created attachment 2834 [details] range marker functionality, buildable range markers oops, it turns out that VectorCopy() isn't defined as a series of assignments in QVMs, causing bugs in QVMs when VectorCopy()ing float[3]s to byte[3]s. the VectorCopy() usage is now fixed.
Created attachment 2835 [details] all-in-one patch for the current state of the GPP branch updated with the VectorCopy() usage fix.
Created attachment 2849 [details] request 1 alpha bit a quick proof-of-concept hack, which makes binary shaders work on at least 1 machine.