Commit graph

1199 commits

Author SHA1 Message Date
Randy Heit
861a955cef - Fixed: Since UDMF allows for fractional vertex coordinates, it is no longer
safe for P_AlignPlane() to truncate coordinates when searching for the
  furthest vertex from the line.


SVN r1676 (trunk)
2009-06-23 02:33:18 +00:00
Randy Heit
a5b118cf7c - The reorganized DirectInput game controller code finally compiles. (Ugh! It
took far too long to reach this point.) Manual axis configuration is
  currently disabled, since I need to rewrite that, too. The eventual point of
  this is that the code will be modular enough that I can just plop in
  routines for XInput controllers and driver-less PlayStation 2 adapters
  without much fuss, since the old joystick code was very much DirectInput-
  centric.


SVN r1672 (trunk)
2009-06-20 03:16:08 +00:00
Christoph Oelckers
e11cac7e89 - Changed AWeaponGiver to keep the weapon actor around instead of respawning a new
one for each call.
- Fixed: AWeaponGiver::TryPickup checked the wrong item for ammo to give.
- fixed: FRandom::Random2(int mask) must return the difference between 2 byte values
  for compatibility.
- fixed: The sound name world/volcano/shoot was accidentally destroyed in the source.


SVN r1671 (trunk)
2009-06-19 21:00:18 +00:00
Christoph Oelckers
db0a924fc9 - Reintroduced damage thrust clamping but with a higher threshold. The clamping
is now also done in floating point before any fixed point overflows can occur.


SVN r1670 (trunk)
2009-06-16 22:04:26 +00:00
Christoph Oelckers
3ab370b6ee - added a compatibility option to restore the original Heretic bug where
a Minotaur couldn't spawn floor flames when standing in water having its
  feet clipped.
- added vid_vsync to display options.
- fixed: Animations of type 'Range' must be disabled if the textures don't
  come from the same definition unit (i.e both containing file and use type
  are identical.)
- changed: Item pushing is now only done once per P_XYMovement call.
- Increased the push factor of Heretic's pod to 0.5 so that its behavior
  more closely matches the original which depended on several bugs in the engine.
- Removed damage thrust clamping in P_DamageMobj and changed the thrust calculation
  to use floats to prevent overflows. The prevention of the overflows was the
  only reason the clamping was done.
- Added Raven's dagger-like vector sprite for the player to the automap code.


SVN r1668 (trunk)
2009-06-14 13:47:38 +00:00
Randy Heit
e69f90076d - Changed wad namespacing so that wads with a missing end marker will be
loaded as if they had one more lump with that end marker. This matches the
  behaviour of previously released ZDooms. (The warning is still present, so
  there's no excuse to release more wads like this.)


SVN r1667 (trunk)
2009-06-11 22:58:06 +00:00
Randy Heit
deff9cfb12 - Moved Raw Input processing into a seperate method of FInputDevice so that
all the devices can share the same setup code.


SVN r1664 (trunk)
2009-06-11 03:41:24 +00:00
Christoph Oelckers
523cf6acb2 - Added Gez's Skulltag feature patch, including:
* BUMPSPECIAL flag: actors with this flag will run their special if collided on by a player
    * WEAPON.NOAUTOAIM flag, though it is restricted to attacks that spawn a missile (it will not affect autoaim settings for a hitscan or railgun, and that's deliberate)
    * A_FireSTGrenade codepointer, extended to be parameterizable
    * The grenade (as the default actor for A_FireSTGrenade)
    * Protective armors à la RedArmor: they work with a DamageFactor; for example to recreate the RedArmor from Skulltag, copy its code from skulltag.pk3 but remove the "native" keyword and add DamageFactor "Fire" 0.1 to its properties.


SVN r1661 (trunk)
2009-06-09 17:13:03 +00:00
Christoph Oelckers
4fcd64d2c1 - Fixed: I_ShutdownInput must NULL all pointers because it can be called twice
if an ENDOOM screen is displayed.



SVN r1660 (trunk)
2009-06-09 07:57:21 +00:00
Christoph Oelckers
f4c9cf9c4e - Fixed: R_DrawSkyStriped used frontyScale without initializing it first.
- Fixed: P_LineAttack may not check the puff actor for MF6_FORCEPAIN because
  it's not necessarily spawned yet. 
- Fixed: FWeaponSlots::PickNext/PrevWeapon must be limited to one iteration
  through the weapon slots. Otherwise they will hang if there's no weapons
  in a player's inventory.


SVN r1659 (trunk)
2009-06-09 07:45:04 +00:00
Randy Heit
64b7468bf4 - Fixed: The initial play of a GME song always started track 0.
SVN r1655 (trunk)
2009-06-08 23:37:39 +00:00
Randy Heit
9493b5acdd SVN r1653 (trunk) 2009-06-08 22:55:03 +00:00
Christoph Oelckers
4b9d0c6dff - added parameter to A_FadeOut so that removing the actor can be made an option.
SVN r1652 (trunk)
2009-06-07 22:13:16 +00:00
Christoph Oelckers
6ba839a0e9 - added PERSISTENTPOWER and TRANSFERPOINTERS submissions by Gez.
SVN r1651 (trunk)
2009-06-07 20:10:05 +00:00
Christoph Oelckers
16bf1ef6d0 - fixed FORCEPAIN logic.
SVN r1650 (trunk)
2009-06-07 17:04:40 +00:00
Christoph Oelckers
d04ffd57f8 - added Gez's infinite ammo powerup and random spawner fix patches.
- reduced size of Hexen's flames to fix bug in Deathkings MAP01.
- added checks for sidedef scaling values 


SVN r1648 (trunk)
2009-06-07 16:38:19 +00:00
Christoph Oelckers
93742aca31 - Added Karate Chris's poison cloud fix.
SVN r1647 (trunk)
2009-06-07 09:41:22 +00:00
Randy Heit
c66f237873 - Added per-tier texture scaling with these new UDMF sidedef properties:
* scalex_top
  * scaley_top
  * scalex_mid
  * scaley_mid
  * scalex_bottom
  * scalex_bottom
- Added sidedef versions of the linedef flags wrapmidtex and clipmidtex (via
  UDMF; names are the same). If the flag is set on the line, it applies to
  both sides. Otherwise, each side can control them individually.


SVN r1645 (trunk)
2009-06-07 01:14:14 +00:00
Christoph Oelckers
a1aba60d8d - Added Hirogen2's unlimited pickup patch.
- Added railgun performance customization CVARs by Spleen.
- Added aspect ratio override submission by SoulPriestess.



SVN r1643 (trunk)
2009-06-06 15:21:57 +00:00
Christoph Oelckers
476e0bce2a - Added a 'resetinventory' MAPINFO option.
- Added MF6_NOFEAR flag.
- Added A_MonsterRefire(probability, jumptarget).
- Added A_JumpIfTargetInSight(state) action function.
- Changed: Puffs set their angle to face the originator of the attack.
- Strife's burning hands originally make the level view fullbright.
  changed in ZDoom to do partial brightening.

SVN r1642 (trunk)
2009-06-06 12:46:35 +00:00
Randy Heit
3ba96a470b - I was wrong. The horizontal wheel is Vista-only. It does generate data packets on XP,
but there's nothing in them to let you know the wheel moved. Updated rh-log.txt accordingly.

SVN r1641 (trunk)
2009-06-06 04:29:16 +00:00
Randy Heit
bdd3188897 - Added support for horizontal mouse wheels, and set invprev/invnext as
default bindings for it. (Only works with Raw Input on XP. Vista has
  support through Win32 mouse, as well. DirectInput does not support it at
  all, because the DirectInput mouse device does not expose this control.)


SVN r1640 (trunk)
2009-06-06 02:55:58 +00:00
Randy Heit
7df2d40e8f - Added a label for the F16 key and mapped the kp= key on a Mac keyboard to
the PC98 equivalent so it would be recognized as kp=. (Interestingly, F13-
  F16 and kp= only generate events when using Raw Input, not when using
  DirectInput.


SVN r1639 (trunk)
2009-06-06 02:06:38 +00:00
Christoph Oelckers
d30e304a7f - Added MF6_FORCEPAIN flag that forces the target to go into the pain state
regardless of pain chance.
- Changed screenblocks CVAR to be settable per game.
- Added SpawnSpotForced and SpawnSpotFacingForced ACS functions.
- Added pushfactor actor property.


SVN r1638 (trunk)
2009-06-05 21:44:34 +00:00
Christoph Oelckers
8c3a816428 - Added Gez's GetArmorType submission
SVN r1636 (trunk)
2009-06-05 20:23:47 +00:00
Randy Heit
a8de4fc2da - Fixed compilation of i_keyboard.cpp with MinGW, because w32api still doesn't have
everything that was new for XP.
- Swapped snes_spc out for the full Game Music Emu library.

SVN r1631 (trunk)
2009-06-03 03:05:02 +00:00
Christoph Oelckers
2ab76070c0 - Fixed: The Hexen status bar still uses MAX_MANA for some calculations instead
of MaxAmount.



SVN r1630 (trunk)
2009-06-02 17:42:52 +00:00
Christoph Oelckers
5061e2e8fd - Added Blzut3's submission for displaying underwater stats in SBARINFO.
SVN r1629 (trunk)
2009-06-01 07:10:22 +00:00
Christoph Oelckers
91e0f4d11d - Added Gez's AMMO_CHECKBOTH submission.
SVN r1627 (trunk)
2009-05-31 22:14:23 +00:00
Christoph Oelckers
fb5e392f2f - Added Gez's THRUSPECIES submission.
SVN r1626 (trunk)
2009-05-31 20:14:16 +00:00
Christoph Oelckers
627838f379 - Added loading directories into the lump directory.
- fixed: The Dehacked parser could not parse flag values with the highest bit
  set because it used atoi to convert the string into a number.

SVN r1624 (trunk)
2009-05-31 10:49:47 +00:00
Christoph Oelckers
2effc9b803 - Rewrote IWAD detection code to use the ResourceFile classes instead of
reading the WAD directory directly. As a side effect it should now be
  possible to use Zip and 7z for IWADs, too.


SVN r1621 (trunk)
2009-05-30 09:53:38 +00:00
Christoph Oelckers
9c4cbedc26 - Added 'EndTitle' nextmap option which goes to the regular title loop after
the game has finished.
- Added NOBOSSRIP flag. Note: we are now at flags6!
- Added SetSkyScrollSpeed(int skyplane, fixed speed) ACS function.
- Added THRUACTORS flag that disables all actor<->actor collision detection.
- Added DONTSEEKINVISIBLE flag for missiles that can't home in on invisible
  targets.
- Added SFX_TRANSFERPITCH flag to A_SpawnItemEx.
- Added Ultimate Freedoom IWAD detection.
- Added GetAirSupply and SetAirSupply functions to ACS.
- Fixed: The *surface sound was not played when drowning was switched off
  by setting the level's air supply to 0.

SVN r1619 (trunk)
2009-05-30 08:56:40 +00:00
Randy Heit
092512c44a - Fixed: The mouse wheel generated no events in GUI mode if you weren't
fullscreen. (e.g. You could no longer scroll the console with the mouse
  buffer.)
- Fixed: Wheeling down was seen as wheeling up with the Win32 mouse.


SVN r1618 (trunk)
2009-05-27 22:57:21 +00:00
Randy Heit
12959a1bd1 - EV_GUI_Key(Down|Up|Repeat) events no longer provide shifted key codes
in data2. This was just unnecessary overhead that wasn't really needed
  anywhere.
- Moved GUI-mode input into a separate function to make the code easier to
  read.


SVN r1617 (trunk)
2009-05-27 22:17:11 +00:00
Randy Heit
a925f7eab6 - Removed HaveFocus variable in preference of using GetForegroundWindow().
SVN r1616 (trunk)
2009-05-27 21:11:06 +00:00
Randy Heit
a11073341c - Added Raw Input keyboard handling.
SVN r1614 (trunk)
2009-05-27 20:44:54 +00:00
Randy Heit
7fea07dff7 - Split DirectInput keyboard handling into a separate file and class. I also
switched it to buffered input, and the pause key seems to be properly
  cooked, so I don't need to look for it with WM_KEYDOWN/UP. Tab doesn't
  need to be special-cased either, because buffered input never passes on
  the Tab key when you press Alt+Tab. I have no idea why I special-cased
  Num Lock, but it seems to be working fine. By setting the exclusive mode
  to background, I can also avoid special code for releasing all keys when
  the window loses focus, because I'll still receive those events while the
  window is in the background.


SVN r1613 (trunk)
2009-05-27 03:16:46 +00:00
Randy Heit
0a310b9832 - Fixed compilation on MinGW.
SVN r1612 (trunk)
2009-05-26 22:33:02 +00:00
Randy Heit
e637fe3ea7 - Recoverable errors that are caught during the demo loop no longer shut off
the menu.


SVN r1609 (trunk)
2009-05-26 01:56:35 +00:00
Randy Heit
956b7d5ea3 - Added Skulltag's PowerDoubleFiringSpeed.
SVN r1608 (trunk)
2009-05-26 01:16:39 +00:00
Randy Heit
2f7498214b - Specifying non-existent directories with -savedir or the save_dir cvar now
attempts to create them.


SVN r1607 (trunk)
2009-05-26 01:05:01 +00:00
Randy Heit
5245e8d4dd - I_CheckNativeMouse() now checks the foreground window to determine if the
mouse should be grabbed. This fixes the case where you start the game in
  the background and it grabs the mouse anyway.
- Changed raw mouse grabbing to call ShowCursor() directly instead of through
  SetCursorState(), since changing the pointer isn't working with it
  (probably due to the lack of legacy mouse messages), and the others work
  fine by setting an invisible cursor.
- Fixed: Raw mouse input passes wheel movements in an unsigned field, but the
  value is signed, so it requires a cast to use it.
- Reverted accidental changes to src/sdl/i_input.cpp.

SVN r1605 (trunk)
2009-05-26 00:30:51 +00:00
Christoph Oelckers
8034b0558e - Fixed: Textures with dimensions <= 0 are invalid and should be treated as NULL
textures. They also must be set to dimensions other than (0,0) to avoid division
  by zero errors.
- Fixed: Random spawners did not handle the MF_DROPPED flag.


SVN r1602 (trunk)
2009-05-24 07:58:57 +00:00
Randy Heit
0c4c90ac89 - SetCursorState() now calls ShowCursor() again, because capturing the mouse
with RIDEV_NOLEGACY apparently prevents SetCursor() from doing anything.
- Split mouse code off from i_input.cpp into i_mouse.cpp and added raw mouse
  handling. (WM_INPUT obsoleted most of DirectInput for XP.)
- Fixed: Similar to the Win32 mouse, using the DirectInput mouse in windowed
  mode, if you alt-tabbed away and then clicked on the window's title bar,
  mouse input would be frozen until the mouse was ungrabbed again.


SVN r1601 (trunk)
2009-05-24 03:15:04 +00:00
Christoph Oelckers
273758344f - Fixed: When setting up a deep water sector with Transfer_Heights the floorclip
information of all actors in the sector needs to be updated.


SVN r1600 (trunk)
2009-05-23 10:21:33 +00:00
Christoph Oelckers
e61b4b3c76 - Fixed: A_CountdownArg and A_Die must ensure a certain kill.
- Changed bounce flags into a property and added real bouncing sound properties.
  Compatibility modes to preserve use of the SeeSound are present and the old
  flags map to these.


SVN r1599 (trunk)
2009-05-23 08:30:36 +00:00
Randy Heit
86023c23ca - Fixed: When using Win32 mouse, windowed mode, alt-tabbing away and then
clicking on the window's title bar moved it practically off the screen.
- Beginnings of i_input.cpp rewrite: Win32 and DirectInput mouse handling has
  been moved into classes.


SVN r1597 (trunk)
2009-05-23 02:22:30 +00:00
Christoph Oelckers
7e69852da9 - Fixed: The SBARINFO parser compared an FString in the GAMEINFO with a NULL
pointer and tried to load a lump with an empty name as statusbar script
  for non-Doom games.


SVN r1596 (trunk)
2009-05-20 09:06:49 +00:00
Randy Heit
749de6c156 - Fixed: SetSoundPaused() still needs to call S_PauseSound() to pause music
that isn't piped through the digital sound system. (Was removed in r1004.)


SVN r1595 (trunk)
2009-05-20 02:52:07 +00:00