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

📄 changelog

📁 Nxdoom真的满好用的
💻
📖 第 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 + -