Skip to content

Commit

Permalink
Mostly spelling fixes.
Browse files Browse the repository at this point in the history
  • Loading branch information
gildor2 committed Mar 18, 2019
1 parent 5c26bc7 commit eb02099
Show file tree
Hide file tree
Showing 10 changed files with 38 additions and 27 deletions.
6 changes: 3 additions & 3 deletions 4.XX_Changes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Using third-party libraries:
- improved "set game directory" action
- ability to reverse sound channels; controllable with "s_reverse_stereo"
- player skins:
- md2: can use skins without icon ("*_i.???") file -- skin shound have name "skn_*.???"; side effect: even when
- md2: can use skins without icon ("*_i.???") file -- skin should have name "skn_*.???"; side effect: even when
skin icon exists, it will be ignored
- md2: implemented skin selection logic when specified skin is absent
- added "disconnect" menu item into "multiplayer" menu
Expand Down Expand Up @@ -155,7 +155,7 @@ Console/Menu
- Ctrl-Backspace - delete word before cursor
- any char - insert text
- history navigation:
- Crtl-Home / Ctrl-End will rewind console to begin/end of buffer (old behaviour: same, but without Ctrl)
- Crtl-Home / Ctrl-End will rewind console to begin/end of buffer (old behavior: same, but without Ctrl)
- PgUp / PgDn will scroll history up/down (hold Ctrl to scroll faster)
- mouse wheel scroll history (hold Ctrl to scroll slower)
- changed command history code to prevent appearing of empty lines and duplicates
Expand Down Expand Up @@ -269,7 +269,7 @@ Network
- surface-dependent bullet hit sounds (client-side)
- camper sounds (server-side)
- falling sounds (server-side)
- customised rail trail
- customized rail trail
* side effect: demos will crash server, when played with original Quake2; to record compatible demos, just
use cl_extprotocol=0 or sv_extprotocol=0
- faster downloading speed (10 times)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Source code: https://github.com/gildor2/Quake2

For more details, please visit http://www.gildor.org/en/projects/quake2

## Just a brief list of major heatures
## Just a brief list of major features

- Support for game levels (maps) from other games: Quake 1, Half-Life, Quake 3, Kingpin. Those levels are playable with standard Quake 2 game
and mods, level entities are converted into Q2 at loading time.
Expand Down
3 changes: 3 additions & 0 deletions bugs.!!!
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
- a.bat, map tokyo, nosound 0, snd_restart -> crash with "cannot read file ... .wav"
- the file is corrupt, so should simply ignore it

- q3a map "mythology": has areas with very slow lighting (shoot from hyperblaster inside a long corrydor with disabled lightgrid ...
fps will fall to 15, 'ent light' will be 50ms)

Expand Down
2 changes: 1 addition & 1 deletion fast.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ MAP PATCH:
- surface flags: envmap, autoflare
- fogging (patch worldspawn entity)
* this will allow us to modify patch script specs with reimplementation of macros to keep compatibility
- these include files may be overriden in mods (use game-based name to include), mod can use following file:
- these include files may be overridden in mods (use game-based name to include), mod can use following file:
... <code> ...
#include "/baseq2/includes/entpatch.h"
... <code> ...
Expand Down
2 changes: 1 addition & 1 deletion net.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
when it is possible, that 2 sockets (server+client) used at the same time? (server browser?)
which port used for network connection? (server port?)
BUG: when server launched, cannot see other servers in "join" menu - cl send "info" req, remote
server ansver "info ...", and this answer go to out local server, where rejected (should go to client!)
server answer "info ...", and this answer go to out local server, where rejected (should go to client!)
- original Q2 uses PORT_SERVER and PORT_CLIENT - 2 sockets
- may be, create temp connection with separate port (when to close connection, if no answers?)
=================
Expand Down
12 changes: 6 additions & 6 deletions newengine.txt
Original file line number Diff line number Diff line change
Expand Up @@ -96,26 +96,26 @@
- screen (manage/visualize everything)
- network/game support
- CSubsystem: as class; all should Tick() from MainLoop() (not from client)
- shedule using system->MaxFps value (some subsystems really do not require high FPS)
- schedule using system->MaxFps value (some subsystems really do not require high FPS)
- server: separate too (game+network; game - 10fps, network - more);
- add "bool inactive" - do not shedule
- global sheduler may create sleep() system calls when everything is fast enough!
- add "bool inactive" - do not schedule
- global scheduler may create sleep() system calls when everything is fast enough!

------------ New renderer system -----------
- separate renderer (math only) and backend (OpenGL); call hierarchy: mainEngine->renderer->backend->gl
names: ref_gl -> SceneGraph + OpenGLDrv
- remove dependency on "gl.h", "glext.h", "qgl_*.h" etc from scene graph files
- backend should provide "caps" field:
- rect textures (GL_NV_texture_rectangle: clamp, no mipmap)
- rect textures 2 (GL_ARB_texture_non_power_of_two: full-feautured textures)
- rect textures 2 (GL_ARB_texture_non_power_of_two: full-featured textures)
- compressed textures (for disabling by menu)
- fast blend (for soft renderer: can draw console etc with opaque rects)
- fast culling (for soft: when "false" will try to cull everything before sending to backend)
- some lighting info (software, hardware with/without cubemaps etc)
- images.cpp -> renderer (not backend); backend - uploading only
* (abstract) class CImage, wisible from GUI/client - implementation in renderer, some service funcs
* (abstract) class CImage, visible from GUI/client - implementation in renderer, some service funcs
(uploading, retreiving from screen, rendering to texture) - in backend
? vid_restart: restart backend ? (renderer restarting - unneded ??); rename cmd ?
? vid_restart: restart backend ? (renderer restarting - unneeded ??); rename cmd ?
? share model/map loading with cmodel (separate into own library, used by server/client/renderer)
- CImage->CShader (CMaterial?); CImage->CGlImage; CMaterial->CGlMaterial
- client rendering:
Expand Down
4 changes: 2 additions & 2 deletions q1_rest.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
- 'ahl_streets': lamps have 'halo' with rendermode==5 (additive)
- 'ccity2':
- have rotating lamps with rendermode=5 (additive)
- BUG: this rotating lamp have surf with "red" texture, whith is listed in "lights.rad" -- it will generate light
- BUG: this rotating lamp have surf with "red" texture, which is listed in "lights.rad" -- it will generate light
emitter at map position {0,0,0}
- have sliding doors with glasses -- uses trigger_multiple for synch ?
! use LightOrigin for renderer entity (weapon model, multi-part models ...)
Expand Down Expand Up @@ -69,4 +69,4 @@
- can detect light surfaces:
1) check lightmap for all faces with same texture
2) all of them should be filled with a single color (because received light is smaller, than emitting light)
3) at leats one of color components should be 255 (normalized color)
3) at least one of color components should be 255 (normalized color)
2 changes: 1 addition & 1 deletion q3_rest.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ COMBINER BUGS:
zoneportals (q2,q3):
! can clip visible contents with portal:
a) no portals open - draw nothing (q2 does)
b) 1 portal open - compute special fructum for it (should improve performance)
b) 1 portal open - compute special frustum for it (should improve performance)
c) 2+ portals open - draw everything (q2/q3 does) or expand computed frustum by all portals
! Q2 portal game code is completely different from Q3 one, so, Q3 map portals will be "invisible"
for Q2 game dll -- require server-side hook (or create func_areaportal entity?)
Expand Down
28 changes: 18 additions & 10 deletions todo.!!!
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
- limit packet size to 1400 bytes (old behaviour), but add possibility to use a few sequential packets as a single
Mar,2019:
- use pdb files (can borrow code from umodel), probably remove .dbg file system at all
- most HL maps (game=hl) will say that there's no spawn point: probably should replace some entity with it?
- most HL maps uses wad files, so they're not textured - code assumes that WAD will be converted to TGA with
offline tool "WadExtract"; should load WAD files?

-------

- limit packet size to 1400 bytes (old behavior), but add possibility to use a few sequential packets as a single
large packet (new protocol); should support "older new protocol" for demo playback compatibility
- server->client: do not remove entities which are not visible for player - simply stop updating their properties
(this may significantly reduce bandwidth when there are a lot of "static" entities on the map)
Expand Down Expand Up @@ -56,7 +64,7 @@
conflicts, when few versions (mostly - win32+unix) resides in a single directory

? remove "./" from all OS filename starts ? (when non-game mounted FS used -- for .pak files etc (not "./baseq2/pak0.pak" but
"baseq2/pak0.pak")) -- but keep for quake fs to allow load root-relative file (w/o searchig in few game dirs + w/o adding "baseq2")
"baseq2/pak0.pak")) -- but keep for quake fs to allow load root-relative file (w/o searching in few game dirs + w/o adding "baseq2")
- can replace (add synonym for "./path" = "/path" and use it everywhere)
! add [auto-]detail for rail
? make InitialSnapPosition() work with Trace() to allow "teleporter grenade" in LOX mod
Expand Down Expand Up @@ -107,7 +115,7 @@ MOD COMPATIBILITY:
- "paused": incorrect timing (at least, fx will be incorrect after paused=0)
- should reimplement it in a different way
- may be, make multiplayer pause (with sync clients to server; make attention to not timeout clients when server is paused)
? check for hook ability of precicious PMove (more than 1/8) (2 non-spectators cannot be in the same quantized world point;
? check for hook ability of accurate PMove (more than 1/8) (2 non-spectators cannot be in the same quantized world point;
every new player will be performed InitialSnapPosition()
- idea: save non-quantized+quantized positions (+velocity?); next time find non-quantized by quantized (save for few pmove types
only to avoid 2 ghosts in one quantized place); may be, if few players in one quantized place - ignore detailed info
Expand Down Expand Up @@ -174,7 +182,7 @@ HALFLIFE2:
CAMERA:
- interpolate camera 1st/3rd person change
? cl_3rd_person 2 -- smooth camera; add game option: play with 3rd person camera (ext protocol only ?)
- 3rd person camera trace: can extend Trace() to decect point of contents change
- 3rd person camera trace: can extend Trace() to detect point of contents change
(do not leave water; current: will not enter water, but can leave it)
- trace note: can add flag for contents: CONTENTS_VIS_BLOCK (different name?) to detect visibility block: can check
collided brush side surface flags - when TRANS33 | TRANS66 | ALPHA | NODRAW (?) - continue trace, else - stop
Expand Down Expand Up @@ -309,7 +317,7 @@ BSP:
every frame twice, and without portal - once per few frames.
- culling:
1) PVS: project portal entity to destination, find its leafnums->clusters, combine PVS
2) shrink frustum by original portal entity (may use GetBoxRect(entityBox)); shring 5th frustum plane too!
2) shrink frustum by original portal entity (may use GetBoxRect(entityBox)); shrink 5th frustum plane too!
3) use this computed data for determining rendered leafs
- requires server-side code to not cull entities by PVS, when player can see it with portal
- rendering:
Expand All @@ -320,7 +328,7 @@ BSP:
? place LoadMd2 outside renderer and perform lovercase for a skin names
! fog occlusion (for global fog) -- implement it like sky (occluded surface -> sky surface, sky -> fog color);
may look at Alice (additional clip plane to 4 frustum planes)
- detail textures + magnify filter (i.e. advmame2x -- check its name!) - use file "detail.lst" (?) wich will specify detail+filter
- detail textures + magnify filter (i.e. advmame2x -- check its name!) - use file "detail.lst" (?) which will specify detail+filter
for Q2 (KP) textures

------------ SOUND ---------------
Expand Down Expand Up @@ -348,16 +356,16 @@ BSP:
- add support for "1024x768@70"-like strings (see UT2003 for ideas)

- add marks: bulletholes (?), explosion marks, blood (!), "cheesy shadow" (!), water ripple
? support for view-dependent LightForPoint()

? support for view-dependent LightForPoint()
------------ COMMON --------------

? console command line parsing: add special chars (C-like '\"' etc.)
? console: change "]/command" -> "]command" (after completion, may be, other places), but keep
removing "/" and "\" at line start before parsing; may be, change prompt "]" -> other (">", "#"
or #define'd string; draw prompt separately -- remove it from input line, i.e. empty line will be
"" (in memory), not "]")
? may keep Q3-like behaviour (any text during game, not beginning with slash -> chat) -- but for multiplayer only (not for
? may keep Q3-like behavior (any text during game, not beginning with slash -> chat) -- but for multiplayer only (not for
botmatch) and when developer=0

- md4.c::Encode()/Decode() -- works exactly as memcpy() for little-endian platforms, memcpy()+LongSwapBuffer() with big-endian
Expand Down Expand Up @@ -399,4 +407,4 @@ BSP:
? complete savegames too (load/save command)
? make completion "dir"-like formatting + colorizing against char-marks (types)
? add "Cmd_AddHidden()" - for server commands (cannot be completed/listed, but accessible)
(or just implement with Cmd_AddCommand(), but use name prefix, which will be ignored for seaching, but disables completion)
(or just implement with Cmd_AddCommand(), but use name prefix, which will be ignored for searching, but disables completion)
4 changes: 2 additions & 2 deletions todo2.!!!
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
- sort levelshort by numeric strcmp
- sort levelshort with numeric strcmp
- check misc/ut/network.htm
- try LZMA decoder for resources and for .7z

Expand Down Expand Up @@ -74,5 +74,5 @@ Win32 CDS (ChangeDisplaySettings()):
- Win9x: vid_restart will restore resolution (via WM_SIZE+MINIMIZE)
! should centralize resolution changes: do not restore desktop res when not
minimized (check WM_SIZE correctness ?)
? place to GLimp_Activate(), call CDS simputaneously with minimize/restore
? place to GLimp_Activate(), call CDS simultaneously with minimize/restore
? try TNT with 16 <-> 32 bit change with "force=false"

0 comments on commit eb02099

Please sign in to comment.