home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #2 / amigaacscoverdisc1998-021998.iso / games / doom / source / linuxdoom-1.10 / changelog < prev    next >
Text File  |  1997-12-22  |  35KB  |  923 lines

  1.  
  2.  
  3.  
  4.     * TODO: see below, and in the "TODO" file. Enjoy!
  5.  
  6. Mon Dec 22 20:29:16 1997    <bk@gamers.org>
  7.  
  8.     * CVS logs and other obsolete stuff removed. Anybody
  9.        who wants to keep some revision control now has a
  10.        clean slate to start with.
  11.  
  12. Mon Dec 22 19:53:34 1997    <bk@gamers.org>
  13.  
  14.     
  15.     * i_sound.c: enabled SNDSERV, as SNDINTR for
  16.        some reason just gives ghastly results e.g.
  17.       on E4M2. Frankly, I am at a loss. SNDSERV is
  18.       now default, until the internal sound driver
  19.       is a bit more reliable.
  20.       Note that the current redundancy means that
  21.       changes like the one below will have to 
  22.       be propagated manually to the soundserver
  23.       sources.
  24.  
  25.     * m_menu.c: the 4th episode is now removed with
  26.       the original doom.wad. You need to rename the
  27.       Ultimate DOOM/Special Edition retail IWAD to
  28.       doomu.wad now, or you won't see the 4th episode
  29.       in the menu. The compile time SPECIAL define
  30.       is thus gone.
  31.  
  32. Mon Dec 22 17:08:33 1997    <bk@gamers.org>
  33.  
  34.     * v_video.c (V_DrawPatch): another last minute hack.
  35.       While shareware, retail, commercial, and plutonia
  36.       (being a full DOOM2 IWAD) seem to work okay now,
  37.       TNT gives an error on finishing the first mission:
  38.        "Patch at -35, -5 exceeds LFB".
  39.       I changed the error abort into a simple return,
  40.       thus the patch is ignored. The intermission screen
  41.       seems to come up okay.
  42.     * TODO: check which patch, and whether it is an IWAD
  43.       problem.
  44.  
  45.     * i_sound.c: the sound table is hardwired in
  46.       sounds.h/sounds.c. As our current crude
  47.        sound handling simply loads *all* sounds at
  48.       startup, we are going to miss some with DOOM1
  49.       WAD files. I could skip them, but decided to
  50.       load a placeholder instead (dspistol). It might
  51.       be good to use a distinct default sound for
  52.       WAD debug purposes. A zero length sound lump
  53.       would work, but would not be noticeable.
  54.       Anyway, shareware and retail work now.
  55.     * TODO: implement proper handling for missing
  56.       lumps, sound and otherwise.
  57.       Perhaps move sound table into WAD?
  58.  
  59.     * g_game.c (G_DoPlayDemo): finally removed the
  60.       annoying "Demo is from a different game version"
  61.       abort. It now simply declines to playback the
  62.       demo, and waits for user input on some
  63.       do_nothing screen.
  64.  
  65.     * doomdef.h&Cie.: Lesson of the day - do not
  66.       replace a bunch of booleans with an enum and
  67.       use the same identifiers. Point in case:
  68.        "if ( commercial )" will not give an error,
  69.       and will always be true as long as the enum
  70.       value is greater than zero.
  71.       I found that the DOOM2 vs. DOOM differences
  72.       are everywhere (weapons, monsters, doors).
  73.       Number of episodes varies from shareware/commercial
  74.       to registered to retail, while commercial has
  75.        a unique set (two of them, counting the german
  76.       edition) of maps in one episode. Plus, TNT and
  77.       Plutonia add some TITLE strings to the mixture.
  78.       
  79.       Well, Plutonia and TNT are treated as DOOM2 for
  80.       now, so you will miss the startup message.
  81.  
  82.     * wi_stuff.h (NUMEPISODES): removed SPECIAL switch.
  83.       It is no 4 times 9 for wi_stuff.c internal
  84.       static arrays - doesn't matter.
  85.     * TODO: unified handling with DOOM 2 - dynamic
  86.       allocation of arrays.
  87.  
  88.     * i_sound.c (I_UpdateSound): okay, I separated
  89.        the mixing, now done synchonously, along with
  90.       a flag signalling the timer that the mixing buffer
  91.       has been updated. The handler is now very short,
  92.       and I tried several intervals down to 50usecs,
  93.       w/o complaints. Now the man page says:
  94.        "system timer resolution currently 10ms". Odd.
  95.       Anyway, while the double shotgun/plasma rapid
  96.       fire problem seems to be a bit less disturbing
  97.       at higher refresh, it's still there. I set the
  98.       interval to 500usec, which is sufficient for
  99.       avoiding any buffer update misses.
  100.       Conclusion after just two days of experimentation:
  101.       yep, sound driver code isn't fun at all.
  102.  
  103.       As for the bug - well, Dave Taylor suggested
  104.       close distance getting into a divide-by-near-zero
  105.       situation, screwing up the volume. I can't figure
  106.       why latency of an external sound driver or screen
  107.       size affect this, but I am running out of ideas.
  108.     
  109.     * i_sound.c: 
  110.       Some more experimentation with the timer driven
  111.       sound. It doesn't work well using an intervall
  112.       of less then 30 msecs - there will be artifacts
  113.       with say 50 msecs. This is pretty obvious with
  114.        a target frame rate of at least 30fps, methinks.
  115.       Using the REAL/SIGALRM timer with 30msec gets
  116.       rid of the artifacts, it seems - at the expense
  117.       of slowing down things on a P133 to a noticeable
  118.       jerkiness. Bah.
  119.  
  120. Mon Dec 22 00:36:54 1997    <bk@gamers.org>
  121.  
  122.     * info.c: and i_video.c and i_sound.c - don't ask
  123.       me why some Linux header files are different with
  124.       gcc vs. g++, or what the complaint about the g++
  125.         complaint info.c state table is all about:
  126.       "initializer element for `states[..].action.acp1' 
  127.        is not constant"
  128.       Undid some changes, compiled with gcc, playtested,
  129.       seems okay. Done for today... yesterday.
  130.  
  131.     * i_net.c (ntohl): okay, htons/htonl, ntohs,ntohl 
  132.       are back to haunt me. Copied the macros that
  133.       on my box aren't used for whatever reason directly
  134.       into the source. Got rid of all other multiple and
  135.       undefined references. CC=g++ now compiles (still
  136.       many warnings) and links, but the binary dumps a
  137.       core after Init PlayLoop. So be it.
  138.  
  139. Sun Dec 21 12:38:08 1997    <bk@gamers.org>
  140.  
  141.     * p_enemy.c (P_NewChaseDir): changed tdir to int,
  142.       removed the LUTs - spurious locks were due to
  143.       endless loops created by boneheaded predecessor
  144.       map. Has to be a better way to do enum dirtype_t
  145.       anyway. Problem seems to be fixed.
  146.  
  147.     * CC=gcc again, this time loads of #includes to
  148.       fix "implicit declarations, and one or two
  149.       unused variables. DOOM now compiles without
  150.       any -Wall warnings left, as C.
  151.  
  152.     * Bug: compiled the reworked code with gcc. Within a
  153.       solid while of testing and blasting away, it
  154.       locked once. Got a core, which gdb doesn't grok.
  155.       Bah.
  156.  
  157.     * TODO: okay, linkage of g++ build modules give loads
  158.       of errors, because we have many implicits, plus
  159.       missing #pragma implementation causing multiple
  160.       definitions. Yet, this is the very first time DOOM
  161.       was compiled as C++ without a parsing error. So there.
  162.     
  163.     * sounds.c: included doomtype.h and removed yet another
  164.                 enum { false, true } definition.
  165.  
  166.     * p_saveg.c  (misc): several. 
  167.     * p_mobj.c   (P_SpawnMobj): (actionf_p1)P_MobjThinker
  168.     * p_spec.c   (EV_DoDonut): (action_p1) T_MoveFloor (twice).
  169.     * p_plats.c  (EV_DoPlat): (actionf_p1) T_PlatRaise.
  170.     * p_plats.c  (EV_StopPlat): (actionf_v)NULL.
  171.     * p_plats.c  (P_ActivateInStasis): same
  172.     * p_lights.c (P_SpawnGlowingLight): (actionf_p1) T_Glow.
  173.     * p_lights.c (P_SpawnStrobeFlash): (actionf_p1) T_StrobeFlash.
  174.     * p_lights.c (P_SpawnLightFlash): (actionf_p1) T_LightFlash.
  175.     * p_lights.c (P_SpawnFireFlicker): (actionf_p1) T_FireFlicker.
  176.     * p_floor.c  (EV_DoFloor): (actionf_p1) T_MoveFloor.
  177.     * p_floor.c  (EV_BuildStairs): same (twice).
  178.     * p_doors.c  (EV_VerticalDoor): (actionf_p1)T_VerticalDoor.
  179.     * p_doors.c  (P_SpawnDoorCloseIn30): same
  180.     * p_doors.c  (P_SpawnDoorRaiseIn5Mins): same
  181.     * p_doors.c  (EV_DoDoor): same
  182.     * p_ceilng.c (EV_CeilingCrushStop): (actionf_v)NULL.
  183.     * p_ceilng.c (EV_DoCeiling): (actionf_p1)T_MoveCeiling.
  184.     * p_ceilng.c (P_ActivateInStasisCeiling): same.
  185.       These gave g++ errors, but  have been ignored by gcc.
  186.  
  187.     * r_data.c (R_PrecacheLevel): (actionf_p1)P_MobjThinker.
  188.  
  189.     * p_saveg.c:  conversions (actionf_p1)T_Whatever.
  190.  
  191.     * p_tick.c: cast (actionf_v)(-1).
  192.  
  193.     * p_telept.c: yet another (actionf_p1)P_MobjThinker.
  194.      
  195.     * p_mobj.c (P_MobjThinker): cast (actionf_v)(-1).
  196.     * TODO:  decent NOP/NULL/Nil function pointer.
  197.       I'd introduce a global A_NOP() function that
  198.       chokes up an error message. 
  199.       Why -1 instead of NULL?
  200.  
  201.     * p_enemy.c: conversions (actionf_p1)P_MobjThinker.
  202.  
  203.     * d_think.h/info.h:  think_t is essentially
  204.       the same action function pointer stuff.
  205.       I moved the definitions from info.h to
  206.       d_think.h, and aliased them with a typedef.
  207.       Now more changes needed.
  208.  
  209.     * p_enemy.c (successor, predecessor): new LUT,
  210.       to provide increments/decrements for enum
  211.       dirtype_t, as g++ complaints:
  212.       "no post-increment/decrement operator for type"
  213.  
  214.     * Makefile (CC): okay, tried "g++" once more.
  215.       A few errors (above). Plus shitloads of warnings
  216.       (obviously, better "unused" checking with C++,
  217.        lots of the usual int2enum suspects, implicit
  218.        declarations, the works).
  219.      
  220.  
  221.     * p_mobj.c: action.acp1 used accordingly.
  222.     * p_pspr.c: action.acp2 used accordingly.
  223.     * TODO: info.c:144 warning
  224.       "missing braces around initializer for `states[0].action'"
  225.      
  226.     * info.h/info.c: some experimental stuff on
  227.       action function pointers.
  228.       
  229.     * TODO: still some sound glitches at startup.
  230.     * i_sound.c: few more cleanups. Made mixing use
  231.       channel loop instead of unroll, set mixbuffer
  232.       to zero ot start.
  233.       Removed some more DOS leftovers (8bit),
  234.       kept some as comment.
  235.  
  236.     * hu_stuff.c (HU_Start):
  237.       More gamemode changes. As in d_main.c, I
  238.       decided to use DOOM2 as default whenever
  239.       one needed - it was sold most, and had the
  240.       superset of items, enemies and monsters.
  241.  
  242.     * TODO: the handling of WAD specific messages
  243.       like HU_TITLE, HU_TITLE2, HU_TITLEP etc.
  244.       should definitely be removed.
  245.  
  246.     * d_main.c (CheckBetaTest): 
  247.       Removed outdated, DOS specific BETATEST stuff.
  248.       d_main.c (IdentifyVersion):
  249.        Numerous changes to gamemode handling. 
  250.  
  251.     * TODO: currently, french language is enabled by
  252.       detecting an doom2f.wad - yet it needs FRENCH
  253.       define at compile time. I removed most language
  254.       stuff, and propose handling that at runtime,
  255.       using a switch in the config file. Well,
  256.       mission specific texts won't work outside the
  257.       WAD anyway.
  258.  
  259.     * TODO: along the same lines: I suggest removing
  260.       the misc. devparm switches as well - lots of
  261.       redundancy not needed anymore.
  262.  
  263.     * Makefile: finally added a doomstat.c for all
  264.       the global state variables listing internal
  265.       engine configuration. Right now, these are
  266.       scattered everywhere. Declaration to be found
  267.       in doomstat.h header.
  268.  
  269.     * f_finale.c (F_StartFinale): 
  270.       Reworked the entire finale handling based on
  271.       game mode enum.
  272.  
  273.     * doomstat.h:
  274.       Global variables for game mode and language.
  275.       Removed old booleans.
  276.  
  277.     * doomdef.h: GameMode_t and Language_t enum added.
  278.           Boolean for language was kinda limiting to 2
  279.       alternatives (french, english), and five boolean
  280.       plus #define SPECIAL for game version is just ugly.
  281.     
  282.     * wi_stuff.h: SPECIAL switch compiles two
  283.       different EXE's, one for 3 episodes of 9 maps
  284.       each (DOOM 1 registered), one for 4 episodes
  285.       of 9 maps each (DOOM 1 retail/FinalDOOM).
  286.       Implicitely, the DOOM2 config (one episode,
  287.        34 missions) is handled. How is the german
  288.       edition (32 missions only) done?
  289.       Frankly, this is a mess. The problem is that
  290.       intermission (animated as in DOOM 1, simple
  291.       backdrop as in DOOM2) as well as certain
  292.       items (double shotgun) as well as certain
  293.       rendering stuff (sky texture) depend on this.
  294.  
  295.       Plus, it ties into runtime flags as "commercial"
  296.       as well. Yuck.
  297.     
  298.       Each change will change the game. Postponed.
  299.  
  300.     * d_net.c,m_misc.c: removed last two NeXT remains.
  301.  
  302.     * d_englsh.h,d_french.h,d_main.c,m_misc.c,r_draw.c,v_video.c:
  303.       more WATCOM remains removed. Kept some stuff that
  304.       handeld the blocky mode/detailshift in DOS, which
  305.       is n.a. in Linux - but probably not worth fixing.
  306.  
  307. Sat Dec 20 15:16:51 1997    <bk@gamers.org>
  308.  
  309.     * Bug: core dump when using doom.wad or doom1.wad
  310.       without a "-file UNUSED/doom2.wad". Version
  311.       dependend handling of stuff (double shotgun)
  312.       comes to mind.
  313.  
  314.     * doomdef.h: 
  315.       SNDSERV enables external sound server
  316.       support. SNDINTR enables internal sound
  317.       output with timer (asynchronous). Default
  318.       is internal, synchronous.
  319.  
  320.     * i_sound.c (I_HandleSoundTimer): 
  321.       Okay, the plasma/double shotgun sound bug
  322.       (crapyy sund when firing nose-to-wall) is
  323.       obviously a problem with blocking at
  324.       refresh - smaller screen size makes it go
  325.       away.
  326.       I won't do threads w/o a proper gdb, and
  327.       I can't do whatever Dave Taylor did with
  328.       LinuxQuake w/o the sources, thus I broke
  329.       down and implemented a timer based solution.
  330.       Seems to work fine, given the fact that
  331.       this is the first time ever I implemented
  332.       sound handling.
  333.  
  334. Fri Dec 19 10:02:48 1997    <bk@gamers.org>
  335.  
  336.     * m_menu.c/i_sound.c/s_sound.c:
  337.        Removed a few more inconsistencies due to
  338.       old internal sound handling (DOS),
  339.       external (Linux sndserver), and
  340.       new internal (the unfinished merge of
  341.       both the former).
  342.       The Options/Sound/Music volume menu is
  343.        accessible now. It was due to an internal
  344.       scaling of the menu (effective range 0-15),
  345.       up to 0..120, by multiply with 8 scattered
  346.        all over the place, that we got a
  347.        v_video.c: I_Error ("Bad V_DrawPatch")
  348.       Now I am using the menu resolution
  349.       everywhere, and scaling should only be done
  350.       in the actual mixing/output.
  351.     
  352.     * OK, obviously this hasn't been updated in months.
  353.       This is because: a) most of the time nothing
  354.       happened, and b) when something got done, it was
  355.       too much to keep track of it by CVS and/or ChangeLog.
  356.  
  357.       Basically, what happened in the meantime is that
  358.       I did not find a publisher who believed that the book
  359.       sales would be worth doing it. Within the limited
  360.       amount of time that I could dedicate to a project
  361.       that will not generate any revenue whatsoever,
  362.       I spent some time on cleaning up the Linux code
  363.       base which works, essentially. I might or might not
  364.       be able to participate in a Mesa+Voodoo+Glide based
  365.       GLDOOM port for Linux. I won't waste a minute on
  366.       Win32 without getting paid for it.
  367.   
  368.       Because of the legal issues involved with the
  369.       DMX sound library id licensed for DOS DOOM, Linuxdoom
  370.       is the only code base that has sound support at all.
  371.       Other UNIX ports (SGI, Sun) could probably be revived
  372.       and integrated w/o too many problems. There is no
  373.       Win32 port - I never had access to WinDOOM or
  374.       Jim Dose's GLDOOM sources. There is no Linux
  375.       OpenGL (read: Mesa) support yet - that'd involve
  376.       internal changes which will best be done after a
  377.        public source release.
  378.  
  379.       John Carmack opted for a release of the Linux code.
  380.       I have removed all DMX references I could get a
  381.       hold of, but preserved some of the original
  382.       sound handling within DOOM that interfaced
  383.       with DMX. Linuxdoom (like previous UNIX ports)
  384.       used a separate sound server binary. I did some
  385.       work on putting the sound server module back into
  386.       the engine. It works, but shutdown (pending sounds),
  387.        and sound output parallel to refresh (blocking)
  388.       is crappy, and there is a problem with double
  389.       shotgun and plasma at close distance (as well as
  390.       with lots of other noises going on). As the
  391.       mixing code is identical to the separate
  392.       soundserver, and as it doesn't seem to be a
  393.       blocking issue, I am currently at a loss - I
  394.        wonder whether the IPC communication with the
  395.       soundserver process introduced a delay that
  396.       changed behaviour, or whether I simply overlooked
  397.       a bug. I am currently lacking the time to track
  398.       this down, so I am keeping both internal and
  399.       soundserver source.
  400.  
  401.       I did remove DOS and Watcom specifics. I did also
  402.       remove the texture mapping and fixed point assembly.
  403.       From my experience, it isn't worth the trouble
  404.       to ue GCC inline assembler, as performance of 
  405.       the same loop written in C is perfectly sufficient.
  406.       On demand I will put both assembly modules into some
  407.       documentation, as they are probably of historic
  408.       interest.
  409.  
  410.       There is no Sun DGA, Irix, or other non-Linux stuff
  411.       in this code base (at least, not intentionally). 
  412.       They will be back when ports to other UNIX 
  413.       environments will be merged back (I can't do 
  414.       testing, and the modules were separate and not
  415.       consistent, so I refrained from wasting time on
  416.       this prior to a public release).
  417.  
  418.       While I made only minor changes to the actual code
  419.       (some fixes, some cleaning up of SHM and audio),
  420.       I did a huge amount of shuffling around. I
  421.        introduced many more header files and modules,
  422.       some of them laughably small (doing these changes
  423.        is bound to screw up CVS, so no CVS record anymore
  424.       for the time being). I would introduce even more
  425.       separation if I had the time. Splitting the
  426.       animation/AI/behaviour code that defines 
  427.       "DOOM - The Game" into a separate game.so (like
  428.           Quake2 does) should definitely be done. Separating
  429.       a ref_soft.so aka "DOOM - The Engine", and defining
  430.       a clean interface prior to introducing a ref_gl.so
  431.       is recommended as well.
  432.  
  433.       I am going to purge some more leftovers, remove 
  434.       the obsolete CVS history except for comments,
  435.         and try to clean up the last "implicit declaration"
  436.        and "unused variable" warnings. Except for enabling
  437.       cheats in nightmare (to have more fun while testing),
  438.       I did not change the game mechanics at all. I would
  439.       strongly advise against doing so w/o the proper
  440.       separations suggested above. I will not waste time
  441.       on fixing detail and blocky mode, lack of resize,
  442.       or other stuff that it better addressed by a proper
  443.       GLDOOM port.
  444.  
  445.     
  446. Sat Aug 16 08:07:16 1997    <bk@hal.gamers.org>
  447.  
  448.     * p_pspr.c:
  449.        Moved the sprite animation stuff from doomdef.h here.
  450.  
  451.     * info.h:
  452.       Added #ifndef __INFO__ for multiple inclusion. I am
  453.       not going to deal with multigen, or changing the
  454.       original DOOM monster animation anyway.
  455.  
  456.     * p_spec.h/c:
  457.        Moved anim_t etc., locally used only. There is
  458.       another anim_t in wi_stuff.h/c, now local as well,
  459.       so collisions on header inclusion should not occur.
  460.           #include "doomdef.h"
  461.           #include "doomstat.h"
  462.       these should now be topmost includes.
  463.     
  464.     * doomstat.h, doomdef.h, wi_stuff.h, d_player.h:
  465.       I moved wbstartstruct_t to d_player.h, and wminfo
  466.       to doomstat.h. Basically, I will try to move all
  467.       global state related stuff into doomstat.h, and
  468.       all data structures defined for state variables
  469.       into doomdef.h - this will be kinda greek tragedy,
  470.       and never finished, but a body can try.
  471.  
  472.     * wi_stuff.h/c, wi_data.h: 
  473.           Removed wi_data.h, put all local stuff blah... see
  474.       below.
  475.           I have found several unused global variables,
  476.       started outcommenting them with //U, will remove
  477.       them later. It might be Watcom/PC stuff, or
  478.       somebody put the actual numbers into the implementation
  479.       instead of using STARDIST, ANIMPERIOD & Cie.
  480.     
  481.     * st_stuff.h/c: from doomdef.h, local stuff moved
  482.       into st_stuff.c, etc.
  483.       In the current revisions, I am tolerating warnings
  484.       of the "implicit declaration" kind - the linker
  485.       resolves the stuff, and it will be handy in 
  486.       unmangling the modules once the headers contain
  487.       only the globally visible stuff.
  488.  
  489.     * am_map.h/c, am_data.h:
  490.        Removed am_data.h, put all local stuff into
  491.       am_map.c, moved globally needed headers from
  492.       doomdef.h into am_map.h.
  493.  
  494.     * p_saveg.h, p_setup.h, p_tick.h:
  495.        created, stuff from doomde.h moved there
  496.  
  497.     * d_main.c, d_net.c, doomdef.h: 
  498.       Decided to dump mprintf, as only needed for
  499.       Watcom support which is not going to happen.
  500.  
  501.     * doomdef.h: 
  502.       Moved function prototypes to appropriate headers:
  503.       d_main.h, d_net.h.
  504.  
  505. Fri Aug 15 16:38:53 1997    <bk@hal.gamers.org>
  506.  
  507.     * doomstat.h:
  508.       added a few more comments, regrouped some of the
  509.       state variables.
  510.  
  511.     * doomdata.h: added a few more comments.
  512.  
  513. Thu Aug 14 10:38:37 1997    <bk@hal.gamers.org>
  514.  
  515.     * g_game.c (G_DoLoadLevel): 
  516.       copied the skyflatnum determination here, from
  517.       the R_InitSkyMap - once should be sufficient.
  518.  
  519.     * Makefile, r_sky.h/c: 
  520.       added r_sky module. The sky handling was scattered
  521.       over r_bsp, r_main, r_plane, doomstat.h...
  522.  
  523.     * r_bsp.c, r_main.c, r_segs.c:
  524.        Removed RD_* calls from R_debug.m, NeXT switches.
  525.  
  526.     * r_local.h:
  527.       Removed the R_debug.m NeXT specific debugging
  528.       code headers. Removed "drawbsp" flag from
  529.       here, and r_main.c, too.
  530.  
  531.     * r_data.c: 
  532.       Started to remove NORMALUNIX switches, using
  533.       LINUX instead. Basically, different UNIX
  534.       platforms using the same code should simply
  535.       be ANDed in the #ifdef switches.
  536.  
  537.     * r_draw.c:
  538.       Removed some more, but not all WATCOMC support.
  539.       There is an unresolved problem with the fuzzy
  540.       blitting in the lowres (blocky) modes - either
  541.       the "detailshift" flag triggered lowres mode
  542.       will be removed, or the bug has to be fixed.
  543.  
  544.     * r_bsp.h, r_draw.h, r_things.h, r_data.h,
  545.       r_segs.h, r_main.h, r_plane.h: 
  546.           Created from r_local.h. 
  547.     
  548.     * Back to work.
  549.       Till March 22nd, a lot of source shuffling and addition
  550.       of new header files, separating stuff, and creating
  551.       new, smaller modules. Some Watcom/PC/DMX/NeXT etc.
  552.       related stuff got removed, but not all (yet). None of
  553.       this ended up in the Log (sorry) or the revision control
  554.       (CVS is not well suited while number of files and
  555.       respective names change a lot, especially if stuff gets
  556.       deleted and/or re-introduced).
  557.       Major change: part of the sound code got copied from the
  558.       separate Linux sndserver sources to the linuxdoom source.
  559.       Re-integration and removal of sndserver pending.
  560.       Nothing of importance happend since then (priorities).
  561.  
  562. Mon Feb  3 16:41:05 1997    <bk@gamers.org ()>
  563.  
  564.         * m_misc.c:
  565.           Created m_argv, m_random and m_bbox, kept remains in m_misc
  566.           for the time being. Misc. files changed to include only
  567.           necessary modules. Moved bbox definitions from doomdata.h. 
  568.  
  569.         * m_menu.h:
  570.           Created from doomdef.h. Misc. changes in dependend modules.
  571.           I am not going to list every affected file from now on.
  572.           See Log entries within each file. 
  573.  
  574.         * dstrings.h:
  575.           Now handles multi-language support and switches.
  576.           So far, only english (default) and french are available. 
  577.  
  578.         * d_englsh.h: 
  579.           Created from dstrings.h. 
  580.  
  581.         * g_game.h:
  582.           Created, from doomdef.h. 
  583.  
  584.         * am_map.c, st_stuff.c, wi_stuff.c: 
  585.         * Makefile: 
  586.           Added m_cheat, removed dutils. Doubly linked list stuff unused.
  587.  
  588.         * m_cheat.h, m_cheat.c:
  589.           Created, basci cheat string scrambling and check, from dutils.h
  590.           and dutils.c. 
  591.  
  592.         * doomdef.h
  593.           Moved screen declaration to v_video.h.
  594.  
  595.         * dutils.h, dutils.c
  596.           Remode code for f_wipe.h and f_wipe.c.
  597.  
  598.         * Makefile
  599.         * d_main.c,
  600.           Added f_wipe files.
  601.  
  602.         * f_wipe.h, f_wipe.c: 
  603.           Created, screen wipe/melt at mission begin, from dutils.h
  604.           and dutils.c.
  605.  
  606.         * d_textur.h:
  607.           Created from doomdata.h. Separates all the patch/texture
  608.           defintions. Needed for v_video module. 
  609.  
  610.         * r_local.h, wi_stuff.h, st_lib.h, hu_lib.h: 
  611.         * i_x.c, d_main.c, m_menu.c, m_misc.c: 
  612.           Added v_video.h.
  613.  
  614.         * v_video.h:
  615.           Created. Using headers from doomdef.h. Forward of patch_t.
  616.           Moved bool and byte to doomtype.h.
  617.  
  618. Thu Jan 30 20:50:16 1997    <bk@gamers.org ()>
  619.  
  620.         * doomtype.h:
  621.           Created, for fixed_t. Should add angle_t here, too.
  622.  
  623.         * tables.c: 
  624.           Added SlopeDiv from r_main.c, added all defines and typedefs
  625.           related to basic trig table use here, removed it.
  626.           Currently "tables.h" is included in doomdef.h and
  627.           r_local.h, too. This is not too cleanly separated, but
  628.           we have to start somewhere, right?
  629.  
  630.         * tables.h:
  631.           Created from doomdef.h.
  632.           Note that tables.c had fixed size tables, while doomdef.h
  633.           calculated from the value of FINEANGLES. In addition,
  634.       entries were given as either "int" or "fixed_t". Bad boys.  
  635.  
  636.         * z_zone.c: 
  637.         * s_sound.c: 
  638.         * hu_stuff.c: 
  639.         * st_lib.c, st_stuff.c: 
  640.         * wi_stuff.c: 
  641.         * w_wad.c: 
  642.         * r_things.c, r_plane.c, r_draw.c, r_data.c: 
  643.         * p_tick.c, p_mobj.c, p_spec.c, p_setup.c, p_lights.c, 
  644.           p_plats.c, p_floor.c, p_doors.c, p_ceilng.c: 
  645.         * am_map.c: 
  646.         * m_misc.c, m_menu.c: 
  647.         * g_game.c: 
  648.         * d_main.c: 
  649.         * f_finale.c:
  650.           Added #include "z_zone.h". 
  651.  
  652.         * z_zone.h: 
  653.           Created, from stuff in doomdef.h
  654.  
  655.         * CVS checkin. Reformatting run, last one.
  656.           Took a week to go through all the sources, w/o even
  657.           looking to closely.
  658.  
  659.         * st_stuff.c (ST_Responder): 
  660.           Removed a first tiny bit of redundancy (NO_CLIP checks).
  661.       Should remove idspispod completely, later.
  662.  
  663. Wed Jan 29 19:53:43 1997    <bk@gamers.org ()>
  664.  
  665.         * Another one, while we are on it. All S (Sound) files.
  666.  
  667.         * CVS checkin. Reformatting run, all R (Refresh) files.
  668.  
  669.         * r_draw.c (R_DrawSpanLow): 
  670.           The non-Watcom, non-asm lowres mode was just a copy
  671.       of the default mode. As detailshift was used to scale
  672.       the image down, lowres mode just filled the left half
  673.       of the buffer.
  674.         * r_draw.c (R_DrawColumnLow): 
  675.           Tried the same hack for walls, horribly broken.
  676.       Postponed. 
  677.  
  678. Tue Jan 28 19:32:48 1997    <bk@gamers.org ()>
  679.  
  680.         * CVS checkin. Another reformatting run. Did all P files.
  681.  
  682.         * p_spec.c: P_FindNextHighestFloor
  683.           The number of adjoining sectors is limited to 20, because
  684.       of a temporary LUT needed for determining lowest height
  685.       in adjacent sectors. No overflow checking is done.
  686.  
  687. Sun Jan 26 08:41:21 1997    <bk@gamers.org ()>
  688.  
  689.         * Another CVS checkin of a formatting run.
  690.           D,F,G,HU,I,M have been changed.
  691.  
  692.         * Note: in initial and current release,
  693.            linuxxdoom -3 -file plutonia.wad, idclev 12
  694.           produces a Segmentation fault.
  695.  
  696. Wed Jan 22 14:03:00 1997    <bk@gamers.org ()>
  697.  
  698.         * m_menu.c:
  699.            initializer-string for array of chars is too long (skullName)
  700.            warning: unused parameter `int choice' (a couple of times)
  701.  
  702.         * Attempt to compile as C++. Loads of warnings, a couple of errors.
  703.           p_enemy.c (P_Move):
  704.           r_things.c (R_ProjectSprite)
  705.            `catch', `throw', and `try' are all C++ reserved words,
  706.            thus changed "try" to "try_ok". Fixed.
  707.           p_pspr.c: In function `void P_SetPsprite(struct player_s *, ... )':
  708.            too many arguments to function
  709.            No convenient fix - state->action is declared void action(),
  710.            but called w/o, with one, or with two parameters.
  711.            There are more like this. Going to be a tough one.
  712.        Union of pointers?
  713.           Postponed.
  714.  
  715.     r_plane.c: In function `void R_DrawPlanes()':
  716.           s_sound.c: In function `int S_AdjustSoundParams(struct mobj_s *, .. )':
  717.           p_map.c: In function `bool PIT_StompThing(struct mobj_s *)':
  718.           p_maputl.c: In function `int P_AproxDistance(int, int)':
  719.           r_main.c: In function `int R_PointToDist(int, int)':
  720.           p_enemy.c: In function `void P_NewChaseDir(struct mobj_s *)':
  721.            warning: implicit declaration of function `int abs(...)'  <stdlib.h>
  722.  
  723. Wed Jan 22 12:15:00 1997    <bk@gamers.org ()>
  724.  
  725.         * CVS checkin of purification run. Sources now compile
  726.           without any "-Wall" warnings.
  727.  
  728.         * Note: with -file "tnt.wad", we get an "Error: Bad V_DrawPatch"
  729.           abort each time we enter an exit. Invalid or missing
  730.           intermission screen?
  731.  
  732.         * Makefile (CFLAGS): added -Wall, first purification run.
  733.  
  734.           d_main.c: In function `D_DoomMain':
  735.            warning: implicit declaration of function `mkdir'   <fcntl.h>
  736.  
  737.           i_unix.c: In function `I_StartSound':
  738.            warning: control reaches end of non-void function
  739.           i_unix.c: In function `I_InitNetwork':
  740.            warning: implicit declaration of function `inet_addr' <arpa/inet.h>
  741.           i_unix.c: At top level:
  742.            warning: `endianness' defined but not used
  743.  
  744.           i_x.c: In function `I_Error':
  745.            warning: unused variable `string'
  746.           i_x.c: In function `I_GetEvent':
  747.            warning: suggest parentheses around arithmetic in operand of |
  748.           i_x.c: In function `I_FinishUpdate':
  749.            warning: unused variable `bigscreen'
  750.           i_x.c: In function `grabsharedmemory':
  751.            warning: implicit declaration of function `getuid'  <unistd.h>
  752.            warning: unused variable `done'
  753.           i_x.c: In function `I_InitGraphics':
  754.            warning: suggest parentheses around assignment used as truth value
  755.            warning: char format, different type arg (arg 3)
  756.            warning: char format, different type arg (arg 5)
  757.            warning: implicit declaration of function `XShmGetEventBase'
  758.           i_x.c: In function `InitExpand2':
  759.            warning: unused variable `jexp'
  760.            warning: unused variable `iexp'
  761.  
  762.           m_menu.c: In function `M_ReadSaveStrings':
  763.            warning: implicit declaration of function `read'    <sys/types.h>
  764.            warning: implicit declaration of function `close'   <unistd.h>
  765.  
  766.     m_misc.c: In function `M_WriteFile':
  767.            warning: implicit declaration of function `write'
  768.            warning: implicit declaration of function `close'
  769.           m_misc.c: In function `M_ReadFile':
  770.            warning: implicit declaration of function `read'
  771.           m_misc.c: In function `M_ScreenShot':
  772.            warning: implicit declaration of function `access'  <unistd.h>
  773.  
  774.     p_pspr.c: In function `P_MovePsprites': 
  775.      suggest parentheses around assignment used as truth value
  776.  
  777.           p_spec.c: In function `P_SpawnSpecials':
  778.            warning: implicit declaration of function `atoi'    <stdlib.h>
  779.  
  780.     w_wad.c: In function `strupr':
  781.            warning: implicit declaration of function `toupper' <ctype.h>
  782.           w_wad.c: In function `W_AddFile':
  783.            warning: implicit declaration of function `read'    <sys/types.h>
  784.            warning: implicit declaration of function `lseek'
  785.            warning: implicit declaration of function `close'   <unistd.h>
  786.  
  787.           wi_stuff.c: In function `WI_loadData':
  788.            warning: unused variable `pic'
  789.           wi_stuff.c: At top level:
  790.            warning: `background' defined but not used
  791.  
  792. Tue Jan 21 22:00:00 1997    <bk@gamers.org ()>
  793.  
  794.         * doomdata.h (__BYTEBOOL__):
  795.           Use builtin ANSI C++ bool.
  796.  
  797.         * d_main.c (IdentifyVersion): 
  798.           Bug fix: insufficient malloc created errors in malloc/realloc
  799.       calls later on. Welcome to the risks of Copy'n'paste. 
  800.  
  801. Tue Jan 21 13:20:05 1997    <bk@gamers.org ()>
  802.  
  803.         * First formatting checkin.
  804.           A word of explanation: prior to making any changes to the
  805.       source, a couple of formatting runs will be made, followed
  806.       by some purification runs.
  807.       For this run, the Emacs mode selection line has been changed
  808.       to use C++ style indenting (cc-mode.el).  Each file has
  809.       been automatically reformatted using Emacs indent-region.
  810.       A few files have been changed manually already (i.e.,
  811.       comments, use of tabs).
  812.       Warning: using "diff" to compare files of different states
  813.       during the reformatting will not give useful results.
  814.  
  815.         * hu_stuff.c: 
  816.           fixed "assignment discard const", the last remaining error
  817.           message with default compilation.
  818.                       
  819.  
  820. Sun Jan 19 14:27:06 1997    <bk@gamers.org ()>
  821.  
  822.         * Makefile:
  823.           Minor fix for sndserver target, removed linuxsdoom target
  824.           for the time being, added CVS header (kind of).
  825.  
  826.         * Initial CVS checkin. 
  827.  
  828.         * soundsrv/irix/linux/sun.c: 
  829.           Changed includes (irix.h removed, soundsrv.h included).
  830.  
  831.         * i_svga.c: 
  832.           Changed to DOS 8+3.
  833.  
  834.         * soundsrv.h/c:
  835.           Changed to DOS 8+3, included irix.h in soundsrv.h.
  836.  
  837.         * r_local.h:
  838.           Same for PI, include math.h with Linux.
  839.  
  840.         * doomdef.h: 
  841.           Got rid of multiply defined warnings for Linux, 
  842.           included values.h.
  843.  
  844.         * FILES2:
  845.           created a commented list of all files, removed a few
  846.           more files (sndserver test, NeXT leftovers, DMX header).
  847.           Identified the following main modules (see FILES2):
  848.           AM, HU, M, P, R, S, ST, W, WI. Some stuff is separate
  849.           (Z, F), some not clearly separable (G, D). System specific
  850.           interfaces are in I. Some of the latter replace i_main.c
  851.           (i.e. the void/int main(argc,argv) call), e.g. SVGA,
  852.           others (X11, SHM, DGA) don't. There is a certain amount
  853.           of overlap, and the largest module (with possibly most
  854.           overlap) is P - playing, i.e. all the games state and
  855.           animation handling.
  856.           Dithering is currently not used.
  857.  
  858. Sat Jan 18 15:14:41 1997    <bk@gamers.org ()>
  859.  
  860.         * r_draw.c: 
  861.           fixed !defined(USEASM) lines for R_DrawColumn/Span.
  862.           Removed fpfunc.o/S from Makefile, now compiling
  863.           X11 w/o any assembler.
  864.           Got a running linuxxdoom again. We are in business.
  865.           This source is going to be used for the initial CVS
  866.           check in.
  867.  
  868.         * Tried a quick hack compiling it as COFF a.out instead
  869.           of ELF, with "gcc -b i486-linuxaout". Same linker
  870.           errors. 
  871.           Tried removing -DUSE_ASM. Still using fpfunc.S.
  872.  
  873.  
  874.         * Tried linuxxdoom.
  875.           Compile run: some warnings (redefinition of MAX/MIN
  876.            SHORT/INT/LONG) in doomdef.h and (PI redefined)
  877.            r_local.h.
  878.           Link run: crashed, undefined references in 
  879.             d_main.c: undefined reference to  `FixedDiv2'
  880.             am_map.c:  undefined reference to `FixedMul'
  881.             r_main.c:  undefined reference to `R_DrawColumn'
  882.             r_main.c:  undefined reference to `R_DrawSpan'
  883.             r_plane.c: undefined reference to `FixedMul'
  884.             
  885.           This stuff is defined in fpfunc.S (Fixed point) and
  886.           in r_draw.c (assembler in tmap.S not used).
  887.           However, "nm," shows that r_draw.o does not include
  888.           the drawing functions (see below - USE_ASM).
  889.           Furthermore, the global symbols in fpfunc.S begin
  890.           with an underscore, "_FixedMul" and "_FixedDiv2".
  891.  
  892.           More problems within fpfunc.o: undefined references to 
  893.  
  894.              `_dc_yl'      `_dc_yh'
  895.              `_ylookup'
  896.              `_centery'
  897.              `_dc_x'
  898.              `_columnofs'
  899.              `_dc_iscale'
  900.              `_dc_texturemid'
  901.              `_dc_source'
  902.              `_dc_colormap'
  903.  
  904.              `_ds_y'       `_ds_x1'      `_ds_x2'
  905.              `_ds_xfrac'   `_ds_yfrac'
  906.              `_ds_xstep'   `_ds_ystep'
  907.              `_ds_colormap'
  908.              `_ds_source'
  909.  
  910.           Again, underscore problem.
  911.           Note: tmap.S currently obsolete, as somebody pasted all
  912.           the texture mapping assembly into fpfunc.S. Gotta clean
  913.           that up.
  914.  
  915.         * Created initial release from CD sources, created ChangeLog.
  916.           Let the games begin.
  917.  
  918.  
  919.         **************************************************************
  920.     DOOM source code ChangeLog file
  921.     **************************************************************
  922.  
  923.