Commit graph

648 commits

Author SHA1 Message Date
Randy Heit
73a78caa5c - Added support for a few extra color ranges to Player.Colorset so that the Strife player's
predefined colors can properly define the standard Strife translation ranges.

SVN r3446 (trunk)
2012-03-16 02:23:31 +00:00
Randy Heit
9f168e29e2 - Added clearlinespecial, for doom.wad e3m4 line 1069.
- Allow using the parameterized compatibility options with IWAD maps.

SVN r3442 (trunk)
2012-03-15 23:41:44 +00:00
Randy Heit
6290ea4fcb - Added setactivation command for compatibility.cpp to fix the gear boxes on hexdd.wad, map54,
which should be set for player uses activation but are not.
- Added some developer mode messages for setlinespecial and clearlinespecial.

SVN r3437 (trunk)
2012-03-15 20:33:33 +00:00
Christoph Oelckers
e4880d162f - added Xaser's submission for accessing accuracy and stamina from DECORATE and ACS.
- added DECORATE properties for accuracy and stamina.
- Since these changes move properties from player_t to AActor all savegame compatibility code was removed and the min. savegame version bumped.


SVN r3427 (trunk)
2012-03-11 09:08:35 +00:00
Randy Heit
859512bf77 - Added gather2.wad's map05 and darkside.wad's map01 (which are actually the same map) to
compatibility.txt for Arch-Vile ghost resurrection.

SVN r3421 (trunk)
2012-03-10 02:09:04 +00:00
Randy Heit
e9f832460b - Added "misc/startupdone" sound to be played when the startup screen is closed and the game
is about to begin.

SVN r3420 (trunk)
2012-03-10 01:54:00 +00:00
Randy Heit
514f29a34a - Added Gez's custom flechettes patch, with ArtiPoisonBag4 renamed to ArtiPoisonBagGiver and
ArtiPoisonBag5 renamed to ArtiPoisonBagShooter.

SVN r3379 (trunk)
2012-02-21 20:58:33 +00:00
Randy Heit
91ba2ec404 - Fix strife linetype 11 again, courtesy of Gez.
SVN r3376 (trunk)
2012-02-21 19:56:25 +00:00
Randy Heit
7561beb212 - Added action functions that work with script names instead of script numbers. They are
named the same as their ACS function equivalents. e.g. From DECORATE, you can now use
  ACS_NamedExecuteAlways to run a script with a name.

SVN r3364 (trunk)
2012-02-16 21:49:09 +00:00
Braden Obrzut
da974c3444 - Allow any parameterized SBarInfo value to use parentheses to help make the syntax a little more consistent.
SVN r3361 (trunk)
2012-02-16 05:01:17 +00:00
Randy Heit
5a95c997d1 - Added keys on the automap for Heretic in easy mode, courtesy of Gez.
SVN r3356 (trunk)
2012-02-12 02:45:48 +00:00
Randy Heit
68fbd75897 - Fixed compilation with FMOD 4.38+. The removal of hardware voices and EAX was a fairly
major change, so I'm making no provisions for using older FMOD DLLs when compiled with the
  4.38 API. However, sound positioning is still broken like in 4.28, so you are recommended
  to continue building with 4.26. Also, the Freeverb-based DSP unit is no longer present in
  FMOD, so the underwater effect is currently unavailable when using 4.38 until I can figure
  out how to make it work with the SFX Reverb unit instead. (And on that topic, the Freeverb
  DSP was officially only for stereo outputs, so I really shouldn't have been using it in the
  first place.)
- Since I would like to eventually figure out the sound positioning issues with the newer
  FMODs, the following have been added:
  * snd_drawoutput now labels its outputs with the speakers they represent.
  * DCanvas::DrawTextA was added as an alias for DrawText, since the Windows headers #define
    DrawText to a Unicode/non-Unicode variant.
  * The loopsound console command was added to spawn an actor at the player's location and
    have it loop a sound infinitely.
  Hopefully I can figure it out. FMOD's 3D example works, so I assume the problem lies with
  my code, though I don't really know where to begin looking for the problem.

SVN r3350 (trunk)
2012-02-10 00:53:50 +00:00
Christoph Oelckers
5d7ee4dbfd - fixed: Line type 49 was wrong for all games. Fixed by adding a new Ceiling_CrushAndRaiseDist special. (thanks to Gez for the patch)
SVN r3348 (trunk)
2012-02-09 19:59:32 +00:00
Christoph Oelckers
893455ef61 - sync source with latest GZDoom:
Includes:
- Made the move tried from checking missile spawns ignore drop off height. This solves the Voodoo Gun ghostly civilian issue.
- Fixed: the NOTELEPORT flag is removed from Dehacked missiles which lose the MISSILE flag. This caused problems with certain special effects based on dehacked spawn cubes.
- Fixed: all Boom silent teleporters preserve relative height.
- support for palette independent particle colors if the renderer can handle them.


SVN r3329 (trunk)
2011-12-06 08:36:28 +00:00
Randy Heit
b41dbf8a52 - A_SetPitch now clamps the player's pitch within the valid range. It can
be made to clamp other actors' pitches to within the range (-90,+90)
  degrees with the SPF_FORCECLAMP flag.
- Transmit the local viewpitch limits to the other players.



SVN r3323 (trunk)
2011-12-06 01:25:37 +00:00
Randy Heit
7d502e7789 - Added SMF_CURSPEED flag for A_SeekerMissile to cause it to use the missile's current speed rather than its Speed property.
SVN r3318 (trunk)
2011-11-24 04:27:47 +00:00
Randy Heit
4d46655de6 - Fix: Use correct pickup flash color.
SVN r3316 (trunk)
2011-11-17 02:33:26 +00:00
Randy Heit
4816b3182b - Add compat_badangles to the menu.
SVN r3309 (trunk)
2011-11-02 02:44:01 +00:00
Randy Heit
de956a9ab6 - Added a fourth paremeter to Floor_LowerToHighest. Set it to 1 to always apply
the offset to the target height. (This is Heretic's behavior.)

SVN r3304 (trunk)
2011-10-27 01:35:30 +00:00
Randy Heit
3d214602c4 - Fixed: Strife line type 11 has the same Teleport_NewMap/Exit_Normal semantics
as line type 52.

SVN r3303 (trunk)
2011-10-27 01:05:59 +00:00
Christoph Oelckers
46cedffafb Fixed floor crushers in Strife.
SVN r3302 (trunk)
2011-10-23 10:01:59 +00:00
Randy Heit
f51f4866e4 - Fix mapcolor for Strife's passcard.
SVN r3299 (trunk)
2011-10-03 00:38:20 +00:00
Christoph Oelckers
3c47a30249 - added Gez's submission for inventory restrictions but changed the added checks to be in the main CallTryPickup function.
SVN r3296 (trunk)
2011-09-23 08:23:51 +00:00
Braden Obrzut
eafb9da2c1 - Backported GZDoom r1246:
* Fixed possible crash when texture for menu item patch cannot be loaded. (From Alexey's Mac OS X port.)
* Fixed iwadinfo.txt definitions of Hexen and Freedoom demos (also from Alexey's port.)
* Added missing LOF_NOJUMP definition.


SVN r3284 (trunk)
2011-08-23 02:39:20 +00:00
Braden Obrzut
c12b04c130 - Fixed: autosave count has a maximum of 20 not 32.
SVN r3282 (trunk)
2011-08-18 21:40:03 +00:00
Braden Obrzut
f6ddad95b7 - Set the CMAKE_MODULE_DIR so that we can use find_package instead of include for FluidSynth.
- Fixed: FadeTo() accepted parameters out of range.
- Fixed: "Enable autosaves" menu option didn't handle all possible values of disableautosave.

SVN r3280 (trunk)
2011-08-16 21:59:35 +00:00
Braden Obrzut
f42358ad08 - Backported FMOD Ex 4.34 fixes from gzdoom-macosx. (With changes to continue to allow compilation with 4.22-4.28.)
SVN r3278 (trunk)
2011-08-13 21:11:09 +00:00
Christoph Oelckers
ba661308d4 - added GZDoom's option not to count monsters in E1M8-style end of level sectors, but controlled by a dmflag.
SVN r3267 (trunk)
2011-07-07 21:55:55 +00:00
Christoph Oelckers
24593fe008 - added FDARI's A_Warp submission.
SVN r3238 (trunk)
2011-06-14 22:45:42 +00:00
Christoph Oelckers
4d7fcbf1b8 - added Major Cooke's Death/Paintype submission.
SVN r3237 (trunk)
2011-06-13 17:15:09 +00:00
Christoph Oelckers
6ba0689b8d - added DavidPH's A_AlertMonsters range submission.
SVN r3233 (trunk)
2011-06-13 10:30:30 +00:00
Christoph Oelckers
f69181f851 - added FDARI's latest actor pointer submission.
SVN r3222 (trunk)
2011-06-07 23:05:24 +00:00
Christoph Oelckers
5df9af462a - added DavidPH's A_PainAttack extension submission.
SVN r3219 (trunk)
2011-06-06 13:23:28 +00:00
Christoph Oelckers
60a411c9ad - added A_GunFlash extension submission.
SVN r3217 (trunk)
2011-05-26 23:29:36 +00:00
Randy Heit
59b6c5ef5c - Removed a couple warnings about implicit vector truncation reported by fxc. (Apparently, it
also decided to compile some other shaders slightly differently, too.)
- Fixed: The InGameColormap had been designed without taking alpha into consideration.
  As the least likely parameter to be used, desaturation has been moved into a constant
  register to make room for the alpha parameter to live in the vertex's color value.

SVN r3208 (trunk)
2011-05-15 22:30:20 +00:00
Randy Heit
68e34e1e5c - Fixed: Wrong speed for Boom line type 175.
SVN r3206 (trunk)
2011-05-15 19:28:17 +00:00
Randy Heit
29e486495b - Fixed: The sign in Eternall.wad, map25 on line 2236 rendered at the wrong height because Doom
ignored the Y locations of patches drawn on two-sided midtextures and always drew them at the
  top of the texture. Added a compatibility flag.

SVN r3205 (trunk)
2011-05-13 03:29:48 +00:00
Randy Heit
381fb8d304 - Added optional fullthrustdistance to A_RadiusThrust to specify the distance at which thrust
starts diminishing.

SVN r3202 (trunk)
2011-05-11 04:31:31 +00:00
Christoph Oelckers
b7fadac671 - added Gez's A_WolfAttack submission.
SVN r3199 (trunk)
2011-05-09 22:10:20 +00:00
Christoph Oelckers
820554d636 - added FDARI's pointer operation submission.
SVN r3167 (trunk)
2011-03-18 08:02:23 +00:00
Christoph Oelckers
b8f4592ad5 - added A_FaceTracer/A_FaceMaster submission.
SVN r3161 (trunk)
2011-03-06 14:21:44 +00:00
Christoph Oelckers
fae8ed444c - merged 3dfloors2 branch into trunk.
SVN r3124 (trunk)
2011-01-29 11:09:38 +00:00
Braden Obrzut
f942cd0bf3 - Added cursor support for SDL.
SVN r3117 (trunk)
2011-01-23 07:37:08 +00:00
Braden Obrzut
d9d94d04ba - Added DesingatedTeam property from Skulltag. Allows friendly fire calculations to be applied to monsters/objects and allows the friendly AI to be aware of teams.
SVN r3113 (trunk)
2011-01-22 03:35:33 +00:00
Braden Obrzut
7ed7e9f755 - Enable menu mouse navigation on SDL systems.
SVN r3112 (trunk)
2011-01-22 03:02:58 +00:00
Christoph Oelckers
f21d035dcb - fixed: The summoned minotaur should not return to its own spawn state when idle but to the parent class's.
SVN r3108 (trunk)
2011-01-17 07:36:23 +00:00
Christoph Oelckers
e4b236cbcc - added DavidPH's A_SetMass submission.
SVN r3105 (trunk)
2011-01-14 22:59:20 +00:00
Christoph Oelckers
ac279d00c7 - removed obsolete references to 'generated' directory from Wadsrc project.
SVN r3096 (trunk)
2011-01-09 13:49:54 +00:00
Christoph Oelckers
e90b86acce - added 'player.flechettetype' property so that the appropriate flechette type can be set per player class.
- bumped savegame version for flechette type changes.

SVN r3085 (trunk)
2011-01-01 11:16:46 +00:00
Christoph Oelckers
898b0d679d - added a new 'playertype' command for SBARINFO that checks by class type not display name.
- fixed: Status bar display for Hexen's fourth weapons only worked when they were obtained by picking up the weapon pieces.


SVN r3080 (trunk)
2010-12-27 16:14:26 +00:00
Christoph Oelckers
231e7a1c6d - added a new render style 'Shadow'. Essentially it's just a black translucent stencil with an alpha of 0.3. The purpose of this style is to be used as a software renderer approximation of GZDoom's spectre effect.
- allow setting 'Shadow' as default fuzz effect
- changed CVAR conversion that strings 'false' and 'true' get evaluated as integers 0 and 1 respectively so that changing boolean CVARs to int does not destroy their values.


SVN r3076 (trunk)
2010-12-25 23:27:26 +00:00
Christoph Oelckers
e46183d836 - removed all portal fudging that was necessary to make thing based portals work the same as line based portals. Using an actor flag on the skybox thing the visplane code now checks what kind of portal is used and uses the proper logic accordingly. As a result the "Portals" compatibility flag no longer exists.
SVN r3072 (trunk)
2010-12-24 13:43:36 +00:00
Christoph Oelckers
42de20a7e4 - fixed: The Floor_RaiseAndCrush types in Doom wait if blocked, therefore need Hexen crush mode.
- fixed: Angle conversion in P_SpawnMapThing did not work for negative values due to use of an unsigned multiplication.


SVN r3053 (trunk)
2010-12-16 14:39:17 +00:00
Christoph Oelckers
e7eb43a343 - added Gez's automap patch to mark trigger lines.
SVN r3040 (trunk)
2010-12-15 00:14:42 +00:00
Braden Obrzut
22372fff25 - Fixed: "Show IWAD selection dialog" when only shown on Windows.
SVN r3038 (trunk)
2010-12-14 16:05:38 +00:00
Braden Obrzut
ee20d0ea7a - Fixed: GCC compiler warnings.
- zipdir will no longer store files ending in '~' on Linux.
- Added st_oldouch which restores the old ouch face behavior of only showing when health increases by 20 while taking damage.

SVN r3035 (trunk)
2010-12-13 17:09:35 +00:00
Christoph Oelckers
e7bbca8e33 - expanded compat_trace flag to apply also to sight checks.
- Set trace compatibility for Real World MAP11.


SVN r3021 (trunk)
2010-12-04 08:53:13 +00:00
Christoph Oelckers
74822572da - restore old portal checks for Action Doom 2 (as a hidden compatibility option.)
SVN r3018 (trunk)
2010-12-02 15:08:44 +00:00
Christoph Oelckers
976fe64f79 - fixed: Action Doom 2 loaded the wrong MAPINFO.
SVN r3011 (trunk)
2010-11-28 17:43:05 +00:00
Christoph Oelckers
c5f5bcc432 - added a hidden compatiblity option for maps that fell victim to the broken destination search code in some 2.0.9x versions
SVN r3008 (trunk)
2010-11-12 21:12:47 +00:00
Braden Obrzut
ae6ad394d1 - Fixed: Hexen's frag counter was not placed correctly.
SVN r3006 (trunk)
2010-11-10 23:46:18 +00:00
Christoph Oelckers
340ffc08d6 - fixed: Boom's switch-based equivalents of FloorandCeiling_LowerRaise can only move either the ceiling or the floor but never both due to a programming error. Changed this special so that Boom's broken mode can be reactivated through xlat.
SVN r3004 (trunk)
2010-11-10 11:25:34 +00:00
Christoph Oelckers
aa2e14b27f - fixed typo in Firemace obituary.
SVN r3001 (trunk)
2010-11-08 06:57:28 +00:00
Christoph Oelckers
1f43f4e961 - Added DavidPH's AProp_ScaleX/Y / A_SetScale submission.
SVN r3000 (trunk)
2010-11-08 00:01:21 +00:00
Christoph Oelckers
ce3b17d627 - fixed the value set of a few dmflags options.
SVN r2983 (trunk)
2010-11-06 23:45:55 +00:00
Christoph Oelckers
94d132b832 - fixed: Ultimate Doom loaded the default MAPINFO for regular Doom 1.
SVN r2982 (trunk)
2010-11-06 21:43:08 +00:00
Christoph Oelckers
72192397ad - added some initial configurability to statistics intermission screen:
* Font and color for map name can be set if it's not a titlepatch
 * 'Finished' and 'Entering' can be either patches or a printed text in all gamees now.
 * Font and color for 'finished' and 'entering' text can be set.
 * moved 'finished' and 'Now entering:' texts into string table.


SVN r2981 (trunk)
2010-11-06 09:28:17 +00:00
Randy Heit
c09a56ebe0 - Added a new AmbientSoundNoGravity actor with doomednum 14067. This is identical in every
respect to the existing AmbientSound actor, except it also has the NOGRAVITY flag set.

SVN r2975 (trunk)
2010-11-03 02:46:38 +00:00
Christoph Oelckers
b0c7ac6868 - made "follow player" automap option a CVAR and added a menu item for it.
SVN r2965 (trunk)
2010-10-24 07:39:48 +00:00
Christoph Oelckers
2a0c4b9f32 - added a CVAR to decide when to show the map label (ExMy, MAPxx) on the automap HUD. Available settings are Never, Always and Only for hubs.
- made all crosshair related CVARs game specific. They were all global to all supportesd games.


SVN r2964 (trunk)
2010-10-24 07:31:39 +00:00
Christoph Oelckers
c9adcb0f47 - fixed: The GAMEINFO parser did not correctly handle NOSPRITERENAME
- added STTPRCNT to HUDFONT_DOOM

SVN r2961 (trunk)
2010-10-23 22:33:39 +00:00
Christoph Oelckers
8b63758019 - fixed: Hexen loaded the Doom2 MAPINFO.
SVN r2954 (trunk)
2010-10-17 13:06:02 +00:00
Christoph Oelckers
ce7921c9d9 - externalized the vector graphics for the automap arrows and the key.
SVN r2949 (trunk)
2010-10-16 22:37:30 +00:00
Christoph Oelckers
eded2ef345 - Each IWAD can now define its own config section. Hacx, Harmony and Action Doom2 now do that.
- moved IWAD identification data into a lump in zdoom.pk3.
- rewrote IWAD checking code 

SVN r2943 (trunk)
2010-10-15 15:13:53 +00:00
Christoph Oelckers
dd17c35d89 - removed gamemode check for shareware message. It also uses LANGUAGE conditionals now.
SVN r2931 (trunk)
2010-10-11 22:10:15 +00:00
Christoph Oelckers
2eac96143e - added conditionals to LANGUAGE parser so that the special messages for Chex Quest can be handled in the definition lumps instead of the code.
SVN r2930 (trunk)
2010-10-11 19:16:09 +00:00
Christoph Oelckers
62f846b0ab - fixed: The Lost Soul used the wrong sound in the cast call.
SVN r2914 (trunk)
2010-10-06 16:01:51 +00:00
Christoph Oelckers
d9970ab9b6 - merged finale branch back into trunk.
SVN r2911 (trunk)
2010-10-06 10:44:03 +00:00
Christoph Oelckers
00f6f459e5 - fixed: Strife defined the wrong graphic for the pause sign.
SVN r2900 (trunk)
2010-10-05 19:17:22 +00:00
Christoph Oelckers
828adec7e6 - moved the Messages menu from Display Option to HUD options.
SVN r2890 (trunk)
2010-10-03 20:22:42 +00:00
Christoph Oelckers
d3ca1fddcc - added new action special Ceiling_LowerAndCrushDist. It's similar to Ceiling_LowerAndCrush but allows to explicitly set the distance from the floor where the ceiling stops moving. This is used to remove the special behavior for Strife from the code that unlike the other games moved the ceiling to the floor, not to 8 units above it.
SVN r2881 (trunk)
2010-10-02 16:26:10 +00:00
Christoph Oelckers
add5518a04 - added some constant definitions for action specials to DECORATE header.
SVN r2856 (trunk)
2010-09-27 05:49:56 +00:00
Christoph Oelckers
9abaaa1785 - added a default cursor for Chex Quest.
- set 'cursor' as default for Action Doom 2. Doom's bunny is probably not the best thing here...
- made cursor user-settable in the menu.



SVN r2855 (trunk)
2010-09-26 07:46:34 +00:00
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
Randy Heit
99670b708c - Sync scripting branch with what was in trunk on Sunday. I believe that would be revision 2739.
SVN r2790 (scripting)
2010-09-16 03:14:32 +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