merging :|
This commit is contained in:
@@ -7099,7 +7099,7 @@
|
|||||||
GCC_DYNAMIC_NO_PIC = YES;
|
GCC_DYNAMIC_NO_PIC = YES;
|
||||||
GCC_ENABLE_CPP_EXCEPTIONS = NO;
|
GCC_ENABLE_CPP_EXCEPTIONS = NO;
|
||||||
GCC_ENABLE_SYMBOL_SEPARATION = NO;
|
GCC_ENABLE_SYMBOL_SEPARATION = NO;
|
||||||
GCC_FAST_MATH = YES;
|
GCC_FAST_MATH = NO;
|
||||||
GCC_FAST_OBJC_DISPATCH = NO;
|
GCC_FAST_OBJC_DISPATCH = NO;
|
||||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
|
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
|
||||||
@@ -7112,6 +7112,7 @@
|
|||||||
GCC_UNROLL_LOOPS = YES;
|
GCC_UNROLL_LOOPS = YES;
|
||||||
GCC_VERSION = 4.0;
|
GCC_VERSION = 4.0;
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
|
||||||
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
||||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
@@ -7119,9 +7120,11 @@
|
|||||||
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
|
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
|
||||||
GCC_WARN_MISSING_PARENTHESES = YES;
|
GCC_WARN_MISSING_PARENTHESES = YES;
|
||||||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
||||||
GCC_WARN_SHADOW = NO;
|
GCC_WARN_PROTOTYPE_CONVERSION = YES;
|
||||||
|
GCC_WARN_SHADOW = YES;
|
||||||
GCC_WARN_SIGN_COMPARE = YES;
|
GCC_WARN_SIGN_COMPARE = YES;
|
||||||
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
|
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = NO;
|
GCC_WARN_UNINITIALIZED_AUTOS = NO;
|
||||||
GCC_WARN_UNKNOWN_PRAGMAS = YES;
|
GCC_WARN_UNKNOWN_PRAGMAS = YES;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
@@ -7632,7 +7635,7 @@
|
|||||||
GCC_DYNAMIC_NO_PIC = YES;
|
GCC_DYNAMIC_NO_PIC = YES;
|
||||||
GCC_ENABLE_CPP_EXCEPTIONS = NO;
|
GCC_ENABLE_CPP_EXCEPTIONS = NO;
|
||||||
GCC_ENABLE_SYMBOL_SEPARATION = NO;
|
GCC_ENABLE_SYMBOL_SEPARATION = NO;
|
||||||
GCC_FAST_MATH = YES;
|
GCC_FAST_MATH = NO;
|
||||||
GCC_FAST_OBJC_DISPATCH = NO;
|
GCC_FAST_OBJC_DISPATCH = NO;
|
||||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||||
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
|
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
|
||||||
@@ -7644,6 +7647,7 @@
|
|||||||
GCC_UNROLL_LOOPS = YES;
|
GCC_UNROLL_LOOPS = YES;
|
||||||
GCC_VERSION = 4.0;
|
GCC_VERSION = 4.0;
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
|
||||||
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
||||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
@@ -7651,9 +7655,11 @@
|
|||||||
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
|
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
|
||||||
GCC_WARN_MISSING_PARENTHESES = YES;
|
GCC_WARN_MISSING_PARENTHESES = YES;
|
||||||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
||||||
GCC_WARN_SHADOW = NO;
|
GCC_WARN_PROTOTYPE_CONVERSION = YES;
|
||||||
|
GCC_WARN_SHADOW = YES;
|
||||||
GCC_WARN_SIGN_COMPARE = YES;
|
GCC_WARN_SIGN_COMPARE = YES;
|
||||||
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
|
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
GCC_WARN_UNKNOWN_PRAGMAS = YES;
|
GCC_WARN_UNKNOWN_PRAGMAS = YES;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
@@ -7963,7 +7969,7 @@
|
|||||||
GCC_DYNAMIC_NO_PIC = YES;
|
GCC_DYNAMIC_NO_PIC = YES;
|
||||||
GCC_ENABLE_CPP_EXCEPTIONS = NO;
|
GCC_ENABLE_CPP_EXCEPTIONS = NO;
|
||||||
GCC_ENABLE_SYMBOL_SEPARATION = NO;
|
GCC_ENABLE_SYMBOL_SEPARATION = NO;
|
||||||
GCC_FAST_MATH = YES;
|
GCC_FAST_MATH = NO;
|
||||||
GCC_FAST_OBJC_DISPATCH = NO;
|
GCC_FAST_OBJC_DISPATCH = NO;
|
||||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||||
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
|
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
|
||||||
@@ -7975,6 +7981,7 @@
|
|||||||
GCC_UNROLL_LOOPS = YES;
|
GCC_UNROLL_LOOPS = YES;
|
||||||
GCC_VERSION = 4.0;
|
GCC_VERSION = 4.0;
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
|
||||||
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
||||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
@@ -7982,9 +7989,11 @@
|
|||||||
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
|
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
|
||||||
GCC_WARN_MISSING_PARENTHESES = YES;
|
GCC_WARN_MISSING_PARENTHESES = YES;
|
||||||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
||||||
GCC_WARN_SHADOW = NO;
|
GCC_WARN_PROTOTYPE_CONVERSION = YES;
|
||||||
|
GCC_WARN_SHADOW = YES;
|
||||||
GCC_WARN_SIGN_COMPARE = YES;
|
GCC_WARN_SIGN_COMPARE = YES;
|
||||||
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
|
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
GCC_WARN_UNKNOWN_PRAGMAS = YES;
|
GCC_WARN_UNKNOWN_PRAGMAS = YES;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
@@ -8088,7 +8097,7 @@
|
|||||||
GCC_DYNAMIC_NO_PIC = YES;
|
GCC_DYNAMIC_NO_PIC = YES;
|
||||||
GCC_ENABLE_CPP_EXCEPTIONS = NO;
|
GCC_ENABLE_CPP_EXCEPTIONS = NO;
|
||||||
GCC_ENABLE_SYMBOL_SEPARATION = NO;
|
GCC_ENABLE_SYMBOL_SEPARATION = NO;
|
||||||
GCC_FAST_MATH = YES;
|
GCC_FAST_MATH = NO;
|
||||||
GCC_FAST_OBJC_DISPATCH = NO;
|
GCC_FAST_OBJC_DISPATCH = NO;
|
||||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||||
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
|
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
|
||||||
@@ -8100,6 +8109,7 @@
|
|||||||
GCC_UNROLL_LOOPS = YES;
|
GCC_UNROLL_LOOPS = YES;
|
||||||
GCC_VERSION = 4.0;
|
GCC_VERSION = 4.0;
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
|
||||||
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
||||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
@@ -8107,9 +8117,11 @@
|
|||||||
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
|
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
|
||||||
GCC_WARN_MISSING_PARENTHESES = YES;
|
GCC_WARN_MISSING_PARENTHESES = YES;
|
||||||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
||||||
GCC_WARN_SHADOW = NO;
|
GCC_WARN_PROTOTYPE_CONVERSION = YES;
|
||||||
|
GCC_WARN_SHADOW = YES;
|
||||||
GCC_WARN_SIGN_COMPARE = YES;
|
GCC_WARN_SIGN_COMPARE = YES;
|
||||||
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
|
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
GCC_WARN_UNKNOWN_PRAGMAS = YES;
|
GCC_WARN_UNKNOWN_PRAGMAS = YES;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
|||||||
@@ -445,7 +445,7 @@ float ArrowEffects::GetXPos( const PlayerState* pPlayerState, int iColNum, float
|
|||||||
{
|
{
|
||||||
// find the middle, and split based on iColNum
|
// find the middle, and split based on iColNum
|
||||||
// it's unknown if this will work for routine.
|
// it's unknown if this will work for routine.
|
||||||
const int iMiddleColumn = floor(pStyle->m_iColsPerPlayer/2.0f);
|
const int iMiddleColumn = static_cast<int>(floor(pStyle->m_iColsPerPlayer/2.0f));
|
||||||
if( iColNum > iMiddleColumn-1 )
|
if( iColNum > iMiddleColumn-1 )
|
||||||
fPixelOffsetFromCenter += fEffects[PlayerOptions::EFFECT_XMODE]*-(fYOffset);
|
fPixelOffsetFromCenter += fEffects[PlayerOptions::EFFECT_XMODE]*-(fYOffset);
|
||||||
else
|
else
|
||||||
|
|||||||
+2
-2
@@ -34,8 +34,8 @@ void Attack::GetRealtimeAttackBeats( const Song *pSong, const PlayerState* pPlay
|
|||||||
fStartBeat = min( GAMESTATE->m_fSongBeat+8, pPlayerState->m_fLastDrawnBeat );
|
fStartBeat = min( GAMESTATE->m_fSongBeat+8, pPlayerState->m_fLastDrawnBeat );
|
||||||
fStartBeat = truncf(fStartBeat)+1;
|
fStartBeat = truncf(fStartBeat)+1;
|
||||||
|
|
||||||
const float fStartSecond = pSong->GetElapsedTimeFromBeat( fStartBeat );
|
const float lStartSecond = pSong->GetElapsedTimeFromBeat( fStartBeat );
|
||||||
const float fEndSecond = fStartSecond + fSecsRemaining;
|
const float fEndSecond = lStartSecond + fSecsRemaining;
|
||||||
fEndBeat = pSong->GetBeatFromElapsedTime( fEndSecond );
|
fEndBeat = pSong->GetBeatFromElapsedTime( fEndSecond );
|
||||||
fEndBeat = truncf(fEndBeat)+1;
|
fEndBeat = truncf(fEndBeat)+1;
|
||||||
|
|
||||||
|
|||||||
+9
-11
@@ -32,7 +32,10 @@ struct Attack
|
|||||||
bGlobal = false;
|
bGlobal = false;
|
||||||
bShowInAttackList = true;
|
bShowInAttackList = true;
|
||||||
}
|
}
|
||||||
Attack() { MakeBlank(); }
|
Attack(): level(ATTACK_LEVEL_1), fStartSecond(-1),
|
||||||
|
fSecsRemaining(0), sModifiers(RString()),
|
||||||
|
bOn(false), bGlobal(false), bShowInAttackList(true)
|
||||||
|
{} // MakeBlank() is effectively called here.
|
||||||
Attack(
|
Attack(
|
||||||
AttackLevel level_,
|
AttackLevel level_,
|
||||||
float fStartSecond_,
|
float fStartSecond_,
|
||||||
@@ -40,16 +43,11 @@ struct Attack
|
|||||||
RString sModifiers_,
|
RString sModifiers_,
|
||||||
bool bOn_,
|
bool bOn_,
|
||||||
bool bGlobal_,
|
bool bGlobal_,
|
||||||
bool bShowInAttackList_ = true )
|
bool bShowInAttackList_ = true ):
|
||||||
{
|
level(level_), fStartSecond(fStartSecond_),
|
||||||
level = level_;
|
fSecsRemaining(fSecsRemaining_), sModifiers(sModifiers_),
|
||||||
fStartSecond = fStartSecond_;
|
bOn(bOn_), bGlobal(bGlobal_),
|
||||||
fSecsRemaining = fSecsRemaining_;
|
bShowInAttackList(bShowInAttackList_) {}
|
||||||
sModifiers = sModifiers_;
|
|
||||||
bOn = bOn_;
|
|
||||||
bGlobal = bGlobal_;
|
|
||||||
bShowInAttackList = bShowInAttackList_;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GetAttackBeats( const Song *pSong, float &fStartBeat, float &fEndBeat ) const;
|
void GetAttackBeats( const Song *pSong, float &fStartBeat, float &fEndBeat ) const;
|
||||||
void GetRealtimeAttackBeats( const Song *pSong, const PlayerState* pPlayerState, float &fStartBeat, float &fEndBeat ) const;
|
void GetRealtimeAttackBeats( const Song *pSong, const PlayerState* pPlayerState, float &fStartBeat, float &fEndBeat ) const;
|
||||||
|
|||||||
@@ -80,11 +80,11 @@ void AutoKeysounds::LoadAutoplaySoundsInto( RageSoundReader_Chain *pChain )
|
|||||||
bool bSoundIsGlobal = true;
|
bool bSoundIsGlobal = true;
|
||||||
{
|
{
|
||||||
PlayerNumber pn = GetNextEnabledPlayer((PlayerNumber)-1);
|
PlayerNumber pn = GetNextEnabledPlayer((PlayerNumber)-1);
|
||||||
const TapNote &t = tn[pn];
|
const TapNote &tap = tn[pn];
|
||||||
pn = GetNextEnabledPlayer(pn);
|
pn = GetNextEnabledPlayer(pn);
|
||||||
while( pn != PLAYER_INVALID )
|
while( pn != PLAYER_INVALID )
|
||||||
{
|
{
|
||||||
if( tn[pn].type != TapNote::autoKeysound || tn[pn].iKeysoundIndex != t.iKeysoundIndex )
|
if( tn[pn].type != TapNote::autoKeysound || tn[pn].iKeysoundIndex != tap.iKeysoundIndex )
|
||||||
bSoundIsGlobal = false;
|
bSoundIsGlobal = false;
|
||||||
pn = GetNextEnabledPlayer(pn);
|
pn = GetNextEnabledPlayer(pn);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -77,9 +77,9 @@ void BGAnimation::AddLayersFromAniDir( const RString &_sAniDir, const XNode *pNo
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// import as a single layer
|
// import as a single layer
|
||||||
BGAnimationLayer* pLayer = new BGAnimationLayer;
|
BGAnimationLayer* bgLayer = new BGAnimationLayer;
|
||||||
pLayer->LoadFromNode( pKey );
|
bgLayer->LoadFromNode( pKey );
|
||||||
this->AddChild( pLayer );
|
this->AddChild( bgLayer );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -746,9 +746,9 @@ void BackgroundImpl::Layer::UpdateCurBGChange( const Song *pSong, float fLastMus
|
|||||||
|
|
||||||
if( !change.m_sTransition.empty() )
|
if( !change.m_sTransition.empty() )
|
||||||
{
|
{
|
||||||
map<RString,BackgroundTransition>::const_iterator iter = mapNameToTransition.find( change.m_sTransition );
|
map<RString,BackgroundTransition>::const_iterator lIter = mapNameToTransition.find( change.m_sTransition );
|
||||||
ASSERT( iter != mapNameToTransition.end() );
|
ASSERT( lIter != mapNameToTransition.end() );
|
||||||
const BackgroundTransition &bt = iter->second;
|
const BackgroundTransition &bt = lIter->second;
|
||||||
m_pFadingBGA->RunCommandsOnLeaves( *bt.cmdLeaves );
|
m_pFadingBGA->RunCommandsOnLeaves( *bt.cmdLeaves );
|
||||||
m_pFadingBGA->RunCommands( *bt.cmdRoot );
|
m_pFadingBGA->RunCommands( *bt.cmdRoot );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -250,9 +250,11 @@ void BeginnerHelper::DrawPrimitives()
|
|||||||
m_sStepCircle[scd][scde].Draw();
|
m_sStepCircle[scd][scde].Draw();
|
||||||
|
|
||||||
if( DrawCelShaded )
|
if( DrawCelShaded )
|
||||||
|
{
|
||||||
FOREACH_PlayerNumber( pn ) // Draw each dancer
|
FOREACH_PlayerNumber( pn ) // Draw each dancer
|
||||||
if( GAMESTATE->IsHumanPlayer(pn) )
|
if( GAMESTATE->IsHumanPlayer(pn) )
|
||||||
m_pDancer[pn]->DrawCelShaded();
|
m_pDancer[pn]->DrawCelShaded();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DISPLAY->SetLighting( true );
|
DISPLAY->SetLighting( true );
|
||||||
|
|||||||
+4
-4
@@ -519,8 +519,8 @@ bool Course::GetTrailUnsorted( StepsType st, CourseDifficulty cd, Trail &trail )
|
|||||||
if( e->iChooseIndex < int(vSongAndSteps.size()) )
|
if( e->iChooseIndex < int(vSongAndSteps.size()) )
|
||||||
{
|
{
|
||||||
resolved.pSong = vpSongs[e->iChooseIndex];
|
resolved.pSong = vpSongs[e->iChooseIndex];
|
||||||
const vector<Steps*> &vpSongs = mapSongToSteps[resolved.pSong];
|
const vector<Steps*> &mappedSongs = mapSongToSteps[resolved.pSong];
|
||||||
resolved.pSteps = vpSongs[ RandomInt(vpSongs.size()) ];
|
resolved.pSteps = mappedSongs[ RandomInt(mappedSongs.size()) ];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -930,8 +930,8 @@ const CourseEntry *Course::FindFixedSong( const Song *pSong ) const
|
|||||||
FOREACH_CONST( CourseEntry, m_vEntries, e )
|
FOREACH_CONST( CourseEntry, m_vEntries, e )
|
||||||
{
|
{
|
||||||
const CourseEntry &entry = *e;
|
const CourseEntry &entry = *e;
|
||||||
Song *pSong = entry.songID.ToSong();
|
Song *lSong = entry.songID.ToSong();
|
||||||
if( pSong == pSong )
|
if( pSong == lSong )
|
||||||
return &entry;
|
return &entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -464,7 +464,7 @@ void EditCourseUtil::PrepareForPlay()
|
|||||||
|
|
||||||
PROFILEMAN->GetProfile(ProfileSlot_Player1)->m_GoalType = GoalType_Time;
|
PROFILEMAN->GetProfile(ProfileSlot_Player1)->m_GoalType = GoalType_Time;
|
||||||
Course *pCourse = GAMESTATE->m_pCurCourse;
|
Course *pCourse = GAMESTATE->m_pCurCourse;
|
||||||
PROFILEMAN->GetProfile(ProfileSlot_Player1)->m_iGoalSeconds = pCourse->m_fGoalSeconds;
|
PROFILEMAN->GetProfile(ProfileSlot_Player1)->m_iGoalSeconds = static_cast<int>(pCourse->m_fGoalSeconds);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditCourseUtil::GetAllEditCourses( vector<Course*> &vpCoursesOut )
|
void EditCourseUtil::GetAllEditCourses( vector<Course*> &vpCoursesOut )
|
||||||
|
|||||||
+6
-6
@@ -311,15 +311,15 @@ const glyph &Font::GetGlyph( wchar_t c ) const
|
|||||||
|
|
||||||
bool Font::FontCompleteForString( const wstring &str ) const
|
bool Font::FontCompleteForString( const wstring &str ) const
|
||||||
{
|
{
|
||||||
map<wchar_t,glyph*>::const_iterator m_pDefault = m_iCharToGlyph.find( FONT_DEFAULT_GLYPH );
|
map<wchar_t,glyph*>::const_iterator mapDefault = m_iCharToGlyph.find( FONT_DEFAULT_GLYPH );
|
||||||
if( m_pDefault == m_iCharToGlyph.end() )
|
if( mapDefault == m_iCharToGlyph.end() )
|
||||||
RageException::Throw( "The default glyph is missing from the font \"%s\".", path.c_str() );
|
RageException::Throw( "The default glyph is missing from the font \"%s\".", path.c_str() );
|
||||||
|
|
||||||
for( unsigned i = 0; i < str.size(); ++i )
|
for( unsigned i = 0; i < str.size(); ++i )
|
||||||
{
|
{
|
||||||
// If the glyph for this character is the default glyph, we're incomplete.
|
// If the glyph for this character is the default glyph, we're incomplete.
|
||||||
const glyph &g = GetGlyph( str[i] );
|
const glyph &g = GetGlyph( str[i] );
|
||||||
if( &g == m_pDefault->second )
|
if( &g == mapDefault->second )
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -718,8 +718,8 @@ void Font::Load( const RString &sIniPath, RString sChars )
|
|||||||
|
|
||||||
for(unsigned i = 0; i < ImportList.size(); ++i)
|
for(unsigned i = 0; i < ImportList.size(); ++i)
|
||||||
{
|
{
|
||||||
RString path = THEME->GetPathF( "", ImportList[i], true );
|
RString fPath = THEME->GetPathF( "", ImportList[i], true );
|
||||||
if( path == "" )
|
if( fPath == "" )
|
||||||
{
|
{
|
||||||
RString s = ssprintf( "Font \"%s\" imports a font \"%s\" that doesn't exist", sIniPath.c_str(), ImportList[i].c_str() );
|
RString s = ssprintf( "Font \"%s\" imports a font \"%s\" that doesn't exist", sIniPath.c_str(), ImportList[i].c_str() );
|
||||||
Dialog::OK( s );
|
Dialog::OK( s );
|
||||||
@@ -727,7 +727,7 @@ void Font::Load( const RString &sIniPath, RString sChars )
|
|||||||
}
|
}
|
||||||
|
|
||||||
Font subfont;
|
Font subfont;
|
||||||
subfont.Load(path,"");
|
subfont.Load(fPath,"");
|
||||||
MergeFont(subfont);
|
MergeFont(subfont);
|
||||||
//FONT->UnloadFont(subfont);
|
//FONT->UnloadFont(subfont);
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-5
@@ -76,23 +76,23 @@ void Foreground::Update( float fDeltaTime )
|
|||||||
|
|
||||||
/* Update the actor even if we're about to hide it, so queued commands
|
/* Update the actor even if we're about to hide it, so queued commands
|
||||||
* are always run. */
|
* are always run. */
|
||||||
float fDeltaTime;
|
float lDeltaTime;
|
||||||
if( !bga.m_bga->GetVisible() )
|
if( !bga.m_bga->GetVisible() )
|
||||||
{
|
{
|
||||||
bga.m_bga->SetVisible( true );
|
bga.m_bga->SetVisible( true );
|
||||||
|
|
||||||
const float fStartSecond = m_pSong->m_Timing.GetElapsedTimeFromBeat( bga.m_fStartBeat );
|
const float fStartSecond = m_pSong->m_Timing.GetElapsedTimeFromBeat( bga.m_fStartBeat );
|
||||||
fDeltaTime = GAMESTATE->m_fMusicSeconds - fStartSecond;
|
lDeltaTime = GAMESTATE->m_fMusicSeconds - fStartSecond;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fDeltaTime = GAMESTATE->m_fMusicSeconds - m_fLastMusicSeconds;
|
lDeltaTime = GAMESTATE->m_fMusicSeconds - m_fLastMusicSeconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This shouldn't go down, but be safe:
|
// This shouldn't go down, but be safe:
|
||||||
fDeltaTime = max( fDeltaTime, 0 );
|
lDeltaTime = max( lDeltaTime, 0 );
|
||||||
|
|
||||||
bga.m_bga->Update( fDeltaTime / fRate );
|
bga.m_bga->Update( lDeltaTime / fRate );
|
||||||
|
|
||||||
if( GAMESTATE->m_fSongBeat > bga.m_fStopBeat )
|
if( GAMESTATE->m_fSongBeat > bga.m_fStopBeat )
|
||||||
{
|
{
|
||||||
|
|||||||
+2
-2
@@ -93,8 +93,8 @@ bool GameCommand::DescribesCurrentMode( PlayerNumber pn ) const
|
|||||||
if( m_pSteps == NULL && m_dc != Difficulty_Invalid )
|
if( m_pSteps == NULL && m_dc != Difficulty_Invalid )
|
||||||
{
|
{
|
||||||
// Why is this checking for all players?
|
// Why is this checking for all players?
|
||||||
FOREACH_HumanPlayer( pn )
|
FOREACH_HumanPlayer( human )
|
||||||
if( GAMESTATE->m_PreferredDifficulty[pn] != m_dc )
|
if( GAMESTATE->m_PreferredDifficulty[human] != m_dc )
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -2361,9 +2361,9 @@ public:
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int GetCurrentStepsCredits( T* p, lua_State *L )
|
static int GetCurrentStepsCredits( T* t, lua_State *L )
|
||||||
{
|
{
|
||||||
const Song* pSong = p->m_pCurSong;
|
const Song* pSong = t->m_pCurSong;
|
||||||
if( pSong == NULL )
|
if( pSong == NULL )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -1093,12 +1093,12 @@ void InputMappings::ReadMappings( const InputScheme *pInputScheme, RString sFile
|
|||||||
vector<RString> sDeviceInputStrings;
|
vector<RString> sDeviceInputStrings;
|
||||||
split( value, DEVICE_INPUT_SEPARATOR, sDeviceInputStrings, false );
|
split( value, DEVICE_INPUT_SEPARATOR, sDeviceInputStrings, false );
|
||||||
|
|
||||||
for( unsigned i=0; i<sDeviceInputStrings.size() && i<unsigned(NUM_GAME_TO_DEVICE_SLOTS); i++ )
|
for( unsigned j=0; j<sDeviceInputStrings.size() && j<unsigned(NUM_GAME_TO_DEVICE_SLOTS); j++ )
|
||||||
{
|
{
|
||||||
DeviceInput DeviceI;
|
DeviceInput DeviceI;
|
||||||
DeviceI.FromString( sDeviceInputStrings[i] );
|
DeviceI.FromString( sDeviceInputStrings[j] );
|
||||||
if( DeviceI.IsValid() )
|
if( DeviceI.IsValid() )
|
||||||
SetInputMap( DeviceI, GameI, i );
|
SetInputMap( DeviceI, GameI, j );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -155,15 +155,15 @@ void ModIconRow::SetFromGameState()
|
|||||||
continue; // skip
|
continue; // skip
|
||||||
|
|
||||||
// search for a vacant spot
|
// search for a vacant spot
|
||||||
for( int i=iPerferredCol; i<NUM_OPTION_ICONS; i++ )
|
for( int j=iPerferredCol; j<NUM_OPTION_ICONS; j++ )
|
||||||
{
|
{
|
||||||
if( vsText[i] != "" )
|
if( vsText[j] != "" )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vsText[i] = sOption;
|
vsText[j] = sOption;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-6
@@ -66,12 +66,9 @@ private:
|
|||||||
RageTexture* pTexture_,
|
RageTexture* pTexture_,
|
||||||
float fDelaySecs_,
|
float fDelaySecs_,
|
||||||
RageVector2 vTranslate_
|
RageVector2 vTranslate_
|
||||||
)
|
):
|
||||||
{
|
pTexture(pTexture_), fDelaySecs(fDelaySecs_),
|
||||||
pTexture = pTexture_;
|
vTranslate(vTranslate_) {}
|
||||||
fDelaySecs = fDelaySecs_;
|
|
||||||
vTranslate = vTranslate_;
|
|
||||||
}
|
|
||||||
|
|
||||||
RageTexture* pTexture;
|
RageTexture* pTexture;
|
||||||
float fDelaySecs;
|
float fDelaySecs;
|
||||||
|
|||||||
+2
-2
@@ -847,9 +847,9 @@ void NoteData::GetTapNoteRangeExclusive( int iTrack, int iStartRow, int iEndRow,
|
|||||||
--prev;
|
--prev;
|
||||||
if( prev->second.type == TapNote::hold_head )
|
if( prev->second.type == TapNote::hold_head )
|
||||||
{
|
{
|
||||||
int iStartRow = prev->first;
|
int localStartRow = prev->first;
|
||||||
const TapNote &tn = prev->second;
|
const TapNote &tn = prev->second;
|
||||||
if( iStartRow + tn.iDuration >= iEndRow )
|
if( localStartRow + tn.iDuration >= iEndRow )
|
||||||
end = prev;
|
end = prev;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -250,8 +250,8 @@ static void LoadFromSMNoteDataStringWithPlayer( NoteData& out, const RString &sS
|
|||||||
for( int t=0; t<out.GetNumTracks(); t++ )
|
for( int t=0; t<out.GetNumTracks(); t++ )
|
||||||
{
|
{
|
||||||
NoteData::iterator begin = out.begin( t );
|
NoteData::iterator begin = out.begin( t );
|
||||||
NoteData::iterator end = out.end( t );
|
NoteData::iterator lEnd = out.end( t );
|
||||||
while( begin != end )
|
while( begin != lEnd )
|
||||||
{
|
{
|
||||||
NoteData::iterator next = Increment( begin );
|
NoteData::iterator next = Increment( begin );
|
||||||
const TapNote &tn = begin->second;
|
const TapNote &tn = begin->second;
|
||||||
@@ -629,12 +629,9 @@ int FindLongestOverlappingHoldNoteForAnyTrack( const NoteData &in, int iRow )
|
|||||||
int iMaxTailRow = -1;
|
int iMaxTailRow = -1;
|
||||||
for( int t=0; t<in.GetNumTracks(); t++ )
|
for( int t=0; t<in.GetNumTracks(); t++ )
|
||||||
{
|
{
|
||||||
for( int t=0; t<in.GetNumTracks(); t++ )
|
const TapNote &tn = in.GetTapNote( t, iRow );
|
||||||
{
|
if( tn.type == TapNote::hold_head )
|
||||||
const TapNote &tn = in.GetTapNote( t, iRow );
|
iMaxTailRow = max( iMaxTailRow, iRow + tn.iDuration );
|
||||||
if( tn.type == TapNote::hold_head )
|
|
||||||
iMaxTailRow = max( iMaxTailRow, iRow + tn.iDuration );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return iMaxTailRow;
|
return iMaxTailRow;
|
||||||
|
|||||||
+13
-9
@@ -209,7 +209,7 @@ void NoteField::Load(
|
|||||||
memset( m_pDisplays, 0, sizeof(m_pDisplays) );
|
memset( m_pDisplays, 0, sizeof(m_pDisplays) );
|
||||||
FOREACH_EnabledPlayer( pn )
|
FOREACH_EnabledPlayer( pn )
|
||||||
{
|
{
|
||||||
RString sNoteSkinLower = GAMESTATE->m_pPlayerState[pn]->m_PlayerOptions.GetCurrent().m_sNoteSkin;
|
sNoteSkinLower = GAMESTATE->m_pPlayerState[pn]->m_PlayerOptions.GetCurrent().m_sNoteSkin;
|
||||||
|
|
||||||
// XXX: Re-setup sNoteSkinLower. Unsure if inserting the skin again is needed.
|
// XXX: Re-setup sNoteSkinLower. Unsure if inserting the skin again is needed.
|
||||||
if (sNoteSkinLower.empty())
|
if (sNoteSkinLower.empty())
|
||||||
@@ -1005,8 +1005,8 @@ void NoteField::DrawPrimitives()
|
|||||||
m_pNoteData->GetTapNoteRange( c, iFirstRowToDraw, iLastRowToDraw+1, begin, end );
|
m_pNoteData->GetTapNoteRange( c, iFirstRowToDraw, iLastRowToDraw+1, begin, end );
|
||||||
for( ; begin != end; ++begin )
|
for( ; begin != end; ++begin )
|
||||||
{
|
{
|
||||||
int i = begin->first;
|
int q = begin->first;
|
||||||
const TapNote &tn = begin->second; //m_pNoteData->GetTapNote(c, i);
|
const TapNote &tn = begin->second; //m_pNoteData->GetTapNote(c, q);
|
||||||
|
|
||||||
// Switch modified by Wolfman2000, tested by Saturn2888
|
// Switch modified by Wolfman2000, tested by Saturn2888
|
||||||
// Fixes hold head overlapping issue, but not the rolls.
|
// Fixes hold head overlapping issue, but not the rolls.
|
||||||
@@ -1031,10 +1031,11 @@ void NoteField::DrawPrimitives()
|
|||||||
// TRICKY: If boomerang is on, then all notes in the range
|
// TRICKY: If boomerang is on, then all notes in the range
|
||||||
// [iFirstRowToDraw,iLastRowToDraw] aren't necessarily visible.
|
// [iFirstRowToDraw,iLastRowToDraw] aren't necessarily visible.
|
||||||
// Test every note to make sure it's on screen before drawing.
|
// Test every note to make sure it's on screen before drawing.
|
||||||
if( !IsOnScreen( NoteRowToBeat(i), c, iDrawDistanceAfterTargetsPixels, iDrawDistanceBeforeTargetsPixels ) )
|
if( !IsOnScreen( NoteRowToBeat(q), c, iDrawDistanceAfterTargetsPixels, iDrawDistanceBeforeTargetsPixels ) )
|
||||||
continue; // skip
|
continue; // skip
|
||||||
|
|
||||||
ASSERT_M( NoteRowToBeat(i) > -2000, ssprintf("%i %i %i, %f %f", i, iLastRowToDraw, iFirstRowToDraw, GAMESTATE->m_fSongBeat, GAMESTATE->m_fMusicSeconds) );
|
ASSERT_M( NoteRowToBeat(q) > -2000, ssprintf("%i %i %i, %f %f", q, iLastRowToDraw,
|
||||||
|
iFirstRowToDraw, GAMESTATE->m_fSongBeat, GAMESTATE->m_fMusicSeconds) );
|
||||||
|
|
||||||
// See if there is a hold step that begins on this index.
|
// See if there is a hold step that begins on this index.
|
||||||
// Only do this if the noteskin cares.
|
// Only do this if the noteskin cares.
|
||||||
@@ -1043,7 +1044,7 @@ void NoteField::DrawPrimitives()
|
|||||||
{
|
{
|
||||||
for( int c2=0; c2<m_pNoteData->GetNumTracks(); c2++ )
|
for( int c2=0; c2<m_pNoteData->GetNumTracks(); c2++ )
|
||||||
{
|
{
|
||||||
if( m_pNoteData->GetTapNote(c2, i).type == TapNote::hold_head)
|
if( m_pNoteData->GetTapNote(c2, q).type == TapNote::hold_head)
|
||||||
{
|
{
|
||||||
bHoldNoteBeginsOnThisBeat = true;
|
bHoldNoteBeginsOnThisBeat = true;
|
||||||
break;
|
break;
|
||||||
@@ -1053,15 +1054,18 @@ void NoteField::DrawPrimitives()
|
|||||||
|
|
||||||
bool bIsInSelectionRange = false;
|
bool bIsInSelectionRange = false;
|
||||||
if( m_iBeginMarker!=-1 && m_iEndMarker!=-1 )
|
if( m_iBeginMarker!=-1 && m_iEndMarker!=-1 )
|
||||||
bIsInSelectionRange = m_iBeginMarker<=i && i<m_iEndMarker;
|
bIsInSelectionRange = m_iBeginMarker<=q && q<m_iEndMarker;
|
||||||
|
|
||||||
bool bIsAddition = (tn.source == TapNote::addition);
|
bool bIsAddition = (tn.source == TapNote::addition);
|
||||||
bool bIsHopoPossible = (tn.bHopoPossible);
|
bool bIsHopoPossible = (tn.bHopoPossible);
|
||||||
bool bUseAdditionColoring = bIsAddition || bIsHopoPossible;
|
bool bUseAdditionColoring = bIsAddition || bIsHopoPossible;
|
||||||
NoteDisplayCols *displayCols = tn.pn == PLAYER_INVALID ? m_pCurDisplay : m_pDisplays[tn.pn];
|
NoteDisplayCols *displayCols = tn.pn == PLAYER_INVALID ? m_pCurDisplay : m_pDisplays[tn.pn];
|
||||||
displayCols->display[c].DrawTap( tn, c, NoteRowToBeat(i), bHoldNoteBeginsOnThisBeat, bUseAdditionColoring, bIsInSelectionRange ? fSelectedRangeGlow : m_fPercentFadeToFail, m_fYReverseOffsetPixels, iDrawDistanceAfterTargetsPixels, iDrawDistanceBeforeTargetsPixels, FADE_BEFORE_TARGETS_PERCENT );
|
displayCols->display[c].DrawTap( tn, c, NoteRowToBeat(q), bHoldNoteBeginsOnThisBeat,
|
||||||
|
bUseAdditionColoring, bIsInSelectionRange ? fSelectedRangeGlow : m_fPercentFadeToFail,
|
||||||
|
m_fYReverseOffsetPixels, iDrawDistanceAfterTargetsPixels, iDrawDistanceBeforeTargetsPixels,
|
||||||
|
FADE_BEFORE_TARGETS_PERCENT );
|
||||||
|
|
||||||
bool bNoteIsUpcoming = NoteRowToBeat(i) > GAMESTATE->m_fSongBeat;
|
bool bNoteIsUpcoming = NoteRowToBeat(q) > GAMESTATE->m_fSongBeat;
|
||||||
bAnyUpcomingInThisCol |= bNoteIsUpcoming;
|
bAnyUpcomingInThisCol |= bNoteIsUpcoming;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -282,22 +282,22 @@ try_again:
|
|||||||
const NoteSkinData &data = iter->second;
|
const NoteSkinData &data = iter->second;
|
||||||
|
|
||||||
RString sPath; // fill this in below
|
RString sPath; // fill this in below
|
||||||
FOREACH_CONST( RString, data.vsDirSearchOrder, iter )
|
FOREACH_CONST( RString, data.vsDirSearchOrder, lIter )
|
||||||
{
|
{
|
||||||
if( sButtonName.empty() )
|
if( sButtonName.empty() )
|
||||||
sPath = GetPathFromDirAndFile( *iter, sElement );
|
sPath = GetPathFromDirAndFile( *lIter, sElement );
|
||||||
else
|
else
|
||||||
sPath = GetPathFromDirAndFile( *iter, sButtonName+" "+sElement );
|
sPath = GetPathFromDirAndFile( *lIter, sButtonName+" "+sElement );
|
||||||
if( !sPath.empty() )
|
if( !sPath.empty() )
|
||||||
break; // done searching
|
break; // done searching
|
||||||
}
|
}
|
||||||
|
|
||||||
if( sPath.empty() )
|
if( sPath.empty() )
|
||||||
{
|
{
|
||||||
FOREACH_CONST( RString, data.vsDirSearchOrder, iter )
|
FOREACH_CONST( RString, data.vsDirSearchOrder, lIter )
|
||||||
{
|
{
|
||||||
if( !sButtonName.empty() )
|
if( !sButtonName.empty() )
|
||||||
sPath = GetPathFromDirAndFile( *iter, "Fallback "+sElement );
|
sPath = GetPathFromDirAndFile( *lIter, "Fallback "+sElement );
|
||||||
if( !sPath.empty() )
|
if( !sPath.empty() )
|
||||||
break; // done searching
|
break; // done searching
|
||||||
}
|
}
|
||||||
@@ -340,9 +340,9 @@ try_again:
|
|||||||
GetFileContents( sPath, sNewFileName, true );
|
GetFileContents( sPath, sNewFileName, true );
|
||||||
RString sRealPath;
|
RString sRealPath;
|
||||||
|
|
||||||
FOREACH_CONST( RString, data.vsDirSearchOrder, iter )
|
FOREACH_CONST( RString, data.vsDirSearchOrder, lIter )
|
||||||
{
|
{
|
||||||
sRealPath = GetPathFromDirAndFile( *iter, sNewFileName );
|
sRealPath = GetPathFromDirAndFile( *lIter, sNewFileName );
|
||||||
if( !sRealPath.empty() )
|
if( !sRealPath.empty() )
|
||||||
break; // done searching
|
break; // done searching
|
||||||
}
|
}
|
||||||
|
|||||||
+12
-12
@@ -476,9 +476,9 @@ static bool LoadFromBMSFile( const RString &sPath, const NameToData_t &mapNameTo
|
|||||||
if( sNoteId != "00" )
|
if( sNoteId != "00" )
|
||||||
{
|
{
|
||||||
vTapNotes.push_back( TAP_ORIGINAL_TAP );
|
vTapNotes.push_back( TAP_ORIGINAL_TAP );
|
||||||
map<RString,int>::const_iterator it = idToKeySoundIndex.find( sNoteId );
|
map<RString,int>::const_iterator rInt = idToKeySoundIndex.find( sNoteId );
|
||||||
if( it != idToKeySoundIndex.end() )
|
if( rInt != idToKeySoundIndex.end() )
|
||||||
vTapNotes.back().iKeysoundIndex = it->second;
|
vTapNotes.back().iKeysoundIndex = rInt->second;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -762,28 +762,28 @@ static void ReadGlobalTags( const NameToData_t &mapNameToData, Song &out, Measur
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
// this is keysound file name. Looks like "#WAV1A"
|
// this is keysound file name. Looks like "#WAV1A"
|
||||||
RString sData = it->second;
|
RString nData = it->second;
|
||||||
RString sWavID = sName.Right(2);
|
RString sWavID = sName.Right(2);
|
||||||
|
|
||||||
/* Due to bugs in some programs, many BMS files have a "WAV" extension
|
/* Due to bugs in some programs, many BMS files have a "WAV" extension
|
||||||
* on files in the BMS for files that actually have some other extension.
|
* on files in the BMS for files that actually have some other extension.
|
||||||
* Do a search. Don't do a wildcard search; if sData is "song.wav",
|
* Do a search. Don't do a wildcard search; if sData is "song.wav",
|
||||||
* we might also have "song.png", which we shouldn't match. */
|
* we might also have "song.png", which we shouldn't match. */
|
||||||
if( !IsAFile(out.GetSongDir()+sData) )
|
if( !IsAFile(out.GetSongDir()+nData) )
|
||||||
{
|
{
|
||||||
const char *exts[] = { "oga", "ogg", "wav", "mp3", NULL }; // XXX: stop duplicating these everywhere
|
const char *exts[] = { "oga", "ogg", "wav", "mp3", NULL }; // XXX: stop duplicating these everywhere
|
||||||
for( unsigned i = 0; exts[i] != NULL; ++i )
|
for( unsigned i = 0; exts[i] != NULL; ++i )
|
||||||
{
|
{
|
||||||
RString fn = SetExtension( sData, exts[i] );
|
RString fn = SetExtension( nData, exts[i] );
|
||||||
if( IsAFile(out.GetSongDir()+fn) )
|
if( IsAFile(out.GetSongDir()+fn) )
|
||||||
{
|
{
|
||||||
sData = fn;
|
nData = fn;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( !IsAFile(out.GetSongDir()+sData) )
|
if( !IsAFile(out.GetSongDir()+nData) )
|
||||||
LOG->UserLog( "Song file", out.GetSongDir(), "references key \"%s\" that can't be found", sData.c_str() );
|
LOG->UserLog( "Song file", out.GetSongDir(), "references key \"%s\" that can't be found", nData.c_str() );
|
||||||
|
|
||||||
sWavID.MakeUpper(); // HACK: undo the MakeLower()
|
sWavID.MakeUpper(); // HACK: undo the MakeLower()
|
||||||
out.m_vsKeysoundFile.push_back( sData );
|
out.m_vsKeysoundFile.push_back( sData );
|
||||||
@@ -807,11 +807,11 @@ static void ReadGlobalTags( const NameToData_t &mapNameToData, Song &out, Measur
|
|||||||
float fBeatsPerMeasure = GetBeatsPerMeasure( mapMeasureToTimeSig, iMeasureNo, sigAdjustmentsOut );
|
float fBeatsPerMeasure = GetBeatsPerMeasure( mapMeasureToTimeSig, iMeasureNo, sigAdjustmentsOut );
|
||||||
int iRowsPerMeasure = BeatToNoteRow( fBeatsPerMeasure );
|
int iRowsPerMeasure = BeatToNoteRow( fBeatsPerMeasure );
|
||||||
|
|
||||||
RString sData = it->second;
|
RString nData = it->second;
|
||||||
int totalPairs = sData.size() / 2;
|
int totalPairs = nData.size() / 2;
|
||||||
for( int i = 0; i < totalPairs; ++i )
|
for( int i = 0; i < totalPairs; ++i )
|
||||||
{
|
{
|
||||||
RString sPair = sData.substr( i*2, 2 );
|
RString sPair = nData.substr( i*2, 2 );
|
||||||
|
|
||||||
int iVal = 0;
|
int iVal = 0;
|
||||||
if( sscanf( sPair, "%x", &iVal ) == 0 || iVal == 0 )
|
if( sscanf( sPair, "%x", &iVal ) == 0 || iVal == 0 )
|
||||||
|
|||||||
@@ -750,9 +750,9 @@ static bool LoadFromMidi( const RString &sPath, Song &songOut )
|
|||||||
if( uVelocity == 0 )
|
if( uVelocity == 0 )
|
||||||
midiEventType = note_off;
|
midiEventType = note_off;
|
||||||
|
|
||||||
MidiEvent event = { count, midiEventType };
|
MidiEvent mEvent = { count, midiEventType };
|
||||||
//float fBeat = NoteRowToBeat( MidiCountToNoteRow(count) );
|
//float fBeat = NoteRowToBeat( MidiCountToNoteRow(count) );
|
||||||
vMidiEvent[uNoteNumber].push_back( event );
|
vMidiEvent[uNoteNumber].push_back( mEvent );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -850,13 +850,13 @@ skip_track:
|
|||||||
// hold note ending on the same row as a tap note.
|
// hold note ending on the same row as a tap note.
|
||||||
NoteData::TrackMap::iterator begin, end;
|
NoteData::TrackMap::iterator begin, end;
|
||||||
noteData.GetTapNoteRangeInclusive( nnt, MidiCountToNoteRow(count), MidiCountToNoteRow(count), begin, end, true );
|
noteData.GetTapNoteRangeInclusive( nnt, MidiCountToNoteRow(count), MidiCountToNoteRow(count), begin, end, true );
|
||||||
for( NoteData::TrackMap::iterator iter = begin; iter != end; iter++ )
|
for( NoteData::TrackMap::iterator lIter = begin; lIter != end; lIter++ )
|
||||||
{
|
{
|
||||||
// if( gd == expert && fBeat >= 27*4-2 && nnt == green )
|
// if( gd == expert && fBeat >= 27*4-2 && nnt == green )
|
||||||
// LOG->Trace( "shortening hold at %f, length %d", fBeat, length );
|
// LOG->Trace( "shortening hold at %f, length %d", fBeat, length );
|
||||||
|
|
||||||
ASSERT( iter->second.type == TapNote::hold_head );
|
ASSERT( lIter->second.type == TapNote::hold_head );
|
||||||
iter->second.iDuration = MidiCountToNoteRow(count) - iter->first - 2;
|
lIter->second.iDuration = MidiCountToNoteRow(count) - lIter->first - 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
noteData.SetTapNote( nnt, MidiCountToNoteRow(count), tn );
|
noteData.SetTapNote( nnt, MidiCountToNoteRow(count), tn );
|
||||||
|
|||||||
+14
-14
@@ -408,9 +408,9 @@ static bool LoadFromPMSFile( const RString &sPath, const NameToData_t &mapNameTo
|
|||||||
if( sNoteId != "00" )
|
if( sNoteId != "00" )
|
||||||
{
|
{
|
||||||
vTapNotes.push_back( TAP_ORIGINAL_TAP );
|
vTapNotes.push_back( TAP_ORIGINAL_TAP );
|
||||||
map<RString,int>::const_iterator it = idToKeySoundIndex.find( sNoteId );
|
map<RString,int>::const_iterator rInt = idToKeySoundIndex.find( sNoteId );
|
||||||
if( it != idToKeySoundIndex.end() )
|
if( rInt != idToKeySoundIndex.end() )
|
||||||
vTapNotes.back().iKeysoundIndex = it->second;
|
vTapNotes.back().iKeysoundIndex = rInt->second;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -609,31 +609,31 @@ static void ReadGlobalTags( const NameToData_t &mapNameToData, Song &out, Measur
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
// this is keysound file name. Looks like "#WAV1A"
|
// this is keysound file name. Looks like "#WAV1A"
|
||||||
RString sData = it->second;
|
RString nData = it->second;
|
||||||
RString sWavID = sName.Right(2);
|
RString sWavID = sName.Right(2);
|
||||||
|
|
||||||
/* Due to bugs in some programs, many PMS files have a "WAV" extension
|
/* Due to bugs in some programs, many PMS files have a "WAV" extension
|
||||||
* on files in the PMS for files that actually have some other extension.
|
* on files in the PMS for files that actually have some other extension.
|
||||||
* Do a search. Don't do a wildcard search; if sData is "song.wav",
|
* Do a search. Don't do a wildcard search; if sData is "song.wav",
|
||||||
* we might also have "song.png", which we shouldn't match. */
|
* we might also have "song.png", which we shouldn't match. */
|
||||||
if( !IsAFile(out.GetSongDir()+sData) )
|
if( !IsAFile(out.GetSongDir()+nData) )
|
||||||
{
|
{
|
||||||
const char *exts[] = { "oga", "ogg", "wav", "mp3", NULL }; // XXX: stop duplicating these everywhere
|
const char *exts[] = { "oga", "ogg", "wav", "mp3", NULL }; // XXX: stop duplicating these everywhere
|
||||||
for( unsigned i = 0; exts[i] != NULL; ++i )
|
for( unsigned i = 0; exts[i] != NULL; ++i )
|
||||||
{
|
{
|
||||||
RString fn = SetExtension( sData, exts[i] );
|
RString fn = SetExtension( nData, exts[i] );
|
||||||
if( IsAFile(out.GetSongDir()+fn) )
|
if( IsAFile(out.GetSongDir()+fn) )
|
||||||
{
|
{
|
||||||
sData = fn;
|
nData = fn;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( !IsAFile(out.GetSongDir()+sData) )
|
if( !IsAFile(out.GetSongDir()+nData) )
|
||||||
LOG->UserLog( "Song file", out.GetSongDir(), "references key \"%s\" that can't be found", sData.c_str() );
|
LOG->UserLog( "Song file", out.GetSongDir(), "references key \"%s\" that can't be found", nData.c_str() );
|
||||||
|
|
||||||
sWavID.MakeUpper(); // HACK: undo the MakeLower()
|
sWavID.MakeUpper(); // HACK: undo the MakeLower()
|
||||||
out.m_vsKeysoundFile.push_back( sData );
|
out.m_vsKeysoundFile.push_back( nData );
|
||||||
idToKeySoundIndexOut[ sWavID ] = out.m_vsKeysoundFile.size()-1;
|
idToKeySoundIndexOut[ sWavID ] = out.m_vsKeysoundFile.size()-1;
|
||||||
LOG->Trace( "Inserting keysound index %u '%s'", unsigned(out.m_vsKeysoundFile.size()-1), sWavID.c_str() );
|
LOG->Trace( "Inserting keysound index %u '%s'", unsigned(out.m_vsKeysoundFile.size()-1), sWavID.c_str() );
|
||||||
}
|
}
|
||||||
@@ -654,11 +654,11 @@ static void ReadGlobalTags( const NameToData_t &mapNameToData, Song &out, Measur
|
|||||||
float fBeatsPerMeasure = GetBeatsPerMeasure( mapMeasureToTimeSig, iMeasureNo, sigAdjustmentsOut );
|
float fBeatsPerMeasure = GetBeatsPerMeasure( mapMeasureToTimeSig, iMeasureNo, sigAdjustmentsOut );
|
||||||
int iRowsPerMeasure = BeatToNoteRow( fBeatsPerMeasure );
|
int iRowsPerMeasure = BeatToNoteRow( fBeatsPerMeasure );
|
||||||
|
|
||||||
RString sData = it->second;
|
RString nData = it->second;
|
||||||
int totalPairs = sData.size() / 2;
|
int totalPairs = nData.size() / 2;
|
||||||
for( int i = 0; i < totalPairs; ++i )
|
for( int i = 0; i < totalPairs; ++i )
|
||||||
{
|
{
|
||||||
RString sPair = sData.substr( i*2, 2 );
|
RString sPair = nData.substr( i*2, 2 );
|
||||||
|
|
||||||
int iVal = 0;
|
int iVal = 0;
|
||||||
if( sscanf( sPair, "%x", &iVal ) == 0 || iVal == 0 )
|
if( sscanf( sPair, "%x", &iVal ) == 0 || iVal == 0 )
|
||||||
@@ -738,7 +738,7 @@ static void ReadGlobalTags( const NameToData_t &mapNameToData, Song &out, Measur
|
|||||||
{
|
{
|
||||||
// XXX: offset
|
// XXX: offset
|
||||||
int iBPMNo;
|
int iBPMNo;
|
||||||
sscanf( sData, "%x", &iBPMNo ); // data is in hexadecimal
|
sscanf( nData, "%x", &iBPMNo ); // data is in hexadecimal
|
||||||
|
|
||||||
RString sBPM;
|
RString sBPM;
|
||||||
RString sTagToLookFor = ssprintf( "#bpm%02x", iBPMNo );
|
RString sTagToLookFor = ssprintf( "#bpm%02x", iBPMNo );
|
||||||
|
|||||||
@@ -413,9 +413,9 @@ void SMLoader::LoadTimingFromSMFile( const MsdFile &msd, TimingData &out )
|
|||||||
if(arrayWarpsFromNegativeBPMs.size() > 0)
|
if(arrayWarpsFromNegativeBPMs.size() > 0)
|
||||||
{
|
{
|
||||||
// zomg we already have some warps...
|
// zomg we already have some warps...
|
||||||
for( unsigned i=0; i<arrayWarpsFromNegativeBPMs.size(); i++ )
|
for( unsigned j=0; j<arrayWarpsFromNegativeBPMs.size(); j++ )
|
||||||
{
|
{
|
||||||
out.AddWarpSegment( arrayWarpsFromNegativeBPMs[i] );
|
out.AddWarpSegment( arrayWarpsFromNegativeBPMs[j] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// warp sorting will need to take place.
|
// warp sorting will need to take place.
|
||||||
|
|||||||
+1
-1
@@ -603,7 +603,7 @@ void OptionRow::UpdateEnabledDisabled()
|
|||||||
case LAYOUT_SHOW_ONE_IN_ROW:
|
case LAYOUT_SHOW_ONE_IN_ROW:
|
||||||
FOREACH_HumanPlayer( pn )
|
FOREACH_HumanPlayer( pn )
|
||||||
{
|
{
|
||||||
bool bRowEnabled = m_pHand->m_Def.m_vEnabledForPlayers.find(pn) != m_pHand->m_Def.m_vEnabledForPlayers.end();
|
bRowEnabled = m_pHand->m_Def.m_vEnabledForPlayers.find(pn) != m_pHand->m_Def.m_vEnabledForPlayers.end();
|
||||||
|
|
||||||
if( !m_pHand->m_Def.m_bOneChoiceForAllPlayers )
|
if( !m_pHand->m_Def.m_bOneChoiceForAllPlayers )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -149,15 +149,15 @@ public:
|
|||||||
|
|
||||||
{
|
{
|
||||||
// Parse the basic configuration metric.
|
// Parse the basic configuration metric.
|
||||||
Commands cmds = ParseCommands( ENTRY(sParam) );
|
Commands lCmds = ParseCommands( ENTRY(sParam) );
|
||||||
if( cmds.v.size() < 1 )
|
if( lCmds.v.size() < 1 )
|
||||||
RageException::Throw( "Parse error in \"ScreenOptionsMaster::%s\".", sParam.c_str() );
|
RageException::Throw( "Parse error in \"ScreenOptionsMaster::%s\".", sParam.c_str() );
|
||||||
|
|
||||||
m_Def.m_bOneChoiceForAllPlayers = false;
|
m_Def.m_bOneChoiceForAllPlayers = false;
|
||||||
const int NumCols = atoi( cmds.v[0].m_vsArgs[0] );
|
const int NumCols = atoi( lCmds.v[0].m_vsArgs[0] );
|
||||||
for( unsigned i=1; i<cmds.v.size(); i++ )
|
for( unsigned i=1; i<lCmds.v.size(); i++ )
|
||||||
{
|
{
|
||||||
const Command &cmd = cmds.v[i];
|
const Command &cmd = lCmds.v[i];
|
||||||
RString sName = cmd.GetName();
|
RString sName = cmd.GetName();
|
||||||
|
|
||||||
if( sName == "together" ) m_Def.m_bOneChoiceForAllPlayers = true;
|
if( sName == "together" ) m_Def.m_bOneChoiceForAllPlayers = true;
|
||||||
@@ -188,8 +188,8 @@ public:
|
|||||||
}
|
}
|
||||||
else if( sName == "broadcastonexport" )
|
else if( sName == "broadcastonexport" )
|
||||||
{
|
{
|
||||||
for( unsigned i=1; i<cmd.m_vsArgs.size(); i++ )
|
for( unsigned j=1; j<cmd.m_vsArgs.size(); j++ )
|
||||||
m_vsBroadcastOnExport.push_back( cmd.m_vsArgs[i] );
|
m_vsBroadcastOnExport.push_back( cmd.m_vsArgs[j] );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -53,12 +53,12 @@ void OptionsCursor::Load( const RString &sMetricsGroup, bool bLoadCanGos )
|
|||||||
}
|
}
|
||||||
#undef LOAD_SPR
|
#undef LOAD_SPR
|
||||||
|
|
||||||
m_iOriginalLeftX = m_sprLeft->GetX();
|
m_iOriginalLeftX = static_cast<int>(m_sprLeft->GetX());
|
||||||
m_iOriginalRightX = m_sprRight->GetX();
|
m_iOriginalRightX = static_cast<int>(m_sprRight->GetX());
|
||||||
if( bLoadCanGos )
|
if( bLoadCanGos )
|
||||||
{
|
{
|
||||||
m_iOriginalCanGoLeftX = m_sprCanGoLeft->GetX();
|
m_iOriginalCanGoLeftX = static_cast<int>(m_sprCanGoLeft->GetX());
|
||||||
m_iOriginalCanGoRightX = m_sprCanGoRight->GetX();
|
m_iOriginalCanGoRightX = static_cast<int>(m_sprCanGoRight->GetX());
|
||||||
}
|
}
|
||||||
|
|
||||||
SetCanGo( false, false );
|
SetCanGo( false, false );
|
||||||
|
|||||||
+14
-14
@@ -138,17 +138,17 @@ void OptionListRow::SetUnderlines( const vector<bool> &aSelections, const Option
|
|||||||
if( pTarget->m_Def.m_selectType == SELECT_ONE )
|
if( pTarget->m_Def.m_selectType == SELECT_ONE )
|
||||||
{
|
{
|
||||||
int iSelection = m_pOptions->GetOneSelection(sDest);
|
int iSelection = m_pOptions->GetOneSelection(sDest);
|
||||||
const OptionRowHandler *pHandler = m_pOptions->m_Rows.find(sDest)->second;
|
const OptionRowHandler *lHandler = m_pOptions->m_Rows.find(sDest)->second;
|
||||||
int iDefault = pHandler->GetDefaultOption();
|
int iDefault = lHandler->GetDefaultOption();
|
||||||
if( iDefault != -1 && iSelection != iDefault )
|
if( iDefault != -1 && iSelection != iDefault )
|
||||||
bSelected |= true;
|
bSelected |= true;
|
||||||
}
|
}
|
||||||
else if( pTarget->m_Def.m_selectType == SELECT_MULTIPLE )
|
else if( pTarget->m_Def.m_selectType == SELECT_MULTIPLE )
|
||||||
{
|
{
|
||||||
const vector<bool> &bTargetSelections = m_pOptions->m_bSelections.find(sDest)->second;
|
const vector<bool> &bTargetSelections = m_pOptions->m_bSelections.find(sDest)->second;
|
||||||
for( unsigned i=0; i<bTargetSelections.size(); i++ )
|
for( unsigned j=0; j<bTargetSelections.size(); j++ )
|
||||||
{
|
{
|
||||||
if( bTargetSelections[i] )
|
if( bTargetSelections[j] )
|
||||||
bSelected = true;
|
bSelected = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -400,10 +400,10 @@ void OptionsList::Input( const InputEventPlus &input )
|
|||||||
wrap( iSelection, bTargetSelections.size() );
|
wrap( iSelection, bTargetSelections.size() );
|
||||||
SelectItem( sDest, iSelection );
|
SelectItem( sDest, iSelection );
|
||||||
|
|
||||||
Message msg("OptionsListQuickChange");
|
Message lMsg("OptionsListQuickChange");
|
||||||
msg.SetParam( "Player", pn );
|
lMsg.SetParam( "Player", pn );
|
||||||
msg.SetParam( "Direction", iDir );
|
lMsg.SetParam( "Direction", iDir );
|
||||||
MESSAGEMAN->Broadcast( msg );
|
MESSAGEMAN->Broadcast( lMsg );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@@ -426,9 +426,9 @@ void OptionsList::Input( const InputEventPlus &input )
|
|||||||
wrap( m_iMenuStackSelection, pHandler->m_Def.m_vsChoices.size()+1 ); // +1 for exit row
|
wrap( m_iMenuStackSelection, pHandler->m_Def.m_vsChoices.size()+1 ); // +1 for exit row
|
||||||
PositionCursor();
|
PositionCursor();
|
||||||
|
|
||||||
Message msg("OptionsListLeft");
|
Message lMsg("OptionsListLeft");
|
||||||
msg.SetParam( "Player", input.pn );
|
lMsg.SetParam( "Player", input.pn );
|
||||||
MESSAGEMAN->Broadcast( msg );
|
MESSAGEMAN->Broadcast( lMsg );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if( input.MenuI == GAME_BUTTON_RIGHT )
|
else if( input.MenuI == GAME_BUTTON_RIGHT )
|
||||||
@@ -447,9 +447,9 @@ void OptionsList::Input( const InputEventPlus &input )
|
|||||||
wrap( m_iMenuStackSelection, pHandler->m_Def.m_vsChoices.size()+1 ); // +1 for exit row
|
wrap( m_iMenuStackSelection, pHandler->m_Def.m_vsChoices.size()+1 ); // +1 for exit row
|
||||||
PositionCursor();
|
PositionCursor();
|
||||||
|
|
||||||
Message msg("OptionsListRight");
|
Message lMsg("OptionsListRight");
|
||||||
msg.SetParam( "Player", input.pn );
|
lMsg.SetParam( "Player", input.pn );
|
||||||
MESSAGEMAN->Broadcast( msg );
|
MESSAGEMAN->Broadcast( lMsg );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if( input.MenuI == GAME_BUTTON_START )
|
else if( input.MenuI == GAME_BUTTON_START )
|
||||||
|
|||||||
+6
-6
@@ -2810,16 +2810,16 @@ void Player::CrossedRows( int iLastRowCrossed, const RageTimer &now )
|
|||||||
int iNumHoldsMissedThisRow = 0;
|
int iNumHoldsMissedThisRow = 0;
|
||||||
|
|
||||||
// start at r-1 so that we consider holds whose end rows are equal to the checkpoint row
|
// start at r-1 so that we consider holds whose end rows are equal to the checkpoint row
|
||||||
NoteData::all_tracks_iterator iter = m_NoteData.GetTapNoteRangeAllTracks( r-1, r, true );
|
NoteData::all_tracks_iterator nIter = m_NoteData.GetTapNoteRangeAllTracks( r-1, r, true );
|
||||||
for( ; !iter.IsAtEnd(); ++iter )
|
for( ; !nIter.IsAtEnd(); ++nIter )
|
||||||
{
|
{
|
||||||
TapNote &tn = *iter;
|
TapNote &tn = *nIter;
|
||||||
if( tn.type != TapNote::hold_head )
|
if( tn.type != TapNote::hold_head )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
int iStartRow = iter.Row();
|
int iStartRow = nIter.Row();
|
||||||
int iEndRow = iStartRow + tn.iDuration;
|
int iEndRow = iStartRow + tn.iDuration;
|
||||||
int iTrack = iter.Track();
|
int iTrack = nIter.Track();
|
||||||
|
|
||||||
// "the first row after the hold head that lands on a beat"
|
// "the first row after the hold head that lands on a beat"
|
||||||
int iFirstCheckpointOfHold = ((iStartRow+iCheckpointFrequencyRows)/iCheckpointFrequencyRows) * iCheckpointFrequencyRows;
|
int iFirstCheckpointOfHold = ((iStartRow+iCheckpointFrequencyRows)/iCheckpointFrequencyRows) * iCheckpointFrequencyRows;
|
||||||
@@ -3193,7 +3193,7 @@ void Player::SetCombo( int iCombo, int iMisses )
|
|||||||
if( GAMESTATE->IsCourseMode() )
|
if( GAMESTATE->IsCourseMode() )
|
||||||
{
|
{
|
||||||
int iSongIndexStartColoring = GAMESTATE->m_pCurCourse->GetEstimatedNumStages();
|
int iSongIndexStartColoring = GAMESTATE->m_pCurCourse->GetEstimatedNumStages();
|
||||||
iSongIndexStartColoring = floor(iSongIndexStartColoring*PERCENT_UNTIL_COLOR_COMBO);
|
iSongIndexStartColoring = static_cast<int>(floor(iSongIndexStartColoring*PERCENT_UNTIL_COLOR_COMBO));
|
||||||
bPastBeginning = GAMESTATE->GetCourseSongIndex() >= iSongIndexStartColoring;
|
bPastBeginning = GAMESTATE->GetCourseSongIndex() >= iSongIndexStartColoring;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
+7
-7
@@ -363,8 +363,8 @@ float Profile::GetSongsActual( StepsType st, Difficulty dc ) const
|
|||||||
|
|
||||||
FOREACHM_CONST( StepsID, HighScoresForASteps, hsfas.m_StepsHighScores, j )
|
FOREACHM_CONST( StepsID, HighScoresForASteps, hsfas.m_StepsHighScores, j )
|
||||||
{
|
{
|
||||||
const StepsID &id = j->first;
|
const StepsID &sid = j->first;
|
||||||
Steps* pSteps = id.ToSteps( pSong, true );
|
Steps* pSteps = sid.ToSteps( pSong, true );
|
||||||
CHECKPOINT_M( ssprintf("Profile::GetSongsActual: song %p, steps %p", pSong, pSteps) );
|
CHECKPOINT_M( ssprintf("Profile::GetSongsActual: song %p, steps %p", pSong, pSteps) );
|
||||||
|
|
||||||
// If the Steps isn't loaded on the current machine, then we can't
|
// If the Steps isn't loaded on the current machine, then we can't
|
||||||
@@ -375,7 +375,7 @@ float Profile::GetSongsActual( StepsType st, Difficulty dc ) const
|
|||||||
if( pSteps->m_StepsType != st )
|
if( pSteps->m_StepsType != st )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
CHECKPOINT_M( ssprintf("Profile::GetSongsActual: n %s = %p", id.ToString().c_str(), pSteps) );
|
CHECKPOINT_M( ssprintf("Profile::GetSongsActual: n %s = %p", sid.ToString().c_str(), pSteps) );
|
||||||
if( pSteps->GetDifficulty() != dc )
|
if( pSteps->GetDifficulty() != dc )
|
||||||
continue; // skip
|
continue; // skip
|
||||||
CHECKPOINT;
|
CHECKPOINT;
|
||||||
@@ -1303,13 +1303,13 @@ void Profile::LoadGeneralDataFromNode( const XNode* pNode )
|
|||||||
if( style->GetName() != "Style" )
|
if( style->GetName() != "Style" )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
StyleID s;
|
StyleID sID;
|
||||||
s.LoadFromNode( style );
|
sID.LoadFromNode( style );
|
||||||
|
|
||||||
if( !s.IsValid() )
|
if( !sID.IsValid() )
|
||||||
WARN_AND_CONTINUE;
|
WARN_AND_CONTINUE;
|
||||||
|
|
||||||
style->GetTextValue( m_iNumSongsPlayedByStyle[s] );
|
style->GetTextValue( m_iNumSongsPlayedByStyle[sID] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -489,10 +489,10 @@ bool ProfileManager::DeleteLocalProfile( RString sProfileID )
|
|||||||
g_vLocalProfile.erase( i );
|
g_vLocalProfile.erase( i );
|
||||||
|
|
||||||
// Delete all references to this profileID
|
// Delete all references to this profileID
|
||||||
FOREACH_CONST( Preference<RString>*, m_sDefaultLocalProfileID.m_v, i )
|
FOREACH_CONST( Preference<RString>*, m_sDefaultLocalProfileID.m_v, j )
|
||||||
{
|
{
|
||||||
if( (*i)->Get() == sProfileID )
|
if( (*j)->Get() == sProfileID )
|
||||||
(*i)->Set( "" );
|
(*j)->Set( "" );
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -760,7 +760,7 @@ bool RageDisplay::SaveScreenshot( RString sPath, GraphicsFileFormat format )
|
|||||||
int iHeight = 480;
|
int iHeight = 480;
|
||||||
// This used to be lrintf. However, lrintf causes odd resolutions like
|
// This used to be lrintf. However, lrintf causes odd resolutions like
|
||||||
// 639x480 (4:3) and 853x480 (16:9). ceilf gives correct values. -aj
|
// 639x480 (4:3) and 853x480 (16:9). ceilf gives correct values. -aj
|
||||||
int iWidth = ceilf( iHeight * GetActualVideoModeParams().fDisplayAspectRatio );
|
int iWidth = static_cast<int>(ceilf( iHeight * GetActualVideoModeParams().fDisplayAspectRatio ));
|
||||||
timer.Touch();
|
timer.Touch();
|
||||||
RageSurfaceUtils::Zoom( surface, iWidth, iHeight );
|
RageSurfaceUtils::Zoom( surface, iWidth, iHeight );
|
||||||
// LOG->Trace( "%ix%i -> %ix%i (%.3f) in %f seconds", surface->w, surface->h, iWidth, iHeight, GetActualVideoModeParams().fDisplayAspectRatio, timer.GetDeltaTime() );
|
// LOG->Trace( "%ix%i -> %ix%i (%.3f) in %f seconds", surface->w, surface->h, iWidth, iHeight, GetActualVideoModeParams().fDisplayAspectRatio, timer.GetDeltaTime() );
|
||||||
|
|||||||
@@ -245,14 +245,14 @@ int RageFileObjDeflate::WriteInternal( const void *pBuffer, size_t iBytes )
|
|||||||
|
|
||||||
if( m_pDeflate->avail_out < sizeof(buf) )
|
if( m_pDeflate->avail_out < sizeof(buf) )
|
||||||
{
|
{
|
||||||
int iBytes = sizeof(buf)-m_pDeflate->avail_out;
|
int lBytes = sizeof(buf)-m_pDeflate->avail_out;
|
||||||
int iRet = m_pFile->Write( buf, iBytes );
|
int iRet = m_pFile->Write( buf, lBytes );
|
||||||
if( iRet == -1 )
|
if( iRet == -1 )
|
||||||
{
|
{
|
||||||
SetError( m_pFile->GetError() );
|
SetError( m_pFile->GetError() );
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if( iRet < iBytes )
|
if( iRet < lBytes )
|
||||||
{
|
{
|
||||||
SetError( "Partial write" );
|
SetError( "Partial write" );
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
@@ -377,8 +377,8 @@ void RageFileManager::GetDirListing( const RString &sPath_, vector<RString> &Add
|
|||||||
for( unsigned j = OldStart; j < AddTo.size(); ++j )
|
for( unsigned j = OldStart; j < AddTo.size(); ++j )
|
||||||
{
|
{
|
||||||
/* Skip the trailing slash on the mountpoint; there's already a slash there. */
|
/* Skip the trailing slash on the mountpoint; there's already a slash there. */
|
||||||
RString &sPath = AddTo[j];
|
RString &lPath = AddTo[j];
|
||||||
sPath.insert( 0, pLoadedDriver->m_sMountPoint, pLoadedDriver->m_sMountPoint.size()-1 );
|
lPath.insert( 0, pLoadedDriver->m_sMountPoint, pLoadedDriver->m_sMountPoint.size()-1 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -575,8 +575,8 @@ float RageFastSin( float x )
|
|||||||
bInited = true;
|
bInited = true;
|
||||||
for( unsigned i=0; i<ARRAYLEN(table); i++ )
|
for( unsigned i=0; i<ARRAYLEN(table); i++ )
|
||||||
{
|
{
|
||||||
float x = SCALE(i,0,ARRAYLEN(table),0.0f,PI);
|
float z = SCALE(i,0,ARRAYLEN(table),0.0f,PI);
|
||||||
table[i] = sinf(x);
|
table[i] = sinf(z);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ RageSoundReader_Chain::~RageSoundReader_Chain()
|
|||||||
while( !m_apActiveSounds.empty() )
|
while( !m_apActiveSounds.empty() )
|
||||||
ReleaseSound( m_apActiveSounds.front() );
|
ReleaseSound( m_apActiveSounds.front() );
|
||||||
|
|
||||||
map<RString, RageSoundReader *>::iterator it;
|
|
||||||
FOREACH( RageSoundReader *, m_apLoadedSounds, it )
|
FOREACH( RageSoundReader *, m_apLoadedSounds, it )
|
||||||
delete *it;
|
delete *it;
|
||||||
}
|
}
|
||||||
@@ -103,7 +102,6 @@ int RageSoundReader_Chain::GetSampleRateInternal() const
|
|||||||
if( m_apLoadedSounds.empty() )
|
if( m_apLoadedSounds.empty() )
|
||||||
return m_iPreferredSampleRate;
|
return m_iPreferredSampleRate;
|
||||||
|
|
||||||
map<RString, RageSoundReader *>::const_iterator it;
|
|
||||||
int iRate = -1;
|
int iRate = -1;
|
||||||
FOREACH_CONST( RageSoundReader *, m_apLoadedSounds, it )
|
FOREACH_CONST( RageSoundReader *, m_apLoadedSounds, it )
|
||||||
{
|
{
|
||||||
@@ -120,7 +118,6 @@ void RageSoundReader_Chain::Finish()
|
|||||||
/* Figure out how many channels we have. All sounds must either have 1 or 2 channels,
|
/* Figure out how many channels we have. All sounds must either have 1 or 2 channels,
|
||||||
* which will be converted as needed, or have the same number of channels. */
|
* which will be converted as needed, or have the same number of channels. */
|
||||||
m_iChannels = 1;
|
m_iChannels = 1;
|
||||||
map<RString, RageSoundReader *>::iterator it;
|
|
||||||
FOREACH( RageSoundReader *, m_apLoadedSounds, it )
|
FOREACH( RageSoundReader *, m_apLoadedSounds, it )
|
||||||
m_iChannels = max( m_iChannels, (*it)->GetNumChannels() );
|
m_iChannels = max( m_iChannels, (*it)->GetNumChannels() );
|
||||||
|
|
||||||
|
|||||||
@@ -426,7 +426,7 @@ int RageSoundReader_MP3::do_mad_frame_decode( bool headers_only )
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ret = fill_buffer();
|
ret = fill_buffer();
|
||||||
if( ret <= 0 )
|
if( ret <= 0 )
|
||||||
return ret;
|
return ret;
|
||||||
bytes_read += ret;
|
bytes_read += ret;
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ RageSoundReader_Merge::RageSoundReader_Merge()
|
|||||||
|
|
||||||
RageSoundReader_Merge::~RageSoundReader_Merge()
|
RageSoundReader_Merge::~RageSoundReader_Merge()
|
||||||
{
|
{
|
||||||
map<RString, RageSoundReader *>::iterator it;
|
|
||||||
FOREACH( RageSoundReader *, m_aSounds, it )
|
FOREACH( RageSoundReader *, m_aSounds, it )
|
||||||
delete *it;
|
delete *it;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -7,7 +7,7 @@
|
|||||||
struct RageSurfaceColor
|
struct RageSurfaceColor
|
||||||
{
|
{
|
||||||
uint8_t r, g, b, a;
|
uint8_t r, g, b, a;
|
||||||
RageSurfaceColor() { }
|
RageSurfaceColor(): r(0), g(0), b(0), a(0) { }
|
||||||
RageSurfaceColor( uint8_t r_, uint8_t g_, uint8_t b_, uint8_t a_ ):
|
RageSurfaceColor( uint8_t r_, uint8_t g_, uint8_t b_, uint8_t a_ ):
|
||||||
r(r_), g(g_), b(b_), a(a_) { }
|
r(r_), g(g_), b(b_), a(a_) { }
|
||||||
|
|
||||||
|
|||||||
@@ -585,8 +585,8 @@ static bool blit_rgba_to_rgba( const RageSurface *src_surf, const RageSurface *d
|
|||||||
unsigned int opixel = 0;
|
unsigned int opixel = 0;
|
||||||
for( int c = 0; c < 4; ++c )
|
for( int c = 0; c < 4; ++c )
|
||||||
{
|
{
|
||||||
int src = (pixel & src_masks[c]) >> src_shifts[c];
|
int lSrc = (pixel & src_masks[c]) >> src_shifts[c];
|
||||||
opixel |= lookup[c][src] << dst_shifts[c];
|
opixel |= lookup[c][lSrc] << dst_shifts[c];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store it.
|
// Store it.
|
||||||
|
|||||||
@@ -454,7 +454,7 @@ static acolorhist_item *mediancut( acolorhist_item *achv, int colors, int sum, i
|
|||||||
#ifdef REP_AVERAGE_PIXELS
|
#ifdef REP_AVERAGE_PIXELS
|
||||||
int indx = bv[bi].ind;
|
int indx = bv[bi].ind;
|
||||||
int clrs = bv[bi].colors;
|
int clrs = bv[bi].colors;
|
||||||
long r = 0, g = 0, b = 0, a = 0, sum = 0;
|
long r = 0, g = 0, b = 0, a = 0, lSum = 0;
|
||||||
|
|
||||||
for ( int i = 0; i < clrs; ++i )
|
for ( int i = 0; i < clrs; ++i )
|
||||||
{
|
{
|
||||||
@@ -462,15 +462,15 @@ static acolorhist_item *mediancut( acolorhist_item *achv, int colors, int sum, i
|
|||||||
g += PAM_GETG( achv[indx + i].acolor ) * achv[indx + i].value;
|
g += PAM_GETG( achv[indx + i].acolor ) * achv[indx + i].value;
|
||||||
b += PAM_GETB( achv[indx + i].acolor ) * achv[indx + i].value;
|
b += PAM_GETB( achv[indx + i].acolor ) * achv[indx + i].value;
|
||||||
a += PAM_GETA( achv[indx + i].acolor ) * achv[indx + i].value;
|
a += PAM_GETA( achv[indx + i].acolor ) * achv[indx + i].value;
|
||||||
sum += achv[indx + i].value;
|
lSum += achv[indx + i].value;
|
||||||
}
|
}
|
||||||
r = r / sum;
|
r = r / lSum;
|
||||||
r = min( r, (long) maxval );
|
r = min( r, (long) maxval );
|
||||||
g = g / sum;
|
g = g / lSum;
|
||||||
g = min( g, (long) maxval );
|
g = min( g, (long) maxval );
|
||||||
b = b / sum;
|
b = b / lSum;
|
||||||
b = min( b, (long) maxval );
|
b = min( b, (long) maxval );
|
||||||
a = a / sum;
|
a = a / lSum;
|
||||||
a = min( a, (long) maxval );
|
a = min( a, (long) maxval );
|
||||||
PAM_ASSIGN( acolormap[bi].acolor, (uint8_t)r, (uint8_t)g, (uint8_t)b, (uint8_t)a );
|
PAM_ASSIGN( acolormap[bi].acolor, (uint8_t)r, (uint8_t)g, (uint8_t)b, (uint8_t)a );
|
||||||
#endif // REP_AVERAGE_PIXELS
|
#endif // REP_AVERAGE_PIXELS
|
||||||
|
|||||||
+9
-2
@@ -59,8 +59,15 @@ struct RageTextureID
|
|||||||
|
|
||||||
void Init();
|
void Init();
|
||||||
|
|
||||||
RageTextureID() { Init(); }
|
RageTextureID(): filename(RString()), iMaxSize(0), bMipMaps(false),
|
||||||
RageTextureID( const RString &fn ) { Init(); SetFilename(fn); }
|
iAlphaBits(0), iGrayscaleBits(0), iColorDepth(0),
|
||||||
|
bDither(false), bStretch(false), bHotPinkColorKey(false),
|
||||||
|
AdditionalTextureHints(RString()), Policy(TEX_DEFAULT) { Init(); }
|
||||||
|
RageTextureID( const RString &fn ): filename(RString()), iMaxSize(0),
|
||||||
|
bMipMaps(false), iAlphaBits(0), iGrayscaleBits(0),
|
||||||
|
iColorDepth(0), bDither(false), bStretch(false),
|
||||||
|
bHotPinkColorKey(false), AdditionalTextureHints(RString()),
|
||||||
|
Policy(TEX_DEFAULT) { Init(); SetFilename(fn); }
|
||||||
void SetFilename( const RString &fn );
|
void SetFilename( const RString &fn );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+11
-18
@@ -14,30 +14,23 @@ struct RageTextureManagerPrefs
|
|||||||
bool m_bHighResolutionTextures;
|
bool m_bHighResolutionTextures;
|
||||||
bool m_bMipMaps;
|
bool m_bMipMaps;
|
||||||
|
|
||||||
RageTextureManagerPrefs()
|
RageTextureManagerPrefs(): m_iTextureColorDepth(16),
|
||||||
{
|
m_iMovieColorDepth(16), m_bDelayedDelete(false),
|
||||||
m_bDelayedDelete = false;
|
m_iMaxTextureResolution(1024),
|
||||||
m_iMovieColorDepth = 16;
|
m_bHighResolutionTextures(true), m_bMipMaps(false) {}
|
||||||
m_iTextureColorDepth = 16;
|
|
||||||
m_iMaxTextureResolution = 1024;
|
|
||||||
m_bHighResolutionTextures = true;
|
|
||||||
m_bMipMaps = false;
|
|
||||||
}
|
|
||||||
RageTextureManagerPrefs(
|
RageTextureManagerPrefs(
|
||||||
int iTextureColorDepth,
|
int iTextureColorDepth,
|
||||||
int iMovieColorDepth,
|
int iMovieColorDepth,
|
||||||
bool bDelayedDelete,
|
bool bDelayedDelete,
|
||||||
int iMaxTextureResolution,
|
int iMaxTextureResolution,
|
||||||
bool bHighResolutionTextures,
|
bool bHighResolutionTextures,
|
||||||
bool bMipMaps )
|
bool bMipMaps ):
|
||||||
{
|
m_iTextureColorDepth(iTextureColorDepth),
|
||||||
m_bDelayedDelete = bDelayedDelete;
|
m_iMovieColorDepth(iMovieColorDepth),
|
||||||
m_iMovieColorDepth = iMovieColorDepth;
|
m_bDelayedDelete(bDelayedDelete),
|
||||||
m_iTextureColorDepth = iTextureColorDepth;
|
m_iMaxTextureResolution(iMaxTextureResolution),
|
||||||
m_iMaxTextureResolution = iMaxTextureResolution;
|
m_bHighResolutionTextures(bHighResolutionTextures),
|
||||||
m_bHighResolutionTextures = bHighResolutionTextures;
|
m_bMipMaps(bMipMaps) {}
|
||||||
m_bMipMaps = bMipMaps;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator!=( const RageTextureManagerPrefs& rhs ) const
|
bool operator!=( const RageTextureManagerPrefs& rhs ) const
|
||||||
{
|
{
|
||||||
|
|||||||
+17
-16
@@ -100,9 +100,9 @@ struct lua_State;
|
|||||||
struct RageVector2
|
struct RageVector2
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
RageVector2() {}
|
RageVector2(): x(0), y(0) {}
|
||||||
RageVector2( const float * f ) { x=f[0]; y=f[1]; }
|
RageVector2( const float * f ): x(f[0]), y(f[1]) {}
|
||||||
RageVector2( float x1, float y1 ) { x=x1; y=y1; }
|
RageVector2( float x1, float y1 ): x(x1), y(y1) {}
|
||||||
|
|
||||||
// casting
|
// casting
|
||||||
operator float* () { return &x; };
|
operator float* () { return &x; };
|
||||||
@@ -129,9 +129,9 @@ public:
|
|||||||
struct RageVector3
|
struct RageVector3
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
RageVector3() {}
|
RageVector3(): x(0), y(0), z(0) {}
|
||||||
RageVector3( const float * f ) { x=f[0]; y=f[1]; z=f[2]; }
|
RageVector3( const float * f ): x(f[0]), y(f[1]), z(f[2]) {}
|
||||||
RageVector3( float x1, float y1, float z1 ) { x=x1; y=y1; z=z1; }
|
RageVector3( float x1, float y1, float z1 ): x(x1), y(y1), z(z1) {}
|
||||||
|
|
||||||
// casting
|
// casting
|
||||||
operator float* () { return &x; };
|
operator float* () { return &x; };
|
||||||
@@ -158,9 +158,9 @@ public:
|
|||||||
struct RageVector4
|
struct RageVector4
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
RageVector4() {}
|
RageVector4(): x(0), y(0), z(0), w(0) {}
|
||||||
RageVector4( const float * f ) { x=f[0]; y=f[1]; z=f[2]; w=f[3]; }
|
RageVector4( const float * f ): x(f[0]), y(f[1]), z(f[2]), w(f[3]) {}
|
||||||
RageVector4( float x1, float y1, float z1, float w1 ) { x=x1; y=y1; z=z1; w=w1; }
|
RageVector4( float x1, float y1, float z1, float w1 ): x(x1), y(y1), z(z1), w(w1) {}
|
||||||
|
|
||||||
// casting
|
// casting
|
||||||
operator float* () { return &x; };
|
operator float* () { return &x; };
|
||||||
@@ -186,9 +186,9 @@ public:
|
|||||||
struct RageColor
|
struct RageColor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
RageColor() : r(0), g(0), b(0), a(0) {}
|
RageColor(): r(0), g(0), b(0), a(0) {}
|
||||||
explicit RageColor( const float * f ) { r=f[0]; g=f[1]; b=f[2]; a=f[3]; }
|
explicit RageColor( const float * f ): r(f[0]), g(f[1]), b(f[2]), a(f[3]) {}
|
||||||
RageColor( float r1, float g1, float b1, float a1 ) { r=r1; g=g1; b=b1; a=a1; }
|
RageColor( float r1, float g1, float b1, float a1 ): r(r1), g(g1), b(b1), a(a1) {}
|
||||||
|
|
||||||
// casting
|
// casting
|
||||||
operator float* () { return &r; };
|
operator float* () { return &r; };
|
||||||
@@ -290,8 +290,8 @@ class RageVColor
|
|||||||
public:
|
public:
|
||||||
uint8_t b,g,r,a; // specific ordering required by Direct3D
|
uint8_t b,g,r,a; // specific ordering required by Direct3D
|
||||||
|
|
||||||
RageVColor() { }
|
RageVColor(): b(0), g(0), r(0), a(0) { }
|
||||||
RageVColor(const RageColor &rc) { *this = rc; }
|
RageVColor(const RageColor &rc): b(0), g(0), r(0), a(0) { *this = rc; }
|
||||||
RageVColor &operator= (const RageColor &rc)
|
RageVColor &operator= (const RageColor &rc)
|
||||||
{
|
{
|
||||||
r = FTOC(rc.r); g = FTOC(rc.g); b = FTOC(rc.b); a = FTOC(rc.a);
|
r = FTOC(rc.r); g = FTOC(rc.g); b = FTOC(rc.b); a = FTOC(rc.a);
|
||||||
@@ -305,8 +305,8 @@ namespace StepMania
|
|||||||
class Rect
|
class Rect
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Rect() {};
|
Rect(): left(0), top(0), right(0), bottom(0) {}
|
||||||
Rect(T l, T t, T r, T b) { left = l, top = t, right = r, bottom = b; };
|
Rect(T l, T t, T r, T b): left(l), top(t), right(r), bottom(b) {}
|
||||||
|
|
||||||
T GetWidth() const { return right-left; };
|
T GetWidth() const { return right-left; };
|
||||||
T GetHeight() const { return bottom-top; };
|
T GetHeight() const { return bottom-top; };
|
||||||
@@ -349,6 +349,7 @@ struct RageModelVertex // doesn't have color. Relies on material color
|
|||||||
p(0,0,0),
|
p(0,0,0),
|
||||||
n(0,0,0),
|
n(0,0,0),
|
||||||
t(0,0),
|
t(0,0),
|
||||||
|
bone(0),
|
||||||
TextureMatrixScale(1,1)
|
TextureMatrixScale(1,1)
|
||||||
{ }
|
{ }
|
||||||
RageVector3 p; // position
|
RageVector3 p; // position
|
||||||
|
|||||||
+3
-5
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
RandomGen g_RandomNumberGenerator;
|
RandomGen g_RandomNumberGenerator;
|
||||||
|
|
||||||
MersenneTwister::MersenneTwister( int iSeed )
|
MersenneTwister::MersenneTwister( int iSeed ) : m_iNext(0)
|
||||||
{
|
{
|
||||||
Reset( iSeed );
|
Reset( iSeed );
|
||||||
}
|
}
|
||||||
@@ -1315,15 +1315,13 @@ void Regex::Release()
|
|||||||
m_sPattern = RString();
|
m_sPattern = RString();
|
||||||
}
|
}
|
||||||
|
|
||||||
Regex::Regex( const RString &sStr )
|
Regex::Regex( const RString &sStr ): m_pReg(NULL), m_iBackrefs(0), m_sPattern(RString())
|
||||||
{
|
{
|
||||||
m_pReg = NULL;
|
|
||||||
Set( sStr );
|
Set( sStr );
|
||||||
}
|
}
|
||||||
|
|
||||||
Regex::Regex( const Regex &rhs )
|
Regex::Regex( const Regex &rhs ): m_pReg(NULL), m_iBackrefs(0), m_sPattern(RString())
|
||||||
{
|
{
|
||||||
m_pReg = NULL;
|
|
||||||
Set( rhs.m_sPattern );
|
Set( rhs.m_sPattern );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -488,7 +488,7 @@ void ScoreKeeperNormal::AddScoreInternal( TapNoteScore score )
|
|||||||
p += m_CustomComboBonusValue;
|
p += m_CustomComboBonusValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
p += m_pPlayerStageStats->m_iCurCombo * m_CustomComboMultiplier;
|
p += static_cast<int>(m_pPlayerStageStats->m_iCurCombo * m_CustomComboMultiplier);
|
||||||
|
|
||||||
if( m_iNumNotesHitThisRow == 2 )
|
if( m_iNumNotesHitThisRow == 2 )
|
||||||
p = (int)(p * m_DoubleNoteMultiplier);
|
p = (int)(p * m_DoubleNoteMultiplier);
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ void ScreenBookkeeping::UpdateView()
|
|||||||
if( iSongIndex < (int)vpSongs.size() )
|
if( iSongIndex < (int)vpSongs.size() )
|
||||||
{
|
{
|
||||||
Song *pSong = vpSongs[iSongIndex];
|
Song *pSong = vpSongs[iSongIndex];
|
||||||
int iCount = pProfile->GetSongNumTimesPlayed( pSong );
|
iCount = pProfile->GetSongNumTimesPlayed( pSong );
|
||||||
RString sTitle = ssprintf("%4d",iCount) + " " + pSong->GetDisplayFullTitle();
|
RString sTitle = ssprintf("%4d",iCount) + " " + pSong->GetDisplayFullTitle();
|
||||||
if( sTitle.length() > 22 )
|
if( sTitle.length() > 22 )
|
||||||
sTitle = sTitle.Left(20) + "...";
|
sTitle = sTitle.Left(20) + "...";
|
||||||
|
|||||||
+19
-19
@@ -273,30 +273,30 @@ void ScreenDebugOverlay::Init()
|
|||||||
FOREACH_CONST( IDebugLine*, *g_pvpSubscribers, p )
|
FOREACH_CONST( IDebugLine*, *g_pvpSubscribers, p )
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
BitmapText *p = new BitmapText;
|
BitmapText *bt = new BitmapText;
|
||||||
p->SetName( "ButtonText" );
|
bt->SetName( "ButtonText" );
|
||||||
p->LoadFromFont( THEME->GetPathF("ScreenDebugOverlay", "line") );
|
bt->LoadFromFont( THEME->GetPathF("ScreenDebugOverlay", "line") );
|
||||||
p->SetHorizAlign( align_right );
|
bt->SetHorizAlign( align_right );
|
||||||
p->SetText( "blah" );
|
bt->SetText( "blah" );
|
||||||
//p->SetShadowLength( 2 );
|
//p->SetShadowLength( 2 );
|
||||||
LOAD_ALL_COMMANDS( *p );
|
LOAD_ALL_COMMANDS( *bt );
|
||||||
// xxx: I shouldn't have to do this:
|
// xxx: I shouldn't have to do this:
|
||||||
ON_COMMAND( p );
|
ON_COMMAND( bt );
|
||||||
m_vptextButton.push_back( p );
|
m_vptextButton.push_back( bt );
|
||||||
this->AddChild( p );
|
this->AddChild( bt );
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
BitmapText *p = new BitmapText;
|
BitmapText *bt = new BitmapText;
|
||||||
p->SetName( "FunctionText" );
|
bt->SetName( "FunctionText" );
|
||||||
p->LoadFromFont( THEME->GetPathF("ScreenDebugOverlay", "line") );
|
bt->LoadFromFont( THEME->GetPathF("ScreenDebugOverlay", "line") );
|
||||||
p->SetHorizAlign( align_left );
|
bt->SetHorizAlign( align_left );
|
||||||
p->SetText( "blah" );
|
bt->SetText( "blah" );
|
||||||
//p->SetShadowLength( 2 );
|
//p->SetShadowLength( 2 );
|
||||||
LOAD_ALL_COMMANDS( *p );
|
LOAD_ALL_COMMANDS( *bt );
|
||||||
// xxx: I shouldn't have to do this:
|
// xxx: I shouldn't have to do this:
|
||||||
ON_COMMAND( p );
|
ON_COMMAND( bt );
|
||||||
m_vptextFunction.push_back( p );
|
m_vptextFunction.push_back( bt );
|
||||||
this->AddChild( p );
|
this->AddChild( bt );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -498,7 +498,7 @@ bool ScreenDebugOverlay::OverlayInput( const InputEventPlus &input )
|
|||||||
bt.FinishTweening();
|
bt.FinishTweening();
|
||||||
// blink 5 times instead of 8
|
// blink 5 times instead of 8
|
||||||
// TODO: make this all metrics instead -aj
|
// TODO: make this all metrics instead -aj
|
||||||
for( int i=0; i<5; i++ )
|
for( i=0; i<5; i++ )
|
||||||
{
|
{
|
||||||
bt.SetGlow( RageColor(1,0,0,1) );
|
bt.SetGlow( RageColor(1,0,0,1) );
|
||||||
bt.Sleep(0.1f);
|
bt.Sleep(0.1f);
|
||||||
|
|||||||
@@ -797,12 +797,12 @@ void ScreenGameplay::InitSongQueues()
|
|||||||
|
|
||||||
FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi )
|
FOREACH_EnabledPlayerInfo( m_vPlayerInfo, pi )
|
||||||
{
|
{
|
||||||
Trail *pTrail = GAMESTATE->m_pCurTrail[ pi->GetStepsAndTrailIndex() ];
|
Trail *lTrail = GAMESTATE->m_pCurTrail[ pi->GetStepsAndTrailIndex() ];
|
||||||
ASSERT( pTrail );
|
ASSERT( lTrail );
|
||||||
|
|
||||||
pi->m_vpStepsQueue.clear();
|
pi->m_vpStepsQueue.clear();
|
||||||
pi->m_asModifiersQueue.clear();
|
pi->m_asModifiersQueue.clear();
|
||||||
FOREACH_CONST( TrailEntry, pTrail->m_vEntries, e )
|
FOREACH_CONST( TrailEntry, lTrail->m_vEntries, e )
|
||||||
{
|
{
|
||||||
ASSERT( e->pSteps );
|
ASSERT( e->pSteps );
|
||||||
pi->m_vpStepsQueue.push_back( e->pSteps );
|
pi->m_vpStepsQueue.push_back( e->pSteps );
|
||||||
@@ -1270,8 +1270,6 @@ void ScreenGameplay::LoadLights()
|
|||||||
{
|
{
|
||||||
if( asDifficulties[0].CompareNoCase("selected") == 0 )
|
if( asDifficulties[0].CompareNoCase("selected") == 0 )
|
||||||
{
|
{
|
||||||
PlayerInfo pi;
|
|
||||||
|
|
||||||
// Base lights off current difficulty of active player
|
// Base lights off current difficulty of active player
|
||||||
// Can be either P1 or P2 if they're individual or P1 if both are active
|
// Can be either P1 or P2 if they're individual or P1 if both are active
|
||||||
FOREACH_EnabledPlayerNumberInfo( m_vPlayerInfo, pi )
|
FOREACH_EnabledPlayerNumberInfo( m_vPlayerInfo, pi )
|
||||||
@@ -1305,8 +1303,6 @@ void ScreenGameplay::LoadLights()
|
|||||||
// We've also specified for Player 2 to be based off current difficulty
|
// We've also specified for Player 2 to be based off current difficulty
|
||||||
if( asDifficulties[1].CompareNoCase("selected") == 0 && GAMESTATE->GetNumPlayersEnabled() > 1 )
|
if( asDifficulties[1].CompareNoCase("selected") == 0 && GAMESTATE->GetNumPlayersEnabled() > 1 )
|
||||||
{
|
{
|
||||||
PlayerInfo pi;
|
|
||||||
|
|
||||||
// Base lights off current difficulty of active player
|
// Base lights off current difficulty of active player
|
||||||
// Only do this for P2 in a two-player situation, since P1 is taken care of above
|
// Only do this for P2 in a two-player situation, since P1 is taken care of above
|
||||||
FOREACH_EnabledPlayerNumberInfo( m_vPlayerInfo, pi )
|
FOREACH_EnabledPlayerNumberInfo( m_vPlayerInfo, pi )
|
||||||
|
|||||||
@@ -106,10 +106,10 @@ void ScreenJukebox::SetSong()
|
|||||||
SONGMAN->GetAllCourses( apCourses, false );
|
SONGMAN->GetAllCourses( apCourses, false );
|
||||||
vector<const CourseEntry *> apOptions;
|
vector<const CourseEntry *> apOptions;
|
||||||
vector<Course*> apPossibleCourses;
|
vector<Course*> apPossibleCourses;
|
||||||
for( unsigned i = 0; i < apCourses.size(); ++i )
|
for( unsigned j = 0; j < apCourses.size(); ++j )
|
||||||
{
|
{
|
||||||
Course *pCourse = apCourses[i];
|
Course *lCourse = apCourses[j];
|
||||||
const CourseEntry *pEntry = pCourse->FindFixedSong( pSong );
|
const CourseEntry *pEntry = lCourse->FindFixedSong( pSong );
|
||||||
if( pEntry == NULL || pEntry->attacks.size() == 0 )
|
if( pEntry == NULL || pEntry->attacks.size() == 0 )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@@ -144,14 +144,14 @@ void ScreenJukebox::SetSong()
|
|||||||
{
|
{
|
||||||
int iIndex = RandomInt( apOptions.size() );
|
int iIndex = RandomInt( apOptions.size() );
|
||||||
m_pCourseEntry = apOptions[iIndex];
|
m_pCourseEntry = apOptions[iIndex];
|
||||||
Course *pCourse = apPossibleCourses[iIndex];
|
Course *lCourse = apPossibleCourses[iIndex];
|
||||||
|
|
||||||
PlayMode pm = CourseTypeToPlayMode( pCourse->GetCourseType() );
|
PlayMode pm = CourseTypeToPlayMode( lCourse->GetCourseType() );
|
||||||
GAMESTATE->m_PlayMode.Set( pm );
|
GAMESTATE->m_PlayMode.Set( pm );
|
||||||
GAMESTATE->m_pCurCourse.Set( pCourse );
|
GAMESTATE->m_pCurCourse.Set( lCourse );
|
||||||
FOREACH_PlayerNumber( p )
|
FOREACH_PlayerNumber( p )
|
||||||
{
|
{
|
||||||
GAMESTATE->m_pCurTrail[p].Set( pCourse->GetTrail( GAMESTATE->GetCurrentStyle()->m_StepsType ) );
|
GAMESTATE->m_pCurTrail[p].Set( lCourse->GetTrail( GAMESTATE->GetCurrentStyle()->m_StepsType ) );
|
||||||
ASSERT( GAMESTATE->m_pCurTrail[p] );
|
ASSERT( GAMESTATE->m_pCurTrail[p] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -236,15 +236,15 @@ void ColorBitmapText::SetText( const RString& _sText, const RString& _sAlternate
|
|||||||
RString FirstThree = m_sText.substr( i, 3 );
|
RString FirstThree = m_sText.substr( i, 3 );
|
||||||
if( FirstThree.CompareNoCase("|c0") == 0 && iCharsLeft > 8 )
|
if( FirstThree.CompareNoCase("|c0") == 0 && iCharsLeft > 8 )
|
||||||
{
|
{
|
||||||
ColorChange change;
|
ColorChange cChange;
|
||||||
unsigned int r, g, b;
|
unsigned int r, g, b;
|
||||||
sscanf( m_sText.substr( i, 9 ).c_str(), "|%*c0%2x%2x%2x", &r, &g, &b );
|
sscanf( m_sText.substr( i, 9 ).c_str(), "|%*c0%2x%2x%2x", &r, &g, &b );
|
||||||
change.c = RageColor( r/255.f, g/255.f, b/255.f, 1.f );
|
cChange.c = RageColor( r/255.f, g/255.f, b/255.f, 1.f );
|
||||||
change.l = iGlyphsSoFar;
|
cChange.l = iGlyphsSoFar;
|
||||||
if( iGlyphsSoFar == 0 )
|
if( iGlyphsSoFar == 0 )
|
||||||
m_vColors[0] = change;
|
m_vColors[0] = cChange;
|
||||||
else
|
else
|
||||||
m_vColors.push_back( change );
|
m_vColors.push_back( cChange );
|
||||||
i+=8;
|
i+=8;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -261,7 +261,7 @@ void ScreenOptionsEditCourse::ImportOptions( int iRow, const vector<PlayerNumber
|
|||||||
{
|
{
|
||||||
case EditCourseRow_Minutes:
|
case EditCourseRow_Minutes:
|
||||||
row.SetOneSharedSelection( 0 );
|
row.SetOneSharedSelection( 0 );
|
||||||
row.SetOneSharedSelectionIfPresent( MakeMinutesString(GAMESTATE->m_pCurCourse->m_fGoalSeconds/60) );
|
row.SetOneSharedSelectionIfPresent( MakeMinutesString(static_cast<int>(GAMESTATE->m_pCurCourse->m_fGoalSeconds)/60) );
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
@@ -383,14 +383,14 @@ void ScreenOptionsEditCourse::SetCurrentSong()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int iRow = m_iCurrentRow[PLAYER_1];
|
iRow = m_iCurrentRow[PLAYER_1];
|
||||||
int iEntryIndex = RowToEntryIndex( iRow );
|
int iEntryIndex = RowToEntryIndex( iRow );
|
||||||
Song *pSong = NULL;
|
Song *pSong = NULL;
|
||||||
if( iEntryIndex != -1 )
|
if( iEntryIndex != -1 )
|
||||||
{
|
{
|
||||||
int iCurrentSongRow = EntryIndexAndRowTypeToRow(iEntryIndex,RowType_Song);
|
int iCurrentSongRow = EntryIndexAndRowTypeToRow(iEntryIndex,RowType_Song);
|
||||||
OptionRow &row = *m_pRows[ iCurrentSongRow ];
|
OptionRow &oRow = *m_pRows[ iCurrentSongRow ];
|
||||||
int index = row.GetOneSelection(PLAYER_1);
|
int index = oRow.GetOneSelection(PLAYER_1);
|
||||||
if( index != 0 )
|
if( index != 0 )
|
||||||
pSong = m_vpSongs[ index - 1 ];
|
pSong = m_vpSongs[ index - 1 ];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ void ScreenOptionsManageCourses::BeginScreen()
|
|||||||
vector<Course*>::const_iterator iter = find( m_vpCourses.begin(), m_vpCourses.end(), GAMESTATE->m_pCurCourse );
|
vector<Course*>::const_iterator iter = find( m_vpCourses.begin(), m_vpCourses.end(), GAMESTATE->m_pCurCourse );
|
||||||
if( iter != m_vpCourses.end() )
|
if( iter != m_vpCourses.end() )
|
||||||
{
|
{
|
||||||
int iIndex = iter - m_vpCourses.begin();
|
iIndex = iter - m_vpCourses.begin();
|
||||||
this->MoveRowAbsolute( GAMESTATE->m_MasterPlayerNumber, 1 + iIndex );
|
this->MoveRowAbsolute( GAMESTATE->m_MasterPlayerNumber, 1 + iIndex );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ void ScreenOptionsManageEditSteps::BeginScreen()
|
|||||||
vector<Steps*>::const_iterator iter = find( m_vpSteps.begin(), m_vpSteps.end(), GAMESTATE->m_pCurSteps[PLAYER_1] );
|
vector<Steps*>::const_iterator iter = find( m_vpSteps.begin(), m_vpSteps.end(), GAMESTATE->m_pCurSteps[PLAYER_1] );
|
||||||
if( iter != m_vpSteps.end() )
|
if( iter != m_vpSteps.end() )
|
||||||
{
|
{
|
||||||
int iIndex = iter - m_vpSteps.begin();
|
iIndex = iter - m_vpSteps.begin();
|
||||||
this->MoveRowAbsolute( PLAYER_1, 1 + iIndex );
|
this->MoveRowAbsolute( PLAYER_1, 1 + iIndex );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -197,8 +197,9 @@ void ScreenOptionsMemoryCard::ProcessMenuStart( const InputEventPlus &input )
|
|||||||
const vector<UsbStorageDevice> &v = m_CurrentUsbStorageDevices;
|
const vector<UsbStorageDevice> &v = m_CurrentUsbStorageDevices;
|
||||||
if( iCurRow < int(v.size()) ) // a card
|
if( iCurRow < int(v.size()) ) // a card
|
||||||
{
|
{
|
||||||
const vector<UsbStorageDevice> &v = m_CurrentUsbStorageDevices;
|
// Why is this statement in twice? Doubt it would change right after the if. -Wolfman2000
|
||||||
const UsbStorageDevice &dev = v[iCurRow];
|
const vector<UsbStorageDevice> &vUSB = m_CurrentUsbStorageDevices;
|
||||||
|
const UsbStorageDevice &dev = vUSB[iCurRow];
|
||||||
MEMCARDMAN->m_sEditorMemoryCardOsMountPoint.Set( dev.sOsMountDir );
|
MEMCARDMAN->m_sEditorMemoryCardOsMountPoint.Set( dev.sOsMountDir );
|
||||||
|
|
||||||
/* The destination screen must UnmountCard. XXX: brittle */
|
/* The destination screen must UnmountCard. XXX: brittle */
|
||||||
|
|||||||
@@ -244,7 +244,8 @@ float ScreenRanking::SetPage( const PageToShow &pts )
|
|||||||
|
|
||||||
for( int l=0; l<NUM_RANKING_LINES; l++ )
|
for( int l=0; l<NUM_RANKING_LINES; l++ )
|
||||||
{
|
{
|
||||||
StepsType st = pts.aTypes.front().second;
|
// No need to shadow at this point.
|
||||||
|
st = pts.aTypes.front().second;
|
||||||
HighScoreList &hsl = PROFILEMAN->GetMachineProfile()->GetCategoryHighScoreList(st, pts.category);
|
HighScoreList &hsl = PROFILEMAN->GetMachineProfile()->GetCategoryHighScoreList(st, pts.category);
|
||||||
HighScore hs;
|
HighScore hs;
|
||||||
bool bRecentHighScore = false;
|
bool bRecentHighScore = false;
|
||||||
|
|||||||
@@ -1376,9 +1376,9 @@ void ScreenSelectMusic::MenuStart( const InputEventPlus &input )
|
|||||||
// Don't play start sound. We play it again below on finalized
|
// Don't play start sound. We play it again below on finalized
|
||||||
//m_soundStart.Play();
|
//m_soundStart.Play();
|
||||||
|
|
||||||
Message msg("StepsChosen");
|
Message lMsg("StepsChosen");
|
||||||
msg.SetParam( "Player", p );
|
lMsg.SetParam( "Player", p );
|
||||||
MESSAGEMAN->Broadcast( msg );
|
MESSAGEMAN->Broadcast( lMsg );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1781,19 +1781,19 @@ void ScreenSelectMusic::AfterMusicChange()
|
|||||||
|
|
||||||
case TYPE_COURSE:
|
case TYPE_COURSE:
|
||||||
{
|
{
|
||||||
const Course *pCourse = m_MusicWheel.GetSelectedCourse();
|
const Course *lCourse = m_MusicWheel.GetSelectedCourse();
|
||||||
const Style *pStyle = NULL;
|
const Style *pStyle = NULL;
|
||||||
if( CommonMetrics::AUTO_SET_STYLE )
|
if( CommonMetrics::AUTO_SET_STYLE )
|
||||||
pStyle = pCourse->GetCourseStyle( GAMESTATE->m_pCurGame, GAMESTATE->GetNumSidesJoined() );
|
pStyle = pCourse->GetCourseStyle( GAMESTATE->m_pCurGame, GAMESTATE->GetNumSidesJoined() );
|
||||||
if( pStyle == NULL )
|
if( pStyle == NULL )
|
||||||
pStyle = GAMESTATE->GetCurrentStyle();
|
pStyle = GAMESTATE->GetCurrentStyle();
|
||||||
pCourse->GetTrails( m_vpTrails, pStyle->m_StepsType );
|
lCourse->GetTrails( m_vpTrails, pStyle->m_StepsType );
|
||||||
|
|
||||||
m_sSampleMusicToPlay = m_sCourseMusicPath;
|
m_sSampleMusicToPlay = m_sCourseMusicPath;
|
||||||
m_fSampleStartSeconds = 0;
|
m_fSampleStartSeconds = 0;
|
||||||
m_fSampleLengthSeconds = -1;
|
m_fSampleLengthSeconds = -1;
|
||||||
|
|
||||||
g_sBannerPath = pCourse->GetBannerPath();
|
g_sBannerPath = lCourse->GetBannerPath();
|
||||||
if( g_sBannerPath.empty() )
|
if( g_sBannerPath.empty() )
|
||||||
m_Banner.LoadFallback();
|
m_Banner.LoadFallback();
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ class InputList: public BitmapText
|
|||||||
// Update input texts
|
// Update input texts
|
||||||
vector<RString> asInputs;
|
vector<RString> asInputs;
|
||||||
|
|
||||||
DeviceInput di;
|
|
||||||
vector<DeviceInput> DeviceInputs;
|
vector<DeviceInput> DeviceInputs;
|
||||||
INPUTFILTER->GetPressedButtons( DeviceInputs );
|
INPUTFILTER->GetPressedButtons( DeviceInputs );
|
||||||
FOREACH( DeviceInput, DeviceInputs, di )
|
FOREACH( DeviceInput, DeviceInputs, di )
|
||||||
|
|||||||
+1
-1
@@ -46,7 +46,7 @@ void ScrollBar::SetPercentage( float fCenterPercent, float fSizePercent )
|
|||||||
{
|
{
|
||||||
wrap( fCenterPercent, 1.0f );
|
wrap( fCenterPercent, 1.0f );
|
||||||
|
|
||||||
const int iBarContentHeight = m_sprMiddle->GetZoomedHeight();
|
const int iBarContentHeight = static_cast<int>(m_sprMiddle->GetZoomedHeight());
|
||||||
ASSERT( iBarContentHeight != 0 );
|
ASSERT( iBarContentHeight != 0 );
|
||||||
|
|
||||||
/* Set tick thumb */
|
/* Set tick thumb */
|
||||||
|
|||||||
+5
-5
@@ -1488,15 +1488,15 @@ void SongManager::UpdatePreferredSort(RString sPreferredSongs, RString sPreferre
|
|||||||
if( MOVE_UNLOCKS_TO_BOTTOM_OF_PREFERRED_SORT.GetValue() )
|
if( MOVE_UNLOCKS_TO_BOTTOM_OF_PREFERRED_SORT.GetValue() )
|
||||||
{
|
{
|
||||||
// move all unlock songs to a group at the bottom
|
// move all unlock songs to a group at the bottom
|
||||||
PreferredSortSection section;
|
PreferredSortSection PFSection;
|
||||||
section.sName = "Unlocks";
|
PFSection.sName = "Unlocks";
|
||||||
FOREACH( UnlockEntry, UNLOCKMAN->m_UnlockEntries, ue )
|
FOREACH( UnlockEntry, UNLOCKMAN->m_UnlockEntries, ue )
|
||||||
{
|
{
|
||||||
if( ue->m_Type == UnlockRewardType_Song )
|
if( ue->m_Type == UnlockRewardType_Song )
|
||||||
{
|
{
|
||||||
Song *pSong = ue->m_Song.ToSong();
|
Song *pSong = ue->m_Song.ToSong();
|
||||||
if( pSong )
|
if( pSong )
|
||||||
section.vpSongs.push_back( pSong );
|
PFSection.vpSongs.push_back( pSong );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1505,14 +1505,14 @@ void SongManager::UpdatePreferredSort(RString sPreferredSongs, RString sPreferre
|
|||||||
for( int i=v->vpSongs.size()-1; i>=0; i-- )
|
for( int i=v->vpSongs.size()-1; i>=0; i-- )
|
||||||
{
|
{
|
||||||
Song *pSong = v->vpSongs[i];
|
Song *pSong = v->vpSongs[i];
|
||||||
if( find(section.vpSongs.begin(),section.vpSongs.end(),pSong) != section.vpSongs.end() )
|
if( find(PFSection.vpSongs.begin(),PFSection.vpSongs.end(),pSong) != PFSection.vpSongs.end() )
|
||||||
{
|
{
|
||||||
v->vpSongs.erase( v->vpSongs.begin()+i );
|
v->vpSongs.erase( v->vpSongs.begin()+i );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_vPreferredSongSort.push_back( section );
|
m_vPreferredSongSort.push_back( PFSection );
|
||||||
}
|
}
|
||||||
|
|
||||||
// prune empty groups
|
// prune empty groups
|
||||||
|
|||||||
@@ -396,11 +396,11 @@ public:
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int GetBestFinalGrade( T* p, lua_State *L )
|
static int GetBestFinalGrade( T* t, lua_State *L )
|
||||||
{
|
{
|
||||||
Grade top_grade = Grade_Failed;
|
Grade top_grade = Grade_Failed;
|
||||||
StageStats stats;
|
StageStats stats;
|
||||||
p->GetFinalEvalStageStats( stats );
|
t->GetFinalEvalStageStats( stats );
|
||||||
FOREACH_HumanPlayer( p )
|
FOREACH_HumanPlayer( p )
|
||||||
{
|
{
|
||||||
// If this player failed any stage, then their final grade is an F.
|
// If this player failed any stage, then their final grade is an F.
|
||||||
|
|||||||
+2
-2
@@ -103,7 +103,7 @@ void StepMania::GetPreferredVideoModeParams( VideoModeParams ¶msOut )
|
|||||||
{
|
{
|
||||||
//float fRatio = PREFSMAN->m_iDisplayWidth / PREFSMAN->m_iDisplayHeight;
|
//float fRatio = PREFSMAN->m_iDisplayWidth / PREFSMAN->m_iDisplayHeight;
|
||||||
//iWidth = PREFSMAN->m_iDisplayHeight * fRatio;
|
//iWidth = PREFSMAN->m_iDisplayHeight * fRatio;
|
||||||
iWidth = ceilf(PREFSMAN->m_iDisplayHeight * PREFSMAN->m_fDisplayAspectRatio);
|
iWidth = static_cast<int>(ceilf(PREFSMAN->m_iDisplayHeight * PREFSMAN->m_fDisplayAspectRatio));
|
||||||
}
|
}
|
||||||
|
|
||||||
// todo: allow for PRODUCT_ID + "-" + CommonMetrics::WINDOW_TITLE as
|
// todo: allow for PRODUCT_ID + "-" + CommonMetrics::WINDOW_TITLE as
|
||||||
@@ -917,7 +917,7 @@ static void WriteLogHeader()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// this code should only be enabled in distributed builds
|
// this code should only be enabled in distributed builds
|
||||||
//LOG->Info("sm-ssc is Copyright ©2009 the spinal shark collective, all rights reserved. Commercial use of this binary is prohibited by law and will be prosecuted to the fullest extent of the law.");
|
//LOG->Info("sm-ssc is Copyright �2009 the spinal shark collective, all rights reserved. Commercial use of this binary is prohibited by law and will be prosecuted to the fullest extent of the law.");
|
||||||
// end limited code
|
// end limited code
|
||||||
|
|
||||||
time_t cur_time;
|
time_t cur_time;
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ void StreamDisplay::Load( const RString &_sMetricsGroup )
|
|||||||
m_transformPill.SetFromReference( THEME->GetMetricR(sMetricsGroup,"PillTransformFunction") );
|
m_transformPill.SetFromReference( THEME->GetMetricR(sMetricsGroup,"PillTransformFunction") );
|
||||||
|
|
||||||
float fTextureCoordScaleX = THEME->GetMetricF(sMetricsGroup,"TextureCoordScaleX");
|
float fTextureCoordScaleX = THEME->GetMetricF(sMetricsGroup,"TextureCoordScaleX");
|
||||||
int iNumPills = THEME->GetMetricF(sMetricsGroup,"NumPills");
|
int iNumPills = static_cast<int>(THEME->GetMetricF(sMetricsGroup,"NumPills"));
|
||||||
m_bAlwaysBounce = THEME->GetMetricB(sMetricsGroup,"AlwaysBounceNormalBar");
|
m_bAlwaysBounce = THEME->GetMetricB(sMetricsGroup,"AlwaysBounceNormalBar");
|
||||||
|
|
||||||
FOREACH_ENUM( StreamType, st )
|
FOREACH_ENUM( StreamType, st )
|
||||||
|
|||||||
+6
-6
@@ -669,21 +669,21 @@ namespace
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
RString sName;
|
RString nName;
|
||||||
LuaHelpers::Pop( L, sName );
|
LuaHelpers::Pop( L, nName );
|
||||||
NodeNamesToAdd.push_back( sName );
|
NodeNamesToAdd.push_back( nName );
|
||||||
NodesToAdd.push_back( LuaReference() );
|
NodesToAdd.push_back( LuaReference() );
|
||||||
NodesToAdd.back().SetFromStack( L );
|
NodesToAdd.back().SetFromStack( L );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
RString sName;
|
RString nName;
|
||||||
LuaHelpers::Pop( L, sName );
|
LuaHelpers::Pop( L, nName );
|
||||||
|
|
||||||
// Otherwise, add an attribute.
|
// Otherwise, add an attribute.
|
||||||
XNodeLuaValue *pValue = new XNodeLuaValue;
|
XNodeLuaValue *pValue = new XNodeLuaValue;
|
||||||
pValue->SetValueFromStack( L );
|
pValue->SetValueFromStack( L );
|
||||||
pNode->AppendAttrFrom( sName, pValue );
|
pNode->AppendAttrFrom( nName, pValue );
|
||||||
}
|
}
|
||||||
lua_pop( L, 1 );
|
lua_pop( L, 1 );
|
||||||
|
|
||||||
|
|||||||
@@ -425,10 +425,10 @@ wchar_t InputHandler_MacOSX_HID::DeviceButtonToChar( DeviceButton button, bool b
|
|||||||
if( KeyLayout )
|
if( KeyLayout )
|
||||||
{
|
{
|
||||||
UInt32 keyboardType = LMGetKbdType();
|
UInt32 keyboardType = LMGetKbdType();
|
||||||
UInt32 modifiers = bUseCurrentKeyModifiers ? GetCurrentKeyModifiers() : 0;
|
UInt32 nModifiers = bUseCurrentKeyModifiers ? GetCurrentKeyModifiers() : 0;
|
||||||
UniChar unicodeInputString[4];
|
UniChar unicodeInputString[4];
|
||||||
UniCharCount length;
|
UniCharCount length;
|
||||||
OSStatus status = UCKeyTranslate( *KeyLayout, iMacVirtualKey, kUCKeyActionDown, modifiers,
|
OSStatus status = UCKeyTranslate( *KeyLayout, iMacVirtualKey, kUCKeyActionDown, nModifiers,
|
||||||
keyboardType, 0, &iDeadKeyState, ARRAYLEN(unicodeInputString),
|
keyboardType, 0, &iDeadKeyState, ARRAYLEN(unicodeInputString),
|
||||||
&length, unicodeInputString );
|
&length, unicodeInputString );
|
||||||
|
|
||||||
|
|||||||
@@ -193,10 +193,10 @@ RString MovieDecoder_Theora::ProcessHeaders()
|
|||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
ogg_packet op;
|
ogg_packet op;
|
||||||
int ret = ogg_stream_packetpeek( &m_OggStream, &op );
|
int ret2 = ogg_stream_packetpeek( &m_OggStream, &op );
|
||||||
if( ret == 0 )
|
if( ret2 == 0 )
|
||||||
break;
|
break;
|
||||||
if( ret < 0 )
|
if( ret2 < 0 )
|
||||||
return ssprintf( "error opening %s: error parsing Theora stream headers", m_File.GetPath().c_str() );
|
return ssprintf( "error opening %s: error parsing Theora stream headers", m_File.GetPath().c_str() );
|
||||||
|
|
||||||
if( !theora_packet_isheader(&op) )
|
if( !theora_packet_isheader(&op) )
|
||||||
@@ -208,8 +208,8 @@ RString MovieDecoder_Theora::ProcessHeaders()
|
|||||||
return RString();
|
return RString();
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = theora_decode_header( &m_TheoraInfo, &m_TheoraComment, &op);
|
ret2 = theora_decode_header( &m_TheoraInfo, &m_TheoraComment, &op);
|
||||||
if( ret < 0 && ret != OC_NEWPACKET )
|
if( ret2 < 0 && ret2 != OC_NEWPACKET )
|
||||||
return ssprintf( "error opening %s: error parsing Theora stream headers", m_File.GetPath().c_str() );
|
return ssprintf( "error opening %s: error parsing Theora stream headers", m_File.GetPath().c_str() );
|
||||||
|
|
||||||
ogg_stream_packetout( &m_OggStream, NULL );
|
ogg_stream_packetout( &m_OggStream, NULL );
|
||||||
|
|||||||
Reference in New Issue
Block a user