MHQUAKE 5.08 ------------ Most of the features are configurable through the options menus. Following the downgrades that were versions 5.06 and 5.07, things are hopefully back on track somewhat. For this one, I've rebuilt the entire engine at warning level 3 in order to catch out a few small issues, and clean up a hell of a lot of stuff (warning level 4 gives warnings in the VC++ header files, so that wasn't an option). I did have to disable warning 4305 though (truncation from const double to float) and 4018 (signed/unsigned mismatch) but MHQuake will now compile with no warnings at warning level 3. Now for the bad news: owing to far too much Real Life stuff going on, there isn't actually that much new in here. A hell of a lot of what I promised or talked about as being a future possibility just did not make it in. Never fear - portals will be there, and due to unprecedented public demand, FOV might even come back. As well as a few other things I don't wanna talk about right now. On account of all this, there's a whole load of unfinished code in there - there may even be one or two test Con_Printfs still lurking, but I think I got them all. Some of it is a mess. Apologies for releasing in such a state, but the next two weeks are a total write-off from my perspective (as were the last 3...), and that silliness with the water has gone on for far too long. The Real Life stuff continues to haunt me - this may well be the final release for some time. It definitely won't be the last release *ever*, but I will have very little chance to do much over the next few months. In the meantime, enjoy. Bugs/Issues ----------- Vertex Lighting: Shadows can look funny/no spotlights (no real fix.) r_shadows: Not cast on brush models. Console graphics occasionally go corrupt in NT4 (possibly bad drivers, probably no fix.) Removed FOV, VCR and LCD code (FOV might be back, forget the other two.) Removed r_fullbright (ditto, but it became broken which was part of the reason.) The 3dfx ICD doesn't do fog - bleagh (more than likely no fix.) Underwater fog not right with r_wateralpha/r_novis (bsp limitation, probably no fix.) CONTENTS_SKY not being set for sky brushes (caused by having to remove earlier fix for this bug, which introduced a more serious one.) Console width now defaults to 320 (as a consequence of clearing up the warnings) so you have to use -conwidth. Sorry. Will try to fix it so it defaults to the actual width. Bugs Fixed in 5.08 ------------------ External textures are now their proper size in the world. Brightness affects 2D graphics as well as the main render again (by request.) Incorrect alias model bounding boxes fixed (courtesy lordhavoc.) Removed some more 'dead code' (unused). Restored gl_round_down as a cvar (use r_cachereplace 1 if you change it in game) - missing from glquake since I don't know when. Fixed mad water bug (re-introduced CONTENTS_SKY bug.) Mapshots restore the original console background if a new one isn't found. Few small things. New for 5.08 ------------ Support for custom build configurations containing the additional options you want yourself (see mhqbare.h for further details and instructions on how to customise) - the list of optional components will grow with each subsequent release. Reworked Rocket and Grenade trails slightly (somewhat nicer now.) Removed the mh_ident code for fast model identification, cos it didn't actually make any difference, aside from adding quite a bit to the executable size. Made 60 or so Sys_Error events use default values instead of crashing - in all cases, a sensible, safe default was available. gl_cachereplace 1 will always replace textures with the same name in the cache. Feature List ------------ Alpha Test Brushes: Use '{' as first character of the texture name, and make the brush a func_wall entity (or func_illusionary with a clip brush). Bloody Mirrors: Detects the standard mirror texture as well as any texture using '&' as the first character. Multiple mirror support - not totally reliable, but nearly there. Brightness Control: Use the options menu. This has been sped up since 5.05 so it's now safe to use. It also does darkness too this time! Coloured Light: Supports both white and coloured light in BSP29 (coloured dynamic only), QSG BSP30, Halflife BSP30 and LordHavoc LIT files (use the options menu to switch between white and coloured light, you must reload the map after switching.) Console Backgrounds: replace the console background with the "conback" command. Put your new consoles in /textures under the game directory (you can use subdirectories too.) There is currently no way of reverting to the original background (wait for 5.08) Cvarlist and cmdlist commands: Output lists of cvars or cmds to the console, or (more usefully) a specified file. Dynamic Lighting: Switchable extra dynamic lights (hurts your fps), variable dynamic light radius (for extra speed) and toggle muzzleflashes on or off (mucho extra speed) - all on the options menu. Also dynamic lighting on water surfaces. Fog: Use the options menu to set all fog options. Fullbright Colours: On both textures and (most) skins - switch them on or off in the options menu. HalfLife BSPs: Automatically detects if a BSP30 is Halflife or QSG format (100% reliable now) - put your WAD3s in /textures (they actually work this time). High Contrast Palette: Use '-hicontrast' on the command line - works especially well with 3dfx cards. Hub System: See the Hub System readme. HUD: Use TAB to bring up the scoreboard; use the standard viewsize controls to determine how much of the HUD is visible (viewsize no longer works like it used to). Interpolation: Alias model and brush model interpolation. Fixed warping supernailgun and host_framerate bugs. BM interpolation doesn't seem to work right if the BM is both moving and rotating. Levelshots: Put them in /textures/mapshots - works on the multiplayer map selection menu (need to adjust the positioning) and replaces the console background with a mapshot of the new level (if one exists) when changing level (make this optional). Midi music: Use midi_play, midi_stop, midi_pause, midi_restart, midi_loop and midi_volume to control, or just set midi on in the options menu. Put your midis in /music and call them 0.mid, 1.mid, 2.mid etc to have them automatically play for your maps. Mipmap reduction dithering: Run with '-detailmip' for better mipmap reduction dithering, makes textures a lot slower to upload. Multitexturing: Supports both ARB and SGIS (defaults to ARB if both available, use '-sgis' to force SGIS as default.) Switch multitexturing off altogether on the options menu (no restart required.) Particles: Enhanced particle system (much faster on most systems) - use the options menu to select the classic particle system. Per map Progs.dat: Put them in /qc and give them the same name as the map (eg. e1m1.bsp would use e1m1.dat.) Skies: Supports standard Quake sky, non-detailed sky and skyboxes. Use 'loadsky' at the console or '_skyname' in the worldspawn entity to set a skybox; select non-detailed sky in the options menu. Skyboxes go in /env or /gfx/env and follow the standard naming conventions. They can be TGA, JPG or PCX format. Speed Enhancements: Most of these available through the options menu. Tab Completion: Prints a list of all matching cvars and cmds, and lets you tab through the list. Textures: Uses TGA, JPG or PCX textures. Put BSP textures in /textures, model skins in /textures/progs, graphics in /textures/gfx, sprite textures in /textures/progs, etc. Remove any invalid Windows characters from the texture name. PCX textures can simulate alpha by using RGB values of 159/91/83 for any part that is supposed to be fully transparent (just like the classic quake palette.) For sprite and model skins, add '_0', '_1', etc to represent the frame number/skin number; eg. for a replacement explosion sprite, put s_explod_0.tga, s_explod_1.tga, etc in /textures/progs. Texture Replacement: Replace any texture in the game on the fly from the console! Use the gl_texreplace command - eg, to replace the existing *lava1 texture, use "gltexreplace mytex/mylava *lava1" - this assumes you have a directory under /textures called mytex. There is currently no way of reverting to the original texture (wait for release 5.08) Translucency: Alias model translucency is automatically set, use '!' as the first character of the texture name for brush models. Underwater Fog: Used as a replacement for the colour shift - sets itself according to the colour of the water texture. Some of the 'blue' water will give grey fog: the water isn't really blue, it's dirty grey (open the image in a paint prog and look at the colours) Vertex Lighting: Use the options menu, available in both white and coloured. Water enhancements: Faster (and better) warping code, waves, water shading, dynamic water lighting; set them all in the options menu. Credits ------- Far too many to mention right now: apologies for not naming names, you all know who you are. Boring Legal Stuff ------------------ Usual GPL Rules apply to the engine. The JPG stuff came from the international JPEG Group, their licenscing rules apply here.