Added a note to example 3 specifying that it was demonstrating the
"float" property.
Added information about functionality I only just realized existed: the
ability to draw outside of the screen's draw cycle.
When an ActorFrame's parent has a diffuse or glow, the ActorFrame uses
the static tempState in Actor::PreDraw(); When the ActorFrame draw's
it's children, those children also use tempState because their parent
has a diffuse( making their internalDiffuse not 1,1,1,1 ). If any child
is diffused it'll will change tempState, which will affect the
internalDiffuse given to the next child, and so on.
By determining the diffuse and glow to be passed to the children before
drawing any of them, any changes to tempState will not affect the
diffuse of subsequent children.
diffuse from BitmapText attributes were not receiving internal diffuse
from their parent ActorFrames. This change waits until after the draw
cycle to reset the internal diffuse and glow, so any color applications
separate from generic diffuse can use the internal diffuse when desired.
I intend to make additional useful information available on judgments,
such as TapNoteType and TapNoteSubType( for hold judgments ).
I am submitting this part as a separate pull request because it is more
generally applicable to anything TapNote related.
It is useful to have Player SongPositions update off of ScreenGameplay
for use with things like ArrowEffects.
ScreenGameplay, ScreenHowToPlay, and ScreenEdit stop GameSoundManager
from running GameState:UpdateSongPosition and do it themselves, so this
has no impact on the screen classes that cared about, and thus updated,
player SongPositions.
PlayMusicPart does not immediately start the new music. IsTimingDelayed
will return true until the new music has started.
The "applyRate" argument of PlayMusicPart was being applied to the
"align_beat" property. Added an additional argument to for "align_beat"
and made "applyRate" work properly.
Added SetGame method to GameManager.
Altered Stepmania::ChangeCurrentGame() to allow a second input,
selecting which theme will be loaded after game is changed.
I intend to make additional useful information available on judgments,
such as TapNoteType and TapNoteSubType( for hold judgments ).
I am submitting this part as a separate pull request because it is more
generally applicable to anything TapNote related.
It is useful to have Player SongPositions update off of ScreenGameplay
for use with things like ArrowEffects.
ScreenGameplay, ScreenHowToPlay, and ScreenEdit stop GameSoundManager
from running GameState:UpdateSongPosition and do it themselves, so this
has no impact on the screen classes that cared about, and thus updated,
player SongPositions.
PlayMusicPart does not immediately start the new music. IsTimingDelayed
will return true until the new music has started.
The "applyRate" argument of PlayMusicPart was being applied to the
"align_beat" property. Added an additional argument to for "align_beat"
and made "applyRate" work properly.
Added SetGame method to GameManager.
Altered Stepmania::ChangeCurrentGame() to allow a second input,
selecting which theme will be loaded after game is changed.
and exposed all arrow effects functions. This can allow themed elements
to move with columns during gameplay, such as column specific judgments,
flashes, or whatever else.
NoteField board was already an AutoActor, but code was requiring it to
be a derivative of Sprite. Allow any ActorClass to be used.
NoteField could already be accessed from below, using GetParent() on the
NoteField Board. For ease of allowing the board to be used for player
specific purposes, make notefield an actual child of Player, so the
Board can be accessed per player from the top down.
NoteDataUtil::GetTotalHoldTicks() was not counting the last tick of
holds which ended on the last row of the song. Extended the range to
include the last row.
NoteDataUtil::GetTotalHoldTicks() was counting number of rows held, when
it should only count 1 regardless of number( at least to mimic pump )
Player::CrossedRows() was assuming a constant tick rate over the crossed
rows, leading to potentially inaccurate tick counts.
Pump holds were counting "HoldNote_Held" due to capitalization in the
metrics. Fixed metrics and made "IsGame" function case insensitive.
AMV is an actor which can have a variable number of vertices that can
each be given their own pos, color, and coords. They can be drawn using
any of the RageSpriteVertex draw functions in RageDisplay.cpp. The
vertex properties can be tweened.
ScreenProfileLoad and ScreenProfileSave do nothing except use their own
lua methods to run GameState functions. Those functions might as well be
available as GameState methods.
Added an HNS type to handle holds which are never initialized due to
missed taps. This fixes a long standing issue with
iCurPossibleDancePoints and allows themes to decide how to handled this
case.