Annotation of doom/changelog, revision 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.