Allocate the tapnote array; it's so large it's causing stack problems, so get
it off the stack.
This commit is contained in:
@@ -24,21 +24,37 @@
|
|||||||
|
|
||||||
NoteData::NoteData()
|
NoteData::NoteData()
|
||||||
{
|
{
|
||||||
|
for(int t = 0; t < MAX_NOTE_TRACKS; ++t)
|
||||||
|
m_TapNotes[t] = new TapNote[MAX_TAP_NOTE_ROWS];
|
||||||
Init();
|
Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NoteData::NoteData(const NoteData &cpy) { *this = cpy; }
|
||||||
|
NoteData &NoteData::operator= (const NoteData &cpy)
|
||||||
|
{
|
||||||
|
for(int t = 0; t < MAX_NOTE_TRACKS; ++t) {
|
||||||
|
m_TapNotes[t] = new TapNote[MAX_TAP_NOTE_ROWS];
|
||||||
|
memmove( m_TapNotes[t], cpy.m_TapNotes[t], sizeof(TapNote) * MAX_TAP_NOTE_ROWS );
|
||||||
|
}
|
||||||
|
m_iNumTracks = cpy.m_iNumTracks;
|
||||||
|
m_iNumHoldNotes = cpy.m_iNumHoldNotes;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
void NoteData::Init()
|
void NoteData::Init()
|
||||||
{
|
{
|
||||||
memset( m_TapNotes, '0', MAX_NOTE_TRACKS*MAX_TAP_NOTE_ROWS*sizeof(m_TapNotes[0][0]) );
|
for(int t = 0; t < MAX_NOTE_TRACKS; ++t)
|
||||||
|
memset( m_TapNotes[t], '0', sizeof(TapNote) * MAX_TAP_NOTE_ROWS );
|
||||||
m_iNumTracks = 0;
|
m_iNumTracks = 0;
|
||||||
m_iNumHoldNotes = 0;
|
m_iNumHoldNotes = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
NoteData::~NoteData()
|
NoteData::~NoteData()
|
||||||
{
|
{
|
||||||
|
for(int t = 0; t < MAX_NOTE_TRACKS; ++t)
|
||||||
|
delete[] m_TapNotes[t];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void NoteData::LoadFromSMNoteDataString( CString sSMNoteData )
|
void NoteData::LoadFromSMNoteDataString( CString sSMNoteData )
|
||||||
{
|
{
|
||||||
int iNumTracks = m_iNumTracks;
|
int iNumTracks = m_iNumTracks;
|
||||||
|
|||||||
@@ -27,11 +27,13 @@ class NoteData
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NoteData();
|
NoteData();
|
||||||
void Init();
|
|
||||||
~NoteData();
|
~NoteData();
|
||||||
|
NoteData(const NoteData &cpy);
|
||||||
|
void Init();
|
||||||
|
NoteData &operator=(const NoteData &cpy);
|
||||||
|
|
||||||
int m_iNumTracks;
|
int m_iNumTracks;
|
||||||
TapNote m_TapNotes[MAX_NOTE_TRACKS][MAX_TAP_NOTE_ROWS];
|
TapNote *m_TapNotes[MAX_NOTE_TRACKS];
|
||||||
HoldNote m_HoldNotes[MAX_HOLD_NOTES];
|
HoldNote m_HoldNotes[MAX_HOLD_NOTES];
|
||||||
int m_iNumHoldNotes;
|
int m_iNumHoldNotes;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user