⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changelog

📁 doom游戏
💻
📖 第 1 页 / 共 3 页
字号:



	* TODO: see below, and in the "TODO" file. Enjoy!

Mon Dec 22 20:29:16 1997    <bk@gamers.org>

	* CVS logs and other obsolete stuff removed. Anybody
 	  who wants to keep some revision control now has a
 	  clean slate to start with.

Mon Dec 22 19:53:34 1997    <bk@gamers.org>

	
	* i_sound.c: enabled SNDSERV, as SNDINTR for
 	  some reason just gives ghastly results e.g.
	  on E4M2. Frankly, I am at a loss. SNDSERV is
	  now default, until the internal sound driver
	  is a bit more reliable.
	  Note that the current redundancy means that
	  changes like the one below will have to 
	  be propagated manually to the soundserver
	  sources.

	* m_menu.c: the 4th episode is now removed with
	  the original doom.wad. You need to rename the
	  Ultimate DOOM/Special Edition retail IWAD to
	  doomu.wad now, or you won't see the 4th episode
	  in the menu. The compile time SPECIAL define
	  is thus gone.

Mon Dec 22 17:08:33 1997    <bk@gamers.org>

	* v_video.c (V_DrawPatch): another last minute hack.
	  While shareware, retail, commercial, and plutonia
	  (being a full DOOM2 IWAD) seem to work okay now,
	  TNT gives an error on finishing the first mission:
	   "Patch at -35, -5 exceeds LFB".
	  I changed the error abort into a simple return,
	  thus the patch is ignored. The intermission screen
	  seems to come up okay.
	* TODO: check which patch, and whether it is an IWAD
	  problem.

	* i_sound.c: the sound table is hardwired in
	  sounds.h/sounds.c. As our current crude
 	  sound handling simply loads *all* sounds at
	  startup, we are going to miss some with DOOM1
	  WAD files. I could skip them, but decided to
	  load a placeholder instead (dspistol). It might
	  be good to use a distinct default sound for
	  WAD debug purposes. A zero length sound lump
	  would work, but would not be noticeable.
	  Anyway, shareware and retail work now.
	* TODO: implement proper handling for missing
	  lumps, sound and otherwise.
	  Perhaps move sound table into WAD?

	* g_game.c (G_DoPlayDemo): finally removed the
	  annoying "Demo is from a different game version"
	  abort. It now simply declines to playback the
	  demo, and waits for user input on some
	  do_nothing screen.

	* doomdef.h&Cie.: Lesson of the day - do not
	  replace a bunch of booleans with an enum and
	  use the same identifiers. Point in case:
	   "if ( commercial )" will not give an error,
	  and will always be true as long as the enum
	  value is greater than zero.
	  I found that the DOOM2 vs. DOOM differences
	  are everywhere (weapons, monsters, doors).
	  Number of episodes varies from shareware/commercial
	  to registered to retail, while commercial has
 	  a unique set (two of them, counting the german
	  edition) of maps in one episode. Plus, TNT and
	  Plutonia add some TITLE strings to the mixture.
	  
	  Well, Plutonia and TNT are treated as DOOM2 for
	  now, so you will miss the startup message.

	* wi_stuff.h (NUMEPISODES): removed SPECIAL switch.
	  It is no 4 times 9 for wi_stuff.c internal
	  static arrays - doesn't matter.
	* TODO: unified handling with DOOM 2 - dynamic
	  allocation of arrays.

	* i_sound.c (I_UpdateSound): okay, I separated
 	  the mixing, now done synchonously, along with
	  a flag signalling the timer that the mixing buffer
	  has been updated. The handler is now very short,
	  and I tried several intervals down to 50usecs,
	  w/o complaints. Now the man page says:
	   "system timer resolution currently 10ms". Odd.
	  Anyway, while the double shotgun/plasma rapid
	  fire problem seems to be a bit less disturbing
	  at higher refresh, it's still there. I set the
	  interval to 500usec, which is sufficient for
	  avoiding any buffer update misses.
	  Conclusion after just two days of experimentation:
	  yep, sound driver code isn't fun at all.

	  As for the bug - well, Dave Taylor suggested
	  close distance getting into a divide-by-near-zero
	  situation, screwing up the volume. I can't figure
	  why latency of an external sound driver or screen
	  size affect this, but I am running out of ideas.
	
	* i_sound.c: 
	  Some more experimentation with the timer driven
	  sound. It doesn't work well using an intervall
	  of less then 30 msecs - there will be artifacts
	  with say 50 msecs. This is pretty obvious with
 	  a target frame rate of at least 30fps, methinks.
	  Using the REAL/SIGALRM timer with 30msec gets
	  rid of the artifacts, it seems - at the expense
	  of slowing down things on a P133 to a noticeable
	  jerkiness. Bah.

Mon Dec 22 00:36:54 1997    <bk@gamers.org>

	* info.c: and i_video.c and i_sound.c - don't ask
	  me why some Linux header files are different with
	  gcc vs. g++, or what the complaint about the g++
  	  complaint info.c state table is all about:
	  "initializer element for `states[..].action.acp1' 
	   is not constant"
	  Undid some changes, compiled with gcc, playtested,
	  seems okay. Done for today... yesterday.

	* i_net.c (ntohl): okay, htons/htonl, ntohs,ntohl 
	  are back to haunt me. Copied the macros that
	  on my box aren't used for whatever reason directly
	  into the source. Got rid of all other multiple and
	  undefined references. CC=g++ now compiles (still
	  many warnings) and links, but the binary dumps a
	  core after Init PlayLoop. So be it.

Sun Dec 21 12:38:08 1997    <bk@gamers.org>

	* p_enemy.c (P_NewChaseDir): changed tdir to int,
	  removed the LUTs - spurious locks were due to
	  endless loops created by boneheaded predecessor
	  map. Has to be a better way to do enum dirtype_t
	  anyway. Problem seems to be fixed.

	* CC=gcc again, this time loads of #includes to
	  fix "implicit declarations, and one or two
	  unused variables. DOOM now compiles without
	  any -Wall warnings left, as C.

	* Bug: compiled the reworked code with gcc. Within a
	  solid while of testing and blasting away, it
	  locked once. Got a core, which gdb doesn't grok.
	  Bah.

	* TODO: okay, linkage of g++ build modules give loads
	  of errors, because we have many implicits, plus
	  missing #pragma implementation causing multiple
	  definitions. Yet, this is the very first time DOOM
	  was compiled as C++ without a parsing error. So there.
	
	* sounds.c: included doomtype.h and removed yet another
	            enum { false, true } definition.

	* p_saveg.c  (misc): several. 
	* p_mobj.c   (P_SpawnMobj): (actionf_p1)P_MobjThinker
	* p_spec.c   (EV_DoDonut): (action_p1) T_MoveFloor (twice).
	* p_plats.c  (EV_DoPlat): (actionf_p1) T_PlatRaise.
	* p_plats.c  (EV_StopPlat): (actionf_v)NULL.
	* p_plats.c  (P_ActivateInStasis): same
	* p_lights.c (P_SpawnGlowingLight): (actionf_p1) T_Glow.
	* p_lights.c (P_SpawnStrobeFlash): (actionf_p1) T_StrobeFlash.
	* p_lights.c (P_SpawnLightFlash): (actionf_p1) T_LightFlash.
	* p_lights.c (P_SpawnFireFlicker): (actionf_p1) T_FireFlicker.
	* p_floor.c  (EV_DoFloor): (actionf_p1) T_MoveFloor.
	* p_floor.c  (EV_BuildStairs): same (twice).
	* p_doors.c  (EV_VerticalDoor): (actionf_p1)T_VerticalDoor.
	* p_doors.c  (P_SpawnDoorCloseIn30): same
	* p_doors.c  (P_SpawnDoorRaiseIn5Mins): same
	* p_doors.c  (EV_DoDoor): same
	* p_ceilng.c (EV_CeilingCrushStop): (actionf_v)NULL.
	* p_ceilng.c (EV_DoCeiling): (actionf_p1)T_MoveCeiling.
	* p_ceilng.c (P_ActivateInStasisCeiling): same.
	  These gave g++ errors, but  have been ignored by gcc.

	* r_data.c (R_PrecacheLevel): (actionf_p1)P_MobjThinker.

	* p_saveg.c:  conversions (actionf_p1)T_Whatever.

	* p_tick.c: cast (actionf_v)(-1).

	* p_telept.c: yet another (actionf_p1)P_MobjThinker.
 	
	* p_mobj.c (P_MobjThinker): cast (actionf_v)(-1).
	* TODO:  decent NOP/NULL/Nil function pointer.
	  I'd introduce a global A_NOP() function that
	  chokes up an error message. 
	  Why -1 instead of NULL?

	* p_enemy.c: conversions (actionf_p1)P_MobjThinker.

	* d_think.h/info.h:  think_t is essentially
	  the same action function pointer stuff.
	  I moved the definitions from info.h to
	  d_think.h, and aliased them with a typedef.
	  Now more changes needed.

	* p_enemy.c (successor, predecessor): new LUT,
	  to provide increments/decrements for enum
	  dirtype_t, as g++ complaints:
	  "no post-increment/decrement operator for type"

	* Makefile (CC): okay, tried "g++" once more.
	  A few errors (above). Plus shitloads of warnings
	  (obviously, better "unused" checking with C++,
	   lots of the usual int2enum suspects, implicit
	   declarations, the works).
	 

	* p_mobj.c: action.acp1 used accordingly.
	* p_pspr.c: action.acp2 used accordingly.
	* TODO: info.c:144 warning
	  "missing braces around initializer for `states[0].action'"
 	
	* info.h/info.c: some experimental stuff on
	  action function pointers.
	  
	* TODO: still some sound glitches at startup.
	* i_sound.c: few more cleanups. Made mixing use
	  channel loop instead of unroll, set mixbuffer
	  to zero ot start.
	  Removed some more DOS leftovers (8bit),
	  kept some as comment.

	* hu_stuff.c (HU_Start):
	  More gamemode changes. As in d_main.c, I
	  decided to use DOOM2 as default whenever
	  one needed - it was sold most, and had the
	  superset of items, enemies and monsters.

	* TODO: the handling of WAD specific messages
	  like HU_TITLE, HU_TITLE2, HU_TITLEP etc.
	  should definitely be removed.

	* d_main.c (CheckBetaTest): 
	  Removed outdated, DOS specific BETATEST stuff.
	  d_main.c (IdentifyVersion):
 	  Numerous changes to gamemode handling. 

	* TODO: currently, french language is enabled by
	  detecting an doom2f.wad - yet it needs FRENCH
	  define at compile time. I removed most language
	  stuff, and propose handling that at runtime,
	  using a switch in the config file. Well,
	  mission specific texts won't work outside the
	  WAD anyway.

	* TODO: along the same lines: I suggest removing
	  the misc. devparm switches as well - lots of
	  redundancy not needed anymore.

	* Makefile: finally added a doomstat.c for all
	  the global state variables listing internal
	  engine configuration. Right now, these are
	  scattered everywhere. Declaration to be found
	  in doomstat.h header.

	* f_finale.c (F_StartFinale): 
	  Reworked the entire finale handling based on
	  game mode enum.

	* doomstat.h:
	  Global variables for game mode and language.
	  Removed old booleans.

	* doomdef.h: GameMode_t and Language_t enum added.
          Boolean for language was kinda limiting to 2
	  alternatives (french, english), and five boolean
	  plus #define SPECIAL for game version is just ugly.
	
	* wi_stuff.h: SPECIAL switch compiles two
	  different EXE's, one for 3 episodes of 9 maps
	  each (DOOM 1 registered), one for 4 episodes
	  of 9 maps each (DOOM 1 retail/FinalDOOM).
	  Implicitely, the DOOM2 config (one episode,
 	  34 missions) is handled. How is the german
	  edition (32 missions only) done?
	  Frankly, this is a mess. The problem is that
	  intermission (animated as in DOOM 1, simple
	  backdrop as in DOOM2) as well as certain
	  items (double shotgun) as well as certain
	  rendering stuff (sky texture) depend on this.

	  Plus, it ties into runtime flags as "commercial"
	  as well. Yuck.
	
	  Each change will change the game. Postponed.

	* d_net.c,m_misc.c: removed last two NeXT remains.

	* d_englsh.h,d_french.h,d_main.c,m_misc.c,r_draw.c,v_video.c:
	  more WATCOM remains removed. Kept some stuff that
	  handeld the blocky mode/detailshift in DOS, which
	  is n.a. in Linux - but probably not worth fixing.

Sat Dec 20 15:16:51 1997    <bk@gamers.org>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -