stepmania/stepmania — pull request #36 by kyzentun (2014-02-12 05:08:55+00:00)
Title: Miscellaneous bug fixes and features.

Bug fixes:
combo_graph_height_fix
-- This diff fixes http://ssc.ajworld.net/sm-ssc/bugtracker/view.php?id=1091
The ComboGraph on ScreenEvaluation will not be the right size without this.

miscounted_hold_points_fix
-- ScoreKeeperNormal had a bug where it was adding the value of a hold to the current possible dance points twice.

misleading_comment_in_style.h
-- Comment in Style.h said something is unused when it is not unused. Changed to explain how the thing is actually used.

getcredits_fix
-- See comment in GetCreditsRequiredToPlayStyle in GameCommand.cpp.

Features:
crazy_sprites
-- This implements a custom vertex position feature for sprites. This
implementation is probably not a good way of providing this feature, but
is used to shape the custom GraphDisplay on ScreenEvaluation.
The functions added are Sprite:SetCustomPosCoords and
Sprite:StopUsingCustomPosCoords, and are documented in Lua.xml.

crazy_text
-- This implements a random distortion function for BitmapText. Flip
"global_distortion_mode" in "Scripts/01 misc.lua" to true until you get
bored of the distorted text.
The functions added are BitmapText:distort and BitmapText:undistort, and
are documented in Lua.xml.

get_combo_list
-- This implements http://ssc.ajworld.net/sm-ssc/bugtracker/view.php?id=1098
This is used to make a custom replacement for ComboGraph.
The function added is PlayerStageStats:GetComboList, documented in Lua.xml.

get_life_record
-- This exposes the C++ function PlayerStageStats::GetLifeRecord to Lua.
This is used to make a custom replacement for GraphDisplay.
The function added is PlayerStageStats:GetLifeRecord, documented in Lua.xml.

make_playmusicpart_loopable
-- This adds the "loop" and "ApplyRate" arguments to SOUND:PlayMusicPart.
This is used to make the sample music on ScreenSelectMusic loop.
The changes are documented in Lua.xml.

resetspeed_mod
-- This implements http://ssc.ajworld.net/sm-ssc/bugtracker/view.php?id=1097

joininput_exposed
-- This exposes GameState::JoinInput() to Lua because I don't use
ScreenSelect and this seemed like a good way to make sure coins were
decremented when a player joined.

SetAllowLateJoin
-- This changes Screen::AllowLateJoin to return the value of a member
variable. It's still virtual, so it's still overridden by all the built in
screen classes, but this way the member variable can be set throught from
lua through the function Screen:SetAllowLateJoin. I don't use the built in
ScreenSelectMusic, but I wanted to allow late joining on my lua based
replacement for it.

MAX_SONGS_PER_PLAY = 128
-- Because I have a replacement for the stage system, and I can't find a good
way to disable it without making event mode misbehave.

SetCurCombo
-- This adds GAMESTATE:SetCurCombo because I want combos to carry over between
songs, and that feature was removed. PlayerStageStats::UpdateComboList has
the argument "bRollover" and some related logic, so it looks like somebody
intended it to fill that role, but it doesn't work.
So SetCurCombo exists as a workaround until I feel like disentangling why
PlayerStageStats::Init gets called a dozen times every time a song starts.