
15.06.2002
  Atklājās, ka Hexen-ā monstri neredz spēlētāju. Dīvaini, jo man šķita, ke es
 to jau izlaboju.
17.06.2002
  Heretic objektu pārkārtošana. Ieviestas pamatklases, viss sašķirots. Tika
 floatizēts PainChance.
18.06.2002
  Pārnesu SlideMove un BounceWall uz endžini.
19.06.2002
  Hexen objektu pārkārtošana. Ieviestas bāzes klases, šķirošana.
20.06.2002
  Pievienoju funkciju FindClass.
  Pabeidzu šķirot Hexen klases. Baigā noņemšanās.
  Sāku atšķirot Strife paceļmos priekšmetus.
21.06.2002
  Izrādās ka sarunu skriptos priekšmeti tiek doti izmantojot indeksu tabulā.
 Visi Strife pickup-i ir atsevišķi.
22.06.2002
  Strife atslēgas, munīciju un ieročus jau var paņemt. Gandrīz visi ieroči ir
 strādējoši.
25.06.2002
  Visur pārgāju uz peldošā komata PainChance.
  Darbojos ar Strife dekorācijām.
26.06.2002
  Salaboju Doom statiskās gaismas.
  Pabeidzu ar Strife dekorācijām.
27.06.2002
  Ieviesu kopējo fragu skaitītāju.
01.07.2002
  Strādāju pie strife. Darbojos ar monstru šāviņiem un citiem efektiem. Visas
 funkcijas ir apvienotas, daļa jau sadalītas pa attiecīgajām klasēm.
02.07.2002
  Pilnībā pabeidzu Strife datu apvienošanu, sakārtošana.
  Segmentu dati tiek interpretēti kā bez zīmes, kas atrisinās problēmu ar ļoti
 lieliem līmeņiem.
03.07.2002
  Pāris globālo funkciju pārnestas uz Entity klasi.
  Neliels uzlabojums līmeņa ielādē kas atļauj ielādēt problemātiskus līmeņus.
  Salaboju tīkla paketes izmēra haku vienspēlētāja režīmā.
  makeinfo izmetu ārā Heretic, Hexen un Strife datus, pārgrupēju Doom datus.
 Iespējams es to pārdēvēšu par deh2vc.
06.07.2002
  Heretic un Hexen pievienoti jauni modeļi.
08.07.2002
  Turpinu modeļu pievienošanu un uzlabošanu.
12.07.2002
  Rendēšanas draiveri tagad pieder VObject objektu kokam.
  Visi draiveri zīmē līmeni vienā virzienā.
13.07.2002
  Srife izmetu ārā visus shareware versijas datus.
  Neliela kļūdiņa asemblera failā.
15.07.2002
  Srife izveidoju ievada sekvenci.
16.07.2002
  Kompilātorā aizvietoju stāvokLu tabulas ar dinamiskajiem masīviem.
  Sāku darbu pie skaņas draiveru objektiem.
17.07.2002
  Daļa skaņas draivera funkciju ir klases funkcijas.
18.07.2002
  Salaboju pieslēgšanos tīkla spēlei no menu, kā arī vienu problēmu Heretic,
 kas uzkāra tīkla spēli.
  Pabeidzu ar skaņas draivera objektu, sāku ieviest OpenAL draiveri. Ja nav
 skaņas datu, vairs netiks pārtraukta spēle.
19.07.2002
  Atrisināju problēmu ar giard makrosiem.
20.07.2002
  Aizvietoju pāris takšu skaitītājus ar peldošā komata laiku.
  Pilnībā implementēju OpenAL draiveri.
22.07.2002
  Oficiāli pārgāju uz peldošā komata laiku.
  Izlaidu beta versiju.
23.07.2002
  Pilnībā atbrīvojos no iostream.
26.07.2002
  Sāku ieviest Strife sarunas.
29.07.2002
  Strife sarunas jau strādā.
  Konsolē skrollings pa 5 līnijām, ar SHIFT pa vienai.
30.07.2002
  Pāris dienas atpakaļ pateicu glBSP autoram par izmaiņām. Viņam pašam bija
 vēl pāris izmaiņas, kuras tika atjauninātas.
01.08.2002
  Atjaunoju glBSP ar pašu jaunāko versiju, kuru Endrjū ir aploudojis CVS.
  Atjaunoju vlaunch ar pāris jaunām lietām.
03.08.2002
  Pievienoju Heretic Gold Wand modeli.
05.08.2002
  Piestrādāju pie modeļiem.
  Slaņu sekvences tiek pārsūtītas ar drošo protokolu.
06.08.2002
  Pāris sīki labojumi. Sakārtoju DDF un DeHackEd atbalstu.
  Pielaboju OpenAL draiveri Linux vajadzībām. Linux versijā šis tas trūkst.
  Poliobjektu grūzšanas kodā netika pareizi nodoti peldošā komata skaitļi,
 kas iespējams radīja FPU kļūdas.
  Endrjū radās ideja kā glBSP atrisināt problēmu, kad tiek sadalīts sektors
 ar poliobjektu pa virsotnēm. Strādā labi.

******************************************************************************
                            VERSIJA 1.14
******************************************************************************

12.08.2002
  Izmēģināju MP3 ar fmod, strādā normāli.
13.08.2002
  DDF atbalstā nomainīju ObjInitState uz stāvokļa vārdu.
  ddf2vc portēju uz Windows, ar Borland strādA normāli, problēmas ar MSVC.
 Vēl netiek eksportēti stāvokļi objektiem bez tiem.
14.08.2002
  Sāku strādāt pie 2 piegājienu kompilatora.
16.08.2002
  Nopietns progress 2 piegājienu kompilēšanā.
17.08.2002
  2 piegājienu kompilēšana ir strādAjoša.
19.08.2002
  Atrisināju problēmu ar BLOCKMAP lielāku par 64k.
  Salaboju skrīnšotus.
20.08.2002
  Implementēju slīpo virsmu definēšanu izmantojot virsotņu augstumus.
23.08.2002
  Utilītos atbrīvojos no iostream.
26.08.2002
  Slīpo virsmu definēšana izmantojot ZDoom līniju speciālu.
  Padarīju VEntity publisku.
27.08.2002
  Ieviesu atbalstu krāsainam sektoru apgaismojumam.
  Apvienoju Entity un MapObject klases.
28.08.2002
  Hexen atbrīvojos no tilta orbītu tabulām.
  Konfigurējams entīšu limits.
  Ieviesu atbalstu vecajām ekrāna proporcijām.
29.08.2002
  Sāku ieviest līmeņa klasi.
30.08.2002
  Visi līmeņa dati ir pārnesti uz līmeņa klasi.
  Apgreidoju tekstūru utilītu. Var konvertēt Strife tekstūras.
31.08.2002
  Turpinu darbu pie līmeņa klases, pārnestas veirākas funkcijas.
  Var eksportēt Strife tekstūras atpakaļ wad failā.
  Skriptā bool var izmantot funkciju argumentos un kā atgriežamo tipu.
02.09.2002
  Skriptā atbrīvojos no PointInSubsector, visur īstenībā ir vajadzīgs sektors.
  Piešķiršanā netika pārbaudīta tipu savietojamība.
05.09.2002
  Pārnesu P_ChangeSector uz dzini.
07.09.2002
  Aizvietoju boolean ar bool.
  Pārnesu RoughMonsterSearch uz dzini.
14.09.2002
  Sāku pārveidot klases jaunā stilā.
21.09.2002
  Turpinu sadali. Šodien kārta Hexen. Ak, vai!
28.09.2002
  Turpinu. Kārta vēl vienai kaudzei klašu.
05.10.2002
  Sodien kārta Strife klasēm.
12.10.2002
  Dienas kārtībā menu.
19.10.2002
  Kārta menu objektiem.
26.10.2002
  Beidzot arī servera pamatklases. Tas viss tika apdeitots iekš CVS, bet tā
 laikA uzkārās kompis un radāk konflikti. Nebija laika čakarēties. Bet pats
 galvenais ir tas, ka visas klases ir jaunajā stilā.
02.11.2002
  Tiku galā ar CVS konfliktu. Visādi citād izjaukta diena.
09.11.2002
  Atradu kāpēc ACS kārās - aizmirsu iekļaut skripta failu.
16.11.2002
  Pāris uzlabojumi softa draiverī. Pāris citi sīki labojumi.
02.01.2003
  Pāris pārkārtojumi menu, konkrēti ievada līnija.
  Kompilātorā ir tikai 2 piegājienu versija, atbrīvojos no this pointera.
15.02.2003
  Ievada līniju integrācija.
  Korekts Destroy.
08.03.2003
  Uzlaboju tīkla spēli, cerams ka nebūs aizturu.

******************************************************************************
                            VERSIJA 1.15
******************************************************************************

03.07.2003
  Taka darbs pie Vavoom ir loti ierobezots, trukst daudz log informacijas.
 Man ir izdevies izveidot nelielu sistemu ka apdeitot un ir neliels progress.
 Isuma statuss uz so dienu, salidzinajuma ar relizi.
  Kustigas 3D gridas, tas bija diezgan vienkarsi.
  Speletaju masivs tagad satur pointerus uz strukturam, driz bus klases.
  Testa implementacija ZDoom kameram.
  TArray templeits papildinats ar atminas tagu.
  Apdeitoju DDF konverteri lai tas generetu klasu failus.
05.09.2003
  Nolemu apdeitot logus. Stavoklis uz sodienu.
  Kautkas prieks Boom atbalsta, neka daudz.
  Joka pec speletaja ieroca nomesana.
  Darbs pie Strife liniju specialiem, daudzi jaunie jau strada.
22.09.2003
  Salaboju RoughMonsterSearch.
23.09.2003
  Ir bijusas paris izmainas Strife, tadas ka sarunas laika nospiezot ESC tiek
 aizsutits impuls, kludas labojums menu slaideros un enumos, statusbara tagad
 ir veselibas skaits (vel nav indikators), implementeju stavesanas funkciju,
 ir klusie ieroci.
  Palielinaju maksimalo izskirtspeju.
  glbsp konsoles komanda parsingo visus parametrus.
25.09.2003
  vlumpy prot veidot Doom standarta patcus.
  Teksta drukasana ar vardu vrapingu Strife sarunam.
  Gadijuma sarunas.
26.09.2003
  Atradu ko nozime visi Strife sarunu atbilzu lauki, tagad speletajam tiek
 doti prieksmeti un ir ne atbilde ja kautka nav. Inventara sistema.
29.09.2003
  Atradu ko nozime visi parametri Strife sarunas. Tagad viss strada ka vajag,
 tai skaita visi nomestie prieksmeti. Ir ari kvestu biti.
  Nokopeju no Unreal-a guard makrosu kontekstu Linux versijai, signali tagad
 izmanto longjmp lai izietu ara un atjaunotu registrus lai varetu mierigi
 izmest exception-u. Tagad signali normali iziet no programas.
02.10.2003
  Strife statusbara ierocu popupa ir visi elementi. Implementeti specialie
 sarunu prieksmeti kuri atver durvis. Tiek dota precizitate un izturiba.
03.10.2003
  Palielinaju speletaja sakuma punktu skaitu.
  Strife izsitot logu tas vairs nebloke, var nonemt force field.
15.10.2003
  Izlaboju kludu Heretic kad inventars pec attieciga laika neaizveras.
  OpenGL un Direct3D draiveros ja nav brivu cache bloku tiek atbrivoti visi
 vecie cache bloki.
  Seivgeimos tagad tiek saglabata slepta limena informacija. Tagad ieladejot
 seivu un izejot limeni pareizi atgriezas uz vajadzigo limeni.
21.10.2003
  Speletaja ierocu spraiti tiek zimeti dazados atalumos lai nebutu problemu
 ar to parklasanos.
05.11.2003
  Speletaja struktura parveidota par klasi.
22.12.2003
  Ieviesu risinajumu "feet in ground" problemai.

******************************************************************************
                            VERSIJA 1.15.1
******************************************************************************

09.01.2004
  Apdeitoju uz jaunako glbsp versiju.
  Izlaboju atkartojosos balsu kludu.
  Implementeju comm unita un teksturu skrollinga liniju specialus.
  Saku parnest no ZDoom Strife stavoklu funkcijas.
13.01.2004
  Parnesu praktiski visas pieejamas Strife stavoklu funkcijas. Alternativie
 ieroci.
23.01.2004
  Parnesu daudzas Strife stavoklu funkcijas pec to piederibas.
27.01.2004
  Izlaboju kludu limena ielade.
  Labaks minzone izmers.
11.02.2004
  Salaboju botu tikla mesidzus.
  Implementeju Strife ammo satchel.
  Sarunu uzsaksanai augstuma parbaude.
12.02.2004
  Salaboju atkartotu menu izsauksanu.
27.02.2004
  Speletaja starta punktu augstums.
24.03.2004
  Speciala darbiba nogalinot monstru.
  Salaboju augstumu floutojosajiem itemiem.
  Salaboju TGA failu paletes ieladi.

******************************************************************************
                            VERSIJA 1.15.2
******************************************************************************

07.04.2004
  Loga rezims visiem Windows renderiem.
15.04.2004
  Campers ieteica paris labojumus un atbalstu peles rullitim.
!!! Trukst datu.
29.07.2004
  DirectSound draiveri atrisinaju problemu ar strukturu izmeriem.
18.08.2004
  Atbalsts lielakiem virtuala ekrana izmeriem.
21.08.2004
  Partaisiju VClass par patstavigu klasi.
  Partaisiju rendera un skanas draiveru registraciju.
22.08.2004
  Parnesu kaudzi funkciju uz speletaja klasi.
23.08.2004
  Parnesu ari ierocu utilitus uz speletaja klasi.
26.08.2004
  Pievienoju jaunus 3D modelus Hexen-am.
27.08.2004
  Saku parnest visparigas klienta funkcijas uz speletaja klasi.
28.08.2004
  Pabeidzu ar visparigajam klienta funkcijam.
04.10.2004
  I've got my own computer at home and I'm back to Vavoom development. I also
 decided to write further logs in English, partly because most user's don't
 speek Latvian (now they will understand this) and because in Linux typing logs
 in Latvian might have compatibility problems. But don't expect me to translate
 all old logs.
05.10.2004
  Added behavior lump size check. Levels with BEHAVIOR lump of 0 bytes will
 load fine now.
06.10.2004
  Working on better rendering of old skies, almost done.
07.10.2004
  Finished improved old sky rendering.
08.10.2004
  Added SDL patches (with some modifications). Probably I have a very old
 version of SDL since I had to comment out some lines that most likely do work
 with newer versions.
  Updated to latest glBSP version.
10.10.2004
  Added support for version 3.0 GL-Nodes in engine and glVIS.
  Fixed flying blood n Hexen.
  In Doom and Strife added definitions for texture and flat animations for all
 frames.
  Added toggle always run to controls menu.
  In Linux end text replace characters below 32 with dot.
  For Strife added helper ACS scripts lump. Coorect locks by quests.
11.10.2004
  Joystick yaw speed default value fixed.
  Added acc and compiling of helper ACS to build process.
  In Strife stamina affects maximal health.
12.10.2004
  Working on Strife. By looking at SvDoom source found out that items and
 blowable objects have give quest flag with quest number in speed. It made a
 lots of quest triggers work fine. Also implemented animated door. Now it's
 playable till killing of Programmer.
13.10.2004
  More work on Strife. Fully implemented alarm indicators, turrets, stalkers
 and Programmer. Killing Programmer informs helper ACS about death so that
 map traversals to new and abandoned front base work fine.
15.10.2004
  Upgraded to latest SDL. Anyways there's some delay till sound is played.
17.10.2004
  Working on Strife monsters. Implemented templar, inquisitor, Bishop, Macil,
 Oracle, Loremaster, specters, Entity. Also implemented sigil.

******************************************************************************
                            VERSION 1.15.3
******************************************************************************

26.10.2004
  In ACS interpreter replaced function table with big switch statement. This
 is much faster since compiler can optimize it better (like in progs VM). It
 will also allow multiple other optimizations that I've done in progs VM.
29.10.2004
  Finally added TID handling to all games.
31.10.2004
  Implementing missing Hexen line specials in all games. The only missing is
 use puzzle item.
11.11.2004
  Several changes in Allegro+GLX driver to match latest Allegro version.
14.11.2004
  Fixed sky height, always checking for valid sprite number and frame.
20.11.2004
  Began working on implementing all sector specials in all games.
21.11.2004
  All of the normal sector specials and extended damage specials are properly
 implemented. This also fixed several bugs where sector special number wasn't
 addjusted to translated special number. Also fixed time when damage specials
 are applied.
22.11.2004
  Implemented wad file lump namespaces.
  In ACS interpreter manually inlined stack functions. Execution local state
 variables that were global now are local.
23.11.2004
  Added support for loading PNG files. As a test tried to load a hi-res PNG
 texture replacement textures and it worked fine, meaning that hi-res texture
 support is almost done.
  In ACS interpreter optimized work with stack.
24.11.2004
  Added all extended acs opcodes. Most of them currently are not implemented,
 they only take parameters and pushes result to stack.
25.11.2004
  Added support for loading enhanced ACS script lumps.
28.11.2004
  Implemented ACS functions. Created scripts object class for libraries.
29.11.2004
  Fully implemented support for high-resolution textures.
  Some more work on ACS objects.
30.11.2004
  Implemented ACS variable arrays and libraries.
04.12.2004
  Increased ACS variable amounts.
  Updated to acc 1.31.
05.12.2004
  Removed limit on ACS scritp variable count. Execution of ACS scritps with
 result.
06.12.2004
  In progs increased maximal function arg count to 16, StartACS uses this.
  Implemented some ACS opcodes.
  Updated acc to version 1.32.
  Started to implement many Strife line specials with helper ACS using new
 ACS possibilities.
07.12.2004
  In Strife changed lock numbers for "Doean't work" to match ZDoom's.
  Strife's new line specials with temporary numbers changed to have proper
 numbers.
08.12.2004
  In Strife fixed z velocity for flamethrower and grenades. Fixed mauler's
 second attack throwing out of the level. Proper Sigil sprite depending on
 number of Sigil pieces. Fixed floor Sigil attack.
09.12.2004
  Implemened Strife's friendly enemy AI.
10.12.2004
  Implemented Strife's key display. Fixed activation of several line types.
11.12.2004
  Implemented some Strife's unknown action functions.
12.12.2004
  Added more line flags. Implemented railings.
  Strife conversations now display prices. 
  Fixed manual doors to use passed special arguments.
  In utils directory created directory for editing stuff - ACS includes and
 config files for WadAuthor and DoomBuilder.
13.12.2004
  In Strife implemented armor display, fixed breakable glass.
14.12.2004
  Implemented throwing an item in Strife.
17.12.2004
  Manual door fix in all games.
19.12.2004
  Fixed Strife boss deaths.
20.12.2004
  Updated to acc 1.33.
21.12.2004
  Implemented Strife finales, slideshows, various death types.
22.12.2004
  Several fixes to compile under Windows.
  Updated glVIS to release a new version.
23.12.2004
  Moved cheat and savegame functions to player class.
  Player class functions are called directly by engine.
  Added newely added ACS pcodes.
24.12.2004
  Properly implemented SetThingSpecial, SetFloorTrigger, setCeilingTrigger,
 ThingProjectile2, GetLevelInfo and ChangeSky pcodes.
25.12.2004
  Implemented temporary hack to save lines seen on automap.
26.12.2004
  Properly implemented music change ACS commands.
  Option to split long frames into smaller ones when running thinkers so that
 physics work more accurate.

******************************************************************************
                            VERSION 1.16
******************************************************************************

15.01.2005
  Fixed bug with incrementing/decrementing ACS map variables.
  Level time saved in savegame.
  Created common ACS scripts.
16.01.2005
  Created enum for line specials and started to add all common specials.
17.01.2005
  All common line specials are added to the enum.
  Created initialisation routine in door class.
18.01.2005
  In all games door specials now use the same constants.
  Moved special utilities to common, started to update them to correctly work
 with slopes.
19.01.2005
  Finished updating action special utilities, added some more utilities that
 will be needed for Boom support.
  Fixed bug that caused infinite spawning of phased light specials.
  Fixed wrong Heretic episode 5 finale.
20.01.2005
  Updated door specials to use new utilities and added support for gradual
 lighting effects.
21.01.2005
  Additional fixes for changing moving door's direction, updated door closing
 in 30 seconds.
23.01.2005
  In OpenGL properly using clamp to edge extension for skyboxes.
26.01.2005
  In ceiling mover class added function to initialise, stop crusher and resume
 ceiling in stasis.
27.01.2005
  Updated ceiling specials to use new utilities, made all types available in
 all games and added many new ones.
  Decided to release version 1.16.1 with several bugs fixed, but without the
 new stuff.
28.01.2005
  Added generic door and ceiling specials.
29-01-2005
  In SectorMover added function Finished that properly destroys it.
  Added Init function to floor movers.
30.01.2005
  To floor movers also added functions to initialise stair and donut movers
 and to stop crushing floor.
  Added init, stop and activate in stasis function to moving platorm specials.
31.01.2005
  Made all floor specials available in all games.
  For doors moved code of initialisation of open in 30 secs and reusing of a
 door to functions in door class.
01.02.2005
  Made all platform specials available in all games.
  Updated floor movers and platforms to use new special utilities.
02.02.2005
  Firebrand created icons for fullscreen mode. Must tweek them a bit.
  Worked on Hexen's stair building specials. Old stair step queue replaced
 with linked list of stair stem movers. All stair processing code moved to
 stair step mover class.
03.02.2005
  Updated stair step movers to new special utilities, some more tweeking.
04-02-2005
  Some more improvements in initialisation of stair step movers.
05.02.2005
  In sectors changed special data to 3 separate specials for ceiling, floor
 and light, like in Boom.
27.02.2005
  My new PC is ready for development. :)
  Added windowed mode to Allegro drivers. There have been some changes in
 Allegro since now mouse doesn't work properly with OpenGL driver where I'm
 recreating the window - a BIG hack.
02.03.2005
  Exit specials now take posittion argument.
  Added new ACS specials to all games.
  Started working on lighting specials.
03.03.2005
  Added base class for lighting effects so they can be stopped.
  Created separate lighting line special functions that doesn't spawn thinker.
05.03.2005
  Made teleport line specials accept sector tag.
06.03.2005
  Added support for more teleportation line specials.
08.03.2005
  Added new TID argument to thing spawn line specials.
  In UDP driver added check on retrieval of local host name.
10.03.2005
  Worked on floor waggle and pillars. Added ceiling waggle.
  Added thing spawn IDs to vdefs acs file.
13.03.2005
  Added floor transfer numeric and trigger line specials. Added Boom linedef
 types to conversion table as well as handling of generic types.
14.03.2005
  In all games now using texture scrolling specials, added scrolling by
 offsets.
15.03.2005
  Added elevator line specials.
16.03.2005
  Added Doom style and generic stair line specials to all games.
  Added OpenGL driver for AllegroGL library. No more problems with mouse.
17.03.2005
  Added more scrolling specials.
21.03.2005
  Implemented transfer floor and ceiling light line specials.
22.03.2005
  Temporary fix for crash in ACS thinker.
  Rearanged Doom fulscreen stats.
23.03.2005
  Started testing with BOOM's demo level.
  Fully implemented UseThrough and PTouch line activation types.
  Fixed texture model scrolling.
24.03.2005
  Added builtin MSG_CheckSpace to avoid overflows.
  Fixed accelerated scrolling.
  Manual activation of ceilngs, floors, plats and stairs.
  Added door's light effect.
  Fixed teleporting with sector tag.
  Split loading sidedefs in 2 parts so that depending on line special can have
 special meanings of texture names. Now BOOM demo level loads without errors.
25.03.2005
  Implemented custom sector damage and friction specials.
  Better implementation of Strife's animated door.
  Strifes' NoiseAlert, ForceField and ClearForceField available in all games.
  Implemented saving a network game. I can't test it but I hope it works.
  Changed location of 2D graphics hi-res texture directory to
 <gamedir>/textures/pics.
26.03.2005
  Added Strife qiut game screen.
  Fixed finding of model sector returning passed-in sector.
  Fixed several bugs in Strife. Spectral creatures now take damage only from
 Sigil. Health upgrade also gives full health. Implemented "Patch me up" and
 "I'm out of bullets". Added bInCombat flag, you can't talk with persons that
 are fighting. Implemented waving burning hands. Loremaster's chain now pulls
 player up. Implemented teleporter beacon.
27.03.2005
  In all games correctly activating push wall and impact specials.
  Correct action when destroying power coupling. Also giving prison pass opens
 the door. Made breaking of glass work properly.
29.03.2005
  Stats upgrade when killed Loremaster also gives health.
31.03.2005
  In Strife fixed wrong voices when killed boses.
01.04.2005
  A fix when loading a savegame having palette effect.
  When loading savegame server info is sent after loading level data from file
 so clients have loaded data.

******************************************************************************
                            VERSION 1.17
******************************************************************************

04.04.2005
  Fixed DeHackEd support.
  Fixed reseting of velocity after teleport in Hexen.
19.04.2005
  Fixed crash with stairs.
  Fixed removal of wings in Heretic.
  Fixed some Strife cheats.
  Several fixes by someone - fixes freeze in OpenAL driver on Linux, better
 support for UTF-8 console for end text.
25.04.2005
  Started work on autoconf generated configure script.
26.04.2005
  I installed gcc 4.0.0 and it now warns about classes having virtual functions
 but no virtual destructor.
  Already usable configure script with system detection.
  Temporary fix in vcc when compiled with optimisations, fixed warnings.
27.04.2005
  Fixed most of the compiler warnings.
  All configurable stuff is now in configure. Added CD driver detection.
28.04.2005
  Added automatic detection of Allegro or SDL.
  Started work on updating MD2 models. Created Makefile for fixmd2 and added it
 to build process. Had to increase maximal vertex count, mostly because mm3d
 doesn't merge ST vertexes.
29.04.2005
  Continued to update MD2 models.
30.04.2005
  Continued to update MD2 models. Lost soul's animated fire animation was real
 pain. I need a better way to do this.
01.05.2005
  Continued to update MD2 models. Added support for specifying a skin index.
 This allowed me to make a very easy torch fire animation. Must update lost
 soul, burning barrel and maybe other models to take advantage of this. This
 will also make very easy to add support for damaged skins.
02.05.2005
  Updated animdefs script to support range animations and to recognise other
 ZDooom specific keywords. Added support for BOOM's animated lump. Moved switch
 list to r_tex, since they will be defined by animdefs.
03.05.2005
  Started a work on texture classes. For each texture format there will be a
 class that supports it. This will make drivers completely independent from
 formats. I started by creating a texture list. Texture class currently has
 type and index of corresponding type texture. Wall and flat textures now use
 index in new texture list, drivers doesn't have arrays for flat data anymore.
  To names list added adding of names, that should be lowercased and no longer
 than 8 characters. This will be used by texture list and wad files.
04.05.2005
  Some fixed by Firebrand.
  Added to texture list sprites and skybox textures. In OpenGL and Direct3D
 drivers removed inversed width and height arrays. Fixed possible bug with sky
 box textures.
05.05.2005
  Made cnter messages to be drawn much lower and to drawn with wrapping in a
 case of a long messages.
  Added skins and 2D images to texture list. Since these are added dynamicly,
 I had to add a function to drivers that updates driver's texture data lists.
 Lists of all registered skins now is in r_tex. And both of them doesn't have
 limitations anymore.
06.05.2005
  Removed SetFlat from all drivers since SetTexture can detect if it's a flat.
 Removed textureheight array since it can be easely calculated. Changed texture
 animation to one common array.
07.05.2005
  Added width, height and offset texture properties. Also added wall patches to
 the texture list. Created classes for different texture formats.
  Changed OpenGL and Direct3D drivers to load textures as 8 bit and convert
 when uploading.
08.05.2005
  To all texture classes added function Getpixels that loads the texture. After
 this all drivers became independent from texture formats. Some functions that
 generates texture can be merged into one. All of the properties of different
 texture types now are in texture classes, old lists were removed, with this
 the TypeIndex property. Also added function GetHighResPixels that, depending
 on usage type loads high-resolution version.
  For front sky layers of double-skies now there's a flag intexture.
10.05.2005
  Added DriverData to textures where drivers can keep driver specific data.
  Added texture data format attribute, which can be 8-bit, 8-bit with custom
 palette or true-color. Loading of skins and sky box texture use texture API.
 Textures now have a GetPalette function that returns the palette of texture.
 Moved texture animation to texture class.
  Finally installed TiMidity patched for SDL_mixer. And it turned out that
 conversion of MUS to MIDI didn't produce a valid MIDI file. After replacing it
 with original qmus2mid I got working MIDI music.
11.05.2005
  Added function GetPixels8 to texture class that converts texture to 8-bit if
 texture is in another format. It's primarily for software renderer, but there
 may be other uses if it. Moved PalNum from texture base class to subclasses
 that needs it. Some oteher fixes if texture loading.
14.05.2005
  Changed multiple palettes array to a single main palette. Removed support for
 custom palette from patch texture since it's needed only by Heretic episode 2
 fnale pic which is a raw image.
  Added support for overloaded textures.
15.05.2005
  In OpenGL and Direct3D all textures now have mipmaps.
  Added remapping of color 0 for file textures.
17.05.2005
  Created texture manager class. Added a function for simpler iteration of a
 wad file lumps in fixed namespace, used to init sprites and flats. All texture
 functions moved to texture manager class.
18.05.2005
  Moved texture list to texture manager class.
  Added function to read a part of a wad file lump, will be used by texture
 type detection code.
29.05.2005
  Fixed bug with moving 3D floors.
30.05.2005
  Added support for IMGZ and PNG lump textures.
02.06.2005
  Added push specials.
03.06.2005
  Split spawning of height sectors in a separate function.
05.06.2005
  Updating models.
06.06.2005
  More models updated.
08.06.2005
  Models update.
  Fixed automap background.
11.06.2005
  Multiple new Hertic models added.
16.06.2005
  Fixed Doom fullscreen statusbar positions.
28.06.2005
  Initial implementation of rendering of fake floors. Doesn't work properly.
29.06.2005
  Redesigned rendering of fake floors by having a fake floors and ceilngs for
 rendering.
30.06.2005
  Fully implemented rendering of fake flats.
03.07.2005
  Added parsing of simple switch definition on animdefs script. All switch
 definitions moved to animdefs. Old switches script support has been removed.
 Added support for Boom style switches lump.
  Fixed animdefs scripts not being parsed at all.
05.07.2005
  Windows compilation fixes.
07.07.2005
  Fixed polyobj door movement distance in last tic.
  Added Firebrand's fixes for Heretic volcanos.
08.07.2005
  Rounding of polyobj positions when sending over network.
09.07.2005
  Implemented Boom style scrollers carrying things.
15.07.2005
  Added printing of more info in which model a frame is missing.
16.07.2005
  In Hexen increased jump speed.
  Fix for fake ceiling changing from and to sky texture.
29.07.2005
  Added support for quoted strings in response files.
10.08.2005
  Added some new models to Heretic and Hexen.
13.08.2005
  Fixed freeing of translated sprite.
  More models added.
14.08.2005
  Some Hexen model fixes.
  Added Strife's inventory drop to controls menu.
27.08.2005
  Started adding support for network packet compression.
29.08.2005
  Implemented network packet compression using zlib.
  Some fixes in SDL sound code.
  Added Strife models.

******************************************************************************
                            VERSION 1.18
******************************************************************************

04.09.2005
  Fixed check for any texture.
  Started to create a MIDI driver class, similar to sound driver class.
06.09.2005
  In texture manager made case in-sensitive comparision of extensions of file
 textures.
  The source had 5 copies of the qmus2mid converter (including modified one in
 Allegro driver and non-working version in SDL driver) which is a bad thing.
 So I started to merge them all.
07.09.2005
  Finished merging of qmus2mid.
10.09.2005
  Finished implementing MIDI driver interface. Comsole command 'Music' moved
 to common sound module.
11.09.2005
  Little fix for network packet compression.
  Changed sound and music volume cvars to be floats.
  Changed MIDI driver initialisation if OpenAL is used.
  Moved music lump loading and MUS to MIDI conversion to main sound module.
12.09.2005
  Created CD audio driver class, all drivers converted. Console commans 'CD'
 moved to common sound module.
13.09.2005
  Started to implement streaming support in sound drivers. Implemented in
 Allegro and OpenAL drivers. Simple playback of a wav file.
16.09.2005
  Implemented streaming support in DirectSound deriver.
  Started work on replacement for DirectMusic driver.
18.09.2005
  Replaced DirectMusic driver with new driver that uses MMSystem. It's based
 on sample code from M$, and is prety messy.
19.09.2005
  Implemented streaming in SDL driver.
29.09.2005
  Temporary fix for using a puzzle line.
02.10.2005
  Big cleanup and beautification of the new MMSystem MIDI driver.
06.10.2005
  Some more cleanup in MMSystem MIDI driver.
10.10.2005
  Created base class for a streamable audio codec.
12.10.2005
  Implemented Vorbis audio codec. The playback is a little bit too fast, but
 I'll deal with that later.
13.10.2005
  Implemented general API for registering an audio codec.
18.10.2005
  Created streamed music player class and made general music code to use it.
 Audio codecs moved to their own files. Ogg support works as expected.
  Added Firebrand's fixes for lightning in level with skybox and movement of
 Hexen's ceiling lightning.
19.10.2005
  Removed archive path handling from SNDINFO.
  Started implementing MP3 codec.
20.10.2005
  Got a working MP3 codec.
22.10.2005
  Some MP3 code cleanup. Fixes to stream player for looping and stopping.
28.10.2005
  Sprite offset fix on by default.
  Added Timidity driver. It uses Timidity version from SDL_mixer with some more
 fixes.
29.10.2005
  Added MikMod codec.
02.11.2005
  Fixed armor percent sign in Doom status bar.
  Implemented health bar and ammo icon in Strife status bar.
  Added FLACC audio codec.
  Fixed Vorbis codec.
03.11.2005
  Implemented support for any bitrate music streams.
  Proper WAV codec implementation.
05.11.2005
  Strife voices are added to sounds as normal sounds. They have prefix svox/.
 Closing coversation dialog stops playing voice. Shareware voices are put in
 voices namespace.
06.11.2005
  Fixed initial Strife objectives.
  Fixed Strife hazard palette flash.
  Added support for 16 bit sounds.
  Implemented support for different sample loaders and added loaders for WAV
 and FLACC format samples.
08.11.2005
  Removed playing soun till done.
  Parsing of all MAPINFO, SNDINFO and SNDSEQ scripts.
  Started to move common parts from sound drivers to main sound module.
09.11.2005
  Most of the common parts from sound drivers are moved.
10.11.2005
  Separated playback of 3D sound.
  In SDL driver moved chunks from channel structure to sound chunks array.
11.11.2005
  InMikMod codec fixed conflict with SDL mixer.
  Put Timidity library in namespace to avoid conflicts.
12.11.2005
  Checksum fix in datagram driver.
  In progs Added swaping of bitmask for MacOS X.
  Added support for looped sounds.
13.11.2005
  Some final cleanup of sound drivers.
  In Doom restored old puffs and blood.
  Upgraded to glBSP 2.20, added support for version 5 GL nodes.
  Added console variables to disable static lights and particles.
  Fixed line endings of WadAuthor config files.
14.11.2005
  Implemented support for GL nodes for levels with names onger that 6 chars by
 searching for corresponding GL_LEVEL lump.
15.11.2005
  Some additional fixes for MacOS X.
  Started to add support for SNDINFO extensions. Got rid of SFXINFO.
16.11.2005
  Have support for all SNDINFO extensions.
17.11.2005
  Renamed Doom sounds to ZDoom names.
18.11.2005
  Renames Heretic sounds.
  Added Firebrand's fix for Strife title sequence.
19.11.2005
  Renamed Strife and Hexen sounds.
  Added Firebrand's fix for Strife status bar ammo icons and glBSP.
20.11.2005
  Implemented support for SNDSEQ extensions. Changed Doom, Heretic and Strife
 action specials to use sequences.
  Fixed MD2 skin index check.
21.11.2005
  Removed unused fields from VObject. Renamed progs opcodes to much nicer
 names, put progs into it's own wad namespace.
  In ACS added extra byte swapping.
22.11.2005
  Some cleanup in names.
  In compiler removed building of the expression tree, that never was used as
 initially planed. It also now compiles much faster.
23.11.2005
  In vcc moved function properties from type class to function class, in the
 end got rid of function type. Some more improvements in expressions parsing.
24.11.2005
  In vcc created class class (I like how it sounds). Some cleanup.
25.11.2005
  In vcc fields of the class are moved from type class to class class.
26.11.2005
  Moved rest of the class specific fields to class class. Created struct class.
 Got rid of the class type.
27.11.2005
  In compiler removed operator class. Moved struct secific fields from type
 class to struct class.
29.11.2005
  Removed compiler namespaces.
30.11.2005
  Got rid of using classes in case statement.
07.12.2005
  In progs moved virtual tables, property info, states, mobjinfo, sprite and
 model tables into their own chunks.
11.12.2005
  Made path traversal callbacks class members.
12.12.2005
  Implemented support for defining enums and structs inside a class. State
 names belong to the class. Removed compiler limitations.
19.12.2005
  Changed progs version number, added extra licence notice in ACS code.
24.12.2005
  In Doom fixed status bar face.
  Fixed Strife ammo icons and amounts.
25.12.2005
  Moved title screen drawing to a class.
  Created LevelInfo class, every thinker has a reference to it.
  Fixed Srife crusaders.
26.12.2005
  Moved execution of action specials to the LevelInfo class.
27.12.2005
  Some more engine callbacks moved to LevelInfo class.
28.12.2005
  Added fix for too small flats. Fixed some other compiler problems.

******************************************************************************
                            VERSION 1.19
******************************************************************************

03.01.2006
  Fixed BFG, some missing sound renaming.
  Fixed anisotropic texture filtering in OpenGL.
  Fixed MAPINFO redefining previous maps.
08.01.2006
  Fixed several bugs in Strife.
  Added wrapping for long notify messages.
10.01.2006
  Fixed vcc not properly checking if state belongs to a class.
18.01.2006
  Implemented previous / next weapon commands.
  Added Firebrand's fix for Hexen's mage lightning on 3D floors.
  Fixed doublesky.
22.01.2006
  In Strife continue conversation if failed to give the item, slideshow music
 change.
31.01.2006
  In UNIX systems savegames, config files and some gwa files are stored in home
 directory.
04.02.2006
  Lately I was playing with VMware, got Vavoom working on FreeBSD, Solaris 10
 and BeOS.
05.02.2006
  Moved most of the common utilities to the level info class, some to other
 classes, others made to be builtin functions.
06.02.2006
  Created intermission screen classes and moved all intermission code.
07.02.2006
  Moved finale screens and status bars to classes, created client game class
 for global data and methods.
08.02.2006
  In client progs moved all global functions to classes.
09.02.2006
  Moved global client progs variables to classes, client progs have no more
 global functions and variables.
10.02.2006
  Some platform fixes, got it working on Darwin.
12.02.2006
  Created GameInfo class. Started to move server progs functions to classes.
13.02.2006
  Moved all server progs functions to classes, started to move varaibles.
14.02.2006
  Continued with variables.
15.02.2006
  Finished with progs global variables.
16.02.2006
  Changed builtins to be static methods of Object class, moved other common
 enums, structs and defines to Object class. Game specific common enums moved
 to corresponding class. Removed support for global variables from compiler.
17.02.2006
  In compiler started to make types to be single class that contains all info
 and the rest of compiler to use types as objects instead of the pointers.
18.02.2006
  Finished changing compiler type handling. We don't have support for multi
 dimensional arrays, but that's a small price to pay.
19.02.2006
  Made true and false keywords.
  Implemented delegates. As a test made main Doom menu use them.
  Moved some special enums to classes.
20.02.2006
  Change client state struct to be a class. Removed player stats limit.
  Created modifiers class that handles all modifiers.
21.02.2006
  Fixed Doom ammo pickups.
  Wrote from scratch a dyamic string class.
22.02.2006
  Wrote a stream class. This replaces FArchive and uses similar interface.
  Progs now exports all fields, structs and constants. Classes, functions and
 states now include full info.
23.02.2006
  Started to change saving of the game using type info.
24.02.2006
  Working saving using type info, removed old property infos.
26.02.2006
  Finished implementation of proper serialisation of the objects. Added native
 property to the fields with native serialisation.
27.02.2006
  Rewrote names class.
  Put thinkers back in a linked list.
  Added macros for implementing builtins and events.
  Added stream class to compiler.
28.02.2006
  Implemented support for VavoomC constants. This will get rid of most of the
 macros in progs code.
01.03.2006
  In common started to change Player and Actor reference types to BasePlayer
 and Entity, to avoid using game specific lasses in common.
  In engine made Thinker class global.
02.03.2006
  Finished type replacements.
  Wad lump names are now stored as names. Added name constants for all names
 used by engine.
03.03.2006
  Started to change files API to use dynamic strings.
04.03.2006
  Finished changing files API. Functions dealing with file names made members
 of the string class.
  Added check macros.
05.03.2006
  Made Entity, ViewEntity, Player, LevelInfo and GameInfo classes shared by
 client and server. On client side replaced client mobj struct with Entity.
 Moved thinker add/remove to Level class.
06.03.2006
  Implemented cleaning references to destroyed objects. Initial attempt with
 a stream was very slow. After some optimisations it's very fast now.
  Created base class for all type info objects.
  Started to use streaming for reading and writing progs.
07.03.2006
  Most of the type objects use serialisation.
08.03.2006
  All type objects data is serialised.
09.03.2006
  More generalisation of the progs serialisation. Other progs data is now read
 using stream.
10.03.2006
  All of the progs is now read and written using sream.
11.03.2006
  In engine replaced usage of bitfields with flags to avoid problems on big
 endian systems where bits are packed other way.
12.03.2006
  Changed states from index in the table to pointers, created state VavoomC
 type.
13.03.2006
  Implemented support for private, read-only and transient fields.
  Removed asm version of progs interpreter. It wasn't used in last release and
 since there's gonna be many changes there, it would be very big hastle to do
 all of the changes there. Also using gcc's jump table feature C++ code should
 be fast enough.
  In VavoomC local variables are now initialised to 0.
15.03.2006
  Optimised savegame size by saving only used names and non-empty entries in
 server baseline. Also ACS data is saved more efficient.
18.03.2006
  Renamed type info class names. Loading of progs doesn't need individual
 arrays, other serialisation improvements.
  Added Offset progs opcode.
  In compiler keyword checks done in per-character basis.
19.03.2006
  In progs added explicit type casts.
  For all members added outer object.
  In vcc implemented code location object, more abstract way of serialisation.
20.03.2006
  Fixed two network vulnerabilities - added missing compressed data length
 check and correct handling of zero length packets.
21.03.2006
  Firebrand fixed physics of flying ojects and some Strife bugs.
  I fixed bug with objects with no states and level info object pointer in
 level info itself.
23.03.2006
  In VavoomC added support for final methods, compiler improvements.
24.03.2006
  Moved loading of the progs to members base class, added post load method that
 sets up things after everything has been loaded.
25.03.2006
  Implemented support for progs to import another progs file, in other words I
 have basic support for modular progs. In basev directory created new diretory
 common for shared progs, common config files moved there.
26.03.2006
  Fully implemented modular progs, split progs into modules.
  Firebrand did some more Strife fixes.
28.03.2006
  In progs file write only used imports and names.
29.03.2006
  Made console variables and console command buffer and some console command
 functions to use dynamic strings.
  In MikMod driver added checks to avoid setting source stream to error.
30.03.2006
  Merged size buffer and message class.
01.04.2006
  Made console command arguments to be array of strings. Moved all console
 command execution in static class methods.
02.04.2006
  Renamed several classes.
  Moved console autocompletition to command class.
  Created class for command line arguments.
03.04.2006
  Fixed some Strife bugs.
04.04.2006
  SourceForge had problem with CVS server for last few days and it made me
 consider switching to Subversion. Probably I will do this after release.
05.04.2006
  More bug fixes, mostly in Strife.
06.04.2006
  For several builtins changed string arguments to names.
  In Strife added some lighting effects.
08.04.2006
  Fixed lighting specials not removing reference to thinker from sector.
  In Doom allow switching to fists while having chainsaw.
  In Strife fixed extrema damage kickback from poison arrows, for flamethrower
 projectiles added fake gravity to simulate original behavior.
  Fixed a typo in args class, fixed crash with bad format sounds.
09.04.2006
  In physics code properly initialise blocking mobj pointer.
  Added more lighting effects to Strife, some other fixes.
  Fixed sound playback check builtin.
10.04.2006
  In Strife added feet clipping for objects in water, added cheat that gives a
 quest item.
11.04.2006
  Removed Strife's helper and conversation script commands from mapinfo, they
 are now handled by game info class.
14.04.2006
  Implemented Strife-like definition of static lights in other games.
  Added fixes for compiling on other platforms.

******************************************************************************
                            VERSION 1.20
******************************************************************************

18.04.2006
  Switched from CVS to Subversion.
28.04.2006
  Fixed installation on Unix.
  Firebrand added lighting effects to teleport fogs, in Strife added default
 names of actors in conversations, added fullscreen status bar, automatic use
 of health and armor, other fixes.
29.04.2006
  Removed different version of Z_Malloc.
  In glVIS fixed location of the temporary file.
30.04.2006
  Some more Strife and status bar fixes by Firebrand.
  Removed minizone, added debug versions of memory allocation functions.
01.05.2006
  Changed loading of all texture types to use streams, some reorganisation.
02.05.2006
  Moved loading of file textures to corresponding classes.
  Changed high-resolution version of a texture to be a texture object.
  Moved loading of end-game text lump to host.cpp.
  Fixed joystick button names and number of joystick buttons in SDL driver.
03.05.2006
  Moved loading of palettes to main render module, drivers now simply use it.
  Removed support for purgable memory blocks.
  Added operator new and delete overloads.
04.05.2006
  Added debug version of operator NEW.
  Removed overloaded new and delete operators from some of the classes.
  Doing proper freeing of allocated memory in some places.
05.05.2006
  More memory freed on exit.
06.05.2006
  Started work on freeing level memory without using Z_FreeTag.
07.05.2006
  Firebrand implemented code for monsters to avoid dropoffs.
  Some more memory properly freed.
08.05.2006
  Started to rewrite loading of the level using streams.
10.05.2006
  For effects added checks if there's enough space in message.
  Some more fixes from Firebrand.
  Finished level loading using streams.
11.05.2006
  Rewrote dynamic array template from scratch.
  Added support for TGA high-resolution textures.
13.05.2006
  Properly freeing level data, got rid of Z_FreeTag. Changed usage of the zone
 memory tags to PU_STATIC, removed others.
14.05.2006
  Firebrand added check for pain elementals to not spawn lost sould through
 impossible lines.
  Got rid of zone memory tags.
16.05.2006
  Got rid of Z_Resize.
  Implemented special allocation of small memory blocks.
17.05.2006
  Removed old zone memory manager, now uses libc memory allocation.
  Fixed sound of exit switch.
  Created input manager and input driver classes.
18.05.2006
  Removed unused DOS serial driver.
  Started to create LAN network driver classes.
19.05.2006
  Fixed a bug with drawing Strife conversation dialog.
  Mostly finished with LAN network drivers.
20.05.2006
  Moved network driver list to main network module.
21.05.2006
  Final touches on LAN network drivers.
  Started work on main network driver classes.
22.05.2006
  Changed installation procedure on Unix systems.
  Firebrand implemented monsters trying to walk away from forced dropoff.
  Implemented support for specification of additional directories where to look
 for IWAD files.
  Finished work on network driver classes.
23.05.2006
  Moved player-related natives to player class, implemented Object's static
 natives using standard interface with macros.
25.05.2006
  Moved building of progs class virtual function table to engine.
  Moved prog function code to method classes, compiler now exports instructions
 in intermediate format and final compilation is done in engine for current
 platform.
  Preparing to rewrite progs virtual machine to support 64-bit systems.
27.05.2006
  Rewrote most of the progs virtual machine.
28.05.2006
  Finished with rewriting virtual machine.
29.05.2006
  In progs removed addfields.
  When compiled with gcc, progs virtual machine uses a computed goto.
  Field offsets are now calculated by engine, since on 64-bit they will differ.
31.05.2006
  Rewrote all calls to progs and all natives to use new macros.
  Did some test with progs stack to make sure it will work properly on 64-bit,
 had to add some extra opcodes. Got rid of all TProgs::Exec methods.
  Fixed delay when exiting the game.
01.06.2006
  Got rid of having a field object for every class method.
04.06.2006
  Fixed usage of sound sequences in all games.
  Started to add progs opcode versions with short and byte argments.
05.06.2006
  Finished with specialised opcodes.
  In software and OpenGL divers changed classes to be base classes and having
 the actual driver class in system specific module.
06.06.2006
  Added sector sound sequence thing types to editor config files.
07.06.2006
  Changed socket structure into a class, some network methods moved to this
 class. Created networking class.
08.06.2006
  Finished work on networking class.
  Changed list of search paths and wad files to be dynamic arrays. Removed
 limit of open wad files.
11.06.2006
  Added DESTDIR to Makefile.
  Fixed miscompilation of message.cpp with latest versions of gcc.
  Changed several fields in level structure to names, removed unused argument
 from register picture methods.
  Made file search path directory and wad file to have a common base class,
 merged lists of search paths and wad files into one.
  Started work on implementing support for dynamic strings in VavoomC.
  Firebrand did some improvements to automap.
12.06.2006
  Finished implemnting dynamic strings in VavoomC.
  Removed TProgs class, most of it is merged into VObject.
14.06.2006
  Changed default virtual screen resolution to 640x480 (so in next version
 there's visually something new :-). Updated corresponding drawing methods.
15.06.2006
  Finished adjusting drawing methods to new resolution.
17.06.2006
  Started to rewrite ACS virtual machine in a way similar to progs virtual
 machine.
18.06.2006
  Finished most of the work on ACS virtual machine rewrite.
19.06.2006
  Firebrand implemented support for customiseable gravity.
  Some more work on ACS.
21.06.2006
  Changed the way poly-wait and tag-wait ACS commands work and basicly finshed
 with ACS VM at the moment.
  Properly clear references to thinkers in sectors and polyobjs.
22.06.2006
  Installed MinGW, compiles fine with it, just had to fix the Makefile.
23.06.2006
  Added template Spawn for simpler object creation.
  Some fixes for software renderer.
  Added to class info reference to the default properties method, did some more
 fixes to be able to have class with no VavoomC code, made ACS class like this.
24.06.2006
  Moved calculation of translucency tables to engine, changed the way RGB table
 is handled.
  Fixed check for available screenshot file name.
25.06.2006
  Fixed crashes with network games, some improvements.
  Changed remaining wad lump caching usages to use streams to load data. Got
 rid of lump caching.
  Implemented sound manager class, basicly everything in s_data. Also decided
 to move parsing and list of sound sequences to this class.
26.06.2006
  Converted source files to UTF-8, updated copyright year and deleted old logs
 (once I'm changing all of the files).
28.06.2006
  Properly free default value string of console variables that were created by
 progs.
  Fixed loading of Strife conversation scripts.
  Created class for MUS to MIDI converter, removed track size limit.
29.06.2006
  Fixed Allegro OpenGL driver.
  Use Timidity on Unix systems by default.
30.06.2006
  Fixed class and struct size and offset calculations on 64-bit platforms with
 proper alignments.
  Fixed crashes in shutdown functions in a case there was an error during
 startup.
04.07.2006
  Removed usage of old dword type.
05.07.2006
  Created an audio class, all sound effect and music playback moved to this
 class. Also changed sound sequence node to be a class.
06.07.2006
  Got a chance to test it on a 64 bit system. After some bug fixes it runs.
  Also moved sound sequence functions to audio class.
  In utilities got rid of usage of the old types byte, word and dword.
08.07.2006
  Started to improve configure script and build system, to properly check for
 all libraries and to be able to build outside source directory.
09.07.2006
  Finished with build system, some small fixes before release.

******************************************************************************
                            VERSION 1.21
******************************************************************************

16.07.2006
  Fixed crash in glVIS.
17.07.2006
  Fixed crash when traveling to already visited map.

******************************************************************************
                            VERSION 1.21.1
******************************************************************************

28.07.2006
  Added fix for latest version of OpenAL.
  Fixed crash when building on 64-bit systems.
29.07.2006
  Created abstract interfaces for network and audio systems.
30.07.2006
  Final changes to audio driver, split stream music player into separate file,
 merged sound sequences in main file.
  Created abstract interface for input driver.
  Fixed problem with latest version of glBSP.
  In string class added static methods that are wrappers of standard C string
 functions. Changed code to use them.
31.07.2006
  Finished with string functions.
  Created string methods for dealing with UTF-8 format strings.
  Split main file into several makefiles.
01.08.2006
  Started to switch to automake. Switched makefiles in root, basev, progs and
 utils. The main benefits are smaller initial makefiles, automatic dependency
 tracking and automatic source distribution creation.
02.08.2006
  Fixed UTF-8 functions.
  Switched to automake all makefiles in utilities.
03.08.2006
  Switched to automake the rest of the makefiles. Main makefile is not yet a
 proper one.
05.08.2006
  Firebrand fixed empty spaces in status bar and adjusted drawing of glbsp and
 glvis plugin interfaces.
06.08.2006
  Fixed problem with DoomBuilder config file for Heretic.
08.08.2006
  Changed utilities to be back in bin directory.
  Fixed DeHackEd support.
  Started to create script parser class.
09.08.2006
  Fully implemented script parser class, added some more helper methods to make
 parsing simpler.
10.08.2006
  Fixed DOS and Windows executables having double .exe extension.
  Firebrand did some improvements to Strife conversation dialog.
  Fixed compilation on 64-bit systems with gcc4.
  Fixed Windows MIDI driver to use MIDI device selected in control panel and
 to properly set music volume.
12.08.2006
  Properly free all strings on exit and before doing memsets.
  Simplified command checks in music and CD console commands.

******************************************************************************
                            VERSION 1.21.2
******************************************************************************

13.08.2006
  Some version number fixes.
14.08.2006
  Started to implement support for ZIP (or PK3) files.
15.08.2006
  Split ZIP file handling into a separate file, merged with the unzip library.
  Changed the way wad files are added to the list. Strife shareware voices are
 fixed only for the IWAD file.
  Started to convert expression parsing to build an expression tree and emit
 actual code after parsing.
16.08.2006
  Finished first step in converting expression handling, got rid of old TTree
 class.
17.08.2006
  Started to change doing resolving of the expressions to be done after it has
 been parsed.
19.08.2006
  Finished moving resolving of expressions after parsing. Renamed expression
 handling file. Moved expression parsing code to parse.cpp, changed pass 1 to
 use it and just ignore result. Started to do similar work on changing the
 statements to classes and emit code after parsing.
20.08.2006
  Finished most of the initial work on statement classes, split them into a
 separate file. Made pass 1 to use it.
  Changed calculation of some constants to use expression tree.
  Some more improvements to expressions.
22.08.2006
  Changed variable and parameter types to be resolved using expressions.
24.08.2006
  Changed parsing of the methods and states to use expression classes and do
 resolving and emiting after parsing. This allowed me to get rid of the 2 pass
 compiling.
26.08.2006
  Added fixed array type expression. Do declaring of the struct and class
 fields after parsing.
27.08.2006
  Changed the rest of the member classes to use type expressions. Got rid of
 the evaluation of the constant expressions. After that there's no more need
 to predefine struct and class types.
  Started to merge keyword and punctuation enums into a token enum.
  Changed WAD file manager to use stream to read the file.
28.08.2006
  Firebrand fixed drawing of the weapon sprites with status bar on.
  Added some more utility methods to the string class.
  Finished merging of the keyword and punctuation enums into token type enum.
 Changed expression classes to use their own enums. Created a lexer class.
29.08.2006
  Created a parser class.
  Removed limit on the number of local variables.
30.08.2006
  Created an emit context class that is passes to all resolving and emiting
 methods. Most of the code generation moved to this class.
31.08.2006
  Even more of the global vcc variables and methods moved to classes.
01.09.2006
  Created a label class to simplify emiting of the jump statements.
02.09.2006
  Do evaluation of operations with constants as part of the resolving of the
 expression. Did some loop and branching optimisations.
03.09.2006
  Added specialised opcodes for virtual method and delegate calls. This
 allowed to get rid of the argument swapping.
  Optimised branching of logical operators.
  Implemented support for ZDoom style of handling of the PK3 files as an
 alternative to the WAD files. Also add all of the WAD files in the root of a
 ZIP file.
  Changed directory for high-resolution textures to hirestex.
05.09.2006
  Properly use ZIP specific WAD namespaces.
  Added support for generating ZIP files with vlumpy.
06.09.2006
  Started to merge client and server versions of the polyobject code.
08.09.2006
  Finished merging polyobject code. In Heretic and Hexen added support for new
 polyobject thing types.
  Implemented support for levelnum mapinfo command, this one replaces mapalias
 command which has been removed.
  Firebrand added optional dynamic light clipping.
09.09.2006
  Added support for specifying special boss death actions in mapinfo. Also
 added support for defaultmap. Removed map count limit.
10.09.2006
  Implemented support for nointermission flag and started to implement support
 for cluster definitions.
11.09.2006
  Added support for cluster enter and exit text definition.
12.09.2006
  Simplified serialisation of object references in C++ code.
13.09.2006
  Started to do some changes in network protocol. Server now sends a list of
 all classes to client. Client now spawn an object of the actual class.
17.09.2006
  Made sure that progs don't need to modify state variables in entity class.
  Fixed crash with missing sound lump.
18.09.2006
  Server now sends the state index instead of sprite/frame/model indexes.
  Removed state data copy variables from entity class.
19.09.2006
  Added extra parameter to map traversal callbacks. Got rid of the global
 variables that were used by callbacks.
  Moved some of the map handling methods to level class.
20.09.2006
  Moved more of the map handling methods to level class.
21.09.2006
  Implemented BeginPlay entity event.
  Currently assume that client and server have identical progs.
  Fixed some bugs in Korax Arena.
22.09.2006
  Added support for accessing a struct of another class. Don't allow global
 structs anymore.
23.09.2006
  Implemented proper handling of string stats in player class.
  Fixed printing of development messages to the console.
  Fixed freeing of the sector regions.
24.09.2006
  Correctly recognise files with .zip extension when specified with the -file
 option.
25.09.2006
  Firebrand fixed a typo in ZIP file namespace detection.
  Added optimised opcodes for accessing local variables and member fields.
26.09.2006
  Fixed spelling of many variables.
27.09.2006
  Implemented support for optional and out method parameters.
28.09.2006
  Changed client side to use actual Player class instead of ClientState class.
29.09.2006
  Implemented sound sequence support for random and relative volume and restart
 of the sequence.
30.09.2006
  Implemented support for random and selection sound sequences.
01.10.2006
  Implemented playback of sound sequence by actor.
  Implemented placeable sound sequence objects.
  Replaced Heretic's ambient sound with sound sequences.
  Implemented ambient sound objects.
02.10.2006
  Implemented sound attenuation.
03.10.2006
  Renamed 'common' progs package to 'engine', moved the rest of native classes
 to this package.
  Added C-mode to the scripts parser.
  Started to implement parsing of language scripts.
05.10.2006
  Finished implementing language script parser.
  Made map names and cluster messages localisable.
  I found out that mapinfo command 'secret' should be 'secretnext'.
06.10.2006
  Updated MAPINFO scripts to use localised map names and cluster messages.
07.10.2006
  Crated 'linespec' package, started to move line specials code there. Moved
 door and ceiling specials.
08.10.2006
  Moved floor, stair, platform, pillar and elevator specials to 'linespec'.
09.10.2006
  Moved polyobj lighting and scrolling specials to 'linespec'.
10.10.2006
  Implemented parsing of animated door defintions in ANIMDEFS, made texture
 change door to use it.
  Moved plane watcher, texture change door, exit, ACS some sector specials to
 'linespec'.
13.10.2006
  Moved puller, pusher and thing specials to 'linespec'.
  Added special texture usage type for automap background.
  Implemented support for special end game map names in MAPINFO.
14.10.2006
  Changed client to use end game type for finale.
  Fixed Strife to use correct sounds for doors.
  Improved texture type recognition. Added support for PCX and TGA textures in
 WAD files.
15.10.2006
  Unified content types.
  Started to replace usage of multiple palettes with colour shifts.
  Some more improvements in texture manager.
16.10.2006
  Finished replacing palette effects with colour shifts.
  Changed buttons to be thinkers, implemented support for animated switches.
20.10.2006
  Firebrand did some improvements for avoiding a dropoff.
21.10.2006
  Implemented support for warping textures.
  Skip camera texture definitions.
22.10.2006
  Implemented support for oscillate range animations.
  In MAPINFO added definitions for par and suck times and level title image.
23.10.2006
  Added MAPINFO flags for monster telefrags, no sound clipping, no alies and
 death slide show. Some MAPINFO script fixes.
25.10.2006
  Implemented support for maps in PK3 file.
26.10.2006
  Implemented Strife inventory limits.
  Fixed loading a saved game on startup.
28.10.2006
  Some Strife fixes.
29.10.2006
  Updated version number, fixed distfiles.

******************************************************************************
                            VERSION 1.22
******************************************************************************

01.11.2006
  Implemented switching to windowed mode on run-time, added it to the menu.
  Added console variables to disable hi-res textures, external sounds and
 music.
02.11.2006
  Implemented simple XML parser.
03.11.2006
  Added all new ACS p-codes, implemented many of them, added stubs to report
 unimplemented ones.
  Some Timidity fixes from latest version of SDL_mixer.
04.11.2006
  When sorting PK3 files, ignore extension.
  A little fix for PCX files.
  Fixed scripts parser incorrectly checking for floating point constants.
  Properly implemented all ACS set line blocking flags.
  Fixed network update incorrectly updating all objects causing network packet
 overflows.
  Updated ACC to the latest version.
  Updated ACS include files.
  Firebrand did some fixes for Strife.
06.11.2006
  Moved output device interface implementation to a common location.
18.11.2006
  Started to implement a simple angle based view clipping.
21.11.2006
  Stop processing BSP tree if view clip nodes are full.
23.11.2006
  Use view clipping to clip BSP bounding boxes.
30.11.2006
  Fixed usage of -iwad option.
  Fixed view clipping with 3D floors.
  Changed old aspect ratio to be on by default.
  Avoid adding duplicate textures.
  Implemented proper support for enhanced music.
02.12.2006
  Implemented support for custom episode definitions in MAPINFO.
  Implemented forcenoskystretch MAPINFO command.
03.12.2006
  Don't crash game with too many static lights.
  Firebrand add more options to the video options menu.
  Split different texture format types into separate files.
  Copy dimensions of the first texture to the dummy texture so that floor raise
 by texture work correctly.
  Added support for HI_START/HI_END high resolution textures.
04.12.2006
  Simplified loading of textures lumps.
  Implemented support for HIERSTEX scripts.
05.12.2006
  Got rid of old boolean type, renamed integer limit macros.
  Implemented support for JPEG textures.
06.12.2006
  Fixed compilation with Allegro library.
  Fixed wrong bounding box check in view clipping.
  Now parse all TEXTURE1/TEXTURE2 lumps that have a corresponding PNAMES lump.
07.12.2006
  Initialise view clipping to the frustrum range, added clipping check for each
 subsector.
09.12.2006
  In OpenGL and Direct3D fixed areas behind the sky being visible. Tried to do
 the same thing for software driver, but so far no success. Got rid of some of
 the global variables that were shared by renderer and driver.
10.12.2006
  Fixed puffs and blood being in wrong place.
  Added some pointer checks on shutdown.
  Implemented simpler support for skybox replacements of the normal sky.
11.12.2006
  Firebrand fixed skyllfly objects not advancing state if being shot while they
 are flying.
13.12.2006
  Split WAD file and directory search path classes into separate files.
14.12.2006
  Implemented lump index check for a file name. Changed textures to use it.
16.12.2006
  Changed the way extrernal sound, music and high-resolution texture files
 are loaded.

******************************************************************************
                            VERSION 1.22.1
******************************************************************************

19.12.2006
  Fixed duplicate loading of last TEXTURE2 lump.
24.12.2006
  Fixed rendering of third person player weapon models.
  Fixed wrong wad markers for high-resolution textures.
  Implemented switching of the game language.
25.12.2006
  Moved methods that advance actor states to engine, removed NextState field
 from Entity class.
  In linespec package added a common game info class, moved most of the wold
 spawning methods to this class, they are now called also when loading level
 on the client side. This means that there's no need to send commands to spawn
 them over the network that added some limitations to them.
  Fixed rendering of translucent mid-textures in OpenGL and Direct3D.
  Fixed memory leak in XML parser.
26.12.2006
  Changed player's current view states to be an array of structures in player
 class. View entities array changed to be a single reference to weapon. Also
 changed setting SX and SY values to be misc variables in state, added compiler
 support for this.
28.12.2006
  In compiler implemented support for restricted class types. Keyword classid
 changed to be just class.
  Removed all DDF related code and files.
  Fixed compiling progs generaed from dehacked patch.
29.12.2006
  Send fractional state time to client so that I can implement interpolation
 of model frames.
  Removed old Borland specific assembly language files.
  Started to implement model script files. Added support for intermediate state
 frames to be able to change actor's states to be like in original version.
30.12 2006
  Created model scripts for a lot of models.
31.12.2006
  Created model scripts for the rest of the models.
  Implemented sending of fractional state time for player's view states.
01.01.2007
  In model scripts added support for animated skins, gradual translucency and
 rotation to remove some model specific code from progs. Also added offset and
 scaling, but currently it's not used.
02.01.2007
  Some dehacked fixes.
  Implemented support for specifying model replacements completely in model
 script. Removed most of the model definitions from progs.
03.01.2007
  Removed remaining models definitions from progs. Support for this has been
 removed from the compiler.
  Moved repositioning of player's third person weapon model to model script.
04.01.2007
  Implemented support for different model versions. This is now used to handle
 player's third person weapon models.
06.01.2007
  Changed usage of translucency percentage to alpha value.
  Changed the way object's default properties methods are called.
07.01.2007
  For each class I now create a default object. When a new object is spawned,
 field values are copied from the default object. In compiler I implemented
 support for accessing default values of an object or class.
08.01.2007
  I moved player's network related variables into an internal structure so that
 in progs I don't have to have these fields.
  I cleaned up network protocol commands from unused commands.
  In compiler I implemented support for specifying state methods to be called
 directly and also to have no method at all. I changed most of the Doom states
 to use this.
09.01.2007
  I added direct state method calls in Heretic and Strife.
  In software renderer I changed pointers to the fade tables and RGB colour
 lookup to be static arrays so that I don't have to do code patching anymore.
 This should enable usage of assembly language files on BeOS.
10.01.2007
  I added direct state method calls in Hexen.
  I changed assembly language files to be conditionally included depending on
 target platform. I also renamed software renderer's assembly language files.
11.01.2007
  On the client side I implemented automatic localisation of notify and centre
 messages that start with a dollar sign.
  I moved pickup strings and locked door messages to the language script.
12.01.2007
  In VavoomC I implemented support for C# style properties. They are basicly
 wrappers around set and get methods.
13.01.2007
  In view entity class I changed reference to the player object to be reference
 to the entity.
  Today I started to work on adding dehacked support to the engine. As a first
 step I moved all actor state methods to the Actor class. After that I merged
 remaining stuff from HackedActor class to actor class that allowed me to get
 rid of HackedActor class. Similarly moved weapon state methods to Weapon class
 and got rid of HackedWeapon class.
14.01.2007
  In progs I added a string replace method.
  I changed view entity to be a Thinker and then an Entity. After that I moved
 Owner field to Entity class and I could get rid of ViewEntity class. Then I
 changed Weapon classes to be inherited from Actor class. After that I could
 move weapon state action methods to Actor class. With this dehacked progs have
 just a single copy of states.
  I also implemented a more generalised way of making Doom demons faster in
 nightmare mode.
  Then I added dehacked parser to the engine. Currently it just parses patches
 and does nothing else.
  I also fixed angle based clipping to add polyobject segs of a subsector.
15.01.2007
  I implemented dehacked string replacements in engine.
16.01.2007
  In Doom progs I removed some of the abstract Actor classes. To simplify
 implementation of dehacked parser in engine I need to make progs to be similar
 to the dehacked progs. This means that I had to move all states to Actor class.
 After that I could implement handling of dehacked changes of states in engine.
17.01.2007
  Today I finished implementing dehacked changes of states, implemented changes
 of ammo counts, weapons, misceleanous values and started on things.
18.01.2007
  Today I finished implementing dehacked parser in engine. I removed makeinfo
 utility.
21.01.2007
  I started moving of info tables that dehacked parser uses to a dehinfo.txt
 script file.
22.01.2007
  I started moving states of Doom actors back to their classes. This required
 some changes in order to make it work over the network.
23.01.2007
  I finished moving states of Doom actors back to their classes.
  In dehinfo script I added original thing heights that are set when using a
 dehacked patch.
  I also fixed missing cleaning of active sequences list.
25.01.2007
  I implemented support for Dehacked patch support extensions for specifying
 flags with names and for strings block.
26.01.2007
  I changed sprite names internally to be in lower case.
  Then I implemented support for Dehacked patch extensions for code pointer and
 par time blocks.
  I also fixed rendering of mid-textures with an offset.
28.01.2007
  I moved Doom state action methods back to their classes.
  I removed limit on static lights.
  I created render data class. I moved most of the surface and sky rendering
 methods to this class.
29.01.2007
  I added pointer to the render data class to the level class.
  I moved light rendering methods to render data class.
01.02.2007
  I moved line tracing method from level info class to the engine.
  I created a method to serialise global ACS data, made global ACS data static.
03.02.2007
  I merged line tracing methods into a one that's in the level class.
04.02.2007
  I did some tests with rendering server and previous client level.
05.02.2007
  I fixed a crash in line tracing method.
07.02.2007
  In model definition files I added support for defining model skins.
  Firebrand added fixes from Boom to keep monsters stuck in the doors.
  I changed Actor classes in all games to have the same default values.
09.02.2007
  I created a class with ACS per-level data.
10.02.1007
  In level class I added pointer to the per-level ACS data class. I implemented
 support for suspending and terminating scripts in other maps.
11.02.2007
  I moved ACS native methods to the Level class.
13.02.2007
  I implemented propper support for execute always ACS scripts.
  I created a class for global ACS data.
  I started to implement support for terrain script.
15.02.2007
  I finished implementing support for tarrain script.
16.02.2007
  I did some cleanup after implementing terrain script.
18.02.2007
  I created a WorldInfo class that exists during the whole game session. I added
 pointer to the global ACS data class to this class.
19.02.2007
  I moved serialisation of ACS state to Level and WorldInfo classes.
22.02.2007
  I added references to LevelInfo and WorldInfo to Level class.
  I implemented support for LOADACS script.
26.02.2007
  I created an EntityChannel class. Currently it doesn't do anything yet.
27.02.2007
  I started to implement updates of some of the Entity fields using the
 EntityChannel class. In compiler I added a keyword that allows me to specify
 which fields to update.
28.02.2007
  In compiler I changed the way net fields are specified making it to be more
 like UnrealScript. I moved some methods that are used for network replication
 to Field class. In Entity class I added network role fields.
01.03.2007
  I created a PlayerChannel class that does updates of player fields similar
 to the way entity fields are updated. All player stats are now updated using
 PlayerChannel. I moved channels to the PlayerNetInfo class.
02.03.2007
  I changed some of the fields in BasePlayer class to be updated using channel.
03.03.2007
  I implemented support for conditional field replication.
04.03.2007
  I moved handling of dynamic lights and particles to LevelRenderData class.
05.03.2007
  I finished moving dynamic lights to LevelRenderData class.
06.03.2007
  I created a ViewClipper class and moved methods for angle based view clipping
 to this class.
07.03.2007
  I decided to move level rendering methods to LevelRenderData class and to make
 it more clear I renamed it to RenderLevel. RenderLevel class pointer is now
 passed to Drawer class to avoid usage of global variables. I also split all
 definitions of texture loader classes into a separate header file.
08.03.2007
  I added a Destroy method to the Thinker class that replaces old style method
 RemoveSpecialThinker and Entity's Remove method. I also merged create Thinker
 and Entity methods.
09.03.2007
  I changed the way LevelInfo class is created by specifying the class instead
 of actually creating it. I added some extra arguments to NewSpecialThinker
 method that allowed me to make Spawn a wrapper around it and move it to Thinker
 class. In compiler I added a spawner method attribute that automaticly casts
 return value. I changed spawning of all thinkers to use Spawn.
10.03.2007
  I made Thinker's Spawn native and added an optional angles argument. I also
 simplified spawning of thnkers in engine.
  I created a template class for mapping of keys to values and changed language
 strings class to use it.
11.03.2007
  I changed RGB table to be calculated in engine.
  I fixed a bug in model rendering in software renderer in 8-bit mode.
12.03.2007
  I split Message class into incoming and outgoing message classes and changed
 them to be derived from Stream.
13.03.2007
  I changed some of the Message class fields and method arguments to be in bits.
  I merged network field serialisation methods by taking Stream as argument.
14.03.2007
  In Stream class I added SerialiseBits method and implemented serialisation of
 some bits of data in message classes.
15.03.2007
  I moved serialisation of bit data from message classes to general purpose bit
 stream classes.
17.03.2007
  I got rid of global incoming message class.
  In bit stream classes I added methods for reading and writing a bit and made
 use of it in some places.
  In datagram driver I removed splitting bigger packets into smaller ones. I
 split signon message into multiple ones and added message queue for a player.
 This allowed me to change maximal message size to be 1024 bytes.
18.03.2007
  I changed sector updates to use read/write bit methods.
19.03.2007
  In PlayerNetInfo class I added all of the methods of Socket class making it a
 wrapper around it. I created client and server versions of it and moved parsing
 of packets to them.
20.03.2007
  In bit stream classes I added methods for reading/writing of integers with
 known maximal value in more compact form.
21.03.2007
  I changed network driver API not to take message classes as arguments. The
 outgoing packets now have a trailing bit that allows me to find out the size
 of the packet in bits.
  I did some tests with datagram driver and found out that with current protocol
 packet compression mostly doesn't give anything so I decided to remove it. The
 length of packet is always known and is not needed in header so I removed it.
 Also the UDP protocol already has a checksum so I removed it. I also changed
 ACK packets to have ACK packet ID in data.
22.03.2007
  I moved ACK packet identifier to the data that allowed me to move ACK handling
 out of datagram driver to PlayerNetInfo class. I also changed reliable message
 sequence ID to be in data and have it's identifier in data that allowed me to
 move handling of ACK sending to PlayerNetInfo class. Now all game packets look
 as unreliable messages. I removed from network API separate methods for sending
 unreliable messages since they are the same as normal messages.
23.03.2007
  I changed PlayerNetInfo to be created when connected and have the same life
 time as underlying network socket.
  I moved unreliable packet ID to data and moved sequencing handling out of the
 datagram driver to the PlayerNetInfo class. Packet resending also has been moved
 to it.
  In Direct3D driver I added additional port to DirectX 9.
24.03.2007
  I moved datagram packet flags to the data. In datagram driver game packets are
 now sent and received without any additional logic.
25.03.2007
  I changed the way messages are sent to be able to save resend message as a
 message and not as outgoing packet data. I also added a method that does adding
 of trailing bit and sending final packet.
26.03.2007
  I implemented support for having multiple messages and ACKs in a single packet.
27.03.2007
  I added network connection state to the PlayerNetInfo class to simplify error
 handling. I implemented support for sending and receiving multiple reliable
 messages. Received out of order messages are kept in a queue untill missing
 messages are received.
  On client side entities are now created and destroyed as needed.
28.03.2007
  I added a destroy Entity network command that allowed me to get rid of InUse
 counter. I also added a flag to identify local player removeing the need to
 use first entity IDs for players.
29.03.2007
  On client side I got rid of the cl_mobjs array.
  I created a thinker iterator template class to simplify this task.
  I changed entity channels to be created and destroyed as needed.
  I renamed PlayerNetInfo to NetConnection since it does all connection handling
 now.
30.03.2007
  I stared to prepare for multi-channel communication by creating a client and
 server general channel classes and moving message queues and message parsing to
 this class. This channel will be used for old-style protocol.
31.03.2007
  I changed remaining entity fields that used old style update to be updated
 using channel. This way I got rid of entity baseline. On server side entity
 channels now will allocate first available slot.
01.04.2007
  In network connection class I started to implement support for generic multi
 channel communication. I changed general and player channels to use it.
02.04.2007
  I made network.h not to be part of gamedefs.h to have less dependencies on it.
  I also changed entity channels to use new channel system. To do this I had to
 implement support for opening a remote channel.
03.04.2007
  I created separate connection classes for demo playback and recording.
  I created a network conext class, currently to handle client and server
 specific access to the level and creation of general channel.
  I changed entity channel to be a thinker channel since I'm planing to use it
 for non-entity thinkers such as level info.
  I implemented proper support for closing a channel. I also fixed handling
 of messages that need to be resent and added an AutoACK flag for demo playback
 and bots where there's no other end to ACK the packets.
04.04.2007
  I split implementation of network connection and channels into separate source
 files.
08.04.2007
  I finished playing Soldier Of Fortune 2, back to work now :-).
  I moved message sequence counters to the connection class to avoid possibility
 of accepting a wrong message after a channel slot has been closed and reopened.
  I made network socket classes to be driver specific, each driver now has it's
 own implementation of a socket.
09.04.2007
  In thinker and player channels I implemented special handling for arrays to
 update array elements that have been changed.
10.04.2007
  I created a level channel that does handling of changes of sectors, sides and
 polyobjs, currently only sidedefs and sectors are handled. I removed multiple
 Set* methods that are not needed anymore.
11.04.2007
  I did some more changes needed for sector updates and implemented updates of
 polyobjs.
12.04.2007
  I finished implementing sector updates.
13.04.2007
  I implemented what's necesary to make LevelInfo to be replicated.
15.04.2007
  I moved most of the fields from level_t structure to LevelInfo class and most
 of them are replicated. I also moved flags that are set from MAPINFO from
 Level to LevelInfo. Time fields have been moved to Level class allowing me to
 get rid of level_t structure.
16.04.2007
  In Doom Firebrand added proper support for foot clipping on liquid terrains
 and did some more improvements to splashes.
  In Hexen I fixed cleric's third weapon and slow running speed.
17.04.2007
  In BasePlayer class I added bIsClient flag so that replication conditions can
 check if it's on client or server side.
  I implemented support for remote procedure calls. Currently both thinker and
 player channels accept them but only player class supports them.
18.04.2007
  I changed sound net protocol commands to use remote procedure calls. Then I
 moved parsing of custom network protocol commands to the player class. After
 that I changed them to be done using remote procedure calls.
19.04.2007
  I changed more network protocol commands to RPCs. I made methods for adding
 static lights native that allowed me to remove all message related natives and
 protocol command definitions from progs. Then I created PlayerReplicationInfo
 class that contains info about a player that is replicated to all clients.
 This replaces scores structure used for intermission and makes more player
 replated data available on client during the game that makes it easy to show
 deathmatch scores during the game.
20.04.2007
  Static lights are now storeed in a list on the server and are sent to clients
 using level channel. This allowed me to get rid of server's signon messages.
21.04.2007
  I fixed PlayerReplicationInfo missing replication conditions for player name
 and user info.
  I fixed wrong map names being displayed in new net game menu.
  Setting a weapon state didn't properly handle case when state time is 0 and
 there's no next state.
22.04.2007
  I changed player structure on client to be recreated for every time when
 connecting to the server.
  I changed ClearPlayer method to reset fields to their default values instead
 of using memset that must not be done is dynamic strings are being used.
23.04.2007
  I changed custom player model and skin names to be stored in player class as
 strings to be able to get rid of model and skin tables on the server.
  I moved some of the methods from Object class to appropiate classes.
24.04.2007
  In player class view states and location are now sent using net replication.
 I also changed sending of movement commands to be done using relpicated fields.
  I moved network role fields to the Thinker class since it needs them too.
  I moved some more methods from Object class to it's proper location.
  I added a time field to the texture manager class so that warp textures don't
 have to reference client side specific global variables and to make it more
 abstract.
25.04.2007
  I changed keepalive packets to be simply empty packets and disconnect to be
 done by closing the general channel.
26.04.2007
  I moved sending of the level info to the level channel.
  I fixed Hexen's world timer, changed it to be float.
  I changed sending of client and server infos to use RPCs.
27.04.2007
  I got rid of multiple client signon stages.
  I added proper rounding of some of the values being sent over the network.
  The time used in intermission is now a field in LevelInfo set on the server.
  View origin is now set using a RPC to avoid jerkiness because of the rounded
 vector values.
  Demo messages now also record the current time. After this there's no need to
 send server's time to the client in every frame.
  After that general channel is only used for string commands so I could get
 rid of the command itself.
  In datagram driver I changed the use of message classes to use bit stream
 classes instead.
  I cleaned up message classes from now unused methods and fields.
28.04.2007
  I got rid of the sv_player global variable.
  I changed menus and console to be drawn while not yet fully connected to the
 server.
  I moved client side update of entities to the actor class and made it for all
 types of thinkers. I also moved update of particles to LevelInfo class.
  I changed current time on client to use time fields in Level class.
  Aparently latest version of FLAC library crashes if non-FLAC data is passed
 to it so I added a check for FLAC header before doing it.
  I fixed some crashes when changing levels while playing with bots.
  I updated Doom weapon models to Alex Bomberman's ones. I fixed drawing of
 models with custom scale and offset properties.
29.04.2007
  I added name constants for all engine events and added or improved usage of
 names to have less name lookups during the game. I had to add a separate set
 of macros for executing an event using vertual function index since compiler
 tries to use name constant as virtual function index.
  Now that both general channels are used only for text, I could merge them and
 rename it to control channel.
  I changed creation of channels so that I don't have to abort game if there's
 no free channel slot is available.
  I fixed user info not being sent to the server.
  I made closing of open channels when a thinker has been destroyed not to
 depend on client and server specific global variables.
30.04.2007
  I changed drawing of text to use dynamic strings.
  I fixed a crash when destroying a thinker that doesn't belong to a level.
  I fixed a typo in maximal number of channels.
  I updated version number in preparation for a release.
01.05.2007
  I fixed bad behaviour when server decides to modify player's movement values.
  Some makefiles needed some attention.

******************************************************************************
                            VERSION 1.23
******************************************************************************

05.05.2007
  I implemented test version of standalone mode for single-player. With new net
 code it was very easy to do.
  I decided by default to disable GL point parameters extension.
  I fixed missing initialisation of paused state of stream music player.
07.05.2007
  It turns out that in subclasses of a class with virtual methods GCC starts to
 add fields on unaligned parent size offset, that caused class-size error on
 64 bit systems. I added a proper check for this.
10.05.2007
  I created s separate source file for BasePlayer class, I moved most of it's
 methods there.
18.05.2007
  I fixed some remaining cases when memory wasn't freed on exit.
19.05.2007
  In Entity class hidden flag wasn't replicated to clients, I fixed that.
  In render drivers I implemented support for having different fog setting for
 each polygon.
  I implemented a general method for pasing colour values with possibility to
 use colour names that are looked up in a table from X.Org.
20.05.2007
  I implemented support for custom fog MAPINFO commands and line special for
 setting fog parameter to a sector.
21.05.2007
  In Doom I implemented support for Heretic finale types specially for Heresy
 project.
  I moved PVS checks in network update to connection class.
22.05.2007
  I hunted down a memory corruption bug I introduced some days ago.
23.05.2007
  I added proper configure check for OpenGL libraries.
  I fixed force field damage amount and force.
  I fixed crash when destroying a Heresiarch with Thing_remove.
  I fixed MUS to MIDI converter that forced all tracks to start at 0 tick.
24.05.2007
  I tried to play a ZDoom level from last /newstuff chronicles and found some
 bugs, such as wrong slope calculation with Plane_Align special and wrong
 translation of Boom's generic line specials. This level didn't have the
 REJECT data, so I added a proper check for this.
  I moved Entity's world related methods to a separate source file and others
 to Entity's main source file. The rest of sv_ent moved to sv_main. I also
 split handling of terrain types to it's own source file and renamed sv_swtch
 to p_switch.
