Commit Graph

111 Commits

Author SHA1 Message Date
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
Alexander Griffin c0981c42ec Changing BannerCache into ImageCache to support more imagetypes (#1532) 2017-09-19 14:49:42 -07: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
Tyler Brekke 8f332653e1 Persistent Coins (#1405)
On Coin Insert, a file Save/Coin.ini is created if it does not exist, which stores the number of coins currrently in m_iCoins. Whenever m_iCoins is update, the Coin.ini is updated.

On boot, Coin.ini is read and m_iCoins is set to that value. If coins in coin.ini file is greater then MAX_NUM_CREDITS then reset the value to 0.
2017-02-17 08:21:38 -08:00
Matt McCutchen 4b3507f195 Instantiate MESSAGEMAN first. (#1399)
This fixes a well-formed warning, but does it break anything?

It's not clear off hand. Having this up for discussion.

(Matt McCutchen <matt@mattmccutchen.net>: Cherry picked from commit
a565a27da8c5278846c06585cb6e218ff8f0f1b7 with a conflict resolution.
This commit fixes a crash on startup in MessageManager::Broadcast when I
build StepMania with -DCMAKE_BUILD_TYPE=Release and g++ 6.3.1 on Fedora
25.  Apparently g++ is optimizing out the "this != NULL" on the grounds
that calling a method on a null pointer has undefined behavior, so the
"m_Logging" is a null dereference.)
2017-02-10 06:40:43 -08:00
latot 47b0f83aed Remove WITH_VERSION_INFO, version info by default 2015-10-22 21:21:47 -03:00
Jason Felds b7c62ee645 Missed a spot on Linux. 2015-10-02 22:18:31 -04:00
Jason Felds 99b79e5410 Generate verstub.cpp through raw cmake.
There is no need for an extra program.

As a bonus, generate a consistent windows vdi file.

There is still an issue with actually *reading* the vdi, but that's for someone else to tackle.
2015-10-02 21:56:02 -04:00
Colby Klein a9b061f8f9 Remove hard-coded 480 for high res textures.
Now it reads Common::ScreenHeight from the theme like it should.
2015-08-08 14:12:45 -07:00
Kyzentun Keeslala f6d369372f Changed HOOKS singleton to register itself with lua correctly so that it can be used by lua. 2015-07-08 15:39:00 -06:00
Kyzentun Keeslala 1dca128f79 Added logic to prevent crashing on an invalid initial screen. Added HARDCODED error screen in _fallback for displaying and explaining the error when a theme has an invalid initial screen. 2015-06-06 20:43:39 -06:00
Kyzentun Keeslala e6dc4307b5 Exposed update_centering lua function. Added ScreenOverscanConfig. Added case to RageDisplay_D3D so that BLEND_SUBTRACT doesn't crash. Updated changelog. 2015-06-05 08:48:58 -06:00
Joe dabad23323 BackInEventMode code now works for both players 2015-05-11 20:37:17 +01:00
Kyzentun 912582674c Don't put the song title in the screenshot name because it might contain utf8 which doesn't work on windows, or path garbage, or other stuff that would have to be sanitized. 2015-05-10 10:53:33 -06:00
Kyzentun f3ab635d03 Made screenshot key tag with song title and screen name. 2015-04-25 21:18:42 -06:00
Jason Felds dc94728628 Introduce cmake (min 2.8.12) to StepMania.
tl-dr: view the Build directory to see.

This is intended to replace the project files that we presently maintain
so that only a single set is needed instead of multiples.

The following setups were used for testing:

* Windows 8 and Visual Studio 2013 Desktop Express
* Windows 7 and Visual Studio 2012
* Mac OS X Mavericks and Xcode
* Ubuntu and makefiles
* Fedora 21 and makefiles

All three operating systems can generate projects, compile, link, and
run. Windows and Mac OS X users will find their compiled binary in the
same location as before, but Linux users will be surprised: it goes
straight into the root directory, along with a symlinked GtkModules.so
as appropriate. There is no more need for a manual symlinking step.

Known issues:

* At this time, MinGW likely does not work. Extra time will be needed.
* The WITH_JPEG option may go away, and we'll just always require it.
* Some linux libraries can use the system equivalents, but that is not up yet.

For more information, check out the Build directory.
2015-03-21 20:15:15 -04:00
Jason Felds 39c7e1bb45 Cleaner approach. 2015-01-31 11:14:56 -05:00
Kyzentun 09eede311c LOG->Info takes a char*, not an RString. 2015-01-30 23:41:59 -07:00
Ben "root" Anderson 7a33b8a44a Program version is now in a const from a generated file, not a static macro. Plus all the mess I had to make to get that to work. 2015-01-28 19:21:24 -06:00
Ben "root" Anderson 0d394e269d Declare version_* in only one place. Define them in ver.cpp (at least on autotools). 2015-01-28 16:45:19 -06:00
Kyzentun fb0b48be52 Changed screen width calculations to subtract 1 if the result is odd. 2015-01-21 10:44:16 -07:00
Kyzentun 36d94f272f Fixed --game command line arg to set the current game correctly soe that the correct input mapping is loaded. 2014-12-08 16:39:01 -07:00
sillybear c6fb8a11b9 Allow setting of game type via console command 2014-12-04 02:46:01 +08:00
Kyzentun e22e99251e Added functions to ActorUtil for converting the extension to a file type and changed various places that had lists of extensions to use ActorUtil instead of duplicating the list of extensions. Added webm and wmv to list of video types. 2014-11-09 00:04:47 -07:00
Dan Guzek d1ec94bcd7 touch up style to InsertCredit and InsertCoin
Third time's the charm.
2014-09-01 20:26:55 -04:00
Dan Guzek 6ccbbb4f6f update InsertCoin and InsertCredit functions
These should now agree with kyzentun's suggestions.
2014-09-01 20:03:45 -04:00
Dan Guzek eae5fcb3ba expose InsertCoin and InsertCredit to Lua
This commit exposes InsertCoin() and InsertCredit() to Lua under GAMESTATE.  It adds a check to ensure overall credits don't become negative when deducting and only plays sounds if credits are being added.

Themers are instructed to deduct credits by passing negative values to InsertCoin.
2014-09-01 19:00:00 -04:00
Kyzentun 9b08ab5b52 Created GameLoop::ChangeGame analogous to GameLoop::ChangeTheme. Changed ChangeTheme to use the AfterThemeChangeScreen metric instead of a passed in screen name from the theme being changed away from. ChangeGame uses the AfterGameChangeScreen and AfterGameAndThemeChangeScreen metrics to pick the screen to load after the change. New metrics are optional and default to InitialScreen. Changed ScreenManager::ThemeChanged to not duplicate the code in ReloadOverlayScreens. Fixed ScreenManager::IsScreenNameValid to check with HasMetric before using GetMetric. Changed game ConfOption logic to set the preference and work in a similar way to the theme ConfOption. Added THEME:SetTheme lua function. 2014-08-02 00:38:34 -07:00
sigatrev ce2b729710 SetGame method
Added SetGame method to GameManager.

Altered Stepmania::ChangeCurrentGame() to allow a second input,
selecting which theme will be loaded after game is changed.
2014-08-02 00:38:23 -07:00
Kyzentun f8e1e28286 Exposed StepMania::SaveScreenshot to Lua. Added prefix and suffix args for setting the screenshot name and removed the unused index arg. Added GetHighScore to PlayerStageStats and AddScreenshot to Profile so that Lua can imitate ScreenEvaluation's code for adding a screenshot to the profile. Removed hungarian notation from variable names in StepMania::SaveScreenshot. 2014-06-17 00:29:09 -06:00
freem dd187e204c we actually don't need this anymore, even in releases. (things only freem remembers) 2014-03-07 20:56:51 -06:00
Devin J. Pohly 1220dbe085 Revert "Round 2-2 of this."
This reverts commit 0ae4183f7b.
2013-06-04 23:47:22 -04:00
Jason Felds 0ae4183f7b Round 2-2 of this. 2013-04-16 00:16:02 -04:00
Devin J. Pohly f68d921d4c we don't need an extra variable here 2013-01-25 18:02:57 -05:00
Jason Felds 5fd75f49ce Nothing against goto, but this must goto trash.
...ugh. Bad pun.
2013-01-24 22:18:24 -05:00
phantom 5fa1e3d2a0 Splash should show up properly now. 2013-01-01 17:40:29 +01:00
Devin J. Pohly bd0e2074ad replace ASSERT(0) with useful fail messages 2012-12-27 16:59:35 -05:00
Jason Felds 1fc16698ba War on -Werror, part 12: explicit bool usage.
It may save a few cycles, but it's best to be
explicit on boolean operations, especially with
ASSERT.
2012-12-27 11:38:53 -05:00
Colby Klein 8146ced92a Load up GLES2 renderer if specified in Preferences 2012-12-09 03:01:38 -08:00
Jason Felds 00f7991759 Temporarily disable the version checker properly.
Sorry Aldo, but I still want this to point
to the proper version of SM5. ;)
2012-05-21 21:47:19 -04:00
AJ Kelly 96969ce4e8 only run update logic after applying command line options; allows --ExportLuaInformation to run without requiring user input 2012-05-21 13:14:23 -05:00
Aldo Fregoso 09f369cd33 Imported the check for updates code from StepMania AMX.
---
TODO: Move the code from NSMAN to a new class
TODO: HOOKS->GetURL for Linux
TODO: Do not run the check every time the game is launched, use:
PREFSMAN->m_iUpdateCheckIntervalSeconds - Seconds to wait before running the next check
PREFSMAN->m_iUpdateCheckLastCheckedSecond - Timestamp of the last check
2012-05-21 02:29:59 -05:00
Jonathan Payne cd3fc694cc revert comments 2012-03-17 00:27:05 -07:00
Jonathan Payne 4d4856495a force portable mode for now. let's see how bad this breaks things. 2012-02-23 16:26:54 -08:00
AJ Kelly c65b453e70 [StepMania.cpp] Fix initial aspect ratio on first boot, hopefully. (See issues 6 and 27) 2011-12-23 14:09:16 -06:00
AJ Kelly dfefecaa25 just some small comment cleanup 2011-12-15 21:03:14 -06:00
Jonathan Payne c6498250b2 [default] hotkey to refresh noteskins without having to refresh everything 2011-10-14 15:18:55 -07:00
AJ Kelly a8031d4b11 attempt to fix the resolution problem by going back to the old code 2011-09-23 16:00:23 -05:00
AJ Kelly 4e3a15d587 let's try handling this aspect ratio thing a little differently... 2011-08-20 13:16:15 -05:00
Colby Klein 75c8b0949c Disable automatic aspect ratio guessing, default to 854x480 (16:9 because most newer displays are wide). 2011-08-19 13:22:44 -07:00