More effective fixes.

Course playing still results in it playing fine.
This commit is contained in:
Jason Felds
2011-03-19 18:26:55 -04:00
parent 3dcdf67666
commit 22b7b34897
19 changed files with 72 additions and 55 deletions
+20 -14
View File
@@ -27,15 +27,26 @@ struct BackgroundDef
RString m_sColor2; // "" == use default RString m_sColor2; // "" == use default
XNode *CreateNode() const; XNode *CreateNode() const;
/** @brief Set up the BackgroundDef with default values. */
BackgroundDef(): m_sEffect(""), m_sFile1(""), m_sFile2(""),
m_sColor1(""), m_sColor2("") {}
/**
* @brief Set up the BackgroundDef with some defined values.
* @param effect the intended effect.
* @param f1 the primary filename for the definition.
* @param f2 the secondary filename (optional). */
BackgroundDef(RString effect, RString f1, RString f2):
m_sEffect(effect), m_sFile1(f1), m_sFile2(f2),
m_sColor1(""), m_sColor2("") {}
}; };
struct BackgroundChange struct BackgroundChange
{ {
BackgroundChange() BackgroundChange(): m_def(), m_fStartBeat(-1), m_fRate(1),
{ m_sTransition("") {}
m_fStartBeat=-1;
m_fRate=1;
}
BackgroundChange( BackgroundChange(
float s, float s,
RString f1, RString f1,
@@ -43,15 +54,10 @@ struct BackgroundChange
float r=1.f, float r=1.f,
RString e=SBE_Centered, RString e=SBE_Centered,
RString t=RString() RString t=RString()
) ):
{ m_def(e, f1, f2), m_fStartBeat(s),
m_fStartBeat=s; m_fRate(r), m_sTransition(t) {}
m_def.m_sFile1=f1;
m_def.m_sFile2=f2;
m_fRate=r;
m_def.m_sEffect=e;
m_sTransition=t;
}
BackgroundDef m_def; BackgroundDef m_def;
float m_fStartBeat; float m_fStartBeat;
float m_fRate; float m_fRate;
+3
View File
@@ -16,10 +16,13 @@ public:
struct Arg struct Arg
{ {
RString s; RString s;
Arg(): s("") {}
}; };
Arg GetArg( unsigned index ) const; Arg GetArg( unsigned index ) const;
vector<RString> m_vsArgs; vector<RString> m_vsArgs;
Command(): m_vsArgs() {}
}; };
class Commands class Commands
+11 -2
View File
@@ -88,9 +88,18 @@ int CourseEntry::GetNumModChanges() const
Course::Course() Course::Course(): m_bIsAutogen(false), m_sPath(""), m_sMainTitle(""),
m_sMainTitleTranslit(""), m_sSubTitle(""), m_sSubTitleTranslit(""),
m_sBannerPath(""), m_sBackgroundPath(""), m_sCDTitlePath(""),
m_sGroupName(""), m_bRepeat(false), m_fGoalSeconds(0),
m_bShuffle(false), m_iLives(-1), m_bSortByMeter(false),
m_bIncomplete(false), m_vEntries(), m_SortOrder_TotalDifficulty(0),
m_SortOrder_Ranking(0), m_LoadedFromProfile(ProfileSlot_Invalid),
m_TrailCache(), m_iTrailCacheSeed(0), m_RadarCache(),
m_setStyles(), m_CachedObject()
{ {
Init(); FOREACH_ENUM( Difficulty,dc)
m_iCustomMeter[dc] = -1;
} }
CourseType Course::GetCourseType() const CourseType Course::GetCourseType() const
+4 -2
View File
@@ -55,9 +55,11 @@ public:
float fGainSeconds; // time gained back at the beginning of the song. LifeMeterTime only. float fGainSeconds; // time gained back at the beginning of the song. LifeMeterTime only.
int iGainLives; // lives gained back at the beginning of the next song int iGainLives; // lives gained back at the beginning of the next song
CourseEntry(): bSecret(false), bNoDifficult(false), CourseEntry(): bSecret(false), songID(), songCriteria(),
stepsCriteria(), bNoDifficult(false),
songSort(SongSort_Randomize), iChooseIndex(0), songSort(SongSort_Randomize), iChooseIndex(0),
sModifiers(RString("")), fGainSeconds(0), iGainLives(-1) {} sModifiers(RString("")), attacks(), fGainSeconds(0),
iGainLives(-1) {}
bool IsFixedSong() const { return songID.IsValid(); } bool IsFixedSong() const { return songID.IsValid(); }
+1 -1
View File
@@ -68,7 +68,7 @@ namespace EditCourseUtil
class CourseID class CourseID
{ {
public: public:
CourseID() { Unset(); } CourseID(): sPath(""), sFullTitle(""), m_Cache() { Unset(); }
void Unset() { FromCourse(NULL); } void Unset() { FromCourse(NULL); }
void FromCourse( const Course *p ); void FromCourse( const Course *p );
Course *ToCourse() const; Course *ToCourse() const;
+3 -8
View File
@@ -220,14 +220,9 @@ int Font::GetLineHeightInSourcePixels( const wstring &szLine ) const
} }
Font::Font() Font::Font(): m_iRefCount(1), path(""), m_apPages(), m_pDefault(NULL),
{ m_bRightToLeft(false), m_DefaultStrokeColor(RageColor(0,0,0,0)),
m_iRefCount = 1; m_sChars("") {} // strokes aren't shown by default, hence the Color.
m_pDefault = NULL;
m_bRightToLeft = false;
// [sm-ssc] don't show strokes by default
m_DefaultStrokeColor = RageColor(0,0,0,0);
}
Font::~Font() Font::~Font()
{ {
+6 -6
View File
@@ -23,11 +23,7 @@ struct FontPageTextures
RageTexture *m_pTextureStroke; RageTexture *m_pTextureStroke;
/** @brief Set up the initial textures. */ /** @brief Set up the initial textures. */
FontPageTextures() FontPageTextures(): m_pTextureMain(NULL), m_pTextureStroke(NULL) {}
{
m_pTextureMain = NULL;
m_pTextureStroke = NULL;
}
}; };
/** @brief The components of a glyph (not technically a character). */ /** @brief The components of a glyph (not technically a character). */
@@ -52,6 +48,10 @@ struct glyph
/** @brief Texture coordinate rect. */ /** @brief Texture coordinate rect. */
RectF m_TexRect; RectF m_TexRect;
/** @brief Set up the glyph with default values. */
glyph() : m_pPage(NULL), m_FontPageTextures(), m_iHadvance(0),
m_fWidth(0), m_fHeight(0), m_fHshift(0), m_TexRect() {}
}; };
/** @brief The settings used for the FontPage. */ /** @brief The settings used for the FontPage. */
@@ -75,7 +75,7 @@ struct FontPageSettings
map<int,int> m_mapGlyphWidths; map<int,int> m_mapGlyphWidths;
/** @brief The initial settings for the FontPage. */ /** @brief The initial settings for the FontPage. */
FontPageSettings(): FontPageSettings(): m_sTexturePath(""),
m_iDrawExtraPixelsLeft(0), m_iDrawExtraPixelsRight(0), m_iDrawExtraPixelsLeft(0), m_iDrawExtraPixelsRight(0),
m_iAddToAllWidths(0), m_iAddToAllWidths(0),
m_iLineSpacing(-1), m_iLineSpacing(-1),
+1 -1
View File
@@ -156,7 +156,7 @@ private:
class MessageSubscriber : public IMessageSubscriber class MessageSubscriber : public IMessageSubscriber
{ {
public: public:
MessageSubscriber() {} MessageSubscriber(): m_vsSubscribedTo() {}
MessageSubscriber( const MessageSubscriber &cpy ); MessageSubscriber( const MessageSubscriber &cpy );
MessageSubscriber &operator=(const MessageSubscriber &cpy); MessageSubscriber &operator=(const MessageSubscriber &cpy);
+3
View File
@@ -13,6 +13,9 @@ public:
{ {
/** @brief The list of parameters. */ /** @brief The list of parameters. */
vector<RString> params; vector<RString> params;
/** @brief Set up the parameters with default values. */
value_t(): params() {}
/** /**
* @brief Access the proper parameter. * @brief Access the proper parameter.
* @param i the index. * @param i the index.
+1 -1
View File
@@ -31,7 +31,7 @@ static void GetResolutionFromFileName( RString sPath, int &iWidth, int &iHeight
} }
RageBitmapTexture::RageBitmapTexture( RageTextureID name ) : RageBitmapTexture::RageBitmapTexture( RageTextureID name ) :
RageTexture( name ) RageTexture( name ), m_uTexHandle(0)
{ {
Create(); Create();
} }
+1 -1
View File
@@ -264,7 +264,7 @@ class MatrixStack
vector<RageMatrix> stack; vector<RageMatrix> stack;
public: public:
MatrixStack() MatrixStack(): stack()
{ {
stack.resize(1); stack.resize(1);
LoadIdentity(); LoadIdentity();
+3 -2
View File
@@ -48,9 +48,10 @@ RageSoundLoadParams::RageSoundLoadParams():
m_bSupportRateChanging(false), m_bSupportPan(false) {} m_bSupportRateChanging(false), m_bSupportPan(false) {}
RageSound::RageSound(): RageSound::RageSound():
m_Mutex( "RageSound" ), m_pSource(NULL), m_iStreamFrame(0), m_Mutex( "RageSound" ), m_pSource(NULL),
m_sFilePath(""), m_Param(), m_iStreamFrame(0),
m_iStoppedSourceFrame(0), m_bPlaying(false), m_iStoppedSourceFrame(0), m_bPlaying(false),
m_bDeleteWhenFinished(false) m_sError(""), m_bDeleteWhenFinished(false)
{ {
ASSERT( SOUNDMAN ); ASSERT( SOUNDMAN );
} }
+2 -4
View File
@@ -1,15 +1,13 @@
/* RageTexturePreloader - Load textures in advance, for use later. */
#ifndef RAGE_TEXTURE_PRELOADER_H #ifndef RAGE_TEXTURE_PRELOADER_H
#define RAGE_TEXTURE_PRELOADER_H #define RAGE_TEXTURE_PRELOADER_H
class RageTexture; class RageTexture;
struct RageTextureID; struct RageTextureID;
/** @brief Load the textures in advance for using them later. */
class RageTexturePreloader class RageTexturePreloader
{ {
public: public:
RageTexturePreloader() { } RageTexturePreloader(): m_apTextures() { }
RageTexturePreloader( const RageTexturePreloader &cpy ) { *this = cpy; } RageTexturePreloader( const RageTexturePreloader &cpy ) { *this = cpy; }
RageTexturePreloader &operator=( const RageTexturePreloader &rhs ); RageTexturePreloader &operator=( const RageTexturePreloader &rhs );
~RageTexturePreloader(); ~RageTexturePreloader();
+1
View File
@@ -335,6 +335,7 @@ typedef StepMania::Rect<float> RectF;
* have the same layout that D3D expects. */ * have the same layout that D3D expects. */
struct RageSpriteVertex // has color struct RageSpriteVertex // has color
{ {
RageSpriteVertex(): p(), n(), c(), t() {}
RageVector3 p; // position RageVector3 p; // position
RageVector3 n; // normal RageVector3 n; // normal
RageVColor c; // diffuse color RageVColor c; // diffuse color
+2 -5
View File
@@ -18,17 +18,14 @@ template<typename T>
class CachedObject class CachedObject
{ {
public: public:
CachedObject() CachedObject(): m_pObject(NULL)
{ {
m_pObject = NULL;
/* A new object is being constructed, so invalidate negative caching. */ /* A new object is being constructed, so invalidate negative caching. */
ClearCacheNegative(); ClearCacheNegative();
} }
CachedObject( const CachedObject &cpy ) CachedObject( const CachedObject &cpy ): m_pObject(NULL)
{ {
m_pObject = NULL;
ClearCacheNegative(); ClearCacheNegative();
} }
+3 -2
View File
@@ -48,7 +48,8 @@ public:
/** @brief Set up some initial song criteria. */ /** @brief Set up some initial song criteria. */
SongCriteria(): m_sGroupName(""), m_bUseSongGenreAllowedList(false), SongCriteria(): m_sGroupName(""), m_bUseSongGenreAllowedList(false),
m_Selectable(Selectable_DontCare), m_bUseSongAllowedList(false), m_vsSongGenreAllowedList(), m_Selectable(Selectable_DontCare),
m_bUseSongAllowedList(false), m_vpSongAllowedList(),
m_iMaxStagesForSong(-1), m_Tutorial(Tutorial_DontCare), m_iMaxStagesForSong(-1), m_Tutorial(Tutorial_DontCare),
m_Locked(Locked_DontCare) m_Locked(Locked_DontCare)
{ {
@@ -182,7 +183,7 @@ public:
* @brief Set up the SongID with default values. * @brief Set up the SongID with default values.
* *
* This used to call Unset() to do the same thing. */ * This used to call Unset() to do the same thing. */
SongID(): sDir("") { m_Cache.Unset(); } SongID(): sDir(""), m_Cache() { m_Cache.Unset(); }
void Unset() { FromSong(NULL); } void Unset() { FromSong(NULL); }
void FromSong( const Song *p ); void FromSong( const Song *p );
Song *ToSong() const; Song *ToSong() const;
+1 -1
View File
@@ -169,7 +169,7 @@ public:
* This used to call Unset(), which set the variables to * This used to call Unset(), which set the variables to
* the same thing. */ * the same thing. */
StepsID(): st(StepsType_Invalid), dc(Difficulty_Invalid), StepsID(): st(StepsType_Invalid), dc(Difficulty_Invalid),
sDescription(""), uHash(0) {} sDescription(""), uHash(0), m_Cache() {}
void Unset() { FromSteps(NULL); } void Unset() { FromSteps(NULL); }
void FromSteps( const Steps *p ); void FromSteps( const Steps *p );
Steps *ToSteps( const Song *p, bool bAllowNull ) const; Steps *ToSteps( const Song *p, bool bAllowNull ) const;
+4 -3
View File
@@ -57,9 +57,10 @@ public:
* *
* m_sEntryID starts as an empty string. It will be filled automatically * m_sEntryID starts as an empty string. It will be filled automatically
* if not specified. */ * if not specified. */
UnlockEntry(): m_Type(UnlockRewardType_Invalid), UnlockEntry(): m_Type(UnlockRewardType_Invalid), m_cmd(),
m_dc(Difficulty_Invalid), m_bRequirePassHardSteps(false), m_Song(), m_dc(Difficulty_Invalid), m_Course(),
m_bRoulette(false), m_sEntryID(RString("")) m_bRequirePassHardSteps(false), m_bRoulette(false),
m_sEntryID(RString(""))
{ {
ZERO( m_fRequirement ); ZERO( m_fRequirement );
} }
+1 -1
View File
@@ -25,7 +25,7 @@ public:
static void Create( const RString &sDrivers, vector<InputHandler *> &apAdd ); static void Create( const RString &sDrivers, vector<InputHandler *> &apAdd );
static DriverList m_pDriverList; static DriverList m_pDriverList;
InputHandler(): m_iInputsSinceUpdate(0) {} InputHandler(): m_LastUpdate(), m_iInputsSinceUpdate(0) {}
virtual ~InputHandler() { } virtual ~InputHandler() { }
virtual void Update() { } virtual void Update() { }
virtual bool DevicesChanged() { return false; } virtual bool DevicesChanged() { return false; }