* Cleanup: Alignment, long lines, Replace 0 with SDLK_UNKNOWN
* Gamecontroller api analogue input
* Added some button handling
* Added mapping for other buttons
* Added trigger events
* Added force_joystick flag
* Removed force_joystick flag
Rationale:
1. It was actually broken lol
2. I cannot think of a case where enabling this would be a useful thing for
gzdoom. If the user is using a gamecontroller, it is pointless. If they are
not using a gamecontroller, it will just default to using the joystick api.
If they are not using a gamecontroller, but SDL thinks they are, it is an
SDL bug, and will be reported and fixed
* Modified default mapping
* Added analogue to digital threshold
* Added analogue response curve
* Per axis settings
* Fixed controller reconnect
* Added threshold and curve to IJoystickConfig
Enabled saving of settings
* Added stubs
* Cleanup
Constants are no longer defines.
Constants are mostly shared between backends.
Moved some logic to m_joy
* Implemented xinput stubs
* Implemented dinput stubs
* Implemented ps2 stubs (untested)
* Fixed inclusive check
* Implemented osx stubs (untested)
* Fixed curve implementation
No longer savable, I screwed the curve function up.
I though it needed 2 control points, but it needs 4.
Need to re-do controller settings :(
* Now using CubicBezier struct
* Fixed SetDefaultConfig to match xinput behavior
* Expanded gamepad CCMD
* Rename enum JoyResponseCurve to EJoyCurve
* Initial menu implementation
* Fixed SDL controller setting saving
* SDL gamepads can now actually be disabled
* Fixed initial controller connect of some versions of SDL
* Spelling error
* Enable gamepad by default
* Fixed segfault on some versions of SDL
* Only block keydown
Readds the feature to allow players to ready up during stat screens and intermissions instead of autoskipping based on whoever closed it. Comes with a variety of ways to tweak this behavior such as percentage-based auto starting (with a timer), the ability to unready as needed, and who can control it. Players will still be able to skip through individual screen jobs within the runner while waiting to ready up.
1. DoubleTapControl: Simply assigns a double-tap key to a command.
2. DoubleControl: Assigns a standard key press to a command and uses the same key to make a double-tap bind to the second specified command.
- Also add an "intensity" parameter for A_AttachLight in ZScript.
Note that for any kind of light overbrightening to do anything at all, one of the unclamped LightBlendModes in MAPINFO must be enabled.
Fixed a potential loop crash caused by an undefined amount int in TakeInventory (and derivatives) now it will assume if by is less than 1 that the item is to be destroyed.
* add getters for frame poses
* fix missing joint in GetJointPose
* clean up models_iqm.cpp
* clean up usage of I_GetTimeFrac, split out matrix calculation into its own function
* clean up SetModelBoneRotationInternal
* clean up a few float <-> double and unsigned <-> signed warnings
* fix more warnings
* further clean up warnings
* split mode ObjectToWorldMatrix stuff
* initial work on bone getters, matrix hell
(the matrix/vec3 multiplications are probably wrong af, just gotta add more stuff 'till i can test it)
* clean up matrix math
* GetBone/TransformByBone
* fix GetBoneFramePose
* fix ObjectToWorldMatrix
* fix missing array resize
* raw matrix getters (for use with gutamatics/etc)
* reverse matrix mult order
* replace GetBoneLength/GetBoneDir with GetBoneBaseTRS
* fix GetBonePosition, remove GetBoneWorldMatrix as it's useless
* GetBonePosition
* deduplicate code
* rename GetBonePosition to GetBoneBasePosition to avoid confusion
* GetBoneBaseRotation
* GetBonePosition helper function
* forgot include_offsets
* Update inventory_util.zs
Added ExtraDepletionBehavior() functionality to TakeInventory and UseInventory
* Update inventory.zs
Added ExtraDepletionBehavior (int takeAmount) function
* Update inventory_util.zs
ExtraDepletionBehavior now requires at least 1 item in reserve to work
* Replaced ExtraDepletion with DepleteBy Logic
Shoutout to RicardoLuis0
* Replaced ExtraDepletion with DepleteBy Logic
Shoutout to RicardoLuis0
* Update inventory_util.zs
added sv_infiniteinventory checks for takeinventory for custominventory items, restored support for sv_infiniteinventory useinventory items
* Update inventory.zs
cleaned up DepleteBy - removing unnecessary "--Amount <= 0 && usedItem" check and usedItem bool
* Update inventory_util.zs
removed unnecessary sv_infiniteinventory check
* Update inventory.zs
amount is integer, depleteordestroy should occur when amount is less than 1
* split frame info calculation from RenderFrameModels
* clean up fvec4 being used as quat in iqms
* initial work on bone setting
* implement bone setters
* clean up FindModelFrame
* refactor model overrides into its own function
* refactor frame rendering into RenderModelFrame
* split frame processing into ProcessModelFrame
* refactor BoneOverride in preparation for translation/scale overrides
* clean up macros
* SetBoneTranslation/SetBoneScaling
* GetBoneOffset
* fix compilation on linux/mac (fuck you MSVC)
* fix typo 😅
* make sure bone overrides are cleared on model switches, add ClearBoneOffsets to clear them manually
* bone info getters
* fix joint lengths, add joint dirs
* serialize bone overrides
* fix bone dir return type
* GetBoneIndex/GetBoneCount
* helper functions for working with non-quat angles
* add mode enum, add more helper functions
* fix up formatting
* GetLumpContainer
* GetContainerName
* GetLumpFullPath
for WADS struct, useful for debugging custom-made parsers and identifying where problems may arise.
All credit goes to Jay for the code.
Adds support for client-side Thinkers, Actors, and ACS scripts (ACS uses the existing CLIENTSIDE keyword). These will tick regardless of the network state allowing for localized client handling and are put in their own separate lists so they can't be accidentally accessed by server code. They currently aren't serialized since this would have no meaning for other clients in the game that would get saved. Other logic like the menu, console, HUD, and particles have also been moved to client-side ticking to prevent them from becoming locked up by poor network conditions. Additionally, screenshotting and the automap are now handled immediately instead of having to wait for any game tick to run first, making them free of net lag.
To activate, use `SetParticleType(int type)`. To deactivate, use `DisableParticle()`.
Types are:
- PT_DEFAULT (default value; uses `gl_particles_style`)
- PT_SQUARE
- PT_ROUND
- PT_SMOOTH
While in this mode:
- `Texture` & `Translation` are ignored
- `Scale.X` sets the size
- `SColor` sets the color
Misc changes:
- Removed warning on textureless destruction