|
From: <sag...@us...> - 2010-07-23 23:57:52
|
Revision: 659
http://modplug.svn.sourceforge.net/modplug/?rev=659&view=rev
Author: saga-games
Date: 2010-07-23 23:57:46 +0000 (Fri, 23 Jul 2010)
Log Message:
-----------
[Fix] IT/MPTM Loaders: Mod flags were not imported properly if all of them were 0 (was broken since revision 650)
[Mod] IT/MPTM/XM Loaders/Savers: Also using the logging mechanism instead of message boxes here. Removed some warning messages from some other loaders.
Revision Links:
--------------
http://modplug.svn.sourceforge.net/modplug/?rev=650&view=rev
Modified Paths:
--------------
trunk/OpenMPT/soundlib/Load_gdm.cpp
trunk/OpenMPT/soundlib/Load_imf.cpp
trunk/OpenMPT/soundlib/Load_it.cpp
trunk/OpenMPT/soundlib/Load_psm.cpp
trunk/OpenMPT/soundlib/Load_xm.cpp
trunk/OpenMPT/soundlib/Sndfile.h
Modified: trunk/OpenMPT/soundlib/Load_gdm.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_gdm.cpp 2010-07-23 22:44:37 UTC (rev 658)
+++ trunk/OpenMPT/soundlib/Load_gdm.cpp 2010-07-23 23:57:46 UTC (rev 659)
@@ -256,14 +256,7 @@
if(iPatternLength > dwMemLength || iPatternsOffset > dwMemLength - iPatternLength) break;
if(Patterns.Insert(iPat, 64))
- {
-#ifdef MODPLUG_TRACKER
- CString s;
- s.Format(TEXT("Allocating patterns failed starting from pattern %u"), iPat);
- if(m_pModDoc != nullptr) m_pModDoc->AddToLog(s);
-#endif // MODPLUG_TRACKER
break;
- }
// position in THIS pattern
DWORD iPatternPos = iPatternsOffset + 2;
Modified: trunk/OpenMPT/soundlib/Load_imf.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_imf.cpp 2010-07-23 22:44:37 UTC (rev 658)
+++ trunk/OpenMPT/soundlib/Load_imf.cpp 2010-07-23 23:57:46 UTC (rev 659)
@@ -367,14 +367,8 @@
dwMemPos += 4;
if(Patterns.Insert(nPat, nrows))
- {
-#ifdef MODPLUG_TRACKER
- CString s;
- s.Format(TEXT("Allocating patterns failed starting from pattern %u"), nPat);
- if(m_pModDoc != nullptr) m_pModDoc->AddToLog(s);
-#endif // MODPLUG_TRACKER
break;
- }
+
row_data = Patterns[nPat];
row = 0;
Modified: trunk/OpenMPT/soundlib/Load_it.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_it.cpp 2010-07-23 22:44:37 UTC (rev 658)
+++ trunk/OpenMPT/soundlib/Load_it.cpp 2010-07-23 23:57:46 UTC (rev 659)
@@ -23,13 +23,12 @@
#include <list>
#include "../mptrack/version.h"
-#define str_MBtitle (GetStrI18N((_TEXT("Saving IT"))))
#define str_tooMuchPatternData (GetStrI18N((_TEXT("Warning: File format limit was reached. Some pattern data may not get written to file."))))
#define str_pattern (GetStrI18N((_TEXT("pattern"))))
-#define str_PatternSetTruncationNote (GetStrI18N((_TEXT("The module contains %u patterns but only %u patterns can be loaded in this OpenMPT version."))))
-#define str_SequenceTruncationNote (GetStrI18N((_TEXT("Module has sequence of length %u; it will be truncated to maximum supported length, %u."))))
-#define str_LoadingIncompatibleVersion TEXT("The file informed that it is incompatible with this version of OpenMPT. Loading was terminated.")
-#define str_LoadingMoreRecentVersion TEXT("The loaded file was made with a more recent OpenMPT version and this version may not be able to load all the features or play the file correctly.")
+#define str_PatternSetTruncationNote (GetStrI18N((_TEXT("The module contains %u patterns but only %u patterns can be loaded in this OpenMPT version.\n"))))
+#define str_SequenceTruncationNote (GetStrI18N((_TEXT("Module has sequence of length %u; it will be truncated to maximum supported length, %u.\n"))))
+#define str_LoadingIncompatibleVersion TEXT("The file informed that it is incompatible with this version of OpenMPT. Loading was terminated.\n")
+#define str_LoadingMoreRecentVersion TEXT("The loaded file was made with a more recent OpenMPT version and this version may not be able to load all the features or play the file correctly.\n")
const uint16 verMptFileVer = 0x890;
const uint16 verMptFileVerLoadLimit = 0x1000; // If cwtv-field is greater or equal to this value,
@@ -113,7 +112,10 @@
TNTS_MAP_ITER iter = tNameToShort_Map.find(sf.Instruments[i]->pTuning);
if(iter == tNameToShort_Map.end()) //Should never happen
{
- MessageBox(0, "Error: 210807_1", 0, MB_ICONERROR);
+#ifdef MODPLUG_TRACKER
+ if(sf.GetpModDoc())
+ sf.GetpModDoc()->AddToLog(_T("Error: 210807_1\n"));
+#endif // MODPLUG_TRACKER
return;
}
srlztn::Binarywrite(oStrm, iter->second);
@@ -200,7 +202,7 @@
#ifdef MODPLUG_TRACKER
if(csf.GetpModDoc() != nullptr)
{
- string erm = string("Tuning ") + str + string(" used by the module was not found.");
+ string erm = string("Tuning ") + str + string(" used by the module was not found.\n");
csf.GetpModDoc()->AddToLog(erm.c_str());
csf.GetpModDoc()->SetModified(); //The tuning is changed so the modified flag is set.
}
@@ -885,6 +887,7 @@
if(m_dwLastSavedWithVersion < MAKE_VERSION_NUMERIC(1, 17, 2, 50))
{
+ SetModFlag(MSF_COMPATIBLE_PLAY, false);
SetModFlag(MSF_MIDICC_BUGEMULATION, true);
SetModFlag(MSF_OLDVOLSWING, true);
}
@@ -1350,7 +1353,7 @@
{
#ifdef MODPLUG_TRACKER
CString s;
- s.Format(TEXT("Allocating patterns failed starting from pattern %u"), npat);
+ s.Format(TEXT("Allocating patterns failed starting from pattern %u\n"), npat);
if(GetpModDoc() != nullptr) GetpModDoc()->AddToLog(s);
#endif // MODPLUG_TRACKER
break;
@@ -1539,7 +1542,7 @@
if (ssb.m_Status & srlztn::SNT_FAILURE)
{
#ifdef MODPLUG_TRACKER
- if(GetpModDoc() != nullptr) GetpModDoc()->AddToLog(_T("Unknown error occured while deserializing file."));
+ if(GetpModDoc() != nullptr) GetpModDoc()->AddToLog(_T("Unknown error occured while deserializing file.\n"));
#endif // MODPLUG_TRACKER
}
}
@@ -1548,7 +1551,7 @@
if(GetTuneSpecificTunings().Deserialize(iStrm))
{
#ifdef MODPLUG_TRACKER
- if(GetpModDoc() != nullptr) GetpModDoc()->AddToLog(_T("Error occured - loading failed while trying to load tune specific tunings."));
+ if(GetpModDoc() != nullptr) GetpModDoc()->AddToLog(_T("Error occured - loading failed while trying to load tune specific tunings.\n"));
#endif // MODPLUG_TRACKER
}
else
@@ -2298,8 +2301,14 @@
buf[len++] = 0;
if(patinfo[0] > uint16_max - len)
{
- CString str; str.Format("%s (%s %u)", str_tooMuchPatternData, str_pattern, npat);
- MessageBox(0, str, str_MBtitle, MB_ICONWARNING);
+#ifdef MODPLUG_TRACKER
+ if(GetpModDoc())
+ {
+ CString str;
+ str.Format("%s (%s %u)\n", str_tooMuchPatternData, str_pattern, npat);
+ GetpModDoc()->AddToLog(str);
+ }
+#endif // MODPLUG_TRACKER
break;
}
else
@@ -2426,7 +2435,12 @@
ssb.FinishWrite();
if (ssb.m_Status & srlztn::SNT_FAILURE)
- AfxMessageBox("Error occured in writing MPTM extensions.", MB_ICONERROR);
+ {
+#ifdef MODPLUG_TRACKER
+ if(GetpModDoc())
+ GetpModDoc()->AddToLog("Error occured in writing MPTM extensions.\n");
+#endif // MODPLUG_TRACKER
+ }
//Last 4 bytes should tell where the hack mpt things begin.
if(!fout.good())
@@ -3611,7 +3625,12 @@
{
const size_t objectsize = GetMIDIMapper().GetSerializationSize();
if(objectsize > size_t(int16_max))
- MessageBox(NULL, "Datafield overflow with MIDI to plugparam mappings; data won't be written.", NULL, MB_ICONERROR);
+ {
+#ifdef MODPLUG_TRACKER
+ if(GetpModDoc())
+ GetpModDoc()->AddToLog("Datafield overflow with MIDI to plugparam mappings; data won't be written.\n");
+#endif // MODPLUG_TRACKER
+ }
else
{
code = 'MIMA';
@@ -3700,6 +3719,8 @@
if(pInterpretMptMade != NULL)
*pInterpretMptMade = true;
+ // HACK: Reset mod flags to default values here, as they are not always written.
+ m_ModFlags = 0;
// Case macros.
#define CASE(id, data) \
Modified: trunk/OpenMPT/soundlib/Load_psm.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_psm.cpp 2010-07-23 22:44:37 UTC (rev 658)
+++ trunk/OpenMPT/soundlib/Load_psm.cpp 2010-07-23 23:57:46 UTC (rev 659)
@@ -529,14 +529,7 @@
dwPatternOffset += 2;
if(Patterns.Insert(nPat, patternSize))
- {
-#ifdef MODPLUG_TRACKER
- CString s;
- s.Format(TEXT("Allocating patterns failed starting from pattern %u"), nPat);
- if(m_pModDoc != nullptr) m_pModDoc->AddToLog(s);
-#endif // MODPLUG_TRACKER
break;
- }
// Read pattern.
MODCOMMAND *row_data;
@@ -1016,14 +1009,7 @@
dwMemPos += sizeof(PSM16PATHEADER);
if(Patterns.Insert(nPat, phdr->numRows))
- {
-#ifdef MODPLUG_TRACKER
- CString s;
- s.Format(TEXT("Allocating patterns failed starting from pattern %u"), nPat);
- if(m_pModDoc != nullptr) m_pModDoc->AddToLog(s);
-#endif // MODPLUG_TRACKER
break;
- }
MODCOMMAND *row_data;
ROWINDEX iRow = 0;
Modified: trunk/OpenMPT/soundlib/Load_xm.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Load_xm.cpp 2010-07-23 22:44:37 UTC (rev 658)
+++ trunk/OpenMPT/soundlib/Load_xm.cpp 2010-07-23 23:57:46 UTC (rev 659)
@@ -16,7 +16,6 @@
#pragma warning(disable:4244) //conversion from 'type1' to 'type2', possible loss of data
-#define str_MBtitle (GetStrI18N((_TEXT("Saving XM"))))
#define str_tooMuchPatternData (GetStrI18N((_TEXT("Warning: File format limit was reached. Some pattern data may not get written to file."))))
#define str_pattern (GetStrI18N((_TEXT("pattern"))))
@@ -723,6 +722,7 @@
#ifndef MODPLUG_NO_FILESAVE
+#include "../mptrack/Moddoc.h" // for logging errors
bool CSoundFile::SaveXM(LPCSTR lpszFileName, UINT nPacking, const bool bCompatibilityExport)
//------------------------------------------------------------------------------------------
@@ -731,10 +731,10 @@
if(len > s.size() - x) /*Buffer running out? Make it larger.*/ \
s.resize(s.size() + 10*1024, 0); \
\
- if(len > uint16_max - (UINT)x) /*Reaching the limits of file format?*/ \
+ if((len > uint16_max - (UINT)x) && GetpModDoc()) /*Reaching the limits of file format?*/ \
{ \
- CString str; str.Format("%s (%s %u)", str_tooMuchPatternData, str_pattern, i); \
- MessageBox(0, str, str_MBtitle, MB_ICONWARNING); \
+ CString str; str.Format("%s (%s %u)\n", str_tooMuchPatternData, str_pattern, i); \
+ GetpModDoc()->AddToLog(str); \
break; \
}
Modified: trunk/OpenMPT/soundlib/Sndfile.h
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.h 2010-07-23 22:44:37 UTC (rev 658)
+++ trunk/OpenMPT/soundlib/Sndfile.h 2010-07-23 23:57:46 UTC (rev 659)
@@ -622,12 +622,12 @@
BOOL Create(LPCBYTE lpStream, CModDoc *pModDoc, DWORD dwMemLength=0);
BOOL Destroy();
MODTYPE GetType() const { return m_nType; }
- inline bool TypeIsIT_MPT() const {return (m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)) != 0;}
- inline bool TypeIsIT_MPT_XM() const {return (m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT | MOD_TYPE_XM)) != 0;}
- inline bool TypeIsS3M_IT_MPT() const {return (m_nType & (MOD_TYPE_S3M | MOD_TYPE_IT | MOD_TYPE_MPT)) != 0;}
- inline bool TypeIsXM_MOD() const {return (m_nType & (MOD_TYPE_XM | MOD_TYPE_MOD)) != 0;}
- inline bool TypeIsMOD_S3M() const {return (m_nType & (MOD_TYPE_MOD | MOD_TYPE_S3M)) != 0;}
- CModDoc* GetpModDoc() {return m_pModDoc;}
+ inline bool TypeIsIT_MPT() const { return (m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT)) != 0; }
+ inline bool TypeIsIT_MPT_XM() const { return (m_nType & (MOD_TYPE_IT | MOD_TYPE_MPT | MOD_TYPE_XM)) != 0; }
+ inline bool TypeIsS3M_IT_MPT() const { return (m_nType & (MOD_TYPE_S3M | MOD_TYPE_IT | MOD_TYPE_MPT)) != 0; }
+ inline bool TypeIsXM_MOD() const { return (m_nType & (MOD_TYPE_XM | MOD_TYPE_MOD)) != 0; }
+ inline bool TypeIsMOD_S3M() const { return (m_nType & (MOD_TYPE_MOD | MOD_TYPE_S3M)) != 0; }
+ CModDoc* GetpModDoc() const { return m_pModDoc; }
void SetMasterVolume(UINT vol, bool adjustAGC = false);
UINT GetMasterVolume() const { return m_nMasterVolume; }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|