
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.

******************************************************************************
                            VERSION 1.23.1
******************************************************************************

25.05.2007
  I fixed Doom 2 boss spawning monsters with pitch angle making models to
 appear tilted.
26.05.2007
  I changed handling of gravity back to the original. I added Gravity field to
 Entity to be to set different gravity for a thing that can be used to simulate
 low gravity flag in Heretic and Hexen.
  In Doom I renamed Actor's Enemy and Instigator fields back to theur original
 names.
27.05.2007
  I renamed Actor's Enemy and Instigator fields in other games.
28.05.2007
  I implemented support for byte type in VavoomC and changed some fields in
 engine classes to bytes. I also implemented support for dynamic arrays.
  I removed video modes lower than 640x480 from the menu.
29.05.2007
  I removed automatic stripping of executables in default build.
  I fixed problem with colourmaps in 8-bit mode in software renderer.
  In VavoomC I added methods to insert and remove data in dynamic arrays and
 changed assignment to an element out of bounds of an dynamic array to grow it
 to the needed size.
30.05.2007
  After thinking for a while I found a very simple way how to implement
 iterator methods. The method returns an instance of an iterator class which
 is pushed to a stack of current iterators. As a test I implemented iterator
 of thinkers.
31.05.2007
  I got rid of the remaining macros in common package. After that I could start
 implementing my own preprocessor. I already implemented handling of ifdef-s.
01.06.2007
  In vcc I implemented handling of include directives and comments that allowed
 me to get rid of the old preprocessor library.
02.06.2007
  I fixed crash when changing a level in standalone mode, cleaned up level
 render tests.
  For network updates I implemented setting up a visibility table using angle
 based clipper. I also increased number of network channels since 256 seams not
 to be enough.
03.06.2007
  I converted block lines/things iterators and path traverse to the iterator
 classes so that in progs I can use foreach operator with them and get rid of
 callback methods.
04.06.2007
  In progs I changed path traverse to iterator. The block things iterator is
 always used to iterate blocks in a given radius, so I started to implement a
 method that wraps around block things iterator and common code around it.
  I fixed compiling progs on Windows.
05.06.2007
  In progs I added a method that disconnects a bot.
  I finished work on radius things iterator that I started yesterday and made
 it to be an iterator method. After this progs don't touch blockmap fields in
 level class anymore.
  I simplified calculation of replication condition of a method in RPC.
06.06.2007
  I removed support for nosoundclipping mapinfo command since sounds at maximum
 hearing distance are almost inaudiable, so it basicly does nothing.
  I changed bots not to have a network connection at all.
  I made standalone mode to be used in single player by default.
07.06.2007
  In progs I implemented support for non-native static methods.
08.06.2007
  I implemented support for EDGE's sprites with 16 rotations.
  I added a size check for reject lump. I also check if it's filled with all
 zeroes in which case it can be discarded.
  I implemented a blockmap builder that rebuilds it's missing or bigger than
 64k and most likely corrupt. Internally it's now stored using integers that
 removes some of it's limitations.
  I moved array of active sound sequences to the Level class.
09.06.2007
  I fixed support for Boom's height sectors.
  I implemented support for ZDoom's compressed GL nodes.
  I added support for texture offsets in PNG textures.
10.06.2007
  I added iterators of classes, all objects and active players, they could get
 usefull sometimes.
  Some splash chunks didn't have no-splash flag set that caused almost endless
 splashing.
  I added stubs for all unimplemented MAPINFO commands, many ZDoom levels can
 now be loaded unmodified, including KDIZD.
  I added support for ZDoom's sloping thing types.
11.06.2007
  I started to rename class to the names used by ZDoom since these are the
 names that are used in some extended ACS commands and in some scripts.
12.06.2007
  I continued renaming.
13.06.2007
  I finished renaming.
14.06.2007
  I changed the way Heretic's key gizmos are handled.
  Today is Vavoom's birthday, time for a release.

******************************************************************************
                            VERSION 1.24
******************************************************************************

15.06.2007
  I'm gonna start common code from Actor classes to the EntityEx class. This
 way it will be easier to maintain it.
  I moved common Actor fields to EntityEx class.
16.06.2007
  I created PlayerEx class that will have common Player class code.
17.06.2007
  I merged Actor's main physics methods.
18.06.2007
  I merged other Actor's core physics methods.
19.06.2007
  I merged methods for bouncing, splashes and friction.
20.06.2007
  I merged falling damage types and made them MAPINFO configurable, merged
 radius damage.
21.06.2007
  I merged aiming and shooting methods.
22.06.2007
  I cleaned up aiming and shooting and created aiming method to handle aiming
 used by Hexen's close range weapons.
25.06.2007
  I changed AimEx to return line target as a result and direction in an out
 parameter.
26.06.2007
  I got rid of per-object line target field, merged teleport move and added
 a damage type parameter to the Damage method.
27.06.2007
  I fixed Doom 2 finale cast.
  I merged teleport, various movement related methods, melee and missile range
 checks, looking for a player or monster.
28.06.2007
  I merged basic monster AI utilities, spawning of missiles.
29.06.2007
  I merged spawning of payer's missiles.
30.06.2007
  I fixed wrong prototype for StrReplace method, got rid of pickup message
 arrays in Heretic and Hexen.
01.07.2007
  I started to merge Damage methods.
02.07.2007
  I merged damage methods, replaced damage flags with damage type field, got
 rid of LavaInflictor class.
03.07.2007
  I merged death methods.
04.07.2007
  I merged nightmare respawn, touch and line hit event methods.
05.07.2007
  I split makefile in basev directory into sub Makefiles.
  I moved some common methods to LineSpecialLevelInfo.
  I implemented net replication of references to thinker objects that have an
 open channel.
07.07.2007
  I moved 2 missile spawn methods from Hexen to EntityEx. Somehow I managed to
 miss them.
  I moved OnMapSpawn, SeekerMissile, DropItems and some other small methods to
 EntityEx. I created a ScriptedEntity class for state action methods and moved
 basic AI state actions to it.
  In Doom as a test I merged Weapon and WeaponPickup classes.
  I moved net serialisation of classes, states and names to objects map.
08.07.2007
  I moved spawning of things on a map to LineSpecialLevelinfo.
  In Doom I created a separate class that holds the Boss brain global state.
 In Heretic I moved mace handling code to mace spot class, removed global array
 of D'Sparil teleport spots.
09.07.2007
  I fixed Dehacked support.
  I moved Tick, SectorChanged and ClientTick to EntityEx.
  I started work on inventory system by creating and Inventory class. I changed
 game specific pickup base classes to inherit from it. In Heretic every pickup
 type had complete handling code in it, so I started to generalise it.
10.07.2007
  Hexen had the same pickup handling as Heretic, so I changed that one too.
  I started to implement basic inventory system by starting to convert Doom
 player ammo array to references to ammo objects. I added basic add, remove and
 find methods. I also made items in actor's inventory to be replicated to the
 corresponding player.
11.07.2007
  I changed handling of pickups when using a Dehacked patch to use pickup
 handling methods of items to avoid duplicate code. This will come very handy
 when new inventory system will be in place.
  In Doom I manged to get rid of ammo array in Player class. I also rearanged
 other Doom pickups by moving some common code to Pickup class.
  In Heretic and Hexen I merged hiding of pickups.
12.07.2007
  I moved all of the general pickup handling code to Inventory class and did
 some rearangements.
13.07.2007
  I fixed a crash that was caused by zero length damage hit vector and crash
 in Strife when destroying the power coupling.
  In Heretic I got rid of Pickup class.
14.07.2007
  I moved Dehacked pickup handling and some Strife state action methods to
 EntityEx and ScriptedEntity to be able to get rid of Pickup classes in all
 games. Then I started to work on replacing ammo count array with classes in
 all other games. A common ammo base class has been created.
15.07.2007
  I finished all of the work needed to get rid of the ammo count arrays in
 all games. I moved all of the ammo pickip code to Ammo class that allowed me
 to get rid of the game specific ammo pickup classes. I also got rid of the
 ammo type enums.
16.07.2007
  I sorted out ammo pickup handling code to the general layout how it should
 be in the end.
  I created a common base class for backpack type items and moved all code to
 it. In Ammo class I added additonal fields that control backpack behavior.
  I merged weapon pickup classes with the actual weapon classes.
17.07.2007
  I changed WeaponOwned array, ReadyWeapon and PendingWeapon to be references
 to the weapon objects. I created a common base class for weapons.
  I also updated glbsp to the latest SVN code.
18.07.2007
  I moved CheckAmmo methods to corresponding weapon classes and made them to be
 useable without automatic weapon change. I added common methods that are used
 in weapon change methods. I moved common weapon fields to Weapon class.
  Firebrand fixed crashes caused by the fact that pickups are not subclasses of
 the Actor class.
19.07.2007
  I added some more common fields to the Weapon class and implemented them in
 games that didn't have them. I did a lots of other work to removed use of the
 WeaponOwned arrays. I also changed how Hexen's fighter's axe handles case when
 more mana is picked up.
20.07.2007
  I got rid of WeaponOwned arrays in all games.
21.07.2007
  I implemented initial inventory of a player pawn class in all games. I also
 got rid of weapon classes arrays.
  I got rid of the weapon type enum in Doom.
22.07.2007
  I made Heretic's powered up weapons to be separate weapon classes.
  I got rid of weapon type enum in all games, added some fields needed for
 the bot AI and other flags.
23.07.2007
  I made give ammo/mana methods in all games to be the same.
24.07.2007
  I moved ReadyWeapon and pendingWeapon fields to PlayerEx class, moved
 common weapon methods to the Weapon class.
25.07.2007
  I implemented a better way of detecting wether player is playing a
 firing animaton or not.
28.07.2007
  Firebrand implemented a more dynamic way of defining dynamic light of an
 actor.
  I moved some remaining common fields to Weapon class, renamed game specific
 weapon classes.
29.07.2007
  In Weapon class I added common DepleeAmmo method, added no alert flag, did
 some cleanup.
  I added a special class that holds Hexen's fourth weapon piece info.
  In Heretic I changed player's inventory to be an array of Artifact objects.
30.07.2007
  In Hexen and Strife I changed Inventory arrays on Player class to be arrays
 of Artifact / InventoryItem classes.
31.07.2007
  I added utility methods for inventory traversal, changed current inventory
 pointers to be references to Invemtory objects, cleaned up some unnecesary
 fields.
01.08.2007
  I created initial version of the launcher using wxWidgets.
  I moved status bar icon names to the corresponding classes, got rid of
 Inventory arrays in Player classes.
02.08.2007
  In Inventory class I added bIgnoreSkill flag to prevent giving too much
 initial ammo, added generic methods for dropping inventory items.
  I moved use methods of inventory items to the corresponding classes and
 got rid of inventory type enums and Artifact and InventoryItem classes.
03.08.2007
  I moved PuzzleItem to linespec package and moved UsePuzzleItem line special
 to LineSpecialLevelInfo making it available in all games.
04.08.2007
  I created a base class for key inventory items, removed Keys field from 
 Player classes.
05.08.2007
  I implemented support for LOCKDEFS script.
  In Strife I removed Communicator flag from Plyaer class, now give the item
 instead.
06.08.2007
  I created a base class for powerups, changed array of powers to be array of
 Powerup objects, started to implement invulnerability power class.
07.08.2007
  I split the main interface of the launcher into multiple tabs, adjusted to
 make it loog correct on Linux.
  I mostly finished implementing invulnerability power, added methods that
 will be used by other powerup classes.
08.08.2007
  I finished invulnerability powerup, implemented strength and started to 
 implement invisibility powerup classes.
09.08.2007
  I updated glBSP to the latest version.
  In launcher I added icon, Direct3D option is now shown only on Windows.
  I finished invisibility and implemented iron feet, light amp, torch, flight
 and weapon level 2 powerups.
10.08.2007
  I implemented speed and minotaur powerups. All powerups are now implemented.
11.08.2007
  I updated DeHackEd info file.
  I added sound definitions for ammo, health and armor pickups.
  I made floating items not to use Health for it's current state.
  I implemented base classes for health pickups and basic armor class that
 handles armor in all games except Hexen.
12.08.2007
  I implemented an armor class that handles Hexen style armor.
  I implemented proper handling of revealed maps, added a base class for map
 revealer items and implemented Strife's scanner item.
13.08.2007
  I implemented Strife's quest items as inventory items and moved sigil
 pieces count to Sigil class.
14.08.2007
  I moved many methods from Player classes to PlayerEx.
15.08.2007
  I implemented support for actor class game filter flags.
  I moved spawn puff and blood methods, methods for spawning particles and
 dynamic light effects, moved map spot and teleport destination classes to
 linespec. I implemented more dynamic handling of explosions, moved A_Explode
 and A_BossDeath and some other state action methods to ScriptedEntity. In
 Strife I moved boss death methods to the corresponding classes.
17.08.2007
  I implemented support for state labels and DECORATE style state definitions
 and started to convert many classes to use it.
18.08.2007
  I changed weapons to fully use state labels, converted many more classes to
 the new style.
19.08.2007
  I converted many more classes to use new style state definitions.
21.08.2007
  I converted many Hexen monsters to use new style state defs.
22.08.2007
  Many more monsters converted.
23.08.2007
  I finished converting monster classes.
24.08.2007
  More of the remaining classes converted.
25.08.2007
  I removed most of the state fields from EntityEx class, converted more
 classes.
26.08.2007
  I converted most of the remaining state definitions.
27.08.2007
  I added support for code blocks in new style state definitiions, converted
 the remaining state definitions and removed support for old style state
 definitions.
  I moved ACS inventory and Strife conversation related methods to EntityEx,
 moved some simple state ection methods to ScriptedEntity, moved some methods
 from Actor class to some other classes.
29.08.2007
  I fixed possibility of having unkillable lost souls.
  In Strife I fixed strafing while on low health.
  I fixed some security vulnerabilities that were reported.
31.08.2007
  I fixed other security vulnerabilities that were reported.
01.09.2007
  I fixed a spelling mistake in the menus.
  I merged language definition scripts.
03.09.2007
  I started to change displaying of deathmatch statistics to show player names
 with total number of frags and deaths.
04.09.2007
  I changed deathmatch intermission screen in Heretic, some other fixes.
07.09.2007
  I finished changing deathmatch intermission screens, removed FragStats field
 from player class.
  Firebrand fixed several bugs.
09.09.2007
  I added PVS check when rendering things inorder not to draw things that are
 not visible.
26.09.2007
  I fixed bug with hidden objects emiting dynamic lights, gimme cheat, Hexen's
 thrust spike and model skin animations. I also removed underscores from GL
 filter menu options.

******************************************************************************
                            VERSION 1.25
******************************************************************************

17.10.2007
  I created a Widget class, moved child links to it.
18.10.2007
  In Widget class I added position, size parameters and handling of child
 widgets.
19.10.2007
  I moved drawing methods from GC class to Widget, removed it from draw event
 arguments.
20.10.2007
  I got rid of GC class, added scaling parameters to Widget class.
21.10.2007
  Firebrand did some improvements to dynamic lights and particles.
25.10.2007
  I implemented handling of clipping rectangles of widgets and implemented
 drawing of pics in widget with proper clipping.
26.10.2007
  I got rid of old clipping rectangle.
29.10.2007
  I moved many drawing methods to Widget class.
30.10.2007
  In Widget class I added methods for setting position, size and scaling of a
 widget.
31.10.2007
  I added delegates to some menu choice classes and started to convert menus
 not to use subclassing for every menu choice.
  I added clamping of scolling offsets for cases where values grow too big.
01.11.2007
  I continued to convert menus, mostly options.
02.11.2007
  I converted multiplayer menus.
03.11.2007
  I converted most of the remaining menus.
04.11.2007
  I finished with the menu conversion.
05.11.2007
  I cleaned up some text drawing methods.
06.11.2007
  I moved some text drawing methods to Widget class.
07.11.2007
  I moved visibility and enable flags to Widget class together with related
 methods.
08.11.2007
  I moved remaining stuff from Window class to Widget that allowed me to got
 rid of Window and ModalWindow classes. I Renamed RootWindow to RootWidget.
09.11.2007
  Firebrand did some improvements to the particle effects and fixed some bugs
 with monsters avoiding dropoffs.
  I added focus and keyboard input handling in Widget class, got rid of the
 MenuObject class.
10.11.2007
  I added mouse input support to the Widget class, created a simple graphic for
 mouse cursor.
12.11.2007
  I fixed crashes when sky plane is moving.
13.11.2007
  I moved all text drawing methods and data to Widget class.
  I fixed a crash when calling ACS function from different module.
14.11.2007
  I changed render device API to have textures passes as pointers to texture
 objects instead of the indexes, made texture base class global.
  I changed font structure into a class.
15.11.2007
  I greatly changed the way fonts are loaded, font characters are handled,
 added some helper methods to the font class, changed fonts to be identified by
 name.
16.11.2007
  I created a texture class for font character, started to implement support
 for coloured font characters.
17.11.2007
  Fully implemented support for drawing coloured text, text colours and custom
 fonts scripts, text colour escape character. I changed some menu coice classes
 to use them.
18.11.2007
  I implemented building of GL nodes with glBSP if level doesn't have them by
 creating a temporary WAD file and then calling glBSP. After that I change it
 to retrieve built nodes directly from internal structures of glBSP so there's
 no need to write the GWA file anymore. This allows maps from PK3 files to be
 loaded without problems.
  I fixed a crash when trying to play an empty music file.
19.11.2007
  In node builder I changed map data to be set up from already loaded level, so
 there's no more need for a temporary WAD file.
  I fixed some bugs that caused TITLEMAP of KDIZD to crash.
  I created a progs package for common UI elelents, added base classes for menu
 choice, menu screen, status bar and shared client game.
20.11.2007
  Firebrand is playing with text colours.
  I merged several of the common menu widget classes.
21.11.2007
  I merged more of the menu widget classes and common menus.
  I moved drawing of notify and centre messages to progs.
22.11.2007
  In font class I added method that splits text into lines wrapping at given
 width.
  I fixed some bugs with dynamic arrays in progs.
23.11.2007
  I started to implement support for ACS HUD messages, basic functionality for
 plain HUD messages is done.
24.11.2007
  I implemented support for HUD messages with custom virtual screen size and
 font. I started to implement support for FON1 format fonts.
25.11.2007
  I implemented support for FON1 and FON2 format fonts and possibility to use
 any texture as a font.
  I implemented support for all HUD message types. The CREDITS map of KDIZD now
 works fine.
  I added support for Vorbis and MP3 format sound samples, now opening sound
 of TITLEMAP of KDIZD works.
  I started to add renderer support for additive translucency.
26.11.2007
  Fully implemented additive translucency, added possibility to change line
 translucency during game.
27.11.2007
  I implemented support for different render styles of the entities.
  I implemented support for stealth monsters.
28.11.2007
  I added stealth Doom monster types.
  I implemented support for camera textures.
29.11.2007
  I added network replication for camera textures.
  I fixed crash when polyobj contains two sided segs.
30.11.2007
  I fixed absolute position check.
01.12.2007
  In vlumpy I added FON1 format font builder, as a test I added console font
 that comes with imagetool.
02.12.2007
  I changed console to use the console font.
  In vlumpy I implemented building of simple font in FON2 format.
  I started to implemented support for ambient sounds defined in SNDINFO
 using $ambient command.
03.12.2007
  I finished implementation of the ambient sounds.
  I implemented support for Sector_SetColor line special.
  I moved cameras to the linespec package.
  I added support for swimable Boom water.
  Firebrand implemented gameplay option menus.
  I changed open ACS scripts to execute imediatelly.
04.12.2007
  I moved earthquake line special to linespec.
05.12.2007
  I fixed missing Boom water ceiling texture when sector itself has a sky
 ceiling texture.
06.12.2007
  I found source graphics for the big Doom font and started changing it to
 FON2 format.
08.12.2007
  I finished converting big Doom font.
09.12.2007
  I converted big Strife font to FON2 format.
  I implemented support for switching player's view to a camera.
  I mage monster backing CVAR configurable.
10.12.2007
  I implemented revert camera option to the camera switch special.
  I changed sound lookup to be case in-sensitive.
11.12.2007
  I added an empty sound and the default earthquake sound.
  I removed $playerreserve SNDINFO command.
12.12.2007
  I implemented support for padding, scaling and rotating sector floors and
 ceilings.
14.12.2007
  Firebrand implemented ZDoom's particle fountains.
19.12.2007
  I implemented support for sizeable particles.
  I fixed particle fountains to work as expected.
  I added a thing that gets placed in places of unknown things in the map.
20.12.2007
  I implemented line specials that align sector's floor and ceiling to a line.
  I put back building list of things in a sector.
  I added support and stubs for recently added ACS p-codes.
21.12.2007
  I implemented building of touching things/touching sectors lists, like in
 Boom.
22.12.2007
  I did some final sectors list fixes.
23.12.2007
  I moved methods that deal with sector lists to Level and Entity classes.
24.12.2007
  I changed push/pull and Teleport_Sector specials to use touching thing lists.
  I implemented Boom's remembering of the last enemy.
  I implemented HealThing special.
  I fixed building of the stairs when starting sector has stair sector special
 assigned.
  I fixed traveling between maps in the same hub showing intermission screen.
  I implemented support monsters walking to the patrol points or any other goal
 that can be set using Thing_SetGoal special.
  I fixed open ACS scripts running every time you return to the level.
  I fixed endless loop in InterpolationPoint.ScanForLoop when starting point
 is not part of the loop.
  I added support for TITLEMAP.
25.12.2007
  I implemented support for spark thing types.
  I fixed a memory leak in OpenGL driver with camera textures.
  I started work on DECORATE parser. In first stage it just skips all of the
 declarations. Then I started to implement old style decorations and got first
 results.
26.12.2007
  I finished implementing support for old style decorations. After that I also
 implemented parsing of breakables.
27.12.2007
  I implemented scaling of the things.
  I fixed a crash when printing empty notify and centre messages.
  I added no-pass mobj flag to some decorations. Probably I'll have to make it
 off by default.
  I implemented parsing of old style DECORATION projectiles and pickups and
 started to implement parsing of actor definitions.
  In ACS I now check if strings are valid UTF-8 strings, if not I assume that
 it's in the Latin1 encoding and do a proper conversion.
28.12.2007
  I started to implement parsing of DECORATE actors. Having states parser in
 vcc helped a lot. Many simple decorations already work.
29.12.2007
  I continued work on actor DECORATE definitions, added support for many more
 properties. I added very simple support for actor class replacements.
  I removed MAXSPECIALCROSS limit.
  I changed calculation of palette colour shifts to calculate combined shift
 value on the server.
  I created a class for colour translations, use it to pass translation to the
 renderer.
30.12.2007
  In texture class I added array of hardware texture handles for different
 translations tahat replaces translated sprite caching in OpenGL and Direct3D
 drivers. I added support for drawing translated 2D graphics and models. Then
 I added support for different translation types, changed old ones to be
 standard translations. I implemented per-player translations to support any
 colour you want. I removed support for choosing model skin and changed model
 to use the same translation as sprite. Then I implemented support for ACS
 translations.
31.12.2007
  I added network replication of level translations. Then I added body queue
 translations so that dead players keep their colours. It's also needed for
 Hexen where fighter uses different colour range.
  I added transfer of the translation in nightmage respawn and when spawning
 Hexen's demon and serpent gibs.
  I implemented parsing of DECORATE actor translations.
  Items that should not spawned in deathmatch were always destroyed. They
 should be destroyed only while placing on map and not in other cases, such as
 adding to the inventory of the player.
  I implemented script parser class for use in progs.
  I changed menu enum to use dynamic array.
  I properly implemented ACS commands to clear, give, take and check inventory.
01.01.2008
  I implemented most of the missing ACS p-codes.
  I implemented Thing_SpawnFacing, Thing_Damage, ACS_LockedExecuteDoor specials.
  I changed execution of line specials to return integer instead of bool.
  I impemented scripted marines.
02.01.2008
  I implemented scripted marine related ACS p-codes.
  I added a dummy class for DoomBuilder's 3d view camera.
  I implemented Thing_Hate special.
03.01.2008
  Spawning of slopes using vertex heights didn't clear their thing types and
 they showed up as unknown objects.
  In find lowest/highest floor/ceiling checks I added check for lines that have
 the same sector on both sides.
05.01.2008
  I implemented customiseable air control.
  I added a parameter to the Spawn method that tells wether replacement classes
 are allowed or not.
  I implemented Thing_Move, Thing_SetSpecial, ThrustThingZ, Thing_ChangeTID and
 Thing_Stop specials.
06.01.2008
  Stopping ceiling crusher didn't stop the sound.
  I fixed invisibility powerup reinitialising itself when ending the effect.
  I changed Hexen's wepon blending to be handled by weapons themselves.
  I increased player start limit to 32.
  I added pointer checks in DamageThing and ThrustThing specials.
  I removed TID list limit.
07.01.2008
  I created a separate class for Strife's glass junk, made GlassBreak special
 available in all games, changed it to properly use quest flag of the switch.
  I made Scroll_TextureBoth, Scroll_Floor and Scroll_Ceiling useable from ACS
 scripts.
  I fixed Plat_Toggle.
08.01.2008
  I changed door not to adjust bottom distance if floor thinker is a lift.
  I added target checks in A_FatAttack* methods.
  I fixed original Hexen bug in EV_RotatePoly.
09.01.2008
  I reversed search order for editor and script IDs so that later progs and
 DECORATE can override them.
  I changed default ID for lines to be -1 so that ID 0 can be used like it was
 in Hexen.
  I changed missing patches in multipatch textures from fatal error to just a
 warning message.
  I implemented Floor_MoveToValue, Ceiling_MoveToValue, Thing_ProjectileAimed
 specials.
10.01.2008
  I added render style and scale dehacked properties.
  I implemented most of the properties of the SetPlayerProperty special.
11.01.2008
  I implemented the rest of the properties of the SetPlayerProperty special.
12.01.2008
  I fixed player's model not being drawn in player setup menu before starting
 a game.
  I fixed a buffer overrun in Timidity library.
  Client side level was not freed when disconnecting. In standalone game this
 could end up it pointing to already freed server level.
  I added a check against self when switching target.
13.01.2008
  I implemented several extensions to the DeHackEd.
  I added some more DECORATE actor properties, added support for using state
 methods that have no parameters.
14.01.2008
  Firebrand added GZDoom's dynamic light types, merged static light classes
 and implemented SetPlayerProeprty. His implementation of SetPlayerProeprty
 had some bugs in it, so I decided to revert it and use my version.
16.01.2008
  I put back fly and no-target cheats.
  In player class I added PreTravel event that gets called before actual map
 travel happens and moved saving of the player's inventory to this method. This
 fixes a crash when you want to start a new game or load a savegame while in
 intermission or finale.
  I fixed network replication of methods with optional arguments.
17.01.2008
  I fixed use of uninitialised reference in EntityEx.HitFloorType.
  I fixed flight powerup.
  I moved classes of splashes to linespec.
19.01.2008
  On request I added LoadBinaryLump method in progs.

******************************************************************************
                            VERSION 1.26
******************************************************************************

22.01.2008
  I decided not to support DOS anymore, so I removed all DOS specific source
 files. In Windows version I removed support for IPX network driver.
  I decided to switch to CMake. I stared by creating CMake list files for
 utilities.
23.01.2008
  I created initial version of CMake lists file for main executable.
24.01.2008
  In CMake file for main executable I added most of the library checks.
25.01.2008
  I completed writing CMake file for main executable, some other fixes. I
 changed main executable to use SDL by default.
26.01.2008
  I created CMake list files for progs and data. After that I could get rid of
 autoconf and automake files. Then I added installation commands and other
 things to make CMake support complete.
  I renamed bHiddenflag back to bNoSector and added bInvisible flag which has
 a bit different use.
27.01.2008
  I fixed a crash when actor is being linked to a sector that is used as a
 source of 3D water.
  I changed no pass mobj flag back to pass mobj and changed it not to be set
 by default.
28.01.2008
  I made all actors that have missile flag to also do z checking, just like
 pass mobj does. After that I could remove pass mobj flags from all missile
 objects.
  I added don't overlap flag that is used by some Heretic and Hexen monsters
 to prevent flying over/under each other.
  I merged Speed and StepSpeed variables.
  I changed loading of model definition files to process all model definition
 files.
  I made engine and compiler share name, stream and array template class files.
 I made vcc use it's own copy of cmdlib. I added string class to compiler and
 made use of it in many places.
29.01.2008
  I made vcc use engine's common.h, got rid of cmdlib header file.
30.01.2008
  I fixed compilation using Allegro.
02.02.2008
  I added support for customiseable DATADIR and BINDIR.
  I split implementation of member classes into multiple files that are shared
 by engine and compiler. I renamed field type class to a common name. Then I
 made member class constructors have the same arguments as in compiler.
03.02.2008
  I merged field type classes and added emit context to the engine.
04.02.2008
  I added many of the expression classes to the engine, adde statement classes,
 merged member base classes.
05.02.2008
  I merged most of the member classes.
06.02.2008
  Firebrand fixed Hexen's Deathkings music definitions, "ghost" imps in Doom,
 activation and deactivation of dynamic lights, infighting of similar species,
 and did some status bar adjustments and added new logo graphic and icons to
 the launcher.
  I updated acc to the latest SVN version.
  I continued merging member classes.
07.02.2008
  I finished merging member classes.
09.02.2008
  In entity class I added method that calculates missile damage, properly
 implemented Strife missile damages.
  I made remaining expression classes available in engine.
10.02.2008
  I implemented simple decorate expression parser.
11.02.2008
  I fixed some wrong line special translations
  I fixed cyberdemons getting hurt by explosions.
  I changed DECORATE constants to be lower cased, I added special expression
 class for DECORATE identifiers.
  OS X/Darwin desn't have __unix__ defined, so I changed checks wether to use
 $HOME/.vavoom directory to just check if it's not Windows.
  I implemented sprite renaming that will allow use of actors from other games
 by just providing needed states without worying about conflicting names.
  I added base class for dynamic lights and renamed them to proper names.
12.02.2008
  I Fixed some bugs in dynamic light actors, added method that returns best
 matching radius for intensity.
13.02.2008
  I started to add common functionality to the dynamic light base class. Since
 all of it was my code, I decided to rewrite the rest of it from scratch.
14.02.2008
  I updated acc to the version 1.46.
  I accidentaly noticed that in CheckDropOff Firebrand is using wrong sin and
 cos functions. After some more investigation I found out that calculation of
 deltas was in the wrong place (initially it was correct). Then I changed it's
 arguments and inlined internal check method. After some testing I found that
 it uses a wrong angle to calculate deltas. Since angle is calculated from
 normal I could optimise it so that angle is not used.
15.02.2008
  I implemented initial version of per-state point light effects defined using
 a VFXDEFS lump. Doesn't work yet.
16.02.2008
  I fixed a crash in Doom player setup menu when not using models.
  I found a small bug in effects parser, now it works.
  I started to convert dynamic ligt effects to VFXDEFS.
17.02.2008
  Basicly I finished converting dynamic light effects to VFXDEFS.
19.02.2008
  I converted explosion light effects to VFXDEFS.
  Firebrand fixed some colision problems and did some status bar fixes.
20.02.2008
  I added support for defining static lights in VFXDEFS, started to convert.
21.02.2008
  I finished static light conversion.
23.02.2008
  I added calculation of default gibs health if it's not specified.
  I added stubs for all DECORATE actor properties and flags, implemented all
 flags that are supported, made states parser not to stop parsing thing on
 unknown state actions or state actions with paameters.
  I fixed a bug that caused random crashes while drawing translucent sprite.
24.02.2008
  I implemented all DECORATE actor properties that are supported.
  I moved DropAmount from Inventory to Ammo class.
  I merged ClassName in EntityEx with StrifeName from Inventory.
  I implemented support for calling state actions with parameters.
  I changed class to have full list of state labels, parent class is not
 checked anymore.
25.02.2008
  I implemented support for state sub-labels. I changed burnable trees to use
 it. This also properly fixes lost souls creating ghosts bug.
26.02.2008
  I converted Doom and Heretic decorations to DECORATE, started with Hexen.
27.02.2008
  I converted Hexen and Strife decorations to DECORATE.
28.02.2008
  I added conversation IDs to all Strife decorations.
  In scripts parser I added methods that can check/expect negative numbers,
 changed some places to use them.
  I added parsing of action definitions in DECORATE class definition, changed
 states to only use actions defined in the class definitions.
01.03.2008
  I moved Strife conversation system to linespec and uibase.
  I moved Hexen's special decorations to DECORATE.
02.03.2008
  I implemented passing unquoted strings as string arguments in DECORATE state
 actions.
  I implemented Skip_Super DECORATE property.
  I moved health and armor items to DECORATE.
03.03.2008
  I moved keys, puzzle items and quest items to DECORATE.
04.03.2008
  I implemented support for progs to reference DECORATE classes as objects that
 are linked during loading.
  I moved blood, rock, dirt and stained glass shard classes to linespec.
05.03.2008
  I moved blood, rock, dirt, stained glass shard and glass junk classes to
 DECORATE.
06.03.2008
  I made available in DECORATE all methods that ScriptedEntity implements.
  I implemented some DECORATE properties.
  I moved splash and ammo classes to DECORATE.
07.03.2008
  I implemented CustomInventory class and inventory related action methods.
  I changed weapon action methods to be executed by the player's actor object.
 I changed most of the weapon action methods to use this.
08.03.2008
  I finished changing weapon action methods.
  I implemented suport for using line specials as state action methods.
  I moved most of the artifacts and inventory items to DECORATE.
  I implemented support for game specific pickup messages.
  In Inventory class I added inter hub strip flag.
09.03.2008
  I moved more artifact and inventory classes to DECORATE.
  I implemented most of the DECORATE sound action methods.
  I moved Heretic's and Hexen's ambient sound classes to DECORATE.
  I fixed MapList not showing correctly localised map names.
10.03.2008
  I moved handling of poison damage to EntityEx.
  I added support for particle effect definitions to VFXDEFS and moved all
 particle effects to VFXDEFS.
  I made DECORATE classes to also inherit class fixups from parent class.
  I moved muzzle flashes to VFXDEFS.
  I changed sprites to be initialised also on the server and added a method
 to check if particular sprites are present.
  When spawning things in map, I added a check if sprites are present and use
 Unknown thing if not. This replaces the shareware check.
  I moved to DECORATE misc Doom classes, Hexen script projectiles.
  I implemented support for obituaries.
11.03.2008
  I moved KilledByPlayer and PlayerKilled to player class.
  I temporarely moved Doom monsters to linespec, so that I can move dead Doom
 things to DECORATE.
12.03.2008
  I added back shadow and ghost flags and use them instead of the alpha value.
  I added DECORATE support for drop items, changed player pawns to use it as
 a initial inventory list.
  I moved many Doom state action methods to ScriptedEntity and made them
 available in DECORATE.
  I moved most of the Doom monsters to DECORATE.
13.03.2008
  I moved the rest of the Doom monsters to DECORATE.
  I moved many action methods from other games to ScriptedEntity.
  I finally moved all Doom game files into a single directory.
  I changed the way DeHackEd sets initial ammo.
  I moved most of the things out of Actor classes.
14.03.2008
  I finally merged Actor classes.
15.03.2008
  I implemented support for special "do not change" sprite.
  I moved freeze death action methods to Actor and added support for generic
 freeze death.
  I made all player pawn classes inherit directly from Actor, so that I can
 create a base class for player pawns. I moved common methods to it and added
 proeprties for view height and movement speed.
17.03.2008
  I added most of the needed player pawn properties.
  I implemented possibility for weapon action methods to specify the actual
 self type.
  I removed the need for a A_AddPlayerCorpse method.
  I implemented rough block search as an iterator.
18.03.2008
  I removed RoughMonsterSearch and changed all uses to use iterator instead.
  I merged PlayerPawn classes, added PlayerChunk class.
  I implemented support for parsing KEYCONF scripts, implemented commands for
 handling player classes.
  I moved Doom player to DECORATE.
  I added global weapon slots and started to change weapon switch methods to
 use them instead of Slot field in Weapon class.
19.03.2008
  I switched to global weapon slots, removed Slot field from Weapon class. I
 implemented corresponding console commands used by KEYCONF script.
  I moved all common and Doom weapon state action methods to Inventory class
 and made them available in DECORATE.
  I moved Doom weapons to DECORATE.
20.03.2008
  I implemented generic monster and weapon attack state action methods.
  I implemented support methods needed for state jump action methods.
21.03.2008
  I implemented all state jump action methods.
  I fixed rendering of mid textures on sky height change lines.
22.03.2008
  I implemented many simple state action methods, some were moved from Hexen
 and Strife.
  I changed translation tables in PK3 files not to include identity translation
 and fixed Strife merchant translations.
  I implemented entering in the wound state like in Strife with support for
 damage specific wound states. I also added support for damage specific pain
 states.
  I implemented proper support for special colourmaps used by invulnerability
 powerups.
  I implemented support for include directive in DeHackEd patches.
23.03.2008
  I fixed noclip cheat.
  I implemented missing map thing flags.
  I implemented spawn state action methods.
  I fixed missile spawn check modifying origin without unlinking thing from
 world.
  I implemented sector action triggers.
  I moved Heretic's key gizmos to DECORATE.
24.03.2008
  I added support macros for performance measurement.
  I fixed problem with string arguments in DECORATE state methods.
25.03.2008
  I changed update of the render world to use angle clipping to speed it up.
  I implemented many of the missing DECORATE actor flags, properties and state
 action methods.
26.03.2008
  I implemented railgun attack methods.
  I implemented execution of the missing ACS typed script types.
27.03.2008
  I added bridge classes to other games and added invisible bridges.
  I merged Doom's and Hexen's shared packages with svprogs, changed all to
 compile classes.vc as a main source file.
  I moved skull popping to Actor class.
  I implemented ACS fade effects.
  I added more missing DECORATE flags and properties.
28.03.2008
  I added build option to disable wrapper scripts.
  I fixed some Direct3D bugs.
29.03.2008
  I compared performance of Direct3D renderer compiled against versions 7,8
 and 9 and found out that version 7 performs worst, 8 and 9 are about the same.
 So I decoded to switch to version 9 and remove code for older versions.
  I moved some shared classes to DECORATE.
30.03.2008
  I moved Heretic's, Hexen's and Strife's player and some monster classes to
 DECORATE.
  I added support for actor properties and added some more methods for DECORATE
 expressions.
  I created a base class for morph projectiles.
31.03.2008
  I moved morph artifacts and particle fountains to DECORATE.
01.04.2008
  I implemented CanUseWalls flag.
  I got rid of some classes that only set some flags.
  I fixed printing of bold messages from ACS.
  I removed some unused Hexen classes.
  I added support for DECORATE inventory and weapon flags without prefix.
  I fixed crash when default sky texture SKY1 is missing.
  I fixed some cases where origin was changed without unlinking actor from the
 world and linking it afterwards.
02.04.2008
  I increased maximal screen width.

******************************************************************************
                            VERSION 1.27
******************************************************************************

03.04.2008
  I added state pointer check when rendering a thing.
  I changed continuous ambient sounds to be played looped and checked less
 frequently.
04.04.2008
  I changed ThingCount to skip dead monsters in all cases and to also count
 instances of replacement actor class.
05.04.2008
  I changed DECORATE states to be allowed to be followd by multiple goto/loop/
 stop/wait commands. The last one takes effect. I also removed check for none
 literal.
  I added lower cased name to the class and added method to search by it. It
 uses hash table to sped it up. I then changed all ACS p-codes that use actor
 class names to be case in-sensitive, i.e. names are lower-cased so the fast
 search by lower-cased class name can be used. I also added caching of ACS
 strings as lower cased names.
  I fixed initial frame after level change being rendered from wrong origin.
  I fixed script fade effects not being cleared on level change.
  I changed sound origin IDs to use origin type ID in it's high byte. I renamed
 NetID in Entity class to SoundOriginID since that's the only thing it's used
 for now. The way sound origin ID was calculated was a leftover from old net
 code and was a reason for major slowdown on large levels when spawning things.
 I changed it to use a simple counter.
06.04.2008
  I added hash lookup for texture lookups by name.
  I split loops in GroupLines so that array of lines is processd only once and
 not once for each sector. On large maps this gives big improvement in reducing
 map load time.
  I fixed crashes when weapon was taken away by ACS script.
07.04.2008
  I fixed activator of ACS script not being cleared if it was destroyed.
  I fixed monster infighting not working.
  When teleporting with destination z coordinate being ONFLOORZ, the z value
 must be calculated before teleport move so that Z checks work correctly.
  I fixed Heretic and Hexen powerup icons not spinning in multiplayer.
  I fixed HUD messages wrapping against default HUD size, not the actual one.
08.04.2008
  MikMod library expects EOF method to return true only it it tried to read
 beyond end of file, like C library method feof does. Returning AtEnd caused a
 crash with some mods (like some in the Zen Dynamics).
  I fixed Sigil pickups in net games not giving right number of pieces.
  I fixed crash when dying without having active weapon.
  I fixed strafing at run speed even if not running and fixed mouse movements
 not being affected by run state.
  Splitting of movement into 2 steps for very fast movement speeds was done
 only for positive values, if it was in negative direction, it wasn't split.
 I changed it to split it in even more steps if it's very fast.
09.04.2008
  SlideMove was using full movement step values which with high velocities
 could cause actor to end up outside the level. I inlined some of the callback
 methods. I also fixed sliding against two sided lines.
  I added alpha testing when drawing models.
  I fixed second Macil being unkillable and not spawning spectre when killed.
  I fixe friendly monsters attacking you if you made noise.
  I fixed Strife's alien spectres not giving you a Sigil piece when killed.
  I fixed MapList not printing lump name.
10.04.2008
  I fixed Strife's random conversations.
  MinLight of dynamic light definition wasn't defined causing bad effects in
 some cases.
  I changed input drivers to ignore unknown keys.
  I fixed "gimme artifacts" cheat.
  I fixed teleport sound being unhearable when teleporting long distances.
  I changed maximal movement step to be radius dependant.
  Sliding against two-sided lines should do z check only if actor will try to
 step up.
  I fixed crashes in sound playback when cl becomes NULL.
  I fixed network replication of lines was not being handled on client side.
  I changed sector special to be also applied while player is in water.
11.04.2008
  I fixed problem not being able to pick up items at certain height.
  I changed "gimme all" cheat in Doom to also include weapons, ammo, backpack
 and keys.
  In Strife I changed finale to show credits at the end.
  I added missing saving of ACS map arrays.

******************************************************************************
                            VERSION 1.27.1
******************************************************************************

12.04.2008
  I created a base class for hardware accelerated renderers and moved some
 shared code to it.
  I implemented renderer API for portal rendering.
  I implemented Static_Init line special.
  I fixed sector damage not working in sectors with no special.
  I fixed skies not being flipped as it was originally.
  I implemented sky portal that enables rendering of multiple different skies
 in the same scene.
13.04.2008
  I implemented support for advanced skyboxes and sector stacks.
  I added sector silencer, in a case you want to use noisy actors in your sky
 boxes.
  I fixed scrolling speed for floor and ceiling scrollers.
  I changed texture alignment in sectors with slopes to be consistent with
 ZDoom.
  I added Line_Horizon line special. Renderer currently only handles special
 cases when corresponding sector planes use sky texture.
  I properly implemented Sky2 sector special. Originally in Hexen it only
 applied to floor, but there are many wads that depend on having effect on
 ceiling too.
14.04.2008
  I fixed a bug in Strife where incorrect stamina and accuracy amounts were
 given.
  I fixed client side in network game using replacement classes. It should use
 exactly the same class the server uses.
  I implemented rendering of horizon lines.
15.04.2008
  As an optimisation before drawing level first draw sky with the biggest
 amount of portal surfaces. This also makes advanced skyboxes work in software
 and fixes an old problem with software renderer where polygons are visible
 behind sky.
  I also optimised rendering of sector stacks by initialising angle clipper to
 cover only the area of the portal.
16.04.2008
  I fixed a bug in angle clipper when itialising it for frustrum.
  I added RenderScene method that does all needed rendering sequence. This
 replaces repeated sequences in main view, camera textures and portals.
  I implemented rendering of mirrors. It still has some limitations, but it
 was surprisingly easy to implement.
17.04.2008
  I fixed rendering mirrors when viewer has some roll angle.
  I speeded up rendering of mirrors by limiting view and merging co-planar
 mirrors.
  I added clipping against mirror plane to remove requirement of having enough
 void space behind mirror.
  I implemented support for reflective floors and ceilings.
18.04.2008
  I added initial implementation for alternate weapon fire.
19.04.2008
  I added support for additive translucency for 3D floors.
  I fixed some weapon bugs.
  I fixed enter scripts being executed when loading a savegame.
  I fixed some of the collision bugs.
20.04.2008
  I implemented support for portals in portals.
  I implemented support for polyobjs that hurt actors when touched.
  I implemented DECORATE actor property ClearFlags and state action method
 A_ChangeFlag.
21.04.2008
  I fixed Strife's assault gun animation.
22.04.2008
  I changed the way sector stacks are linked to fix problem with Zen Dynamics
 which uses the same tag for different sector stacks.
25.04.2008
  I fixed mi-texture clipping and rendering of top and bottom textures when
 used with Boom's fake floors special.
26.04.2008
  I moved UseLines to the EntityEx class and implemented UseSpecial flag.
  I fixed break glass special giving quest when it shouldn't.
28.04.2008
  I fixed lines being possible to use through a closed opening.
  I fixed crash when ceiling texture gets changed to the sky texture.
  I removed limit on player and deathmatch start spots.
  I fixed fade to work properly with 3D floors and Boom water.
  I fixed transfer heights with clip fake planes flag not being rendered.
  I implemented secret trigger and hate target classes.
  I added allow drop-off flag to TryMove. This solves problem with actor movers
 moving things, such as sky viewpoint.
29.04.2008
  I did some changes to make bindings defined in keycong work.
  I finally got sector stacks to work as expected.
  I split source files for EntityEx and Actor classes into multiple ones.
06.05.2008
  I fixed crash in Hexen when picking up fourth weapon piece when you aready
 have the weapon.
07.05.2008
  I changed MAPINFO parser to mark all new clusters as hubs if script is in
 Hexen format.
  I added hashed sector and line tag search. I also noticed that sector still
 has floorheight and ceilngheight fields and decided to remove them.
08.05.2008
  I implemented hashed TID search.
  I fixed parsing of game specific pickup message DECORATE property.
  I implemented many of the missing MAPINFO flags.
09.05.2008
  I fixed a bug in Direct3D renderer.
  Firebrand fixed one of the Hexen's puzzle items dissapearing.
10.05.2008
  I implemented compatibility flags that are settable in MAPINFO.
  I implemented MAPINFO options for horizontal and vertical wall shade.
11.05.2008
  I implemented MAPINFO commands that control monster infighting.
12.05.2008
  I implemented MAPINFO commands specialaction and redirect.
  I changed LookForPlayers to skip players that don't habe shootable flag set.
  I changed floor movers that change texture and special to check if it's
 activated by a line, so that if they are used in a script, it doesn't crash.
13.05.2008
  I implemented MAPINFO commands for lax/strict monster activation.
  I made line special SendToCommunicator available in all games and implemented
 line special StartConversation.
14.05.2008
  I implemented line specials Thing_Raise, Thing_ProjectileIntercept, Autosave,
 ChangeSkill.
15.05.2008
  I implemented Transfer_WallLight special.
16.05.2008
  I added additional argument to the ceiling crushers that allows you to set
 wether use Doom, Hexen or or game's default behavior, added Generic_Crusher2
 special.
  I fixed some crashes while morphing.
18.05.2008
  I added separate texture offsets for top, middle and bottom wall textures.
  I added sector flag that disables falling damage in that sector.
  I implemented Line_SetTextureOffset, Scroll_Wall and Sector_ChangeFlags
 specials.
  I reorganised loading of side defs so that it's done in one pass after line
 defs have been loaded. I also added decompression of the compressed side defs
 lump.
19.05.2008
  I implemented blood splatter actor flag.
  I implemented WeaponPiece class.
  I started to implement support for custom skill definitions. Most of the
 skill properties are done.
20.05.2008
  I finished implementing support for custom skill definitions.
24.05.2008
  I split out SPAC flags as bitflags, so line can have multiple activation
 types.
  I split thing's skill and class filters into separate field and added support
 for up to 16 skill and class filter flags.
  I implemented UDMF map parser.
  Firebrand updated Windows sound and input drivers to use latest versions of
 DirectSound and DirectInput.
25.05.2008
  I added icon names for Heretic keys.
27.05.2008
  I changed server to be initialised before client.
28.05.2008
  I added proper namespace checks to the UDMF parser.
  I implemented monsters can activate, first side only and block players line
 flags.
  I changed SPAC constants to be bitflags, added missing ones.
29.05.2008
  I implemented parsing of REVERBS script.
30.05.2008
  I implemented setting up sector sound environment zones, changing them and
 setting corresponding EAX listener properties.
  I moved parsing of KEYCONF to be done after initialising input.
04.06.2008
  I added value type checks to the UDMF parser.
  I changed midtex related MAPINFO flags to be set in lines during loading.
06.06.2008
  I moved additive translucency flag from sidedef to linedef, since it's being
 set for both sides anyway.
  I added extended sector, linedef and sidedef UDMF properties.
09.06.2008
  I fixed resolving of DECORATE imports while loading client progs.
10.06.2008
  I added Strife dialogue scripts for teaser version maps to the PK3 file. This
 is just a temporary solution to make it work.
  I changed wrapper scripts so that -file option works relative to the current
 directory.
11.06.2008
  I changed state label search to be case insensitive.
  I changed Thing_Destroy to work with actors with huge amounts of health.
  I changed player start spot search to be backwards so that in levels with
 start spots for voodoo dolls player is spawned in correct location.
  I fixed friendlyness check.
14.06.2008
  I fixed rendering of surfaces with lightmaps in Direct3D renderer.
  I added missing initialisation of sky 2 texture in mapinfo of unknown maps.
  I added initialisation of stencil buffer in Windows and Allegro OpenGL
 drivers.
  I added mouse wheel support to the Allegro input driver.
15.06.2008
  I fixed rendering of midtextures when combined with 3D floors.

******************************************************************************
                            VERSION 1.28
******************************************************************************

01.07.2008
  I cleaned up unused skin code, added support for skin definitions in model
 definition file and added support for fullbright models.
  I added support for missiles to have different explode states depending on
 wether an actor has been hit and wether it beeds or not.
02.07.2008
  I changed dynamic lights to be marked only once per frame since they are view
 position independent. This fixes them when advanced skybox is visible.
03.07.2008
  I moved many methods from Player to PlayerEx class.
05.07.2008
  I disabled action specials that set line IDs in UDMF maps.
  I fixed hostile monsters check.
06.07.2008
  I moved more methods from Player to PlayerEx class.
07.07.2008
  I changed lightning into a thinker and moved it to the server side.
09.07.2008
  I moved LightningThinker class to progs and changed it to be an actor class
 because of the sound playback. I added execution of lightning scripts. It was
 assuming that number of affected sectors won't change, which is not the case.
 I added support for different force lightning modes. It also was still using
 tics, so I changed it to use floating point time.
11.07.2007
  I changed Weapon class to also destroy it's sister weapon when it's being
 destroyed.
12.07.2007
  I added console variable for testing network packet loss. I found that client
 is not resending packets that were dropped and fixed that.
  I added method that properly checks if a map is present, changed map list
 console command to use it.
  I externalised episode definitions and merged episode menu classes.
13.07.2008
  I made class menu available in all games, so that mods that provide multiple
 player classes can use it. I also merged single player menus.
14.07.2008
  I started work on intermission scripts.
15.07.2008
  I finished implementing scriptable intermission background animations. Moved
 Doom intermission background animations to script files.
16.07.2008
  I implemented support for scriptable intermission visited and next map
 locations. This completes support for intermission scripts.
17.07.2008
  Firebrand implemented support for mouse controllable menu controls and did
 some improvements to the Strife's teleporter beacon.
  I implemented support for MAPINFO options that specify intermission music and
 background picture or script.
18.07.2008
  I started work on merging finale screens.
19.07.2008
  I finished merging finale screens.
21.07.2008
  I added support for DeHackEd exlosion style for rockets.
22.07.2008
  I moved calculation of Doom status bar face widget to status bar.
23.07.2008
  I added methods for RGB to HSV and HSV to RGB calculation, changed player
 translation calculation to use them.
24.07.2008
  I fixed use of floating bob flag on decorations.
  I added RealGigs class.
  I implemented support for blood colours.
06.08.2008
  I implemented support for voodoo dolls.
12.08.2008
  I moved decorate flag definitions to an external XML file.
16.08.2008
  I moved most of the DECORATE property definitions to the XML file.
17.08.2008
  I moved remaining DECORATE properties to the XML file.
19.08.2008
  I fixed light not being clamped against 0.
  I changed some places to use howl sound instead of checking classes.
20.08.2008
  I moved some Hexen classes to DECORATE.
  I added pinting list of missing DECORATE imports.
21.08.2008
  I moved a few more Hexen classes to DECORATE.
22.08.2008
  I moved more Hexen classes to DECORATE.
24.08.2008
  I moved even more Hexen classes to DECORATE.
  I moved a many Strife classes to DECORATE.
25.08.2008
  I moved more Hexen classes to DECORATE.
26.08.2008
  I moved many Heretic classes to DECORATE.
27.08.2008
  I moved more Heretic classes to DECORATE.
30.08.2008
  I moved remaining Doom actor classes to DECORATE.
  I started to move Heretic monster classes to DECORATE.
  Firebrand did initial implementation of model frame interpolation and added
 syntax highlihgt files for notepad++.
31.08.2008
  I started to move Hexen monster classes to DECORATE.
02.09.2008
  I moved some more Hexen monster classes to DECORATE.
04.09.2008
  I moved some Hexen boss monster classes to DECORATE.
05.09.2008
  Added GNU-stack section to the asm files.
06.09.2008
  I started to move Strife monster classes to DECORATE.
08.09.2008
  I moved remaining Strife monster classes to DECORATE.
09.09.2008
  I renamed progs packages clprogs and svprogs to cgame and game.
  I changed compiler's lexer, error handling, modifiers, parser classes to be
 shared with engine.
10.09.2008
  I changed progs to be always be loaded using full file name.
  I removed WAD namespace for progs.
  I implemented support for compiling progs in the engine. If binary object is
 missing an source is present, it will be compiled. This will allow progs to be
 distributed in source form.
  I changed all game progs to be in source form in PK3 file.
11.09.2008
  I changed common progs to be in source form in PK3 file.
12.09.2008
  I started to move Hexen weapon classes to DECORATE.
14.09.2008
  I moved more Hexen weapon classes to DECORATE.
  I fixed scrollers with control sector not working correctly.
15.09.2008
  I moved remaining Hexen weapon classes to DECORATE.
16.09.2008
  I started to move Heretic weapon classes to DECORATE.
17.09.2008
  I moved remaining Heretic weapon classes to DECORATE.
  I started to move Strife weapon classes to DECORATE.
18.09.2008
  I moved more Strife weapon classes to DECORATE.
19.09.2008
  I moved remaining Strife weapon classes to DECORATE.
  I moved most of the special inventory item classes to linespec.
  I moved some special Hexen decoration classes to DECORATE.
20.09.2008
  I moved some of the remaining Heretic and Hexen monster classes to DECORATE.
21.09.2008
  I moved morphed monster classes to DECORATE and morphed player classes to
 linespec.
22.09.2008
  I merged teleport fog classes.
  I moved minotaur class to linespec.
24.09.2008
  I changed minotaur friend to inherit from minotaur, moved it to linespec.
 I also moved dark servant class to linespec.
03.10.2008
  I removed empty game specific world info classes.
09.10.2008
  I fixed model frame interpolation for states that have inter model frames.
11.10.2008
  I fixed SDL driver where sound data converter was set up using little
 endian sound data, while data is in system byte order.
  I fixed LineAttack not setting OutHitPoint when hitting a line.
  I updated version numbers.
12.10.2008
  I fixed Direct3D renderer messing up FPU causing time calculations to be
 wrong.
  I fixed some memory leaks.
13.10.2008
  I fixed z-buffer check when drawing translucent models with coloured lighting
 in 32 bit mode in software renderer.
  I fixed drawing of additive translucent models with coloured lighting in 32
 bit mode in software renderer.
14.10.2008
  I moved resolving of class game filter and editor/script ids from Define to
 Emit because they can use constants that are not yet resolved in Define.
16.10.2008
  I fixed reading of list of wad files in the list of servers.
18.10.2008
  I changed status bar to be shown only when valid reference to client object
 has been set.
  I moved code from Spawn console command to a method in player class and
 changed bots and single player to call it directly.
  I added PreSpawn console command and moved opening of thinker channel for
 level info to it. This solves crash when packet with level spawn command is
 dropped and client tries to create thinker without a valid level object.
  I change thinker and player channels to save previous value only when it was
 successfully sent over the network.
  I added flag in network channel which is set when message to open channel has
 been acknoweleged. Changed network serialisation of thinker references to be
 valid only when channel has been opened on the other end. This solves issue
 when server thinks that player has pointer to the MO while actually it doesn't
 have.
19.10.2008
  Firebrand fixed A_FadeIn and A_FadeOut to set actor to use translucent render
 style.
  I fixed Windows versions not having icons.
  I fixed some CMake warnings.
  I fixed crash in demo recording.
  I split source of network object map into separate file.
  I moved network class lookup table to network object map.
  I added class map to the net object map and removed net id field from class.
  I got rid of bNetLocalPlayer flag.
20.10.2008
  I changed default deathmatch inventory not to include keys from other games.
  I started to implement a master server. I's going to be a very simple one for
 now. I already implemented join and quit requests.
21.20.2008
  I changed Object.LoadBinaryLump to use name instead of lump number because
 in progs there's no way of getting it.
  I implemented querying master server for list of games. I also added menu for
 this.
22.10.2008
  I cleaned up master server code and added timeout of the servers.
23.10.2008
  I added proper handling of names over the network. I added channel class that
 sends object map data to clients.
24.10.2008
  I changed object map to be set up only on server, client must use whatever
 server tells it to use.
  I simplified check for missing sprite lump when rendering sprite.
  I removed bActLikeBridge flag from BridgeBall where it was mistakenly added.
25.10.2008
  I changed object map channel to wait for open message to be acked before
 sending any more.
27.10.2008
  More object map channel fixes.

******************************************************************************
                            VERSION 1.29
******************************************************************************

06.11.2008
  I fixed texture coordinate correction when plane has reached destination.
11.11.2008
  I moved client input handling methods to the player class.
13.11.2008
  I changed client game to contain intermission info structure instead of a
 pointer.
  I moved some more methods to player class.
  I removed automap savegame hack.
  I renamed cl_input.cpp to p_player_input and moved demo playback code to
 cl_main.cpp.
16.11.2008
  I moved level's thinker related methods to a separate file.
17.11.2008
  I moved ChangeMusic to LevelInfo.
  I renamed sound system files to have prefix snd_.
22.11.2008
  I fixed spawning of thinkers in multiplayer games.
25.11.2008
  In game info class I added NetMode field. This should replace some other
 variables. I changed use of host_titlemap with NetMode.
26.11.2008
  I replaced multiple variables with NetMode checks.
29.11.2008
  I moved demo playback and recording classes to a separate file.
  I moved some methods to connection class.
30.11.2008
  I implemented demo recording in standalone mode.
01.12.2008
  I added listen server net mode, which is multiplayer server with a local
 client being one of the players (like in standalone). After that I removed
 net modes that use loopback.
02.12.2008
  I added a single method that shuts down the game.
06.12.2008
  I inlined CL_Disconnect and SV_ShutdownServer into SV_ShutdownGame.
17.12.2008
  In channel class I added helper methods for sending and reading RPCs and
 changed relevant places to use them.
  I moved field, property and function flag definitions to correspnding header
 files.
  I moved reading of progs package to package class.
19.12.2008
  In DECORATE parser I added property hashing, didn't give much.
25.12.2008
  I extended opening structure with additional fields.
  I added precaching of field pointers during loading of DECORATE definitions.
  I discovered that during class creation code that deals with methods iterates
 through all members. Since class has list of methods for compiler, I changed
 it to be saved and use it instead which is much faster.
  I changed names to treat 'none' as 'None'.
  I changed flags parser not to use alternative name and to precache pointers
 to fields like properties, added hashing.
  Firebrand added some fixes to missile spawning methods.
26.12.2008
  I discovered that string hashing used by names works very bad causing only
 1/32 of the hash table to be used. I changed it to use crc table that gives
 good hash values significantly improving speed of names constructor.
  I fixed sky plane not having all fields initialised.
27.12.2008
  I changed teleportation code not to adjust player's view z value if it's
 voodoo doll that teleports.
  I added back sight checking code that uses blockmap. For maps with large
 number of monsters it works much faster.
  I added suppport for maps with more than 32k sidedefs.
28.12.2008
  I changed clamping of sector and sidedef offsets to be done by scrollers
 so it doesn't have to be done for entire level each frame.
  I changed on-mobj check to be done only if actor has vertical velocity or is
 not standing on the ground.
  I fixed BOOM's generic platform special having wrong delay.
30.12.2008
  I changed ChangeSector method to use BOOM's method which is much faster and
 more accurate.
31.12.2008
  I split separately floating bob handling, it it's not an item, it can have
 gravity now.
  I reorganised vertical movement handling to first check if actor is not on
 ground or has vertical velocity and then branch depending on pass-mobj. For
 some reason this works faster.
01.01.2009
  When item is picked up and added to inventory, set TID to 0 so it cannot be
 manipulated by scripts anymore.
  I changed block line and things iterators not to be inherited from script
 iterator since they are not used as such, this eliminates virtual function
 calls. I changed block things iterator to be fully inlined.
  I tried to optimise PointInSubsector method, hopefully it's a little bit
 faster now.
02.01.2009
  I added support for maps that don't have node lumps present at all.
  I moved some entity methods to engine and made collision iterator callbacks
 non-static.
03.01.2009
  I did some fixes to BOOM thing carrying scrollers.
  I added message when toggling always run.
04.01.2009
  I fixed titlemap having room for status bar.
  I changed boss brain explosions not to have damage set to avoid it doing any
 damage.
  I fixed dropping of ammo and picking it up in baby and nightmare skills
 doubling the amount.
  I fixed A_Wander using Threshold as a timer while it should be using
 ReactionCount.
  I changed Thing_SetSpecial and Thing_SetTranslation to use activator if tid
 is 0.
  I added NULL pointer check in PolyBusy.
  I added damage type to instant death sector type.
  I removed ATTN_SURROUND, it wasn't used anyway.
  I changed STCFN121 font character handling to treat it as '|'.
05.01.2009
  I added APROP_SpawnHealth actor property.
  I added support for single texture fonts created by ACS command setfont to
 be able to use animated textures.
  I updated acc to latest version.
  I implemented ACS commands UseInventory, UseActorInventory, ThingCountSector,
 ThingCountNameSector, CheckActorCeilingTexture, CheckActorFloorTexture,
 GetActorLightLevel, CheckPlayerCamera, GetPlayerInput, ClassifyActor as well
 as binary and hexadecimal print statements.
  I increased save percentage of GreenArmor because roundoff errors made it
 less efficient.
  I added support for "return" ACS script type.
07.01.2009
  I added "allowprotction" flag to terrain types that will make flat not damage
 player with a radiation suit.
  I added SIXF_TRANSFERAMBUSHFLAG flag to A_SpawnItemEx and changed the way
 telefrag flag is handled.
  I added spawn ID to Heretic's mace.
  I fixed powered up blaster playing weapon sound using missile as origin
 instead of player.
  I added A_ClearReFire state action.
08.01.2009
  I changed all remaining texture coordinate calculations to ignore 3D floors.
11.01.2009
  I added missing initialisation of DECORATE flags hash table.
15.01.2009
  I moved morphing methods to EntityEx class.
  I added new properties of the morph projectile class.
21.01.2009
  I implemented ACS commands MorphActor and UnmorphActor.
  I implemented morph styles.
24.01.2009
  I added morph powerup.
25.01.2009
  I added FastProjectile class.
  I added bBright flag to always render actor full bright.
26.01.2009
  I added initial version of additions to HIRESTEX scripts for complex texture
 definitions. It works for simple textures and has skeleton parser for advanced
 properties.
27.01.2009
  I implemented advanced texture patch options.
02.02.2009
  I fixed Bloodscourge.
  I added proper search of scripted texture patches, additions to the remap
 command and TEXTURES as an alternative name for HIRESTEX.
  I changed VTextureManager::CheckNumForName to return 0 for all NULL textures
 and not actual texture number.
12.02.2009
  I fixed root window not checking for Y scale changes.
  I fixed some warnings that gcc 4.3.3 gives.
16.02.2009
  I fixed view height not being updated when unmorphing.
  Firebrand fixed some gameplay bugs.
17.02.2009
  I fixed PrintBinary ACS p-code.

******************************************************************************
                            VERSION 1.30
******************************************************************************

23.02.2009
  I reformated Timidity source code to be more readable.
03.03.2009
  I fixed scaled model rendering in D3D.
  I changed total kills and items count to be properly updated for monsters and
 items that are sawned by scripts and some other cases.
04.03.2009
  I implemented proper way of calculating alpha and render style for player
 view weapon. Now it properly blinks when powerup wears off.
  In each actor I added reference to last heard actor. This replaces sector's
 sound target unless compatibility option is turned on.
06.03.2009
  I did some Timidity code cleanup.
09.03.2009
  I added utility method that copies actor's friendliness and hate parameters.
11.03.2009
  I added proper use of FriendPlayer field.
17.03.2009
  I split invulnerability class into separate classes for Heretic and Hexen.
  I removed support for game specific pickup messages.
  I removed default invulnerability blend colour, it must be set by the pickup.
25.04.2009
  I fixed crash if no main wad file has been found.
03.06.2009
  I fixed a typo in opening_t structure.
20.06.2009
  Firebrand fixed Sorcerer2 class wouldn't spawn properly if Sorcerer1 was
 crushed.
  Firebrand made Strife death things don't dissapear, since this was added for
 performance in the original game.
  Firebrand increased thrust velocity for Heretic's explosive pods to simulate
 the original game.
  Firebrand made friendly actors to wander if they don't have a target.
  Firebrand made GiveInventoryType method to not count for item counts.
  Firebrand fixed a typo in ExplodeMissile method for making projectiles with
 counters to explode correctly.
  Firebrand added an option to deactivate damage thrusting.
  Firebrand changed model frames to be interpolated more smoothly.
  Firebrand removed capping of framerate.
  Firebrand fixed a crash when warping to a map when starting the game in
 Direct3D.
  Firebrand added code checks so that 3d floors can be spawned on sloped floors
 and ceilings.
  Firebrand fixed crashes when sight checks go through the corners of blockmaps.
  Firebrand added code to interpolate movement of models.
28.06.2009
  Firebrand made dynamic lights to animate more smoothly.
10.07.2009
  Firebrand fixed Hexen's mash monsters couldn't be killed.
  Firebrand fixed that under certain circumstances, Floatbob items could be
 spawned inside 3d floors.
13.07.2009
  Firebrand added more checks for team mates to the friendly minotaur.
17.07.2009
  Firebrand reverted the previous additions to the friendly minotaur.
28.07.2009
  Firebrand fixed crashed in SpectralMonster::Touch method.
  Firebrand added functionality of bSeesDaggers flag.
  Firebrand made projectiles shot above target's height to adjust trajectory
 if needed.
  Firebrand corrected the logic of the GetClassFromID method, this fixed a
 number of problems when using it.
29.07.2009
  Firebrand reverted the previous fix for projectiles adjusting trajectory.
  Firebrand lowered the spawn height of the Strife's Bishop projectiles to
 match that of original Strife.
31.07.2009
  Firebrand adjusted the frame tics for widgets to avoid very fast animations
 with uncapped framerate.
  Firebrand added more strict Tracer checks for the friendly Minotaur.
06.08.2009
  Firebrand made the input, particles and dynamic lights to wait if the client
 pauses the game.
  Firebrand fixed Strife's finale screens to avoid voice overlapping when
 running with uncapped framerate.
  Firebrand modified the duration of Strife's gibs to make them last longer.
07.08.009
  Firebrand made Arch-Vile's attack to apply the Z component of velocity to be
 applied after RadiusAttack.
09.08.2009
  Firebrand fixed translation of Strife's special key linetypes in LOCKDEFS.
  Firebrand fixed CreateTossable method to decrease items properly.
10.08.2009
  Firebrand fixed the wind sector specials to use the correct velocities.
  Firebrand removed an extra call to make death player's don't 'oof' if they
 fall from tall height when death.
  Firebrand fixed the automap to work as expected with high framerates.
  Firebrand fixed that some Strife decoration sounds couldn't be heard
 completely because of fast animations.
11.08.2009
  Firebrand updated the M$VC project files to use M$VC 2008.
  Firebrand added SVN revisions to the engine version, in preparations for
 releasing SVN versions online.
14.08.2009
  Firebrand added SVN revision tool to check the current revision of the code
 and paste it to the version numbers.
  Firebrand added a few more optimization parameters to the project files.
  Firebrand added SVN tool to CMakeLists.txt.
20.08.2009
  Firebrand fixed FloorMover::FLOOREV_LowerToHighest method had an unneeded
 rest operation.
10.09.2009
  I changed cheat commands to be forwarded to server.
  I improved performance in cases where array is resized very often.
  I added compression stream for compression data with zlib.
11.09.2009
  I implemented saving of the game into a single file, description can be of
 any length and map data is compressed.
13.09.2009
  I fixed pausing of effects.
  I added GameObject class as base class for gameplay classes.
14.09.2009
  I moved level data and other game constant and structure definitions to
 GameObject.
  Firebrand reverted the previous fix for the PowerCouplin and fixed it
 properly.
  Firebrand added the SVN tool files to the main solution.
  Firebrand renamed libjpeg to match the name of the newest version object
 files.
15.09.2009
  Firebrand added VSync CVar for Direct3D and OpenGL.
18.09.2009
  Firebrand updated the highlighting code rules for NP++ and the installation
 documents to fit the latest version of NP++.
  Firebrand moved specific OS related code for VSync to the proper files to fix
 compilation problems reported on forums.
  Firebrand made small fixes to the code to make the game less jerky on high
 framerates.
20.09.2009
  Firebrand made Strife's Inquisitor to check for falling down when flying.
  Firebrand fixed the Inquisitor's flying logic to match the original Strife
 one.
  Firebrand added some more information to the TXT document.
24.09.2009
  Firebrand added basepak MSVC project files to build PK3 files for default
 games using MSVC.
  Firebrand reduced input lag in Direct3D with high framerates.
14.10.2009
  Firebrand fixed some problems with CMakeLists.txt reported in forums.
  Firebrand made svnrev.h to be built only when building main executables and
 not utils.
  Firebrand fixed crashes in slight cases when enabling D3D anti input lag
 CVars.
  Firebrand made game events to stop also when the menu is opened and in single
 player games only.
25.10.2009
  Firebrand fixed a typo in the methods for drawing sky in software renderer.
11.11.2009
  Firebrand added interpolation for missing model parameters.
  Firebrand added some more optimizations to the code.
12.11.2009
  Firebrand fixed some compilation errors.
25.11.2009
  Firebrand added some checks in Lightning projectile's to avoid crashes.
16.12.2009
  Firebrand made slider choices to show their value in text.
  Firebrand added CVars for simulation of original Doom's faded lights using
 fog.
  Firebrand made notification messages fade out.
19.12.2009
  Firebrand removed value text from slider choices, since it was a debugging
 measure.
  Firebrand added support for the launcher to specify directories where to look
 for IWADS.
21.12.2009
  Firebrand made basepak MSVC projects create a single directory where all
 object files will be placed.
  Firebrand added missing doom1 basepak MSVC project.
04.01.2010
  Firebrand fixed a crash in Stop() method for Win32 Midi music device.
05.01.2010
  Firebrand fixed for good the crash in Stop() method for Win32 Midi device.
  Firebrand fixed the Debug configuration for the Vavoom project files.
  Firebrand fixed the progs Debug configuration for the project.
  Firebrand fixed crashes that were presenting when building Vavoom using Debug
 configuration.
27.02.2010
  I added printing of supported screenshot formats.
28.02.2010
  I added support for writing screenshots in PNG and JPG formats.
  Firebrand fixed many Strife bugs reported on the forums.
  Firebrand fixed a crash when changing the episode when starting a new net
 game in Heretic.
  Firebrand fixed crashes that were presenting when building Vavoom using Debug
 configuration.
  Firebrand made gravity to be applied to movements on Z plane.
  Firebrand added flags for allowing monsters to drop down and jump up of tall
 ledges.
  Firebrand added a flag for simulating mine actors that damage other actors on
 contact.
  Firebrand added video options to the launcher.
  Firebrand made 3d sound a toggleable option in the launcher instead of it
 being on by default.
  Firebrand implemented RandomSpawner class.
  Firebrand implemented PowerDamage, PowerProtection and PowerRegeneration
 classes.
  Firebrand fixed crash when selecting a different episode and starting a net
 game in Heretic.
  Firebrand made SNDINFO be able to load sound names from more than 8
 characters.
  Firebrand made duplicated actors a warning for DECORATE parser.
  Firebrand made internal changes to DECORATE parser to recognize arrays of
 Args for actors.
02.03.2010
  I split memory and array streams to their own files, added serialisation
 operator to array and used it in some places.
04.03.2010
  I implemented optional auto-aiming.
  I fixed potential problem with SDL mixer not playing MIDI files if current
 directory is not writeable.
  Firebrand added the possibility of obtaining optional debug output from
 DECORATE parsing.
  Firebrand added an infinite ammo powerup class.
  Firebrand added a special property for powerup type parsing.
  Firebrand fixed a crash with Strife's animated doors.
06.03.2010
  Firebrand added support for basic parsing of GLDEFS variants for adding light
 effects for actors.
08.03.2010
  I updated acc to latest version.
  I started to update Timidity to the version that's included in SDL_sound
 library.
11.03.2010
  Firebrand added full support for parsing of GLDEFS light variants.
  Firebrand fixed A_Recoil method logic.
  Firebrand added options to use timidity for music playback and setting the
 patches directory to the launcher.
13.03.2010
  I got Timidity working with DLS instruments, tested it with gm.dls from
 Windows.
14.03.2010
  On Windows if Timidity init failed try to load gm.dls. Drums doesn't work
 correctly so it sounds like shit.
16.03.2010
  I fixed loading of drum instruments from DLS. It now sounds better but
 d_runnin still has problems.
17.03.2010
  I finished changing Timidity to match version of SDL_sound.
  I started to experiment with loading of SF2 files.
19.03.2010
  Firebrand implemented an option to set the sky brightness, so that users can
 set it when using darker lights.
21.03.2010
  I implemented loading of SF2 files.
  Firebrand added mouse sensitivity options to the launcher, so that users who
 feel that Vavoom's max value (10) for mouse sensitivity isn't enough can set
 it up beyond that.
  Firebrand added options for setting up a Vavoom master server from the
 launcher.
25.03.2010
  I added structure definitions for GUS patch file format, changed loading to
 use them and make it more readable.
  I fixed 'music' command truncating song names to 8 characters.
27.03.2010
  Firebrand fixed Strife's flame death had incorrect origin of RadiusDamage
 call.
  Firebrand fixed Strife's auto-health threshhold, it was working fine, but the
 call was being done in the wrong place.

******************************************************************************
                            VERSION 1.31
******************************************************************************

03.04.2010
  I started to split common code into a core library, changed utilities to use
 it. Many basic classes have been moved there.
11.04.2010
  Firebrand corrected wrong changes to Sigil projectiles.
19.04.2010
  Firebrand fixed crashes in Timidity music player.
  Firebrand made freed pointers to be properly NULLed, this helps improve
 performance.
18.04.2010
  I started to experiment with doing shadow volumes.
25.04.2010
  I started to add support for OpenGL shaders.
  I moved main shadow volume code to level renderer, added separate BSP pass
 for shadow volume rendering.
07.05.2010
  I added separate advanced level renderer class that will use shadow volumes.
 All shadow volume code has been removed from regular renderer. Dynamic lights
 are drawn with shadow volumes.
08.05.2010
  I added shaders for all rendering.
  In advanced renderer I chaged static lights to be rendered with shadow
 volumes.
10.05.2010
  I removed all lightmap code from advanced renderer.
  I started toadd shadow volume code for models.
11.05.2010
  I dod more work on models.
12.05.2010
  Sice light position is in world coordinates I can't change GL matrices, so I
 added calculation of model to world matrix and use it in shader. Now models
 are properly lit and receive shadows.
13.05.2010
  I implemented casting of shadows from models.
14.05.2010
  I added fog to advanced rendering.
16.05.2010
  I moved advanced rendering API to main drawer class.
  When drawing light calculate combined light and view vis data and process
 light only if there's intersecting subsectors.
17.05.2010
  I removed splitting of surfaces in advanced renderer.
19.05.2010
  I merged multiple copies of model rendering methods, separated MD2 models
 from scripts.
20.05.2010
  I added matrix class.
  In model scripts I added no shadow flag.
23.05.2010
  Firebrand implemented GZDoom's SmoothEdges method to smooth transparent edges
 from sprites and textures, this should fix the problem with PNG images with
 alpha channels having cyan pixels around the edges.
24.05.2010
  If OpenGL 2.0 separate stencil methods are not available try ATI extension.
25.05.2010
  In advancer rendrer use infinite far clip. If depth calamp extension is
 available, use it instead. I also added proper check for stencil wrap
 extension.
  I fixed min/max of a sector calculation.
  I changed model loading to also load data in separate structure.
26.05.2010
  I changed all model rendering in advanced renderer to use buffer objects to
 store vertex data.
27.05.2010
  I also changed models to store indices in a buffer.
  I changed regular models also to be rendered from buffers if available.
28.05.2010
  I changed array drawing to use draw range elements.
  For models collect list of edges between triangles and use it to draw only
 those edges where side changes.
  Firebrand fixed an infinite loop in Timidity music player with looped songs.
  Firebrand made beautification to the Timidity music player files.
30.05.2010
  I changed light drawing BSP walk to avoid drawing areas that are not touched
 by light.
01.06.2010
  Firebrand fixed that in Direct3D, when switching focus from Vavoom and
 returning it back, it would display a black screen.
  Firebrand changed some parameters of Window creation to make it more
 responsive and to avoid problems while switching focus.
  Firebrand made Vavoom's window unresponsive to windows's hotkeys when running
 in windowed mode.
04.06.2010
  Firebrand removed StateTime from the dynamic light's decay time in
 DoStateEffects method.
  Firebrand added a check to avoid parsing WAD files named 'gldefs' or
 'vfxdefs' that are inside of PK3 files.
07.06.2010
  I fixed passing strings to print functions.
10.06.2010
  Firebrand made actors spawned by RandomSpawner to copy their spawn flags,
 this solves a problem reported that some enemies were being activated when
 shooting, instead of behaving as monsters not spawned from RandomSpawner.
  Firebrand added warnings to avoid crashes by spawning undefined actors with
 RandomSpawner.
  Firebrand added options for running windowed mode in the launcher.
  Firebrand added autouse parameters to HealthPickup class, if it's set to 1,
 it will be cosidered a "small" health pickup (like heretic's quartz flasks),
 if it's set to 2, it will be considered as a "big" health pickup (like mystic
 urns).
12.06.2010
  Firebrand fixed the display of Doom and Heretic armor type on fullscreen.
  Firebrand fixed the damage rate of lava pits when the player is using the
 IronFeet powerup.
  Firebrand added line flags that avoid the deletion of FloorData or
 CeilingData when certain sector specials end their effects, this fixes the
 problem with Heretic's E4M1 last raising floor was being activated more than
 once, making it impossible for the player to finish the map, special thanks to
 Appelzin3 at the forums for providing more information for fixing this bug.
13.06.2010
  Firebrand made locked doors behave as doors without locks (made them
 reusable).
  Firebrand made projectiles to simulate Doom's original behavior, where they
 would pass through steps up to 32 units height.

******************************************************************************
                            VERSION 1.32
******************************************************************************
