From 7f66664d26b84cf6b593eee53144bbfe83c5588f Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Sun, 20 Mar 2011 20:50:35 -0500 Subject: [PATCH 01/12] remove a tiny bit of whitespace --- src/ScreenPlayerOptions.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ScreenPlayerOptions.cpp b/src/ScreenPlayerOptions.cpp index f6d9e0ca1b..ffa39f85a3 100644 --- a/src/ScreenPlayerOptions.cpp +++ b/src/ScreenPlayerOptions.cpp @@ -77,7 +77,7 @@ void ScreenPlayerOptions::Input( const InputEventPlus &input ) { // apply the game default mods, but not the Profile saved mods GAMESTATE->m_pPlayerState[pn]->ResetToDefaultPlayerOptions( ModsLevel_Preferred ); - + MESSAGEMAN->Broadcast( ssprintf("CancelAllP%i", pn+1) ); for( unsigned r=0; r Date: Sun, 20 Mar 2011 20:50:58 -0500 Subject: [PATCH 02/12] small cleanup/comment --- src/PlayerOptions.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/PlayerOptions.h b/src/PlayerOptions.h index a95523a7a5..8a66d1d758 100644 --- a/src/PlayerOptions.h +++ b/src/PlayerOptions.h @@ -162,9 +162,9 @@ public: /* All floats have a corresponding speed setting, which determines how fast * PlayerOptions::Approach approaches. */ bool m_bSetScrollSpeed; // true if the scroll speed was set by FromString - float m_fTimeSpacing, m_SpeedfTimeSpacing; // instead of Beat spacing - float m_fScrollSpeed, m_SpeedfScrollSpeed; // used if !m_bTimeSpacing - float m_fScrollBPM, m_SpeedfScrollBPM; // used if m_bTimeSpacing + float m_fTimeSpacing, m_SpeedfTimeSpacing; // instead of Beat spacing (CMods, mMods) + float m_fScrollSpeed, m_SpeedfScrollSpeed; // used if !m_bTimeSpacing (xMods) + float m_fScrollBPM, m_SpeedfScrollBPM; // used if m_bTimeSpacing (CMod) float m_fAccels[NUM_ACCELS], m_SpeedfAccels[NUM_ACCELS]; float m_fEffects[NUM_EFFECTS], m_SpeedfEffects[NUM_EFFECTS]; float m_fAppearances[NUM_APPEARANCES],m_SpeedfAppearances[NUM_APPEARANCES]; @@ -189,7 +189,7 @@ public: bool m_bTransforms[NUM_TRANSFORMS]; bool m_bMuteOnError; /** @brief How can the Player fail a song? */ - enum FailType { + enum FailType { FAIL_IMMEDIATE=0, /**< fail immediately when life touches 0 */ FAIL_IMMEDIATE_CONTINUE, /**< Same as above, but allow playing the rest of the song */ FAIL_AT_END, /**< fail if life is at 0 when the song ends */ From d854a993178d4ab466a837a9aea13a2dc5c8e855 Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Sun, 20 Mar 2011 20:52:56 -0500 Subject: [PATCH 03/12] change how GetNoteSkin binding works --- src/PlayerOptions.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/PlayerOptions.cpp b/src/PlayerOptions.cpp index f67bb13339..da4c144767 100644 --- a/src/PlayerOptions.cpp +++ b/src/PlayerOptions.cpp @@ -840,7 +840,15 @@ void PlayerOptions::ResetPrefs( ResetPrefsType type ) class LunaPlayerOptions: public Luna { public: - DEFINE_METHOD( GetNoteSkin, m_sNoteSkin ) + // NoteSkins + static int GetNoteSkin( T *p, lua_State *L ) + { + if( p->m_sNoteSkin.empty() ) + lua_pushstring( L, CommonMetrics::DEFAULT_NOTESKIN_NAME.GetValue() ); + else + lua_pushstring( L, p->m_sNoteSkin ); + return 1; + } static int SetNoteSkin( T *p, lua_State *L ) { if( NOTESKIN->DoesNoteSkinExist(SArg(1)) ) From 7d8e2c33bcbe70207b7215b27eb2cf74d315a918 Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Sun, 20 Mar 2011 21:25:49 -0500 Subject: [PATCH 04/12] [PlayerOptions] Tons of new Lua bindings. See the Lua documentation for all of them, there's too many to print here. --- Docs/Changelog_sm-ssc.txt | 2 + src/PlayerOptions.cpp | 199 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 201 insertions(+) diff --git a/Docs/Changelog_sm-ssc.txt b/Docs/Changelog_sm-ssc.txt index 9a695ec50c..20b7ecc9cf 100644 --- a/Docs/Changelog_sm-ssc.txt +++ b/Docs/Changelog_sm-ssc.txt @@ -16,6 +16,8 @@ sm-ssc v1.2.4 | 20110??? 20110320 -------- * [PlayerOptions] Added SetNoteSkin(string) Lua binding. [AJ] +* [PlayerOptions] Tons of new Lua bindings. See the Lua documentation for all + of them, there's too many to print here. [AJ] 20110317 -------- diff --git a/src/PlayerOptions.cpp b/src/PlayerOptions.cpp index da4c144767..e91dbb8742 100644 --- a/src/PlayerOptions.cpp +++ b/src/PlayerOptions.cpp @@ -856,10 +856,209 @@ public: return 0; } + // Speed Mods + static int GetCMod( T *p, lua_State *L ) + { + if( p->m_fTimeSpacing ) + lua_pushnumber( L, p->m_fTimeSpacing ); + else + lua_pushnil(L); + return 1; + } + static int GetXMod( T *p, lua_State *L ) + { + if( !p->m_fTimeSpacing ) + lua_pushnumber( L, p->m_fScrollSpeed ); + else + lua_pushnil(L); + return 1; + } + + // Accel + DEFINE_METHOD( GetBoost, m_fAccels[PlayerOptions::ACCEL_BOOST] ) + DEFINE_METHOD( GetBrake, m_fAccels[PlayerOptions::ACCEL_BRAKE] ) + DEFINE_METHOD( GetWave, m_fAccels[PlayerOptions::ACCEL_WAVE] ) + DEFINE_METHOD( GetExpand, m_fAccels[PlayerOptions::ACCEL_EXPAND] ) + DEFINE_METHOD( GetBoomerang, m_fAccels[PlayerOptions::ACCEL_BOOMERANG] ) + + // Effect + DEFINE_METHOD( GetDrunk, m_fEffects[PlayerOptions::EFFECT_DRUNK] ) // MoonGyuHyuk + DEFINE_METHOD( GetDizzy, m_fEffects[PlayerOptions::EFFECT_DIZZY] ) + DEFINE_METHOD( GetConfusion, m_fEffects[PlayerOptions::EFFECT_CONFUSION] ) + DEFINE_METHOD( GetMini, m_fEffects[PlayerOptions::EFFECT_MINI] ) + DEFINE_METHOD( GetTiny, m_fEffects[PlayerOptions::EFFECT_TINY] ) + DEFINE_METHOD( GetFlip, m_fEffects[PlayerOptions::EFFECT_FLIP] ) + DEFINE_METHOD( GetInvert, m_fEffects[PlayerOptions::EFFECT_INVERT] ) + DEFINE_METHOD( GetTornado, m_fEffects[PlayerOptions::EFFECT_TORNADO] ) + DEFINE_METHOD( GetTipsy, m_fEffects[PlayerOptions::EFFECT_TIPSY] ) + DEFINE_METHOD( GetBumpy, m_fEffects[PlayerOptions::EFFECT_BUMPY] ) + DEFINE_METHOD( GetBeat, m_fEffects[PlayerOptions::EFFECT_BEAT] ) + DEFINE_METHOD( GetXMode, m_fEffects[PlayerOptions::EFFECT_XMODE] ) + DEFINE_METHOD( GetTwirl, m_fEffects[PlayerOptions::EFFECT_TWIRL] ) + DEFINE_METHOD( GetRoll, m_fEffects[PlayerOptions::EFFECT_ROLL] ) + + // Appearance + DEFINE_METHOD( GetHidden, m_fAppearances[PlayerOptions::APPEARANCE_HIDDEN] ) + DEFINE_METHOD( GetHiddenOffset, m_fAppearances[PlayerOptions::APPEARANCE_HIDDEN_OFFSET] ) + DEFINE_METHOD( GetSudden, m_fAppearances[PlayerOptions::APPEARANCE_SUDDEN] ) + DEFINE_METHOD( GetSuddenOffset, m_fAppearances[PlayerOptions::APPEARANCE_SUDDEN_OFFSET] ) + DEFINE_METHOD( GetStealth, m_fAppearances[PlayerOptions::APPEARANCE_STEALTH] ) + DEFINE_METHOD( GetBlink, m_fAppearances[PlayerOptions::APPEARANCE_BLINK] ) + DEFINE_METHOD( GetRandomVanish, m_fAppearances[PlayerOptions::APPEARANCE_RANDOMVANISH] ) + + // Scroll + DEFINE_METHOD( GetReverse, m_fScrolls[PlayerOptions::SCROLL_REVERSE] ) + static int GetReversePercentForColumn( T *p, lua_State *L ) + { + // todo: make sure IArg is within boundaries -aj + lua_pushnumber( L, p->GetReversePercentForColumn(IArg(1)) ); + return 1; + } + DEFINE_METHOD( GetSplit, m_fScrolls[PlayerOptions::SCROLL_SPLIT] ) + DEFINE_METHOD( GetAlternate, m_fScrolls[PlayerOptions::SCROLL_ALTERNATE] ) + DEFINE_METHOD( GetCross, m_fScrolls[PlayerOptions::SCROLL_CROSS] ) + DEFINE_METHOD( GetCentered, m_fScrolls[PlayerOptions::SCROLL_CENTERED] ) + + // Turns + DEFINE_METHOD( GetMirror, m_bTurns[PlayerOptions::TURN_MIRROR] ) + DEFINE_METHOD( GetLeft, m_bTurns[PlayerOptions::TURN_LEFT] ) + DEFINE_METHOD( GetRight, m_bTurns[PlayerOptions::TURN_RIGHT] ) + DEFINE_METHOD( GetShuffle, m_bTurns[PlayerOptions::TURN_SHUFFLE] ) + DEFINE_METHOD( GetSoftShuffle, m_bTurns[PlayerOptions::TURN_SOFT_SHUFFLE] ) + DEFINE_METHOD( GetSuperShuffle, m_bTurns[PlayerOptions::TURN_SUPER_SHUFFLE] ) + + // Transform + DEFINE_METHOD( GetNoHolds, m_bTransforms[PlayerOptions::TRANSFORM_NOHOLDS] ) + DEFINE_METHOD( GetNoRolls, m_bTransforms[PlayerOptions::TRANSFORM_NOROLLS] ) + DEFINE_METHOD( GetNoMines, m_bTransforms[PlayerOptions::TRANSFORM_NOMINES] ) + DEFINE_METHOD( GetLittle, m_bTransforms[PlayerOptions::TRANSFORM_LITTLE] ) + DEFINE_METHOD( GetWide, m_bTransforms[PlayerOptions::TRANSFORM_WIDE] ) + DEFINE_METHOD( GetBig, m_bTransforms[PlayerOptions::TRANSFORM_BIG] ) + DEFINE_METHOD( GetQuick, m_bTransforms[PlayerOptions::TRANSFORM_QUICK] ) + DEFINE_METHOD( GetBMRize, m_bTransforms[PlayerOptions::TRANSFORM_BMRIZE] ) + DEFINE_METHOD( GetSkippy, m_bTransforms[PlayerOptions::TRANSFORM_SKIPPY] ) + DEFINE_METHOD( GetMines, m_bTransforms[PlayerOptions::TRANSFORM_MINES] ) + DEFINE_METHOD( GetAttackMines, m_bTransforms[PlayerOptions::TRANSFORM_ATTACKMINES] ) + DEFINE_METHOD( GetEcho, m_bTransforms[PlayerOptions::TRANSFORM_ECHO] ) + DEFINE_METHOD( GetStomp, m_bTransforms[PlayerOptions::TRANSFORM_STOMP] ) + DEFINE_METHOD( GetPlanted, m_bTransforms[PlayerOptions::TRANSFORM_PLANTED] ) + DEFINE_METHOD( GetFloored, m_bTransforms[PlayerOptions::TRANSFORM_FLOORED] ) + DEFINE_METHOD( GetTwister, m_bTransforms[PlayerOptions::TRANSFORM_TWISTER] ) + DEFINE_METHOD( GetHoldRolls, m_bTransforms[PlayerOptions::TRANSFORM_HOLDROLLS] ) + DEFINE_METHOD( GetNoJumps, m_bTransforms[PlayerOptions::TRANSFORM_NOJUMPS] ) + DEFINE_METHOD( GetNoHands, m_bTransforms[PlayerOptions::TRANSFORM_NOHANDS] ) + DEFINE_METHOD( GetNoLifts, m_bTransforms[PlayerOptions::TRANSFORM_NOLIFTS] ) + DEFINE_METHOD( GetNoFakes, m_bTransforms[PlayerOptions::TRANSFORM_NOFAKES] ) + DEFINE_METHOD( GetNoQuads, m_bTransforms[PlayerOptions::TRANSFORM_NOQUADS] ) + DEFINE_METHOD( GetNoStretch, m_bTransforms[PlayerOptions::TRANSFORM_NOSTRETCH] ) + + // Others + DEFINE_METHOD( GetDark, m_fDark ) + DEFINE_METHOD( GetBlind, m_fBlind ) + DEFINE_METHOD( GetCover, m_fCover ) + DEFINE_METHOD( GetRandomAttacks, m_fRandAttack ) + DEFINE_METHOD( GetSongAttacks, m_fSongAttack ) + DEFINE_METHOD( GetSkew, m_fSkew ) + DEFINE_METHOD( GetPassmark, m_fPassmark ) + DEFINE_METHOD( GetRandomSpeed, m_fRandomSpeed ) + LunaPlayerOptions() { + ADD_METHOD( GetDark ); + // SetDark + ADD_METHOD( GetBlind ); + // SetBlind + ADD_METHOD( GetCover ); + // SetCover + // GetMuteOnError, SetMuteOnError ADD_METHOD( GetNoteSkin ); ADD_METHOD( SetNoteSkin ); + // GetPerspectiveTilt, SetPerspectiveTilt + ADD_METHOD( GetPassmark ); + // SetPassmark + ADD_METHOD( GetRandomAttacks ); + // SetRandomAttacks + ADD_METHOD( GetRandomSpeed ); + // SetRandomSpeed + ADD_METHOD( GetSkew ); + // SetSkew + ADD_METHOD( GetSongAttacks ); + // SetSongAttacks + ADD_METHOD( GetCMod ); + ADD_METHOD( GetXMod ); + + // Accel + ADD_METHOD( GetBoost ); + ADD_METHOD( GetBrake ); + ADD_METHOD( GetWave ); + ADD_METHOD( GetExpand ); + ADD_METHOD( GetBoomerang ); + + // Effect + ADD_METHOD( GetDrunk ); + ADD_METHOD( GetDizzy ); + ADD_METHOD( GetConfusion ); + ADD_METHOD( GetMini ); + ADD_METHOD( GetTiny ); + ADD_METHOD( GetFlip ); + ADD_METHOD( GetInvert ); + ADD_METHOD( GetTornado ); + ADD_METHOD( GetTipsy ); + ADD_METHOD( GetBumpy ); + ADD_METHOD( GetBeat ); + ADD_METHOD( GetXMode ); + ADD_METHOD( GetTwirl ); + ADD_METHOD( GetRoll ); + + // Appearance + ADD_METHOD( GetHidden ); + ADD_METHOD( GetHiddenOffset ); + ADD_METHOD( GetSudden ); + ADD_METHOD( GetSuddenOffset ); + ADD_METHOD( GetStealth ); + ADD_METHOD( GetBlink ); + ADD_METHOD( GetRandomVanish ); + + // Scroll + ADD_METHOD( GetReverse ); + ADD_METHOD( GetReversePercentForColumn ); + ADD_METHOD( GetSplit ); + ADD_METHOD( GetAlternate ); + ADD_METHOD( GetCross ); + ADD_METHOD( GetCentered ); + + // Turns + ADD_METHOD( GetMirror ); + ADD_METHOD( GetLeft ); + ADD_METHOD( GetRight ); + ADD_METHOD( GetShuffle ); + ADD_METHOD( GetSoftShuffle ); + ADD_METHOD( GetSuperShuffle ); + + // Transform + ADD_METHOD( GetNoHolds ); + ADD_METHOD( GetNoRolls ); + ADD_METHOD( GetNoMines ); + ADD_METHOD( GetLittle ); + ADD_METHOD( GetWide ); + ADD_METHOD( GetBig ); + ADD_METHOD( GetQuick ); + ADD_METHOD( GetBMRize ); + ADD_METHOD( GetSkippy ); + ADD_METHOD( GetMines ); + ADD_METHOD( GetAttackMines ); + ADD_METHOD( GetEcho ); + ADD_METHOD( GetStomp ); + ADD_METHOD( GetPlanted ); + ADD_METHOD( GetFloored ); + ADD_METHOD( GetTwister ); + ADD_METHOD( GetHoldRolls ); + ADD_METHOD( GetNoJumps ); + ADD_METHOD( GetNoHands ); + ADD_METHOD( GetNoLifts ); + ADD_METHOD( GetNoFakes ); + ADD_METHOD( GetNoQuads ); + ADD_METHOD( GetNoStretch ); } }; From 226cb92aac292b971ca4a5b60c133e11b9ab5221 Mon Sep 17 00:00:00 2001 From: Flameshadowxeroshin Date: Sun, 20 Mar 2011 21:42:57 -0500 Subject: [PATCH 05/12] prevent possible WAV read hang (thanks to Steve Checkoway) --- src/RageSoundReader_WAV.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RageSoundReader_WAV.cpp b/src/RageSoundReader_WAV.cpp index 19263ce22e..0af1f10e30 100644 --- a/src/RageSoundReader_WAV.cpp +++ b/src/RageSoundReader_WAV.cpp @@ -374,7 +374,7 @@ public: int iFramesToCopy = (m_iBufferAvail-m_iBufferUsed) / iBytesPerFrame; iFramesToCopy = min( iFramesToCopy, (int) (iFrames-iGotFrames) ); int iSamplesToCopy = iFramesToCopy * iSamplesPerFrame; - int iBytesToCopy = iSamplesToCopy * sizeof(int16_t); + int iBytesToCopy = iSamplesToCopy * sizeof(float); memcpy( buf, m_pBuffer+m_iBufferUsed, iBytesToCopy ); m_iBufferUsed += iBytesToCopy; iGotFrames += iFramesToCopy; From 22c302713347b848a72ab01c5831115bfe4fc9e5 Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Mon, 21 Mar 2011 00:42:30 -0400 Subject: [PATCH 06/12] Reverting recent initialization list attempt. The old code was behaving better...by that I mean not crashing on me. Steve is right: time to use different tools to improve our code. --- src/ScreenGameplay.cpp | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/ScreenGameplay.cpp b/src/ScreenGameplay.cpp index 641bae8beb..8280993a27 100644 --- a/src/ScreenGameplay.cpp +++ b/src/ScreenGameplay.cpp @@ -95,14 +95,26 @@ static Preference g_fNetStartOffset( "NetworkStartOffset", -3.0 ); static Preference g_bEasterEggs( "EasterEggs", true ); -PlayerInfo::PlayerInfo(): m_pn(PLAYER_INVALID), m_mp(MultiPlayer_Invalid), - m_bIsDummy(false), m_iDummyIndex(0), m_iAddToDifficulty(0), - m_bPlayerEnabled(false), m_pLifeMeter(NULL), - m_ptextCourseSongNumber(NULL), m_ptextStepsDescription(NULL), - m_pPrimaryScoreDisplay(NULL), m_pSecondaryScoreDisplay(NULL), - m_pPrimaryScoreKeeper(NULL), m_pSecondaryScoreKeeper(NULL), - m_pActiveAttackList(NULL), m_pPlayer(NULL), m_pInventory(NULL), - m_pStepsDisplay(NULL) {} +PlayerInfo::PlayerInfo() +{ + m_pn = PLAYER_INVALID; + m_mp = MultiPlayer_Invalid; + m_bIsDummy = false; + m_iDummyIndex = 0; + m_iAddToDifficulty = 0; + m_pLifeMeter = NULL; + m_ptextCourseSongNumber = NULL; + m_ptextStepsDescription = NULL; + m_pPrimaryScoreDisplay = NULL; + m_pSecondaryScoreDisplay = NULL; + m_pPrimaryScoreKeeper = NULL; + m_pSecondaryScoreKeeper = NULL; + m_ptextPlayerOptions = NULL; + m_pActiveAttackList = NULL; + m_pPlayer = NULL; + m_pInventory = NULL; + m_pStepsDisplay = NULL; +} void PlayerInfo::Load( PlayerNumber pn, MultiPlayer mp, bool bShowNoteField, int iAddToDifficulty ) { From 220e4e168dab8c4c9a1d06432907f360a0dcd23d Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Mon, 21 Mar 2011 00:58:56 -0400 Subject: [PATCH 07/12] Re-revert, implement right. Pay attention to your compiler warnings everyone. (And also don't test exclusively in the editor.) --- src/ScreenGameplay.cpp | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/src/ScreenGameplay.cpp b/src/ScreenGameplay.cpp index 8280993a27..fc34084c53 100644 --- a/src/ScreenGameplay.cpp +++ b/src/ScreenGameplay.cpp @@ -95,26 +95,17 @@ static Preference g_fNetStartOffset( "NetworkStartOffset", -3.0 ); static Preference g_bEasterEggs( "EasterEggs", true ); -PlayerInfo::PlayerInfo() -{ - m_pn = PLAYER_INVALID; - m_mp = MultiPlayer_Invalid; - m_bIsDummy = false; - m_iDummyIndex = 0; - m_iAddToDifficulty = 0; - m_pLifeMeter = NULL; - m_ptextCourseSongNumber = NULL; - m_ptextStepsDescription = NULL; - m_pPrimaryScoreDisplay = NULL; - m_pSecondaryScoreDisplay = NULL; - m_pPrimaryScoreKeeper = NULL; - m_pSecondaryScoreKeeper = NULL; - m_ptextPlayerOptions = NULL; - m_pActiveAttackList = NULL; - m_pPlayer = NULL; - m_pInventory = NULL; - m_pStepsDisplay = NULL; -} +PlayerInfo::PlayerInfo(): m_pn(PLAYER_INVALID), m_mp(MultiPlayer_Invalid), + m_bIsDummy(false), m_iDummyIndex(0), m_iAddToDifficulty(0), + m_bPlayerEnabled(false), m_PlayerStateDummy(), + m_PlayerStageStatsDummy(), m_SoundEffectControl(), + m_vpStepsQueue(), m_asModifiersQueue(), m_pLifeMeter(NULL), + m_ptextCourseSongNumber(NULL), m_ptextStepsDescription(NULL), + m_pPrimaryScoreDisplay(NULL), m_pSecondaryScoreDisplay(NULL), + m_pPrimaryScoreKeeper(NULL), m_pSecondaryScoreKeeper(NULL), + m_ptextPlayerOptions(NULL), m_pActiveAttackList(NULL), + m_NoteData(), m_pPlayer(NULL), m_pInventory(NULL), + m_pStepsDisplay(NULL), m_sprOniGameOver() {} void PlayerInfo::Load( PlayerNumber pn, MultiPlayer mp, bool bShowNoteField, int iAddToDifficulty ) { From 25ed1ef8ea4eaae6b8fd1a0f5c36dc3d6e47ab4f Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Mon, 21 Mar 2011 01:40:39 -0400 Subject: [PATCH 08/12] Finish the job here before leak testing. Now...how to remove the leak...? --- src/Font.cpp | 9 +++++---- src/Font.h | 4 +++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Font.cpp b/src/Font.cpp index fed6ed7835..209158c7cf 100644 --- a/src/Font.cpp +++ b/src/Font.cpp @@ -13,7 +13,8 @@ FontPage::FontPage(): m_iHeight(0), m_iLineSpacing(0), m_fVshift(0), m_iDrawExtraPixelsLeft(0), m_iDrawExtraPixelsRight(0), - m_sTexturePath("") {} + m_FontPageTextures(), m_sTexturePath(""), m_aGlyphs(), + m_iCharToGlyphNo() {} void FontPage::Load( const FontPageSettings &cfg ) { @@ -221,9 +222,9 @@ int Font::GetLineHeightInSourcePixels( const wstring &szLine ) const Font::Font(): m_iRefCount(1), path(""), m_apPages(), m_pDefault(NULL), - m_bRightToLeft(false), m_DefaultStrokeColor(RageColor(0,0,0,0)), - m_sChars("") {} // strokes aren't shown by default, hence the Color. - + m_iCharToGlyph(), m_bRightToLeft(false), + // strokes aren't shown by default, hence the Color. + m_DefaultStrokeColor(RageColor(0,0,0,0)), m_sChars("") {} Font::~Font() { Unload(); diff --git a/src/Font.h b/src/Font.h index 4242693a34..d57a6b5eae 100644 --- a/src/Font.h +++ b/src/Font.h @@ -84,7 +84,9 @@ struct FontPageSettings m_iDefaultWidth(-1), m_iAdvanceExtraPixels(1), m_fScaleAllWidthsBy(1), - m_sTextureHints("default") + m_sTextureHints("default"), + CharToGlyphNo(), + m_mapGlyphWidths() { } /** From 04300bb48c715f949eff4eb7b2dbc289d9eafcb9 Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Mon, 21 Mar 2011 02:10:10 -0400 Subject: [PATCH 09/12] Try to respect hungarian notation better. --- src/Font.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Font.cpp b/src/Font.cpp index 209158c7cf..4534f76d09 100644 --- a/src/Font.cpp +++ b/src/Font.cpp @@ -713,8 +713,8 @@ void Font::Load( const RString &sIniPath, RString sChars ) for(unsigned i = 0; i < ImportList.size(); ++i) { - RString fPath = THEME->GetPathF( "", ImportList[i], true ); - if( fPath == "" ) + RString sPath = THEME->GetPathF( "", ImportList[i], true ); + if( sPath == "" ) { RString s = ssprintf( "Font \"%s\" imports a font \"%s\" that doesn't exist", sIniPath.c_str(), ImportList[i].c_str() ); Dialog::OK( s ); @@ -722,7 +722,7 @@ void Font::Load( const RString &sIniPath, RString sChars ) } Font subfont; - subfont.Load(fPath,""); + subfont.Load(sPath,""); MergeFont(subfont); } } From 1e63b898f287c09b67620533eae0c2da7f0cc2f6 Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Tue, 22 Mar 2011 22:18:25 -0400 Subject: [PATCH 10/12] Fix a memory leak. --- src/MusicWheelItem.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/MusicWheelItem.cpp b/src/MusicWheelItem.cpp index 659de68a4d..df198ef22a 100644 --- a/src/MusicWheelItem.cpp +++ b/src/MusicWheelItem.cpp @@ -126,6 +126,7 @@ MusicWheelItem::MusicWheelItem( const MusicWheelItem &cpy ): WheelItemBase( cpy ), GRADES_SHOW_MACHINE( cpy.GRADES_SHOW_MACHINE ), m_TextBanner( cpy.m_TextBanner ), + m_pTextSectionCount( cpy.m_pTextSectionCount ), m_WheelNotifyIcon( cpy.m_WheelNotifyIcon ) { FOREACH_ENUM( MusicWheelItemType, i ) @@ -158,7 +159,7 @@ MusicWheelItem::MusicWheelItem( const MusicWheelItem &cpy ): } } - m_pTextSectionCount = new BitmapText( *cpy.m_pTextSectionCount ); + //m_pTextSectionCount = new BitmapText( *cpy.m_pTextSectionCount ); this->AddChild( m_pTextSectionCount ); this->AddChild( &m_WheelNotifyIcon ); From bdf1b8687086f42b854735a3e402f86b2e051169 Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Tue, 22 Mar 2011 22:38:12 -0400 Subject: [PATCH 11/12] Add another to .hgignore. We may want to keep theme UsefPrefs to one directory, not two. --- .hgignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgignore b/.hgignore index d44806c51b..ea6889df61 100644 --- a/.hgignore +++ b/.hgignore @@ -60,6 +60,7 @@ GtkModule.so ver.cpp lib*_link.a Data/UserPrefs +Data/uPrefs Data/GamePrefs/*.cfg PBProject/Hardware.plist Themes/pump From 35fb11c7643f9ad41949b7a6d58ec633d620d634 Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Tue, 22 Mar 2011 22:39:40 -0400 Subject: [PATCH 12/12] More effective-to-some fixes. --- src/MusicWheelItem.cpp | 14 ++++++-------- src/MusicWheelItem.h | 7 +++++-- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/MusicWheelItem.cpp b/src/MusicWheelItem.cpp index df198ef22a..3ecf7d81d3 100644 --- a/src/MusicWheelItem.cpp +++ b/src/MusicWheelItem.cpp @@ -33,14 +33,12 @@ static const char *MusicWheelItemTypeNames[] = { }; XToString( MusicWheelItemType ); -MusicWheelItemData::MusicWheelItemData( WheelItemDataType type, Song* pSong, RString sSectionName, Course* pCourse, RageColor color, int iSectionCount ): - WheelItemBaseData(type, sSectionName, color) -{ - m_pSong = pSong; - m_pCourse = pCourse; - m_Flags = WheelNotifyIcon::Flags(); - m_iSectionCount = iSectionCount; -} +MusicWheelItemData::MusicWheelItemData( WheelItemDataType type, Song* pSong, + RString sSectionName, Course* pCourse, + RageColor color, int iSectionCount ): + WheelItemBaseData(type, sSectionName, color), + m_pCourse(pCourse), m_pSong(pSong), m_Flags(WheelNotifyIcon::Flags()), + m_iSectionCount(iSectionCount), m_sLabel(""), m_pAction() {} MusicWheelItem::MusicWheelItem( RString sType ): WheelItemBase( sType ) diff --git a/src/MusicWheelItem.h b/src/MusicWheelItem.h index 1d83357b5e..6155e24d70 100644 --- a/src/MusicWheelItem.h +++ b/src/MusicWheelItem.h @@ -62,8 +62,11 @@ private: struct MusicWheelItemData : public WheelItemBaseData { - MusicWheelItemData() : m_iSectionCount(0) { } - MusicWheelItemData( WheelItemDataType type, Song* pSong, RString sSectionName, Course* pCourse, RageColor color, int iSectionCount ); + MusicWheelItemData() : m_pCourse(NULL), m_pSong(NULL), m_Flags(), + m_iSectionCount(0), m_sLabel(""), m_pAction() { } + MusicWheelItemData( WheelItemDataType type, Song* pSong, + RString sSectionName, Course* pCourse, + RageColor color, int iSectionCount ); Course* m_pCourse; Song* m_pSong;