[default -> sm130futures] Update the branch.
This commit is contained in:
@@ -15,6 +15,12 @@ sm-ssc $NEXTVERSION | 2011????
|
||||
It depends on who you ask.
|
||||
It could be v1.2.5, it could be v1.3.0, it could even be StepMania 5.
|
||||
|
||||
20110402
|
||||
--------
|
||||
* Fix a crash (issue 247) when exiting Practice mode from dance-solo,
|
||||
dance-threepanel, and popn-nine (all of which can only have one player).
|
||||
If you find any other modes this crashes on, let us know. [AJ]
|
||||
|
||||
20110329
|
||||
--------
|
||||
* [ScreenEdit] Changed sample playback button to L. [AJ]
|
||||
|
||||
@@ -64,6 +64,7 @@ OverlayScreens="ScreenSystemLayer,ScreenSyncOverlay,ScreenStatsOverlay,ScreenDeb
|
||||
PercentScoreDecimalPlaces=2
|
||||
|
||||
# 02 #
|
||||
|
||||
[LightsManager]
|
||||
# Mostly useless since it doesn't work, as well as that barely anyone has
|
||||
# lights to play around with.
|
||||
@@ -128,6 +129,7 @@ AutoLockChallengeSteps=false
|
||||
UnlockNames=""
|
||||
|
||||
# 03 #
|
||||
|
||||
[ArrowEffects]
|
||||
# Complicated stuff you probably shouldn't ever mess with or else you'll
|
||||
# destroy mods completely!
|
||||
@@ -233,6 +235,11 @@ FormatString="%03.0f"
|
||||
|
||||
[CodeDetector]
|
||||
# Codes on the MusicWheel that change stuff!
|
||||
# For Future Reference:
|
||||
# @ = Holding
|
||||
# - = In Conjuction With / Then
|
||||
# ~ = Released
|
||||
# + = At The Same Time
|
||||
PrevSteps1="Up,Up"
|
||||
PrevSteps2="MenuUp,MenuUp"
|
||||
NextSteps1="Down,Down"
|
||||
@@ -279,6 +286,7 @@ SaveScreenshot1="MenuLeft-MenuRight"
|
||||
SaveScreenshot2=""
|
||||
CancelAllPlayerOptions="Left,Right,Left,Right,Left,Right"
|
||||
BackInEventMode=""
|
||||
|
||||
[CodeDetectorOnline]
|
||||
Fallback="CodeDetector"
|
||||
PrevSteps1="MenuUp,MenuUp"
|
||||
@@ -337,6 +345,7 @@ TipShowTime=4
|
||||
TipSwitchTime=1
|
||||
# The Command when its made
|
||||
TipOnCommand=shadowlength,0;diffuseblink
|
||||
|
||||
[Judgment]
|
||||
# New #
|
||||
JudgmentOnCommand=
|
||||
@@ -438,6 +447,7 @@ PumpRoutineString="Routine"
|
||||
# Difficulty_Edit-StepsType_Pump_Halfdouble=Edit
|
||||
# Difficulty_Edit-StepsType_Pump_Double=Edit
|
||||
# Course=Progressive
|
||||
|
||||
[CustomScoring]
|
||||
# Custom scoring, usually good for custom games.
|
||||
|
||||
@@ -464,6 +474,7 @@ PointsCheckpointMiss=-5
|
||||
PointsNone=0
|
||||
PointsHoldHeld=+5
|
||||
PointsHoldLetGo=-5
|
||||
|
||||
[DifficultyList]
|
||||
# A list that shows difficulties in a song.
|
||||
CapitalizeDifficultyNames=false
|
||||
@@ -585,6 +596,7 @@ StreamX=0
|
||||
StreamY=0
|
||||
OverX=0
|
||||
OverY=0
|
||||
|
||||
[LifeMeterBattery]
|
||||
# The bar that shows up in Oni mode.
|
||||
|
||||
@@ -627,7 +639,6 @@ DancePointsP2Y=0
|
||||
DancePointsP2OnCommand=zoom,0.7;shadowlength,0;diffuse,PlayerColor(PLAYER_2)
|
||||
DancePointsP2OffCommand=
|
||||
|
||||
|
||||
[LifeMeterTime]
|
||||
# The Lifemeter that shows up when you're playing survival.
|
||||
|
||||
@@ -838,16 +849,19 @@ PortalColor=color("1,0,0,1")
|
||||
|
||||
SortOrders={ "SortOrder_Preferred", "SortOrder_Group", "SortOrder_Title", "SortOrder_BPM", "SortOrder_Artist", "SortOrder_Genre" }
|
||||
# SortOrders={ "SortOrder_Preferred", "SortOrder_Group", "SortOrder_Title", "SortOrder_BPM", "SortOrder_Popularity", "SortOrder_Artist", "SortOrder_Genre" }
|
||||
#
|
||||
|
||||
ShowRoulette=true
|
||||
ShowRandom=false
|
||||
ShowPortal=false
|
||||
#
|
||||
|
||||
SortBPMDivision=20
|
||||
SortLengthDivision=5
|
||||
|
||||
MostPlayedSongsToShow=30
|
||||
RecentSongsToShow=30
|
||||
#
|
||||
|
||||
UseEasyMarkerFlag=false
|
||||
#
|
||||
|
||||
ModeMenuChoiceNames="Preferred,Group,Title,Bpm,Popularity,TopGrades,Artist,EasyMeter,MediumMeter,HardMeter,ChallengeMeter,DoubleEasyMeter,DoubleMediumMeter,DoubleHardMeter,DoubleChallengeMeter,Genre,Length,Recent"
|
||||
# ModeMenuChoiceNames="Preferred,Group,Title,Bpm,Popularity,TopGrades,Artist,EasyMeter,MediumMeter,HardMeter,ChallengeMeter,DoubleEasyMeter,DoubleMediumMeter,DoubleHardMeter,DoubleChallengeMeter,Genre,Length,Recent,NormalMode,BattleMode"
|
||||
ChoicePreferred="sort,Preferred"
|
||||
@@ -870,7 +884,7 @@ ChoiceLength="sort,Length"
|
||||
ChoiceRecent="sort,Recent"
|
||||
ChoiceNormalMode="playmode,regular"
|
||||
ChoiceBattleMode="playmode,battle"
|
||||
#
|
||||
|
||||
CustomWheelItemNames=""
|
||||
|
||||
[CourseWheel]
|
||||
@@ -1098,7 +1112,6 @@ TextOffCommand=
|
||||
|
||||
[ScoreDisplayOni]
|
||||
|
||||
|
||||
[ScoreDisplayLifeTime]
|
||||
FrameX=
|
||||
FrameY=
|
||||
@@ -1248,6 +1261,7 @@ SoundProperty="Pitch"
|
||||
PropertyMin=7/8
|
||||
PropertyCenter=1.0
|
||||
PropertyMax=9/8
|
||||
|
||||
[StepsDisplayListRow]
|
||||
FrameX=0
|
||||
FrameY=0
|
||||
@@ -1324,6 +1338,7 @@ ShowTraining=false
|
||||
BlinkPlayersBest=true
|
||||
|
||||
# 04 #
|
||||
|
||||
[Screen]
|
||||
ScreenInitCommand=
|
||||
ScreenOnCommand=
|
||||
@@ -1374,6 +1389,7 @@ HeaderTextOffCommand=
|
||||
|
||||
LineOnCommand=zoom,0.75
|
||||
#
|
||||
|
||||
[ScreenSystemLayer]
|
||||
Class="ScreenSystemLayer"
|
||||
Fallback="Screen"
|
||||
@@ -1424,6 +1440,7 @@ Fallback="Screen"
|
||||
StatusOnCommand=x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+150;shadowlength,2;strokecolor,color("#000000");
|
||||
AdjustmentsOnCommand=x,SCREEN_CENTER_X+160;y,SCREEN_CENTER_Y;
|
||||
#
|
||||
|
||||
[ScreenStatsOverlay]
|
||||
Class="ScreenStatsOverlay"
|
||||
Fallback="Screen"
|
||||
@@ -1437,6 +1454,7 @@ SkipOnCommand=zoom,0.5
|
||||
SkipWidth=190
|
||||
SkipSpacingY=14
|
||||
#
|
||||
|
||||
[ScreenWithMenuElements]
|
||||
Class="ScreenWithMenuElements"
|
||||
Fallback="Screen"
|
||||
@@ -1831,6 +1849,7 @@ PerChoiceIconElement=false
|
||||
ShowScroller=true
|
||||
WrapScroller=true
|
||||
ShowIcon=false
|
||||
|
||||
[ScreenGameInformation]
|
||||
Class="ScreenSelectMaster"
|
||||
Fallback="ScreenSelectMaster"
|
||||
@@ -1955,6 +1974,7 @@ ScreenModsCommand=setupcoursestagemods
|
||||
#
|
||||
MusicWheelType="CourseWheel"
|
||||
Codes="CourseCodeDetector"
|
||||
|
||||
[CourseCodeDetector]
|
||||
Fallback="CodeDetector"
|
||||
NextSort1=
|
||||
@@ -1962,7 +1982,6 @@ NextSort2=
|
||||
NextSort3=
|
||||
NextSort4=
|
||||
|
||||
|
||||
[StepsDisplay]
|
||||
FrameX=0
|
||||
FrameY=0
|
||||
@@ -2516,6 +2535,7 @@ ExplanationTogetherOffCommand=
|
||||
|
||||
[ScreenOptionsServiceExtendedChild]
|
||||
Fallback="ScreenOptionsServiceChild"
|
||||
|
||||
[ScreenMiniMenu]
|
||||
Class="ScreenMiniMenu"
|
||||
Fallback="ScreenOptions"
|
||||
@@ -2835,12 +2855,14 @@ Line16="list,Steps"
|
||||
Line17="list,Characters"
|
||||
|
||||
#
|
||||
|
||||
[ScreenPlayerOptionsRestricted]
|
||||
Fallback="ScreenPlayerOptions"
|
||||
NextScreen="ScreenStageInformation"
|
||||
LineNames="1,8,16,17"
|
||||
|
||||
# funny
|
||||
|
||||
[ScreenSongOptions]
|
||||
Fallback="ScreenOptions"
|
||||
Class="ScreenSongOptions"
|
||||
@@ -2875,6 +2897,7 @@ AllowStartToSkip=false
|
||||
PrepareScreen=
|
||||
|
||||
# 05 # A
|
||||
|
||||
[ScreenExit]
|
||||
# Midiman:
|
||||
# Fun fact, if you don't enable this screen, Force Crashing will hang
|
||||
@@ -3287,6 +3310,7 @@ DisqualifiedP2OffCommand=
|
||||
#
|
||||
DetailLineFormat="%3d/%3d"
|
||||
#
|
||||
|
||||
[ScreenEvaluationNormal]
|
||||
Fallback="ScreenEvaluation"
|
||||
#
|
||||
@@ -3339,11 +3363,13 @@ NextScreen=Branch.AfterProfileSave()
|
||||
PrevScreen=Branch.TitleMenu()
|
||||
#
|
||||
TimerSeconds=-1
|
||||
|
||||
[ScreenProfileSaveSummary]
|
||||
Fallback="ScreenProfileSave"
|
||||
#
|
||||
NextScreen="ScreenGameOver"
|
||||
PrevScreen="ScreenGameOver"
|
||||
|
||||
[ScreenGameOver]
|
||||
Class="ScreenEnding"
|
||||
Fallback="ScreenAttract"
|
||||
@@ -3406,6 +3432,7 @@ Answer3Of3OffCommand=
|
||||
#
|
||||
# stuff for edit mode:
|
||||
#
|
||||
|
||||
[ScreenOptionsEdit]
|
||||
Class="ScreenOptionsMaster"
|
||||
Fallback="ScreenOptionsSimpleService"
|
||||
@@ -3534,6 +3561,7 @@ TimerSeconds=-1
|
||||
HelpText=Screen.String("HelpTextOptionsAndBack")
|
||||
|
||||
# could use a redo but whatever
|
||||
|
||||
[ScreenEdit]
|
||||
Class="ScreenEdit"
|
||||
Fallback="ScreenWithMenuElementsBlank"
|
||||
@@ -3639,6 +3667,7 @@ OutCancelCommand=
|
||||
Fallback="StepsDisplay"
|
||||
|
||||
# oh, right, minimenus.
|
||||
|
||||
[ScreenMiniMenuEditHelp]
|
||||
Fallback="ScreenMiniMenu"
|
||||
ShowFooter=false
|
||||
@@ -3700,6 +3729,7 @@ Fallback="ScreenMiniMenu"
|
||||
Fallback="ScreenMiniMenu"
|
||||
|
||||
# Export Packages
|
||||
|
||||
[ScreenOptionsExportPackage]
|
||||
Class="ScreenOptionsExportPackage"
|
||||
Fallback="ScreenOptionsSimpleService"
|
||||
@@ -3717,6 +3747,7 @@ Fallback="OptionRowService"
|
||||
TitleX=SCREEN_CENTER_X-150
|
||||
|
||||
# Manage Courses
|
||||
|
||||
[OptionRowCourseOverview]
|
||||
Fallback="OptionRowService"
|
||||
ItemsLongRowSharedX=SCREEN_CENTER_X-100
|
||||
@@ -3765,6 +3796,7 @@ EditScreen="ScreenOptionsEditCourse"
|
||||
OptionRowNormalMetricsGroup="OptionRowCourseOverview"
|
||||
|
||||
# visual/interactive syncing
|
||||
|
||||
[ScreenGameplaySyncMachine]
|
||||
Class="ScreenGameplaySyncMachine"
|
||||
Fallback="ScreenGameplay"
|
||||
@@ -3794,6 +3826,7 @@ Fallback="Player"
|
||||
ComboOnCommand=visible,false
|
||||
|
||||
# sm-ssc helper screens
|
||||
|
||||
[ScreenHowToInstallSongs]
|
||||
Class="ScreenSplash"
|
||||
Fallback="ScreenSplash"
|
||||
@@ -3804,6 +3837,7 @@ TimerSeconds=-1
|
||||
ShowHelp=false
|
||||
|
||||
# stuff for online mode:
|
||||
|
||||
[ScreenSMOnlineLogin]
|
||||
Class="ScreenSMOnlineLogin"
|
||||
Fallback="ScreenOptionsServiceChild"
|
||||
@@ -4048,6 +4082,7 @@ UserOnCommand=
|
||||
UserOffCommand=
|
||||
|
||||
# Arcade
|
||||
|
||||
[ScreenLogo]
|
||||
Fallback="ScreenAttract"
|
||||
#
|
||||
@@ -4111,6 +4146,7 @@ ChoiceNames="1"
|
||||
IdleCommentSeconds=-1
|
||||
IdleTimeoutSeconds=-1
|
||||
IdleTimeoutScreen=Branch.AfterInit()
|
||||
|
||||
[ScreenDemonstration]
|
||||
Fallback="ScreenGameplay"
|
||||
Class="ScreenDemonstration"
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
[Screen]
|
||||
HelpText=&BACK; Exit &START; Select &SELECT; Options &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Move
|
||||
|
||||
[ScreenWithMenuElements]
|
||||
HelpText=&BACK; Exit &START; Select &MENULEFT;&MENURIGHT; Move
|
||||
|
||||
[ScreenTitleMenu]
|
||||
HelpText=&BACK; Exit &START; Select &MENUUP;&MENUDOWN; Move
|
||||
Network OK=Network OK
|
||||
@@ -10,6 +12,7 @@ Connected to %s=Connected to %s
|
||||
CurrentGametype=Current Gametype: %s
|
||||
LifeDifficulty=Life Difficulty: %s
|
||||
TimingDifficulty=Timing Difficulty: %s
|
||||
|
||||
[ScreenTitleJoin]
|
||||
HelpText=Press &START; to Play
|
||||
HelpTextJoin=Press &START; to Play
|
||||
@@ -19,16 +22,22 @@ JointPremiumMain=Joint Premium
|
||||
JointPremiumSecondary=Two players can play with one credit!
|
||||
DoublesPremiumMain=Doubles Premium
|
||||
DoublesPremiumSecondary=Play doubles for one credit!
|
||||
|
||||
[ScreenDemonstration]
|
||||
Demonstration=Demonstration
|
||||
|
||||
[ScreenQuickSetupOverview]
|
||||
Explanation=Quick Setup provides a easy way to set commonly-changed and useful preferences.
|
||||
|
||||
[ScreenProfileLoad]
|
||||
HelpText=... Loading profiles, please wait ...
|
||||
|
||||
[ScreenSelectProfile]
|
||||
HelpText=&MENUUP;&MENUDOWN; Switch Profile &START; Choose/Join &BACK; Unselect
|
||||
|
||||
[ScreenSelectMaster]
|
||||
HelpText=&BACK; Exit &START; Select / Join &MENULEFT;&MENURIGHT; Move
|
||||
|
||||
[ScreenSelectPlayMode]
|
||||
HelpText=&BACK; Exit &START; Select / Join &MENULEFT;&MENURIGHT; Move
|
||||
EasyExplanation=A mode for beginners.
|
||||
@@ -39,31 +48,40 @@ RaveExplanation=Battle against friend or foe.
|
||||
ExtendedExplanation=Several Songs in a row
|
||||
OniExplanation=A true test of skill.
|
||||
EndlessExplanation=It don't stop, it keep rollin'.
|
||||
|
||||
[ScreenSelectPlayStyle]
|
||||
HelpText=&BACK; Exit &START; Select &MENULEFT;&MENURIGHT; Move
|
||||
|
||||
[ScreenGameInformation]
|
||||
HelpText=&BACK; Exit &START; Skip
|
||||
|
||||
[ScreenSelectMusic]
|
||||
HelpText=&BACK; Exit &START; Select / Join &SELECT; Magic Codes &MENULEFT;&MENURIGHT; Move::&AUXWHITE;+[KEY] Sort To [KEY]
|
||||
AlternateHelpText=&SELECT;+&MENULEFT;&MENURIGHT; Change Difficulties &SELECT;+&START; Quick Sort
|
||||
|
||||
[ScreenSelectCourse]
|
||||
HelpText=&BACK; Exit &START; Select / Join &SELECT; Magic Codes &MENULEFT;&MENURIGHT; Move::&UP;&DOWN;&UP;&DOWN; for other course types
|
||||
|
||||
[ScreenOptions]
|
||||
HelpText=&BACK; Exit &START; Choose &SELECT; Go Up &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; Move
|
||||
|
||||
[ScreenStageInformation]
|
||||
HelpText=
|
||||
|
||||
[ScreenGameplay]
|
||||
HelpText=
|
||||
|
||||
[ScreenEvaluation]
|
||||
HelpText=&BACK; Exit &START; Move On &MENULEFT;+&MENURIGHT; or &SELECT; Snapshot
|
||||
LifeDifficulty=Life Difficulty: %s
|
||||
TimingDifficulty=Timing Difficulty: %s
|
||||
|
||||
[OptionTitles]
|
||||
GamePrefAutoSetStyle=Auto Set Style
|
||||
UserPrefAutoSetStyle=Auto Set Style
|
||||
UserPrefSpecialScoringMode=Special Scoring Mode
|
||||
GamePrefNotePosition=Note Positions
|
||||
GamePrefComboOnRolls=Rolls Increment Combo
|
||||
GamePrefComboUnderField=Combo Under Field
|
||||
UserPrefNotePosition=Note Positions
|
||||
UserPrefComboOnRolls=Rolls Increment Combo
|
||||
UserPrefComboUnderField=Combo Under Field
|
||||
|
||||
UserPrefGameplayShowScore=Show Score
|
||||
UserPrefGameplayShowStepsDisplay=Show Steps
|
||||
@@ -71,11 +89,12 @@ UserPrefShowLotsaOptions=Options Density
|
||||
UserPrefLongFail=Fail Length
|
||||
UserPrefFlashyCombo=Flashy Combo
|
||||
UserPrefGameplayFooter=Gameplay Footer
|
||||
|
||||
[OptionExplanations]
|
||||
GamePrefAutoSetStyle=Allow the game to list all one player and two player modes at once instead of one style only. This might require a restart of StepMania\n( or alternatively hit F2! )
|
||||
GamePrefNotePosition=Determines where the arrow receptors are placed in gameplay.
|
||||
GamePrefComboOnRolls=Choose if rolls should increment the combo or not.
|
||||
GamePrefComboUnderField=Determine if the combo should display under the notes or not.
|
||||
UserPrefAutoSetStyle=Allow the game to list all one player and two player modes at once instead of one style only. This might require a restart of StepMania\n( or alternatively hit F2! )
|
||||
UserPrefNotePosition=Determines where the arrow receptors are placed in gameplay.
|
||||
UserPrefComboOnRolls=Choose if rolls should increment the combo or not.
|
||||
UserPrefComboUnderField=Determine if the combo should display under the notes or not.
|
||||
|
||||
UserPrefGameplayShowScore=Show or Hide the score display in gameplay.
|
||||
UserPrefSpecialScoringMode=Select the scoring mode to be used if the Special scoring type is selected.
|
||||
@@ -107,6 +126,7 @@ Steps=Adjust the difficulty of the steps.
|
||||
Characters=Dancing buddies.
|
||||
SaveToProfileHelp=Requires profile or memory card.
|
||||
MusicRateHelp=Play the music at a faster rate.
|
||||
|
||||
[StepsListDisplayRow StepsType]
|
||||
Dance_Single=4
|
||||
Dance_Double=8
|
||||
@@ -160,4 +180,4 @@ Explanation-Exit=Return to the title menu.
|
||||
Custom=Special
|
||||
|
||||
[ScreenTestInput]
|
||||
HelpText=Hold &BACK; or &START; to exit.
|
||||
HelpText=Hold &BACK; or &START; to exit.
|
||||
|
||||
+764
-719
File diff suppressed because it is too large
Load Diff
@@ -142,7 +142,7 @@ static void StartMusic( MusicToPlay &ToPlay )
|
||||
{
|
||||
LOG->Trace( "Found '%s'", ToPlay.m_sTimingFile.c_str() );
|
||||
Song song;
|
||||
if( GetExtension(ToPlay.m_sTimingFile.c_str()) == ".ssc" &&
|
||||
if( GetExtension(ToPlay.m_sTimingFile) == ".ssc" &&
|
||||
SSCLoader::LoadFromSSCFile(ToPlay.m_sTimingFile, song) )
|
||||
{
|
||||
ToPlay.HasTiming = true;
|
||||
@@ -152,7 +152,7 @@ static void StartMusic( MusicToPlay &ToPlay )
|
||||
if( pStepsCabinetLights )
|
||||
pStepsCabinetLights->GetNoteData( ToPlay.m_LightsData );
|
||||
}
|
||||
else if( GetExtension(ToPlay.m_sTimingFile.c_str()) == ".sm" &&
|
||||
else if( GetExtension(ToPlay.m_sTimingFile) == ".sm" &&
|
||||
SMLoader::LoadFromSMFile(ToPlay.m_sTimingFile, song) )
|
||||
{
|
||||
ToPlay.HasTiming = true;
|
||||
|
||||
+7
-2
@@ -355,9 +355,14 @@ void GameState::JoinPlayer( PlayerNumber pn )
|
||||
if( ALLOW_LATE_JOIN && m_pCurStyle != NULL )
|
||||
{
|
||||
const Style *pStyle;
|
||||
// only use one player for StyleType_OnePlayerTwoSides.
|
||||
// Only use one player for StyleType_OnePlayerTwoSides and StepsTypes
|
||||
// that can only be played by one player (e.g. dance-solo,
|
||||
// dance-threepanel, popn-nine). -aj
|
||||
// XXX?: still shows joined player as "Insert Card". May not be an issue? -aj
|
||||
if( m_pCurStyle->m_StyleType == StyleType_OnePlayerTwoSides )
|
||||
if( m_pCurStyle->m_StyleType == StyleType_OnePlayerTwoSides ||
|
||||
m_pCurStyle->m_StepsType == StepsType_dance_solo ||
|
||||
m_pCurStyle->m_StepsType == StepsType_dance_threepanel ||
|
||||
m_pCurStyle->m_StepsType == StepsType_popn_nine )
|
||||
pStyle = GAMEMAN->GetFirstCompatibleStyle( m_pCurGame, 1, m_pCurStyle->m_StepsType );
|
||||
else
|
||||
pStyle = GAMEMAN->GetFirstCompatibleStyle( m_pCurGame, GetNumSidesJoined(), m_pCurStyle->m_StepsType );
|
||||
|
||||
+15
-13
@@ -418,7 +418,7 @@ void NoteDisplay::DrawHoldPart( vector<Sprite*> &vpSpr, int iCol, int fYStep, fl
|
||||
{
|
||||
/* For very large hold notes, shift the texture coordinates to be near 0, so we
|
||||
* don't send very large values to the renderer. */
|
||||
const float fDistFromTop = fYStartPos - fYTop;
|
||||
const float fDistFromTop = fYStartPos - fYTop;
|
||||
float fTexCoordTop = SCALE( fDistFromTop, 0, fFrameHeight, rect.top, rect.bottom );
|
||||
fTexCoordTop += fAddToTexCoord;
|
||||
fAddToTexCoord -= floorf( fTexCoordTop );
|
||||
@@ -542,8 +542,8 @@ void NoteDisplay::DrawHoldBody( const TapNote& tn, int iCol, float fBeat, bool b
|
||||
DISPLAY->SetZTestMode( bWavyPartsNeedZBuffer?ZTEST_WRITE_ON_PASS:ZTEST_OFF );
|
||||
DISPLAY->SetZWrite( bWavyPartsNeedZBuffer );
|
||||
|
||||
/* Hack: Z effects need a finer grain step. */
|
||||
const int fYStep = bWavyPartsNeedZBuffer? 4: 16; // use small steps only if wavy
|
||||
// Hack: Z effects need a finer grain step.
|
||||
const int fYStep = bWavyPartsNeedZBuffer? 4: 16; // use small steps only if wavy
|
||||
|
||||
if( bFlipHoldBody )
|
||||
{
|
||||
@@ -641,16 +641,18 @@ void NoteDisplay::DrawHold( const TapNote &tn, int iCol, int iRow, bool bIsBeing
|
||||
/* The body and caps should have no overlap, so their order doesn't matter.
|
||||
* Draw the head last, so it appears on top. */
|
||||
float fBeat = NoteRowToBeat(iRow);
|
||||
//if( !cache->m_bHoldHeadIsAboveWavyParts )
|
||||
//{
|
||||
// Actor *pActor = GetHoldActor( m_HoldHead, NotePart_HoldHead, NoteRowToBeat(iRow), tn.subType == TapNote::hold_head_roll, bIsBeingHeld );
|
||||
// DrawActor( tn, pActor, NotePart_HoldHead, iCol, bFlipHeadAndTail ? fEndYOffset : fStartYOffset, fBeat, bIsAddition, fPercentFadeToFail, fReverseOffsetPixels, fColorScale, fDrawDistanceAfterTargetsPixels, fDrawDistanceBeforeTargetsPixels, fFadeInPercentOfDrawFar );
|
||||
//}
|
||||
//if( !cache->m_bHoldTailIsAboveWavyParts )
|
||||
//{
|
||||
// Actor *pActor = GetHoldActor( m_HoldTail, NotePart_HoldTail, NoteRowToBeat(iRow), tn.subType == TapNote::hold_head_roll, bIsBeingHeld );
|
||||
// DrawActor( tn, pActor, NotePart_HoldTail, iCol, bFlipHeadAndTail ? fStartYOffset : fEndYOffset, fBeat, bIsAddition, fPercentFadeToFail, fReverseOffsetPixels, fColorScale, fDrawDistanceAfterTargetsPixels, fDrawDistanceBeforeTargetsPixels, fFadeInPercentOfDrawFar );
|
||||
//}
|
||||
/*
|
||||
if( !cache->m_bHoldHeadIsAboveWavyParts )
|
||||
{
|
||||
Actor *pActor = GetHoldActor( m_HoldHead, NotePart_HoldHead, NoteRowToBeat(iRow), tn.subType == TapNote::hold_head_roll, bIsBeingHeld );
|
||||
DrawActor( tn, pActor, NotePart_HoldHead, iCol, bFlipHeadAndTail ? fEndYOffset : fStartYOffset, fBeat, bIsAddition, fPercentFadeToFail, fReverseOffsetPixels, fColorScale, fDrawDistanceAfterTargetsPixels, fDrawDistanceBeforeTargetsPixels, fFadeInPercentOfDrawFar );
|
||||
}
|
||||
if( !cache->m_bHoldTailIsAboveWavyParts )
|
||||
{
|
||||
Actor *pActor = GetHoldActor( m_HoldTail, NotePart_HoldTail, NoteRowToBeat(iRow), tn.subType == TapNote::hold_head_roll, bIsBeingHeld );
|
||||
DrawActor( tn, pActor, NotePart_HoldTail, iCol, bFlipHeadAndTail ? fStartYOffset : fEndYOffset, fBeat, bIsAddition, fPercentFadeToFail, fReverseOffsetPixels, fColorScale, fDrawDistanceAfterTargetsPixels, fDrawDistanceBeforeTargetsPixels, fFadeInPercentOfDrawFar );
|
||||
}
|
||||
*/
|
||||
|
||||
DrawHoldBody( tn, iCol, fBeat, bIsBeingHeld, fYHead, fYTail, bIsAddition, fPercentFadeToFail, fColorScale, false, fDrawDistanceAfterTargetsPixels, fDrawDistanceBeforeTargetsPixels, fFadeInPercentOfDrawFar );
|
||||
DrawHoldBody( tn, iCol, fBeat, bIsBeingHeld, fYHead, fYTail, bIsAddition, fPercentFadeToFail, fColorScale, true, fDrawDistanceAfterTargetsPixels, fDrawDistanceBeforeTargetsPixels, fFadeInPercentOfDrawFar );
|
||||
|
||||
+4
-4
@@ -2562,7 +2562,7 @@ void Player::UpdateTapNotesMissedOlderThan( float fMissIfOlderThanSeconds )
|
||||
|
||||
if( !NeedsTapJudging(tn) )
|
||||
continue;
|
||||
|
||||
|
||||
// Ignore all notes that are skipped via WARPS.
|
||||
if( GAMESTATE->m_pCurSong->m_Timing.IsWarpAtRow( iter.Row() ) )
|
||||
continue;
|
||||
@@ -2598,7 +2598,7 @@ void Player::UpdateJudgedRows()
|
||||
{
|
||||
int iRow = iter.Row();
|
||||
|
||||
// if row is within a warp section, ignore it. -aj
|
||||
// If row is within a warp section, ignore it. -aj
|
||||
if( GAMESTATE->m_pCurSong->m_Timing.IsWarpAtRow(iRow) )
|
||||
continue;
|
||||
|
||||
@@ -2933,7 +2933,7 @@ void Player::HandleTapRowScore( unsigned row )
|
||||
bNoCheating = false;
|
||||
#endif
|
||||
|
||||
// more warp hackery. -aj
|
||||
// Warp hackery. -aj
|
||||
if( GAMESTATE->m_pCurSong->m_Timing.IsWarpAtRow( row ) )
|
||||
return;
|
||||
|
||||
@@ -3037,7 +3037,7 @@ void Player::HandleHoldCheckpoint( int iRow, int iNumHoldsHeldThisRow, int iNumH
|
||||
bNoCheating = false;
|
||||
#endif
|
||||
|
||||
// more warp hackery. -aj
|
||||
// More warp hackery. -aj
|
||||
if( GAMESTATE->m_pCurSong->m_Timing.IsWarpAtRow( iRow ) )
|
||||
return;
|
||||
|
||||
|
||||
+8
-5
@@ -85,11 +85,12 @@ public:
|
||||
m_iNumExtraStagesPassed(0), m_iNumExtraStagesFailed(0),
|
||||
m_iNumToasties(0), m_iTotalTapsAndHolds(0), m_iTotalJumps(0),
|
||||
m_iTotalHolds(0), m_iTotalRolls(0), m_iTotalMines(0),
|
||||
m_iTotalHands(0), m_iTotalLifts(0), m_UnlockedEntryIDs(),
|
||||
m_sLastPlayedMachineGuid(""), m_LastPlayedDate(),
|
||||
m_iNumSongsPlayedByStyle(), m_iNumTotalSongsPlayed(0),
|
||||
m_UserData(), m_SongHighScores(), m_CourseHighScores(),
|
||||
m_vScreenshots(), m_mapDayToCaloriesBurned()
|
||||
m_iTotalHands(0), m_iTotalLifts(0), m_bNewProfile(false),
|
||||
m_UnlockedEntryIDs(), m_sLastPlayedMachineGuid(""),
|
||||
m_LastPlayedDate(),m_iNumSongsPlayedByStyle(),
|
||||
m_iNumTotalSongsPlayed(0), m_UserData(), m_SongHighScores(),
|
||||
m_CourseHighScores(), m_vScreenshots(),
|
||||
m_mapDayToCaloriesBurned()
|
||||
{
|
||||
m_lastSong.Unset();
|
||||
m_lastCourse.Unset();
|
||||
@@ -182,6 +183,8 @@ public:
|
||||
int m_iTotalMines;
|
||||
int m_iTotalHands;
|
||||
int m_iTotalLifts;
|
||||
/** @brief Is this a brand new profile? */
|
||||
bool m_bNewProfile;
|
||||
set<RString> m_UnlockedEntryIDs;
|
||||
/**
|
||||
* @brief Which machine did we play on last, based on the Guid?
|
||||
|
||||
@@ -97,6 +97,7 @@ void ProfileManager::Init()
|
||||
m_bLastLoadWasTamperedOrCorrupt[p] = false;
|
||||
m_bLastLoadWasFromLastGood[p] = false;
|
||||
m_bNeedToBackUpLastLoad[p] = false;
|
||||
m_bNewProfile[p] = false;
|
||||
}
|
||||
|
||||
LoadMachineProfile();
|
||||
@@ -222,6 +223,7 @@ bool ProfileManager::LoadProfileFromMemoryCard( PlayerNumber pn, bool bLoadEdits
|
||||
|
||||
vector<RString> asDirsToTry;
|
||||
GetMemoryCardProfileDirectoriesToTry( asDirsToTry );
|
||||
m_bNewProfile[pn] = true;
|
||||
|
||||
for( unsigned i = 0; i < asDirsToTry.size(); ++i )
|
||||
{
|
||||
@@ -239,6 +241,7 @@ bool ProfileManager::LoadProfileFromMemoryCard( PlayerNumber pn, bool bLoadEdits
|
||||
ProfileLoadResult res = LoadProfile( pn, sDir, true );
|
||||
if( res == ProfileLoadResult_Success )
|
||||
{
|
||||
m_bNewProfile[pn] = false;
|
||||
/* If importing, store the directory we imported from, for display purposes. */
|
||||
if( i > 0 )
|
||||
m_sProfileDirImportedFrom[pn] = asDirsToTry[i];
|
||||
@@ -246,7 +249,10 @@ bool ProfileManager::LoadProfileFromMemoryCard( PlayerNumber pn, bool bLoadEdits
|
||||
}
|
||||
|
||||
if( res == ProfileLoadResult_FailedTampered )
|
||||
{
|
||||
m_bNewProfile[pn] = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* If we imported a profile fallback directory, change the memory card
|
||||
@@ -544,6 +550,11 @@ bool ProfileManager::ProfileWasLoadedFromMemoryCard( PlayerNumber pn ) const
|
||||
return !m_sProfileDir[pn].empty() && m_bWasLoadedFromMemoryCard[pn];
|
||||
}
|
||||
|
||||
bool ProfileManager::ProfileFromMemoryCardIsNew( PlayerNumber pn ) const
|
||||
{
|
||||
return GetProfile(pn) && m_bWasLoadedFromMemoryCard[pn] && m_bNewProfile[pn];
|
||||
}
|
||||
|
||||
bool ProfileManager::LastLoadWasTamperedOrCorrupt( PlayerNumber pn ) const
|
||||
{
|
||||
return !m_sProfileDir[pn].empty() && m_bLastLoadWasTamperedOrCorrupt[pn];
|
||||
|
||||
@@ -77,6 +77,7 @@ public:
|
||||
|
||||
RString GetPlayerName( PlayerNumber pn ) const;
|
||||
bool ProfileWasLoadedFromMemoryCard( PlayerNumber pn ) const;
|
||||
bool ProfileFromMemoryCardIsNew( PlayerNumber pn ) const;
|
||||
bool LastLoadWasTamperedOrCorrupt( PlayerNumber pn ) const;
|
||||
bool LastLoadWasFromLastGood( PlayerNumber pn ) const;
|
||||
|
||||
@@ -117,6 +118,7 @@ private:
|
||||
bool m_bLastLoadWasTamperedOrCorrupt[NUM_PLAYERS]; // true if Stats.xml was present, but failed to load (probably because of a signature failure)
|
||||
bool m_bLastLoadWasFromLastGood[NUM_PLAYERS]; // if true, then m_bLastLoadWasTamperedOrCorrupt is also true
|
||||
mutable bool m_bNeedToBackUpLastLoad[NUM_PLAYERS]; // if true, back up profile on next save
|
||||
bool m_bNewProfile[NUM_PLAYERS];
|
||||
|
||||
Profile *m_pMemoryCardProfile[NUM_PLAYERS]; // holds Profile for the currently inserted card
|
||||
Profile *m_pMachineProfile;
|
||||
|
||||
@@ -151,7 +151,6 @@ bool RoomWheel::Select()
|
||||
{
|
||||
// Since this is not actually an option outside of this wheel, NULL is a good idea.
|
||||
m_LastSelection = NULL;
|
||||
// todo: Call a screen with class ScreenTextEntry instead. -aj
|
||||
ScreenTextEntry::TextEntry( SM_BackFromRoomName, ENTER_ROOM_NAME, "", 255 );
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -3531,7 +3531,6 @@ void ScreenEdit::HandleStepsInformationChoice( StepsInformationChoice c, const v
|
||||
switch( c )
|
||||
{
|
||||
case description:
|
||||
// todo: Call a screen with class ScreenTextEntry instead. -aj
|
||||
ScreenTextEntry::TextEntry(
|
||||
SM_None,
|
||||
ENTER_NEW_DESCRIPTION,
|
||||
@@ -3580,8 +3579,6 @@ void ScreenEdit::HandleSongInformationChoice( SongInformationChoice c, const vec
|
||||
{
|
||||
Song* pSong = GAMESTATE->m_pCurSong;
|
||||
|
||||
// todo: Call a screen with class ScreenTextEntry instead.
|
||||
// multiple times in this section, so I'm only saying it here. -aj
|
||||
switch( c )
|
||||
{
|
||||
DEFAULT_FAIL(c);
|
||||
@@ -3628,7 +3625,6 @@ void ScreenEdit::HandleTimingDataInformationChoice( TimingDataInformationChoice
|
||||
{
|
||||
DEFAULT_FAIL( c );
|
||||
case bpm:
|
||||
// todo: Call a screen with class ScreenTextEntry instead. -aj
|
||||
ScreenTextEntry::TextEntry(
|
||||
SM_BackFromBPMChange,
|
||||
ENTER_BPM_VALUE,
|
||||
@@ -3637,7 +3633,6 @@ void ScreenEdit::HandleTimingDataInformationChoice( TimingDataInformationChoice
|
||||
);
|
||||
break;
|
||||
case stop:
|
||||
// todo: Call a screen with class ScreenTextEntry instead. -aj
|
||||
ScreenTextEntry::TextEntry(
|
||||
SM_BackFromStopChange,
|
||||
ENTER_STOP_VALUE,
|
||||
@@ -3646,7 +3641,6 @@ void ScreenEdit::HandleTimingDataInformationChoice( TimingDataInformationChoice
|
||||
);
|
||||
break;
|
||||
case delay:
|
||||
// todo: Call a screen with class ScreenTextEntry instead. -aj
|
||||
ScreenTextEntry::TextEntry(
|
||||
SM_BackFromDelayChange,
|
||||
ENTER_DELAY_VALUE,
|
||||
@@ -3687,7 +3681,6 @@ void ScreenEdit::HandleTimingDataInformationChoice( TimingDataInformationChoice
|
||||
);
|
||||
break;
|
||||
case warp:
|
||||
// todo: Call a screen with class ScreenTextEntry instead. -aj
|
||||
ScreenTextEntry::TextEntry(
|
||||
SM_BackFromWarpChange,
|
||||
ENTER_WARP_VALUE,
|
||||
|
||||
@@ -35,6 +35,7 @@ void ScreenGameplaySyncMachine::Init()
|
||||
SongUtil::GetPlayableSteps( &m_Song, vpSteps );
|
||||
ASSERT_M(vpSteps.size() > 0, "No playable steps for ScreenGameplaySyncMachine");
|
||||
Steps *pSteps = vpSteps[0];
|
||||
// TODO: Either detect which player accessed this file, or FOREACH all of them. -Wolfman2000
|
||||
GAMESTATE->m_pCurSteps[0].Set( pSteps );
|
||||
|
||||
GamePreferences::m_AutoPlay.Set( PC_HUMAN );
|
||||
|
||||
@@ -81,7 +81,8 @@ void ScreenNameEntryTraditional::BeginScreen()
|
||||
GAMESTATE->GetRankingFeats( pn, aFeats );
|
||||
|
||||
bool bNoStagesLeft = GAMESTATE->m_iPlayerStageTokens[pn] <= 0;
|
||||
m_bEnteringName[pn] = aFeats.size() > 0 && bNoStagesLeft;
|
||||
m_bEnteringName[pn] = ( aFeats.size() > 0 ||
|
||||
PROFILEMAN->ProfileFromMemoryCardIsNew(pn) ) && bNoStagesLeft;
|
||||
m_bFinalized[pn] = !m_bEnteringName[pn];
|
||||
}
|
||||
|
||||
|
||||
@@ -25,8 +25,8 @@ void ScreenOptionsExportPackage::Init()
|
||||
void ScreenOptionsExportPackage::BeginScreen()
|
||||
{
|
||||
// Fill m_vsPossibleDirsToExport
|
||||
// todo: split these out over multiple screens so the scroller
|
||||
// isn't so overloaded. -freem
|
||||
// todo: Split these out over multiple screens so the scroller
|
||||
// isn't so overloaded. (See ScreenOptionsToggleSongs) -freem
|
||||
{
|
||||
// Add themes
|
||||
{
|
||||
|
||||
@@ -809,8 +809,7 @@ void ScreenSelectMaster::MenuStart( const InputEventPlus &input )
|
||||
mc.ApplyToAllPlayers();
|
||||
// We want to be able to broadcast a Start message to the theme, in
|
||||
// case a themer wants to handle something. -aj
|
||||
// TODO: Find a way to differentiate this from the message below, for
|
||||
// less ambiguousness?
|
||||
// TODO: Add a param to differentiate this from the message below.
|
||||
MESSAGEMAN->Broadcast( (MessageID)(Message_MenuStartP1+pn) );
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -485,7 +485,7 @@ void ScreenSelectMusic::Input( const InputEventPlus &input )
|
||||
m_bStepsChosen[input.pn] )
|
||||
return; // ignore
|
||||
|
||||
// todo: use mousewheel to scroll MusicWheel -aj
|
||||
// todo: Allow mousewheel to scroll MusicWheel -aj
|
||||
|
||||
if( USE_PLAYER_SELECT_MENU )
|
||||
{
|
||||
@@ -1528,9 +1528,8 @@ void ScreenSelectMusic::AfterStepsOrTrailChange( const vector<PlayerNumber> &vpn
|
||||
}
|
||||
else
|
||||
{
|
||||
// I don't like how numbers just stay up there if the current
|
||||
// selection is NULL.
|
||||
// todo: Let themers set the text instead of just using 0. -aj
|
||||
// The numbers shouldn't stay if the current selection is NULL.
|
||||
// todo: Let themers set the text value instead of just using 0. -aj
|
||||
m_textHighScore[pn].SetText( ssprintf("%*i", NUM_SCORE_DIGITS, 0) );
|
||||
}
|
||||
}
|
||||
|
||||
+5
-4
@@ -19,6 +19,9 @@
|
||||
#include "LuaBinding.h"
|
||||
#include "EnumHelper.h"
|
||||
|
||||
ThemeMetric<int> SORT_BPM_DIVISION ( "MusicWheel", "SortBPMDivision" );
|
||||
ThemeMetric<int> SORT_LENGTH_DIVISION ( "MusicWheel", "SortLengthDivision" );
|
||||
|
||||
bool SongCriteria::Matches( const Song *pSong ) const
|
||||
{
|
||||
if( !m_sGroupName.empty() && m_sGroupName != pSong->m_sGroupName )
|
||||
@@ -595,8 +598,7 @@ RString SongUtil::GetSectionNameFromSongAndSort( const Song* pSong, SortOrder so
|
||||
return SORT_NOT_AVAILABLE.GetValue();
|
||||
case SORT_BPM:
|
||||
{
|
||||
// todo: make this a theme metric? -aj
|
||||
const int iBPMGroupSize = 20;
|
||||
const int iBPMGroupSize = SORT_BPM_DIVISION;
|
||||
DisplayBpms bpms;
|
||||
pSong->GetDisplayBpms( bpms );
|
||||
int iMaxBPM = (int)bpms.GetMax();
|
||||
@@ -605,8 +607,7 @@ RString SongUtil::GetSectionNameFromSongAndSort( const Song* pSong, SortOrder so
|
||||
}
|
||||
case SORT_LENGTH:
|
||||
{
|
||||
// todo: make this a theme metric? -aj
|
||||
const int iSortLengthSize = 5;
|
||||
const int iSortLengthSize = SORT_LENGTH_DIVISION;
|
||||
int iMaxLength = (int)pSong->m_fMusicLengthSeconds;
|
||||
iMaxLength += (iSortLengthSize - (iMaxLength%iSortLengthSize) - 1);
|
||||
int iMinLength = iMaxLength - (iSortLengthSize-1);
|
||||
|
||||
@@ -331,7 +331,6 @@ static BOOL CALLBACK DIMouse_EnumDevObjectsProc(LPCDIDEVICEOBJECTINSTANCE dev, L
|
||||
|
||||
in.ofs = dev->dwOfs;
|
||||
|
||||
// xxx: does this check for scrollwheels? -aj
|
||||
if(dev->dwType & DIDFT_BUTTON)
|
||||
{
|
||||
in.type = in.BUTTON;
|
||||
|
||||
@@ -398,7 +398,7 @@ void InputHandler_Linux_Event::InputThread()
|
||||
DeviceButton neg = g_apEventDevices[i]->aiAbsMappingLow[event.code];
|
||||
DeviceButton pos = g_apEventDevices[i]->aiAbsMappingHigh[event.code];
|
||||
|
||||
float l = SCALE( int(event.value), (float) g_apEventDevices[i]->aiAbsMin[i], (float) g_apEventDevices[i]->aiAbsMax[i], -1.0f, 1.0f );
|
||||
float l = SCALE( int(event.value), (float) g_apEventDevices[i]->aiAbsMin[event.code], (float) g_apEventDevices[i]->aiAbsMax[event.code], -1.0f, 1.0f );
|
||||
ButtonPressed( DeviceInput(g_apEventDevices[i]->m_Dev, neg, max(-l,0), now) );
|
||||
ButtonPressed( DeviceInput(g_apEventDevices[i]->m_Dev, pos, max(+l,0), now) );
|
||||
break;
|
||||
|
||||
@@ -101,7 +101,7 @@ void run()
|
||||
CHECK( test.GetElapsedTimeFromBeat(15.0f), 14.5f ); // stopped
|
||||
CHECK( test.GetElapsedTimeFromBeat(16), 20.0f );
|
||||
|
||||
/* todo: add warp tests once the warp code is done */
|
||||
// todo: add warp tests -aj
|
||||
|
||||
RageTimer foobar;
|
||||
/* We can look up the time of any given beat, then look up the beat of that
|
||||
@@ -124,10 +124,10 @@ int q = 0;
|
||||
}
|
||||
LOG->Trace("... %i in %f", q, foobar.GetDeltaTime());
|
||||
|
||||
// todo: add warp segments
|
||||
TimingData test2;
|
||||
test2.AddBPMSegment( BPMSegment(0, 60) );
|
||||
test2.AddStopSegment( StopSegment(0, 1) );
|
||||
//test2.AddWarpSegment( WarpSegment() );
|
||||
CHECK( test2.GetBeatFromElapsedTime(-1), -1.0f );
|
||||
CHECK( test2.GetBeatFromElapsedTime(0), 0.0f );
|
||||
CHECK( test2.GetBeatFromElapsedTime(1), 0.0f );
|
||||
|
||||
Reference in New Issue
Block a user