Commit graph

556 commits

Author SHA1 Message Date
Christoph Oelckers
cf9792ed53 - fixed: The order of items in the main menu was wrong. Doom is supposed to have 'Options' in second place. Many vanilla-compatible mods with special one-patch menus would not work correctly due to this. Fortunately the only mod I could find that relied on ZDoom's order was Action Doom 2, which as an IWAD can easily be handled by a simple configuration option.
- added 'else' blocks to MENUDEF parser.



SVN r2854 (trunk)
2010-09-26 06:53:40 +00:00
Randy Heit
79f26d9e5c - I do believe I forgot to add some things.
SVN r2853 (trunk)
2010-09-26 05:33:46 +00:00
Randy Heit
17f9e687bd - Added cursorpic gameinfo property to set the mouse cursor image.
SVN r2852 (trunk)
2010-09-26 05:31:52 +00:00
Christoph Oelckers
385cfc5698 - fixed some texture priorititing problems with Hexen's player displays for the menu. The patches for these should not be placed in the TEX_WallPatch namespace because it's not what modders might expect from them.
SVN r2841 (trunk)
2010-09-21 16:50:09 +00:00
Christoph Oelckers
a3e98eb4ab - added automatic centering of Hexen's skill menu so that it can adjust automatically to the different player classes.
SVN r2840 (trunk)
2010-09-21 12:58:59 +00:00
Christoph Oelckers
ebcf08686a - Fixed typo in plasma gun's nametag.
SVN r2835 (trunk)
2010-09-19 16:49:43 +00:00
Christoph Oelckers
74525ab1d6 - moved some info into the GAMEINFO section:
* the sprite used for 'pause'.
 * the factor with which a monster's health is multiplied to decide if it's supposed to be gibbed,
 * the decision to make monsters run faster in nightmare mode.
- moved the hard coded lock messages for lock types 102 and 103 into the language lump.
- fixed: Raven's fast monsters could become slower in Nightmare if they had very short walking states.


SVN r2834 (trunk)
2010-09-19 10:39:34 +00:00
Christoph Oelckers
9a8a446840 - added player class definition through the GAMEINFO section in MAPINFO. Also added a NOMENU flag that can be set for a player class. This means that the use of KEYCONF is now deprecated except for its original purpose: To define mod specific key binding options.
SVN r2832 (trunk)
2010-09-19 08:27:20 +00:00
Christoph Oelckers
a3d38be793 - fixed: The DUMB specific options should be grayed out when using FMod for playing back modules.
SVN r2831 (trunk)
2010-09-19 06:37:38 +00:00
Randy Heit
94ce4d5d69 - Remove extra *usefail definition for the pig player.
- Locks can now define more than one LockedSound by separating them with commas. The default setting
  for this property is now "*keytry", "misc/keytry". The first sound that is defined is the one that will
  be played for the lock. Thus, for standard locks, if the player class defines *keytry, that will be
  played. Otherwise, misc/keytry will be played as before.



SVN r2827 (trunk)
2010-09-19 03:30:31 +00:00
Christoph Oelckers
051ae3224f - fixed: The subsector serializing code accessed the subsector array before validating the index.
- added episode names to episode definitions of Doom 1 and Chex Quest.


SVN r2820 (trunk)
2010-09-18 12:37:22 +00:00
Christoph Oelckers
46b3bb8e41 - moved BFGSplash damage type to BFGExtra actor so that it can be replaced.
SVN r2808 (trunk)
2010-09-17 13:22:39 +00:00
Christoph Oelckers
ee87fdc58e - some layout tweaks for the option menu system, in particular to shorten the sliders if the menu is too wide.
- allow specifying the fractional precision for the numbers behind the sliders.
- took all HUD related options out of the display options menu and created a seaparate one for them.
- added several more display and HUD options to the menu.
- created a new 'Miscellaneous options' menu for a few items that should be accessible but don't fit anywhere else.


SVN r2795 (trunk)
2010-09-16 10:59:40 +00:00
Christoph Oelckers
579502ab74 - merged menu branch back into trunk.
SVN r2768 (trunk)
2010-09-14 17:28:18 +00:00
Christoph Oelckers
77ca7f7a87 - set 'setslopeoverflow' compatibility flag for all maps in Massmouth2.
SVN r2674 (trunk)
2010-09-02 22:33:34 +00:00
Christoph Oelckers
88f0fa270a - added kgsws-cz's FBF_NOFLASH submission.
SVN r2655 (trunk)
2010-08-31 21:24:03 +00:00
Christoph Oelckers
39daeb25e3 - fixed: Hexen's pig was missing an A_QueueCorpse call.
SVN r2644 (trunk)
2010-08-30 15:11:11 +00:00
Christoph Oelckers
c304b39ecc - added new sector special 195 to set the 'hidden' sector flag in non-UDMF maps.
SVN r2637 (trunk)
2010-08-29 12:20:35 +00:00
Christoph Oelckers
eb3340e872 - fixed: Clearing a pickup message for inventory items was not possible. Changed it so that "You got a pickup" is AInventory's pickup message and not a default returned when nothing valid is set.
SVN r2625 (trunk)
2010-08-28 19:20:14 +00:00
Christoph Oelckers
56cc0569bb - fixed: ArtiPork had wrong frame durations.
SVN r2624 (trunk)
2010-08-28 17:24:17 +00:00
Christoph Oelckers
7baeeeaab5 - fixed: Hexen's CorpseBloodDrip was missing its death sound.
SVN r2619 (trunk)
2010-08-28 12:23:20 +00:00
Christoph Oelckers
73367d6f2e - fixed Hexen's flame calls to A_CountdownArg.
SVN r2615 (trunk)
2010-08-27 20:03:40 +00:00
Christoph Oelckers
9a4abe0915 - merged automap branch into trunk.
SVN r2609 (trunk)
2010-08-27 15:20:05 +00:00
Christoph Oelckers
f08c66d664 - externalized the "You seem to have enough" string to language lump.
- allow all texts in conversations to reference the string table.
- fixed: If no dialogue is found for the current map, SCRIPT00 should still be loaded.


SVN r2577 (trunk)
2010-08-24 09:53:10 +00:00
Christoph Oelckers
b452bec0ee - merge USDF branch into trunk.
- add USDF spexs.


SVN r2561 (trunk)
2010-08-20 12:20:51 +00:00
Christoph Oelckers
f9523a01e3 - Added Gez's patch for moving tag strings into the language file and adding tags for all weapons and inventory items.
SVN r2552 (trunk)
2010-08-18 20:26:25 +00:00
Christoph Oelckers
b288a7a416 - added option to set item pickup color through MAPINFO's GAMEINFO block.
SVN r2539 (trunk)
2010-08-14 06:25:38 +00:00
Christoph Oelckers
d904d8276e - added TheShooter7's patch for NOPITCH flags for hitscan attacks.
SVN r2530 (trunk)
2010-08-13 06:22:49 +00:00
Christoph Oelckers
5d5f25fdab - fixed: Changing APROP_Friendly in ACS did not adjust the monster count.
- fixed: AActor::CanSeek had the check for the visibility of the target actor's alpha reversed.
- added an Alt HUD icon for Hexen's fighter's fist.


SVN r2501 (trunk)
2010-08-10 16:22:57 +00:00
Christoph Oelckers
6e6640ef07 - fixed: Chex Quest should have a 'Read This' menu option.
SVN r2471 (trunk)
2010-07-29 12:00:33 +00:00
Christoph Oelckers
2b381babed - added DavidPH's A_JumpIfTargetInLOS extension submission.
SVN r2455 (trunk)
2010-07-24 06:30:52 +00:00
Christoph Oelckers
37f55c6539 - added DavidPH's A_RailAttack extension submission.
SVN r2454 (trunk)
2010-07-24 06:27:13 +00:00
Christoph Oelckers
a6499a6efb - added DavidPH's A_Saw extension submission.
SVN r2453 (trunk)
2010-07-24 06:21:53 +00:00
Christoph Oelckers
58be666c9c - added DavidÃœH's explicit angle submission for A_CustomBulletAttack function.
SVN r2452 (trunk)
2010-07-24 06:15:07 +00:00
Christoph Oelckers
bc47f7133b - Added DavidPH's A_Teleport submission but removed the now redundant GetSpotWithMinDistance functions.
SVN r2451 (trunk)
2010-07-23 21:55:01 +00:00
Braden Obrzut
ccd4dc3189 - Fixed: the hexen statusbar should assume you are the fighter if you are not one of the known classes.
SVN r2402 (trunk)
2010-07-01 21:03:29 +00:00
Christoph Oelckers
f73fe072f6 - Set +NEVERRESPAWN flag for several Strife monsters that should not respawn in Bloodbath skill.
SVN r2372 (trunk)
2010-06-13 10:50:43 +00:00
Christoph Oelckers
ec44397881 - added some options to A_CustomPunch, including calling Strife's dagger alert function.
SVN r2367 (trunk)
2010-06-13 09:06:12 +00:00
Christoph Oelckers
4d86ebddf9 - Added support for Risen3D/PrBoom+'s MUSINFO lump.
SVN r2366 (trunk)
2010-06-13 08:47:38 +00:00
Braden Obrzut
d7686d0c26 - Added optional offset parameters to the drawshadow flag.
- Added character alignment parameter to font monospacing.
- Fixed: character shadows were not scaled.
- Heretic keys now have an icon associated with them so that they can be drawn through drawkeybar.
- Replaced the built in Heretic and Hexen status bars with SBarInfo equivalents.

SVN r2353 (trunk)
2010-06-02 20:26:27 +00:00
Braden Obrzut
b8cb1f0cfb - Fixed: The alpha property of status bars didn't work anymore.
- Added: alpha command to SBarInfo which allows you to increase the translucency for certain parts of the status bar.
- Added: reverse flag for drawkeybar which reverses the order in which rows are filled with keys.
- Changed a gamemode statement to an else in the Doom hud since the frag count and keys should never be shown at the same time.

SVN r2351 (trunk)
2010-05-31 07:01:04 +00:00
Christoph Oelckers
eadc539bc6 - fixed: Poison clouds spawned by the PoisonShroom should not be pushable by the Disc of Repulsion.
SVN r2350 (trunk)
2010-05-30 20:12:32 +00:00
Christoph Oelckers
862d6551bc - fixed: Heretic's 666 lower floor must be of type LowerToHighest unlike Doom which is LowerToLowest.
SVN r2342 (trunk)
2010-05-28 21:29:28 +00:00
Randy Heit
5a71dea746 - Added A_JumpIfTracerCloser and A_JumpIfMasterCloser, based on DavidPH's A_JumpIfCloser patch.
SVN r2324 (trunk)
2010-05-14 02:34:25 +00:00
Randy Heit
2d4502018a - Added DavidPH's FBF_EXPLICITANGLE extension.
SVN r2323 (trunk)
2010-05-14 02:18:27 +00:00
Christoph Oelckers
489c3df007 - revert last revision
SVN r2322 (trunk)
2010-05-12 21:12:40 +00:00
Christoph Oelckers
f952cb9db5 - fixed: The PoisonCloud had the CANBLAST flag set even though it shouldn't.
SVN r2321 (trunk)
2010-05-12 20:22:22 +00:00
Christoph Oelckers
b61b761e28 - added DavidPH's randomization patch for hitscan attacks.
SVN r2318 (trunk)
2010-05-12 07:11:56 +00:00
Christoph Oelckers
6a57a43277 - added DavidPH's LifeSteal patch for A_CustomPunch/A_Saw.
SVN r2317 (trunk)
2010-05-12 07:08:39 +00:00
Christoph Oelckers
942108f7ea - added DavidPH's A_FaceTarget patch but modified it so that if a turn angle is set the MF_SHADOW flag is ignored.
SVN r2316 (trunk)
2010-05-12 07:02:23 +00:00
Braden Obrzut
24aa1abf14 - Added: else statements to SBarInfo. In addition braces are no longer required for blocks consisting of a single statement.
SVN r2313 (trunk)
2010-05-11 22:27:50 +00:00
Christoph Oelckers
72f7e40145 - fixed: Heretic's splashes don't alert monsters.
SVN r2312 (trunk)
2010-05-11 17:30:27 +00:00
Christoph Oelckers
ac7c93ba58 Fixed: actor VolcanoBlast was missing its second frame from its Spawn state sequence.
SVN r2311 (trunk)
2010-05-07 08:19:12 +00:00
Randy Heit
d070e04ff6 - Added Gez's patch for A_TakeInventory flag for taking ammo, with TIF_AMMO renamed to TIF_NOTAKEINFINITE.
SVN r2306 (trunk)
2010-04-26 02:05:11 +00:00
Randy Heit
36c4b39688 - Added DavidPH's A_FadeTo patch:
A_FadeTo(float target, float amount = 0.10, bool remove = false)
  Alters transparency towards target by amount. If remove is true, the actor is destroyed if it reaches target.

SVN r2305 (trunk)
2010-04-26 01:56:25 +00:00
Christoph Oelckers
5fc654dac2 - fixed: Heretic's sludge damage sector does 4 points damage, not 5 like Doom's.
SVN r2303 (trunk)
2010-04-25 20:12:50 +00:00
Christoph Oelckers
14fc5516a8 - Extended ACS's 'n' print format specifier to allow printing some other info than the player's name.
It will use negative indices for this. Currently supported strings are level name, level lump name and
  skill name.
- Extended skill definitions so that printable name and image lump name are separate fields so that a 
  printable name can be specified for Doom, too.


SVN r2294 (trunk)
2010-04-20 11:03:31 +00:00
Randy Heit
178587fff2 - Merged SetState and SetStateNF into a single function.
- Added new sprite #### and frame character # to specify the behavior of sprite ---- on a
  per-sprite and per-frame basis respectively.

SVN r2291 (trunk)
2010-04-19 02:46:50 +00:00
Christoph Oelckers
e4d0d6bcdb - added a Sector_CopyScroller special to allow setting scrollers to sectors with special tags.
- extended compatibility text to allow changing line flags and setting line specials on specific linedefs.
- removed Strain MAP07 hack and replaced it by a clean 'clearlineflags' option.
- Added Doomo format translations for Sector_CopyScroller because this looks like something that might be useful for making
  some Boom maps work without having to resort to compatibility.txt.
- added a compatibility setting for UAC Ultra MAP07 which exploited some undefined scrolling behavior in Boom.
  (What lengths are we going to make sloppily created maps work? This entire commit was just to address this particular problem...)


SVN r2280 (trunk)
2010-04-11 11:18:33 +00:00
Christoph Oelckers
d916127ecf - made the recent change to P_SeekerMissile an option because it affected critical gameplay behavior and may not be used for existing actors.
SVN r2278 (trunk)
2010-04-10 11:12:29 +00:00
Christoph Oelckers
72e9a870c2 - added Gez's patch to move Hexen's startup notches out of the EXE.
SVN r2250 (trunk)
2010-03-27 21:12:08 +00:00
Randy Heit
e83a9a2a00 - Use normal texture animation for the main menu cursors. This required updating animations
all the time and not just when inside a level.

SVN r2248 (trunk)
2010-03-27 03:30:02 +00:00
Christoph Oelckers
7f2ab00abe - fixed: IDBEHOLD altered the item counter.
SVN r2247 (trunk)
2010-03-26 22:26:50 +00:00
Christoph Oelckers
a2cfbec3cf - added a CrushPainSound actor property for Strife.
- fixed memory leaks in SBARINFO and WAD loading code.
- added GetBloodColor and GetBloodType inline functions to AActor to wrap the GetMeta calls used for this.


SVN r2234 (trunk)
2010-03-21 08:09:45 +00:00
Christoph Oelckers
4d70292964 - fixed: Save percentage of Doom's armor bonus was too low.
SVN r2212 (trunk)
2010-03-17 23:17:39 +00:00
Christoph Oelckers
c191d95110 - Fixed: Hexen's fighter's skull has a different animation than Heretic's so it needs to be a separate class.
- Added an option to parse lumps named ZMAPINFO in place of MAPINFO. Any MAPINFO lumps in files containing
  a ZMAPINFO lump will be completely ignored. This is to allow ZDoom specific definitions which are incompatible 
  with other engines capable of reading MAPINFO. Any ZMAPINFO lump must be in the new MAPINFO format.



SVN r2208 (trunk)
2010-03-13 08:28:13 +00:00
Christoph Oelckers
017fc7bd6a - fixed: The ChexPlayer was missing default colorset definitions.
SVN r2197 (trunk)
2010-03-06 09:10:40 +00:00
Randy Heit
47a835698a - Final Doom needs its finale flats changed, too.
- It's "BGCASTCALL", not "BOSSBACK".

SVN r2196 (trunk)
2010-03-06 04:01:32 +00:00
Randy Heit
d19878efcb - Added BOOM/MBF BEX-style narrative background text substitution. There are two changes because
of this:
  * A cluster's flat definition can now be preceded by a $ to do a string table lookup.
  * Since the standard flat names are now in the LANGUAGE lump, the normal Dehacked substitution
    for these is no longer handled specially and so will not be automatically disabled merely
    by providing your own MAPINFO.

SVN r2195 (trunk)
2010-03-06 03:28:22 +00:00
Randy Heit
e78fd195d8 - Added support for the original games' player translations, including Hexen's table-based ones.
SVN r2193 (trunk)
2010-03-06 02:51:23 +00:00
Randy Heit
8ecafcc15a - Added A_CheckSightOrRange, with changes.
SVN r2179 (trunk)
2010-02-26 00:08:25 +00:00
Christoph Oelckers
6ec30761c6 - Added Boom's stairbuilding fix when one step couldn't be built due to an active thinker in the sector.
This is compatibility optioned with COMPAT_STAIRINDEX. Also added a compatibility setting for 
  Eternal Doom MAP25 which relies on Doom's original broken behavior.
- added a few sanity checks for duplicate actor names in DECORATE. ZDoom will now print more warnings
  and all crash cases should be properly handled but since this is still an error this will not work
  properly in all circumstances. For example, if you have a duplicate name all classes that inherit
  from the original definition will not survive a savegame if they reference a state belonging to that
  class at the point of saving.
- Print 'tried to register class more than once' in red to highlight it.
- fixed: actors may not replace themselves.

SVN r2158 (trunk)
2010-02-13 08:56:08 +00:00
Christoph Oelckers
4310b239f4 - Added Gez's submission for Eternity-style skybox definitions.
SVN r2151 (trunk)
2010-02-06 15:31:26 +00:00
Christoph Oelckers
d2891682ae - fixed positioning of player mugshot background on Doom status bar.
SVN r2148 (trunk)
2010-01-31 07:26:50 +00:00
Christoph Oelckers
a5e1fe6906 - fixed: Sector_SetWind and Sector_SetCurrent were not usable in scripts called from a line.
- added Gez's A_Mushroom extension.


SVN r2144 (trunk)
2010-01-30 14:35:52 +00:00
Christoph Oelckers
24a12a04b4 - added a minimum threshold for damage thrust to avoid micro-velocities being set for actors.
- fixed: Strife's Oracle is not a living thing and needs the NOBLOOD flag.
- fixed: Chex Quest's finale pic was wrong.


SVN r2143 (trunk)
2010-01-30 13:48:44 +00:00
Randy Heit
02909bd71c - Fixed: AlienSpectre3 had lost its first level Sigil immunity.
SVN r2135 (trunk)
2010-01-25 23:18:52 +00:00
Christoph Oelckers
406b692cc9 - removed the TakeSpecialDamage hacks for Macil and the Oracle and replaced them by
giving the first stage Sigil's projectiles a damage type and using a damage factor
  to disable damaging these actors.


SVN r2129 (trunk)
2010-01-24 13:00:53 +00:00
Randy Heit
5ce77dfbb8 - Added full stops to more Strife messages.
SVN r2113 (trunk)
2010-01-09 04:28:49 +00:00
Randy Heit
25c8d42821 - Change StrifePlayer's RunHealth to 15.
SVN r2112 (trunk)
2010-01-09 04:26:56 +00:00
Randy Heit
f9937f973c - Fixed: DORWS04 should not make a sound when it switches off.
SVN r2111 (trunk)
2010-01-08 04:14:35 +00:00
Randy Heit
99880d392e - Fixed copy-paste fail for DoorCloseSmallWood.
SVN r2110 (trunk)
2010-01-08 04:01:30 +00:00
Randy Heit
fc781ac9ee - I guess I can't completely trust Strife1.exe's switch list. Not everything that plays the
glass break sound is actually defined with it.

SVN r2109 (trunk)
2010-01-08 03:51:33 +00:00
Randy Heit
7df898c88e - Fixed: Two Strife pickup messages were off by one character each.
SVN r2107 (trunk)
2010-01-08 03:27:18 +00:00
Randy Heit
6ba548511b - Fixed: Macil2 and the Oracle need to be immune to SpectralLightningV2 as well as V1, since
they are both created by the first-stage Sigil. AlienSpectre3 should have also been
  immune to them but was not. In addition, Macil1 was erroneously immune to V1, when he should
  not be immune to any spectral damage. (Though, since he's immortal, all that really amounts to
  is that he can enter his pain state.)

SVN r2106 (trunk)
2010-01-08 03:24:22 +00:00
Randy Heit
4b65749f92 - Corrected several Strife switches that had the wrong sounds.
SVN r2101 (trunk)
2010-01-06 03:27:37 +00:00
Christoph Oelckers
515862636a - Fixed: Heretic's Weredragon (Beast) should not have a melee state.
SVN r2068 (trunk)
2010-01-01 07:11:39 +00:00
Christoph Oelckers
9b5c2c81f1 - Added full sound definitions for Heretic's ChickenPlayer and Hexen's
PigPlayer (submitted by NeuralStunner.)
- Added unmorph fix by Gez.


SVN r2056 (trunk)
2009-12-28 22:41:14 +00:00
Christoph Oelckers
3d40dbb659 - merged all portals with the same displacement together. While this provides
a mild performance increase it's not what I hoped it would do...
- Moved portal initialization for the portal things to P_SpawnSpecials
  instead of having the things self-initialize in PostBeginPlay. This was
  done to ensure that the portals are fully set up when the game begins.
  Otherwise there is no decent way to let the renderer post-process this
  information during setup.
- Changed: For 800x600 the default scaling handling of the options menu
  makes it become too small so for any resolution with a width between 
  800 and 959 it has been reverted to the regular clean scaling factor.


SVN r2055 (trunk)
2009-12-28 17:13:30 +00:00
Christoph Oelckers
9747aaa967 - forgot to save actor.txt with the A_Weave declaration.
SVN r2047 (trunk)
2009-12-25 12:03:51 +00:00
Randy Heit
d2a4339816 - Split weaveindex into two separate byte-sized properties and moved them into unused space
inside AActor.

SVN r2038 (trunk)
2009-12-25 00:19:28 +00:00
Christoph Oelckers
b0b80f6996 - made the initial weave index for A_BishopMissileWeave and A_CStaffMissileSlither
a configurable actor property.
- added a menu item for snd_channels.



SVN r2036 (trunk)
2009-12-23 11:41:24 +00:00
Christoph Oelckers
51e158d7dc - added all known maps requiring inverted sprite sorting to compatibility.txt.
- added compatibility option to invert sprite sorting. Apparently Doom.exe
  originally sorted them differently than most source port and on some maps
  which depends on this it doesn't look right (e.g. Strain MAP13)


SVN r2031 (trunk)
2009-12-18 08:19:34 +00:00
Randy Heit
b3d2a1f074 - Added a damage type parameter to A_KillChildren, A_KillMaster, and
A_KillSiblings. 


SVN r2023 (trunk)
2009-12-13 04:59:19 +00:00
Christoph Oelckers
c7ae1b585d - Added SnailMan's updated language.ita file.
SVN r2021 (trunk)
2009-12-11 07:45:46 +00:00
Christoph Oelckers
53a6ffee15 - fixed: The charge attack of Heretic's imp is not precisely the same
as A_SkullAttack with a different speed so A_ImpMsAttack has been
  reinstated.


SVN r2003 (trunk)
2009-11-27 13:23:02 +00:00
Christoph Oelckers
5d7670acc4 - Added MF4_ALLOWPARTICLES checks to blood spawning code.
SVN r2001 (trunk)
2009-11-24 22:28:38 +00:00
Christoph Oelckers
a3c28e2a2f - last revision's fix should be set to all 4 linedef types triggering the same action.
SVN r1999 (trunk)
2009-11-24 07:08:20 +00:00
Christoph Oelckers
32d9946f30 - Fixed: Doom line type 44 (lower ceiling to 8 above floor) must halt
movement if blocked which essentially means it acts like a Hexen-style
  crusher.


SVN r1998 (trunk)
2009-11-24 07:02:30 +00:00
Christoph Oelckers
f94c9ce81d - Fixed: Not all places checking for player start spots above 4 did it correctly.
The editor number for player start spot 5 is now stored in the game info
  so that there's only one place where this check needs to be done.
- Fixed: WIF_NOAUTOAIM only worked for projectiles unlike Skulltag's original
  implementation.


SVN r1997 (trunk)
2009-11-24 06:55:38 +00:00