|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.