Commit Graph

4552 Commits

Author SHA1 Message Date
Jose_Varela d71e05dcd8 Small cleanup 2018-07-29 16:12:07 -05:00
Jose_Varela 2308f9501e Broader Dancing Character Control for themers
This is to allow themers to have more control in regards to the Dancing 3D Characters seen in Gameplay.
A lot of it was hardcoded.
2018-07-29 16:02:05 -05:00
Gareth Francis e7b8cc2785 Preserve event timestamps in X11 input driver
The X11 XKeyEvent structure (and others) include a timestamp
field, with 1ms resolution.
This was previously ignored causing the input timestamps to be
set to the middle of each frame.
If the timestamps are passed through then the event timestamps are
not coupled to the framerate and the polling issues are resolved.
2018-06-08 17:19:51 +01:00
Gareth Francis 144fba2e15 Bugfix/1698 linux event m_bShutdown undefined (#1699)
* Fix build
2018-06-07 13:17:02 -07:00
Gareth Francis 252e1e7b1f Initialise variables to ensure input thread is started (#1696)
* Initialise variables to ensure input thread is started

m_bShutdown was not initialised. This meant that the input
thread would never be started seemingly at random.

In my case m_bShutdown was always false when running in fullscreen
but not in windowed mode for some reason
2018-05-26 04:30:19 -07:00
Gareth Francis 23889bd7c8 Avoid crash in ~LightsDriver_SystemMessage (#1663)
* Avoid crash in ~LightsDriver_SystemMessage

This will avoid a crash caused by the fact LIGHTSMAN is destroyed
after the other MAN objects

* Rework code path for turning lights off on exit

Calls to LightsDriver::reset removed from each driver to avoid any crashes

LightsDriver::reset renamed to Rest to match surrounding style

Added LightsManager::TurnOffAllLights, called before XXXMAN objects are deleted
2018-05-10 18:04:44 -07:00
MrThatKid eb78d14ab8 Moved display zbuffer clear to after notefields are drawn (#1679)
* Added display zbuffer clear DrawNoteFieldBoard

* Removed display zbuffer clear in NoteField
2018-04-20 18:27:37 -07:00
ranma 1ca5809da5 Improve DrawQuads batching in the font render. (#1654)
Currently only identical glyphs are merged into one DrawQuads call.
This fixes the comparison so that all glyphs with the same texture can
be merged, which greatly improves the font rendering performance.
2018-03-10 11:44:45 -08:00
Nicolas dba5e3f1f1 Add timeout to smo sockets (#1651)
* Add timeout to smo sockets

Without this sometimes an attempt at a connection hangs and completely stops the program (VERY annoying in fullscreen) in the recv function.

* Fix typo from previous commit

* Change smo timeout to 5
2018-03-08 17:35:06 -08:00
Gareth Francis 1369c1fb39 Turn lights out on exit (#1646)
* Add LightsDriver::reset

Function will reset all lights to off
Function needs to be called by each of the driver implementations
as needed during destruction

* Reset lights to off on exit
2018-02-28 11:52:01 -08:00
tertu b226b937da Merge pull request #1629 from kyzentun/theme_prefs_use_chosen_theme
ThemePrefs use chosen theme
2018-02-08 16:18:30 -06:00
tertu effc88489e Merge pull request #1624 from mark-blum/5_1-new
Make announcers repeat their lines less
2018-02-08 16:17:37 -06:00
Kyzentun Keeslala 02dd2522e3 Add THEME:get_theme_fallback_list function. 2018-02-05 09:12:35 -07:00
ListenerJubatus c526fa6789 Merge pull request #1619 from kyzentun/5_0_course_difficulty_crash_fix
SSM needs to prune playable trails.
2018-01-24 15:30:49 -06:00
Mark Blum e125053f4c Made announcers repeat their lines less 2018-01-20 15:23:12 -05:00
Flameshadowxeroshin 07918fe3ab fix invisible notes near beginning of song with ProgressAlternate 2018-01-17 15:07:57 -06:00
Flameshadowxeroshin 529af13833 ProgressAlternate
back up one frame on boundaries
2018-01-17 10:14:07 -06:00
Flameshadowxeroshin 1c75c52614 Added NoteColorMode ProgressOnBeatAtEnd
Almost the same as progress, but 4ths use the last frame rather than the first.
This lets rainbow and vivid from DDR be made properly.
2018-01-17 10:14:03 -06:00
Kyzentun Keeslala 9210ee4642 SSM needs to prune unplayable trails out of the selectable list in course mode. 2018-01-16 14:42:36 -07:00
concubidated ccb780fd13 Merge branch '5_1-new' of https://github.com/concubidated/stepmania into 5_1-new 2017-12-30 18:28:01 -08:00
concubidated c7dcdf95c7 Uodate user data directory to 5.1 for Linux
This has already been fixed for OSX and Windows
2017-12-30 18:16:03 -08:00
Tyler Brekke 737ab1bbf9 Merge pull request #1563 from kyzentun/music_wheel_handle_message_crash
Fix extra stage MusicWheelItem crash
2017-11-21 22:43:22 -08:00
Tyler Brekke fe404b2950 Merge pull request #1499 from kyzentun/course_entry_fix
Check entry id in GetCourseEntry.  Add GetNumCourseEntries.
2017-11-21 00:05:33 -08:00
Kyzentun Keeslala 87dfd25cfc Fix crash that only shows up on extra stage from MusicWheelItem handling message when not loaded. 2017-10-18 08:36:20 -06:00
Flameshadowxeroshin e92c8f80a3 support for distance field fonts 2017-10-02 17:00:11 -05:00
Flameshadowxeroshin c1088c1abc Distance field EffectMode (#1546)
* Distance field EffectMode (supports MSDF and the regular sort)
2017-10-02 05:54:05 -07:00
Alexander Griffin c0981c42ec Changing BannerCache into ImageCache to support more imagetypes (#1532) 2017-09-19 14:49:42 -07:00
MrThatKid cf2b25fdcc Implemented SetActualDancePoints & SetPossibleDancePoints (#1527)
* Implemented Dance Point setting

Methods added:
SetPossibleDancePoints
SetActualDancePoints

* Update luadocs to reflect changes

* Fix possible divide by zero

* Merge DP setting functions into one. (#5)

* Merge DP setting functions into one.

Also, ensure that scores of >100% aren't possible
Function usage: SetDancePointLimits(actual, possible)
Clamps to 100% if actual/possible >100%

* Update the luadocs again
2017-08-30 11:57:23 -07:00
Dan Guzek c3c085dc9e backport fullscreen fix for macOS (#1524)
This backports the recent fullscreen fix for macOS on the master branch to the 5_1-new branch.  Credit goes to GitHub user aeubanks for the original fix.
2017-08-14 14:06:01 -07:00
MrThatKid 4c5319c888 Fix Hold Y Rotation
Otherwise, holds rotate oppositely to the arrows when modifiers like Twirl and ConfusionY are used.
2017-08-02 13:28:36 -07:00
MrThatKid 921a617a64 Added nITG's Tangent Modifiers (#1495)
* Implemented nITG's TanDrunk modifiers.

RageMath functions added:
RageFastTan
RageFastCsc
Modifers added:
GlitchyTan
TanDrunk
TanDrunkSpeed
TanDrunkOffset
TanDrunkPeriod
TanDrunkZ
TanDrunkZSpeed
TanDrunkZOffset
TanDrunkZPeriod

* Implemented nITG's TanTipsy and TanTornado mods

Also, the Drunk code and Tipsy update code was deduplicated.
Modifiers Added:
TanTipsy
TanTipsySpeed
TanTipsyOffset
TanTornado
TanTornadoPeriod
TanTornadoOffset
TanTornadoZ
TanTornadoZPeriod
TanTornadoZOffset

* Implemented nITG's remaining tan mods.

Modifiers added:
TanExpand
TanExpandPeriod
TanBumpy
TanBumpyPeriod
TanBumpyOffset
TanBumpyX
TanBumpyXPeriod
TanBumpyXOffset
TanDigital
TanDigitalPeriod
TanDigitalSteps
TanDigitalOffset
TanDigitalZ
TanDigitalZPeriod
TanDigitalZSteps
TanDigitalZOffset

* Updated luadocs to reference new modifiers

* Rename GlitchyTan to Cosecant (#4)

* Rename GlitchyTan to Cosecant

* Update luadocs to reflect change
2017-07-14 22:32:58 -07:00
Kyzentun 05a58a69bd Allow spaces in noteskin names. (#1493) 2017-07-13 17:59:38 -07:00
Kyzentun Keeslala 3b5a1e88e0 Check entry id in GetCourseEntry. Add GetNumCourseEntries. 2017-07-09 17:16:47 -06:00
Flameshadowxeroshin 4c9f06c693 fix crash with ShowCursor+SharedSelection 2017-06-29 11:52:25 -05:00
Drew Barbarello 557be7cf1b 5 1 new backport x11 fs rework (#1485)
* Use XRandR 1.2 to set fullscreen resolution for single output

Squash of roothorick's PR #497
(also includes Kyzentun's CMake changes from PR #716)

* Cherry-pick json c++1x stuff (b9e3d7174e)

* Cherry-pick c++11 support from 5bba5c0038 and 9f8b045309

* rework Linux (X11) fullscreen, improve display-related Graphics Options

Implement option to select between monitors for exclusive fullscreen mode
on X11 (using XRandR 1.2), or use a fullscreen borderless window.

Reimplement resolution/refresh rate/display mode-related option rows
using Lua, update choices dynamically so only known-good groupings of
resolution/refresh rate/aspect ratio can be selected.

Minimally update Windows/MacOS LowLevelWindow implementations to support
changes made for Linux side. Fullscreen Borderless Window/multi monitor
support from X11 not implemented for those in this commit.

* allow forcibly disabling xinerama use on Linux

When libXinerama is available, SM tries to use it to find the proper
monitor indexes to use to set _NET_WM_FULLSCREEN_MONITORS (on borderless
fullscreen). xfwm4 seems to assume that monitors are numbered in increasing
order from left to right (rather than using the Xinerama-assigned numbers),
so _NET_WM_FULLSCREEN_MONITORS misbehaves on Xfce.

This commit bypasses use of libXinerama, and instead forces SM to induce fullscreen
on the desired monitor in the backup, hacky way: remove all window hints, move window
to desired monitor, then add _NET_WM_STATE_FULLSCREEN hint. This works on
mutter and Xfce.

* Remove multiple warnings on redundant define.

This used to be hard-coded due to pthread related items, but now it's dynamically determined.

* fix _fallback menu behavior for unrecognized aspect ratios

* Fix error recreating existing FS texture

* Bump deployment target to 10.7 to use libc++ on XCode 8

* Add explicit casts to please clang

* Update changelog
2017-06-18 08:55:16 -07:00
Colby Klein 7ef14c340d I believe in you, travis ci 2017-06-16 12:30:54 -07:00
Colby Klein f537e55d88 attempt to fix build 2017-06-16 12:14:21 -07:00
MrThatKid a3eab2e7ab Added nITG's various column specific & other misc modifiers (#1468)
* Added stealth control, ZBuffer & DizzyHolds mod

Modifiers added:
StealthPastReceptors
DizzyHolds
StealthType
ZBuffer

* Removed theme metrics that are now mods.

Removed metrics:
DrawHiddenNotesAfterReceptor
DizzyHoldHeads

* Implemented nITG's Shrink modifiers

Modifiers Added:
ShrinkLinear
ShrinkMult

* Implemented nITG's Attenuate mods.

Modifiers added:
AttenuateX
AttenuateY
AttenuateZ

* Implemented nITG's pulse modifiers

Modifiers added:
PulseInner
PulseOuter
PulsePeriod
PulseOffset

* Implemented nITG's DrawSize and Bounce modifiers.

Modifiers Added:
Bounce
BouncePeriod
BounceOffset
BounceZ
BounceZPeriod
BounceZOffset
DrawSize
DrawSizeBack

* Added nITG's column specific Dark & Stealth mods

Modifiers added:
Stealth<1-n>
Dark<1-n>

* Finish adding nITG's column specific mods

Modifiers added:
ConfusionXOffset<1-n>
ConfusionYOffset<1-n>
ConfusionzOffset<1-n>
Reverse<1-n>
Tiny<1-n>
Bumpy<1-n>

* Documented new modififers

* Changelog housekeeping

Fixed a typo and added this branch's PR into the changelog.

* Last bit of clean up. (#3)

* Fixed up one line of the changelog

* Add MrThatKid to credits.
2017-06-09 21:10:17 -07:00
Tyler Brekke 9b5746f505 PercentageDisplay: Fix ShowDancePointsNotPercentage() (#1474)
Remove legacy setting DancePointsForOni

Fixes: #1473
2017-06-07 06:20:48 -07:00
Kyzentun d27fae7ed5 Entry in the debug menu that reloads preferences. There may be some preferences that are only checked at startup that are unaffected by the reload. (#1471) 2017-06-06 09:36:24 -07:00
Kyzentun 2aee27a276 Backport custom song support. Prefs are CustomSongsEnable, CustomSongsMaxCount, CustomSongsLoadTimeout, CustomSongsMaxSeconds, CustomSongsMaxMegabytes. Metrics are NumProfileSongGroupColors and the colors with it. Profile custom load function is passed PlayerNumber now. Stepmania must run as root to save USB profile scores. (#1470) 2017-06-06 05:30:06 -07:00
Colby Klein 1c920a4197 Backport FTOC optimization from 5.1 2017-05-30 03:04:26 -07:00
Drew Barbarello e5e5b94242 Add missing breaks to case statement, fix #1445 (#1460)
On default theme on fresh checkout on fresh install of Arch, I
encountered a segfault when entering the ScreenSelectMusic screen. The
fault was trying to dereference a NULL pWID->m_pAction in the
WheelItemDataType_Sort case, which we fell through to because of the
missing break statements.
2017-05-26 15:31:32 -07:00
Chris Pable 55281cebd2 keep xp on life support a bit longer, check for vista+ stuff (#1456) 2017-05-25 00:34:33 -07:00
Colby Klein c5f51d1e5a Call DwmFlush on VSync (might help with stuttering). Note: Requires Windows Vista or later. 2017-05-24 03:37:25 -07:00
Colby Klein 826b902312 STOP ARGUING ABOUT THIS 2017-05-24 03:12:36 -07:00
Colby Klein 41b602c90f EzSockets: Don't leak WinAPI everywhere this gets included. Fixes #1455 2017-05-24 01:23:22 -07:00
Austen 631523ace3 XInput support for the DirectInput driver (#1443)
* XInput support for the DirectInput driver

The XBox360 controller driver for windows has a flaw where the DirectInput backwards-compatible driver registers dance pad arrows as a hat and will not allow opposite arrows to be pressed at the same time. This is not a problem in the XInput interface since the arrows are registered as a DPad and each arrow is a button.

This patch adds XInput support for the DirectInput driver. On initialization XInput controllers will be detected and registered first, followed by enumerating DirectInput devices. During DirectInput enumeration any XInput-capable controllers will be bypassed so that they aren't registered twice.

* Fix joystick input for xinput driver

Needed to compensate for deadzones, magnitude of the inputs, and that the Y axis was reversed.

* Remove unnecesarry using statement for vectors
2017-05-23 14:57:55 -07:00
MrThatKid c04db55f64 Fix up RageTriangle's fmod usage. (#1447)
This fixes the second argument of fmod to be a float, due to the original form not compiling under XCode.
2017-05-13 14:04:32 -07:00
sillybear e92f19c63d [ScreenEdit] Fixed Player NoteField bug when SCREEN_HEIGHT != 480 (#1357) 2017-05-13 11:49:55 -07:00