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.
This fixes a well-formed warning, but does it break anything?
It's not clear off hand. Having this up for discussion.
(Matt McCutchen <[email protected]>: 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.)
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.
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.
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.
Added SetGame method to GameManager.
Altered Stepmania::ChangeCurrentGame() to allow a second input,
selecting which theme will be loaded after game is changed.
---
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