Annotation of doom/changelog, revision 1.1.1.1

1.1       root        1: 
                      2: 
                      3: 
                      4:        * TODO: see below, and in the "TODO" file. Enjoy!
                      5: 
                      6: Mon Dec 22 20:29:16 1997    <[email protected]>
                      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    <[email protected]>
                     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    <[email protected]>
                     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    <[email protected]>
                    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    <[email protected]>
                    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    <[email protected]>
                    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    <[email protected]>
                    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    <[email protected]>
                    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    <[email protected]>
                    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    <[email protected]>
                    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    <[email protected] ()>
                    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    <[email protected] ()>
                    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    <[email protected] ()>
                    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    <[email protected] ()>
                    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    <[email protected] ()>
                    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    <[email protected] ()>
                    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    <[email protected] ()>
                    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    <[email protected] ()>
                    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    <[email protected] ()>
                    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    <[email protected] ()>
                    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    <[email protected] ()>
                    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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.