From: <sag...@us...> - 2010-10-26 17:59:03
|
Revision: 755 http://modplug.svn.sourceforge.net/modplug/?rev=755&view=rev Author: saga-games Date: 2010-10-26 17:58:56 +0000 (Tue, 26 Oct 2010) Log Message: ----------- [Fix] Loading IT files from the tree view was broken since the introduction of the edit history. [Fix] Mod Conversion: Got rid of the unnecessary "channel panning is not supported" message when converting from MOD to XM. [Fix] Playing samples from modules with a very short order list through the tree view should now also work again. Modified Paths: -------------- trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/ModConvert.cpp trunk/OpenMPT/soundlib/Load_it.cpp Modified: trunk/OpenMPT/mptrack/MainFrm.cpp =================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp 2010-10-25 20:27:05 UTC (rev 754) +++ trunk/OpenMPT/mptrack/MainFrm.cpp 2010-10-26 17:58:56 UTC (rev 755) @@ -2142,6 +2142,7 @@ m_WaveFile.m_nInstruments = 0; m_WaveFile.m_nSamples = 1; } + m_WaveFile.Order.resize(3); m_WaveFile.Order[0] = 0; m_WaveFile.Order[1] = 1; m_WaveFile.Order[2] = m_WaveFile.Order.GetInvalidPatIndex(); @@ -2156,10 +2157,10 @@ m[1].note = (BYTE)nNote; m[1].instr = 1; m = m_WaveFile.Patterns[1]; - m[32*4].note = 0xFF; - m[32*4+1].note = 0xFF; - m[63*4].note = 0xFE; - m[63*4+1].note = 0xFE; + m[32*4].note = NOTE_FADE; + m[32*4+1].note = NOTE_FADE; + m[63*4].note = NOTE_KEYOFF; + m[63*4+1].note = NOTE_KEYOFF; } if ((nInstrument) && (nInstrument <= pSong->m_nInstruments)) { Modified: trunk/OpenMPT/mptrack/ModConvert.cpp =================================================================== --- trunk/OpenMPT/mptrack/ModConvert.cpp 2010-10-25 20:27:05 UTC (rev 754) +++ trunk/OpenMPT/mptrack/ModConvert.cpp 2010-10-26 17:58:56 UTC (rev 755) @@ -386,7 +386,7 @@ CHANGEMODTYPE_WARNING(wChannelVolSurround); } } - if(newTypeIsXM) + if(newTypeIsXM && !oldTypeIsMOD_XM) { if(m_SndFile.ChnSettings[nChn].nPan != 128) { Modified: trunk/OpenMPT/soundlib/Load_it.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_it.cpp 2010-10-25 20:27:05 UTC (rev 754) +++ trunk/OpenMPT/soundlib/Load_it.cpp 2010-10-26 17:58:56 UTC (rev 755) @@ -723,36 +723,42 @@ if (nflt * 8 <= dwMemLength - dwMemPos && dwMemPos + nflt * 8 <= minptr) { - GetpModDoc()->GetFileHistory()->clear(); - for(size_t n = 0; n < nflt; n++) +#ifdef MODPLUG_TRACKER + if(GetpModDoc() != nullptr) { -#ifdef MODPLUG_TRACKER - ITHISTORYSTRUCT itHistory = *((ITHISTORYSTRUCT *)(lpStream + dwMemPos)); - itHistory.fatdate = LittleEndianW(itHistory.fatdate); - itHistory.fattime = LittleEndianW(itHistory.fattime); - itHistory.runtime = LittleEndian(itHistory.runtime); + GetpModDoc()->GetFileHistory()->clear(); + for(size_t n = 0; n < nflt; n++) + { + ITHISTORYSTRUCT itHistory = *((ITHISTORYSTRUCT *)(lpStream + dwMemPos)); + itHistory.fatdate = LittleEndianW(itHistory.fatdate); + itHistory.fattime = LittleEndianW(itHistory.fattime); + itHistory.runtime = LittleEndian(itHistory.runtime); - FileHistory mptHistory; - MemsetZero(mptHistory); - // Decode FAT date and time - mptHistory.loadDate.tm_year = ((itHistory.fatdate >> 9) & 0x7F) + 80; - mptHistory.loadDate.tm_mon = CLAMP((itHistory.fatdate >> 5) & 0x0F, 1, 12) - 1; - mptHistory.loadDate.tm_mday = CLAMP(itHistory.fatdate & 0x1F, 1, 31); - mptHistory.loadDate.tm_hour = CLAMP((itHistory.fattime >> 11) & 0x1F, 0, 23); - mptHistory.loadDate.tm_min = CLAMP((itHistory.fattime >> 5) & 0x3F, 0, 59); - mptHistory.loadDate.tm_sec = CLAMP((itHistory.fattime & 0x1F) * 2, 0, 59); - mptHistory.openTime = itHistory.runtime * (HISTORY_TIMER_PRECISION / 18.2f); - GetpModDoc()->GetFileHistory()->push_back(mptHistory); + FileHistory mptHistory; + MemsetZero(mptHistory); + // Decode FAT date and time + mptHistory.loadDate.tm_year = ((itHistory.fatdate >> 9) & 0x7F) + 80; + mptHistory.loadDate.tm_mon = CLAMP((itHistory.fatdate >> 5) & 0x0F, 1, 12) - 1; + mptHistory.loadDate.tm_mday = CLAMP(itHistory.fatdate & 0x1F, 1, 31); + mptHistory.loadDate.tm_hour = CLAMP((itHistory.fattime >> 11) & 0x1F, 0, 23); + mptHistory.loadDate.tm_min = CLAMP((itHistory.fattime >> 5) & 0x3F, 0, 59); + mptHistory.loadDate.tm_sec = CLAMP((itHistory.fattime & 0x1F) * 2, 0, 59); + mptHistory.openTime = itHistory.runtime * (HISTORY_TIMER_PRECISION / 18.2f); + GetpModDoc()->GetFileHistory()->push_back(mptHistory); #ifdef DEBUG - const uint32 seconds = (uint32)(((double)itHistory.runtime) / 18.2f); - CHAR stime[128]; - wsprintf(stime, "IT Edit History: Loaded %04u-%02u-%02u %02u:%02u:%02u, open for %u:%02u:%02u (%u ticks)\n", ((itHistory.fatdate >> 9) & 0x7F) + 1980, (itHistory.fatdate >> 5) & 0x0F, itHistory.fatdate & 0x1F, (itHistory.fattime >> 11) & 0x1F, (itHistory.fattime >> 5) & 0x3F, (itHistory.fattime & 0x1F) * 2, seconds / 3600, (seconds / 60) % 60, seconds % 60, itHistory.runtime); - Log(stime); + const uint32 seconds = (uint32)(((double)itHistory.runtime) / 18.2f); + CHAR stime[128]; + wsprintf(stime, "IT Edit History: Loaded %04u-%02u-%02u %02u:%02u:%02u, open for %u:%02u:%02u (%u ticks)\n", ((itHistory.fatdate >> 9) & 0x7F) + 1980, (itHistory.fatdate >> 5) & 0x0F, itHistory.fatdate & 0x1F, (itHistory.fattime >> 11) & 0x1F, (itHistory.fattime >> 5) & 0x3F, (itHistory.fattime & 0x1F) * 2, seconds / 3600, (seconds / 60) % 60, seconds % 60, itHistory.runtime); + Log(stime); #endif // DEBUG + dwMemPos += 8; + } + } else #endif // MODPLUG_TRACKER - dwMemPos += 8; + { + dwMemPos += nflt * 8; } } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |