summaryrefslogtreecommitdiff
path: root/soundlib/Load_s3m.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'soundlib/Load_s3m.cpp')
-rw-r--r--soundlib/Load_s3m.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/soundlib/Load_s3m.cpp b/soundlib/Load_s3m.cpp
index f5faa90..5171166 100644
--- a/soundlib/Load_s3m.cpp
+++ b/soundlib/Load_s3m.cpp
@@ -277,6 +277,15 @@ bool CSoundFile::ReadS3M(FileReader &file, ModLoadingFlags loadFlags)
{
madeWithTracker = mpt::format(U_("Impulse Tracker 2.14p%1"))(fileHeader.cwtv - S3MFileHeader::trkIT2_14);
}
+ if(fileHeader.cwtv >= S3MFileHeader::trkIT2_07 && fileHeader.reserved3 != 0)
+ {
+ // Starting from version 2.07, IT stores the total edit time of a module in the "reserved" field
+ uint32 editTime = DecodeITEditTimer(fileHeader.cwtv, fileHeader.reserved3);
+
+ FileHistory hist;
+ hist.openTime = static_cast<uint32>(editTime * (HISTORY_TIMER_PRECISION / 18.2));
+ m_FileHistory.push_back(hist);
+ }
nonCompatTracker = true;
m_nMinPeriod = 1;
break;
@@ -287,7 +296,7 @@ bool CSoundFile::ReadS3M(FileReader &file, ModLoadingFlags loadFlags)
m_playBehaviour.set(kST3LimitPeriod);
} else
{
- madeWithTracker = GetSchismTrackerVersion(fileHeader.cwtv);
+ madeWithTracker = GetSchismTrackerVersion(fileHeader.cwtv, fileHeader.reserved2);
m_nMinPeriod = 1;
isSchism = true;
}