Commit Graph

4992 Commits

Author SHA1 Message Date
Martin Natano baa5de4cd2 Fix BinaryToHex()
Previously the function stopped short on nul bytes ("\0") due to usage
of the SArg() macro, which does not retrieve the length of the lua
string.

before the fix: `BinaryToHex("a\0b")` -> `"61"`
after the fix: `BinaryToHex("a\0b")` -> `"610062"`
2021-09-19 22:27:09 +02:00
Crystal Squirrel 5d4a6cf903 Fix std::stoi bad behaviour closes #2130
Patched with outfox upstream, this restores BG as it is expected
2021-08-14 21:29:48 +01:00
quietly-turning 6bd6963406 Revert "Merge pull request #1888 from mwkroening/notes_loader-invalid_argument"
This reverts commit 56caf6da4b.
2021-08-14 21:25:27 +01:00
din d67cbcf5c1 Fix lighting typo. 2021-06-01 12:09:46 -05:00
Tracy Ward 984dc8668f fix minor merge error in comment 2021-03-23 03:33:26 -04:00
Crystal Squirrel f1f76bc71b Merge pull request #2103 from DinsFire64/5_1-new
stac support & Linux LED refactor (2078)
2021-03-23 04:42:05 +00:00
din 67b2d06406 Linux_LED refactor 2021-03-22 23:40:05 -05:00
Crystal Squirrel 521b09ea1f Merge pull request #2071 from Davidian1024/not_a_joystick_exceptions
Added an exception to the "not a joystick" logic for the RedOctane USB Pad.
2021-03-23 04:25:47 +00:00
din fa4109b652 stac support 2021-03-21 13:42:03 -05:00
Gareth Francis aeb5c7598f Handle exceptions in int conversions (#2092)
* RageUtil: Add exception-safe wrappers around std::stoi, stol, stoll

* Replace use of std::stoi with exception-safe StringToInt
2021-02-15 12:36:51 -08:00
Crystal Squirrel 3f756be055 Merge pull request #2084 from natano/input-mapping-disambiguate
Mark keypad buttons as such in the input mapping screen
2021-01-28 08:51:40 +00:00
Crystal Squirrel ba4a25d04e Merge pull request #2062 from FMS-Cat/RateModsAffectFGChanges
feature: Add a preference, RateModsAffectFGChanges
2021-01-28 08:50:12 +00:00
Martin Natano 5c27754b39 Mark keypad buttons as such in the input mapping screen
Both the slash key and the numpad slash key were displayed as 'Key /',
so it's not obvious to the user which key actually has been bound. Let's
display them as 'Key /' and 'KP /' instead. Same for other KP keys.
2021-01-18 21:54:30 +01:00
Colby Klein aab36dae8d macos apparently wants the arm64 define instead sometimes 2021-01-08 08:37:44 -08:00
Colby Klein 261daef933 fix build and no audio out on macOS 11, closes issue #2080 2021-01-08 07:58:35 -08:00
din a7f666ecdb PIUIO Btn board lights, menu lights added. (#2073) 2020-12-17 11:45:58 -08:00
David Brinovec da92003005 Added an exception to the "not a joystick" logic for the RedOctane USB Pad. 2020-11-27 17:24:25 -05:00
Arusekk 95d782d3fc input: Low-effort X11 mouse support (#2042)
A simple wrapper around XLookupKeysym, which does not return
expected XK_Pointer_* for button events.
Tested on Gentoo Linux.
2020-11-23 12:21:17 -08:00
FMS-Cat b457c098d8 comment: fix incorrect comments 2020-10-20 13:24:44 +09:00
FMS-Cat 7d2a70db23 feat (RateModsAffectFGChanges): Actually implemented
I'm trying to transfer the nITG implementation for now
2020-10-20 02:16:02 +09:00
FMS-Cat a6dd6f4ad7 feat (RateModsAffectFGChanges): add a PREFSMAN RateModsAffectFGChanges 2020-10-20 01:38:55 +09:00
Tracy Ward 6a645b4710 Fix CMake error when configuring with WITH_LIBXTST=NO (#2060) 2020-10-06 13:25:19 -07:00
quietly-turning 3968c94782 Merge pull request #2043 from Arusekk/wreturn-type
Fix -Wreturn-type and its undefined behavior
2020-09-15 19:48:15 -04:00
din 771d0a1c7d check pacdrive functions before calling them
Before, if the PacDrive32.dll provided by Ultimarc wasn't found,
stepmania would attempt to write to the Pac-Drive anyway, resulting in a
call on a null pointer.

This adds a quick check against PacDriveConnected during the update, and
checks if the pacdrive functions exist before calling them.
2020-09-14 23:20:56 -04:00
Kevin Turner 2f97420f81 Updated light-setting code to use switch statements
I will say, the version of this that didn't have break statements had
way, way more flashy light patterns than the boring, correctly
functioning version of this.

Also, the preference now defaults to "minimaid"
2020-09-11 16:48:07 -04:00
Kevin Turner ad2825ba3c Cleaned up if-else code and made pref check case-insenstive 2020-09-11 16:46:07 -04:00
Kevin Turner 47d6d82962 Add preference to change PacDrive light ordering
The currently proposed light ordering presents a problem for those who have bought a LumenAR or have followed the OpenITG standard for wiring lights. With this change, the default ordering stays the same, but users have the option to define "openitg" or "lumenar" as their preferred light ordering in Preferences.ini under the newly defined "PacDriveLightOrdering" preference.
2020-09-11 16:45:42 -04:00
quietly-turning 72cd6edf5c give Lua access to tomcrypt's SHA256
This adds Lua hooks to CryptManager for libtomcrypt's SHA256 hash
function.  It follows along with the C++ patterns Glenn wrote a decade
and a half ago for CryptMananger's MD5 and SHA1 hooks.

StepMania's CMakeProject-tomcrypt file has been updated to build with
sha256 symbols.  Invoking cmake to build with system tomcrypt works fine
as-is.

Note that these functions return binary formatted strings, but themers
can convert to hexadecimal format using the global Lua function
BinaryToHex().
2020-09-09 15:37:01 -04:00
quietly turning fdef606b46 expose RageUtil's BinaryToHex to Lua
The hashing functions that CryptManger currently exposes to Lua
return hash strings formatted in binary.  Themes using those hash
functions may want to compare hex strings.

RageUtil already had a BinaryToHex utility; this commit exposes it
as a global function, following along with other utility functions
in RageUtil.
2020-09-09 15:16:24 -04:00
Arusekk 74331b6b3c Fix -Wreturn-type and its undefined behavior
Silence the following warning message:
src/NotesWriterSM.cpp:260:11: warning: control reaches end of non-void function [-Wreturn-type]

This warning had meaningful implications for some reason.
When I compiled the current version with stack protector enabled,
GCC optimized out successful return from the function, and encouraged
undefined behavior far less intuitive than an unspecified value.

Whenever saving a steps file on a -DCMAKE_BUILD_TYPE=Release build,
the game printed a message about stack protection violation,
and aborted itself, even though no violation took place.

GCC version:
gcc (Gentoo 10.2.0 p1) 10.2.0
2020-07-28 21:43:07 +02:00
Ben Kirzhner b959bcfc39 Merge branch '5_1-new' into catalina-workaround 2020-07-04 21:49:03 -07:00
Colby Klein 39d516f6de simplified FTOC for aarch64
this isn't actually a good solution, really RageVColor shouldn't be
doing this conversion at all and should be refactored/removed.

this gets gameplay running a bit smoother, much closer to holding 60fps
2020-06-27 09:54:58 -07:00
quietly-turning 2b11f88b81 Merge branch '5_1-new' into tomcrypt-header 2020-06-25 21:53:21 -04:00
quietly-turning 89229ed915 Merge pull request #1855 from mwkroening/gtk3
Upgrade to gtk3
2020-06-24 17:49:14 -04:00
Colby Klein 6c48eb3d5c Fix compile on raspberry pi 4/A72
Game runs pretty close to fine, needed to use system libpng and haven't
attempted to use ffmpeg, however.

I'm seeing in the 50fps range in gameplay with no performance tweaks
but having set -mtune=cortex-a72. There's a lot of perf opportunities,
so consistent 60 is certainly within reason without too much pain.
2020-06-23 16:58:00 -07:00
Seán de Búrca 6649a116ed Update gtk+ LoadingWindow to use gtk3 2020-06-21 23:31:02 +02:00
Martin Kröning 43ecbf918b Use standard tomcrypt header 2020-06-21 22:55:00 +02:00
Martin Kröning 7ecc7b262b Upgrade libpng to tag v1.6.37
gtk_image_new_from_file results in a segmentation fault with the new version.
2020-06-20 12:37:56 +02:00
Martin Kröning 37e60ffc97 Adjust to vanilla libpng 2020-06-20 12:35:04 +02:00
Martin Kröning 092cffa182 Find system jsoncpp via pkg-config, add system include 2020-06-18 23:27:12 +02:00
Martin Kröning 960c57c4f3 Only add bundled inc dirs, when using bundled libs
Fixes #1881
2020-06-18 22:36:02 +02:00
Martin Kröning f075d6a617 JsonUtil: Adapt functions to vanilla jsoncpp 2020-06-18 20:56:40 +02:00
Arusekk 46f3e8aa9d Unix backtrace call detection
If the supposed return address is a pointer to the beginning of an
executable page, and the page before is an oversized file mapping,
like vvar before vdso, the backtrace would be terminated by SIGBUS.

To avoid this, check not for readable, but for executable instead.
2020-06-17 10:04:54 +02:00
Martin Kröning 98e1a20cc3 Don't disable exceptions on macOS 2020-06-13 23:36:10 +02:00
Martin Kröning 67bce17382 Extract logic to NoteDataUtil::StringInterpretsAs 2020-06-13 23:36:10 +02:00
Martin Kröning dc25295879 Catch stoi invalid_argument in BGCHANGES 2020-06-13 23:35:33 +02:00
Martin Kröning 10e3a2f2e8 Don't cast doubles to enums
C:\Repos\StepMania\src\Grade.cpp(56): error C2440: 'type cast': cannot convert from 'double' to 'Grade' [C:\Repos\StepMania\Build\src\StepMania.vcxproj]
  C:\Repos\StepMania\src\Grade.cpp(56): note: Conversions between enumeration and floating point values are no longer allowed
2020-06-13 15:40:50 +02:00
RhythmLunatic b300bb516d Format it like the other lines 2020-06-12 15:21:08 -05:00
RhythmLunatic 0befd8bf10 Write description tag to cache 2020-06-12 15:19:26 -05:00
quietly turning 3ba2b8ba54 fix Course.cpp for 5_1-new
random_up_to() was written for SM5.2 and RageUtil's RandomInt() seems
a suitable replacement for 5_1-new.
2020-06-07 20:09:37 -04:00