summaryrefslogtreecommitdiff
path: root/soundlib/ITTools.cpp
diff options
context:
space:
mode:
authorJames Cowgill <jcowgill@debian.org>2017-12-18 14:42:13 +0000
committerJames Cowgill <jcowgill@debian.org>2017-12-18 14:42:13 +0000
commit521dfbf1745f9d1a698d61268546d43465e56d43 (patch)
tree4dbaabf48b8ad7c9d4267041a75833e1fa4928f1 /soundlib/ITTools.cpp
parent3b3e8a946b9409674a3b5b7f23a92b9e0c947120 (diff)
New upstream version 0.3.4
Diffstat (limited to 'soundlib/ITTools.cpp')
-rw-r--r--soundlib/ITTools.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/soundlib/ITTools.cpp b/soundlib/ITTools.cpp
index 2e8b7c2..8c9823a 100644
--- a/soundlib/ITTools.cpp
+++ b/soundlib/ITTools.cpp
@@ -42,16 +42,15 @@ void ITEnvelope::ConvertToIT(const InstrumentEnvelope &mptEnv, uint8 envOffset,
// Attention: Full MPTM envelope is stored in extended instrument properties
for(uint32 ev = 0; ev < num; ev++)
{
- data[ev * 3] = mptEnv[ev].value - envOffset;
- data[ev * 3 + 1] = mptEnv[ev].tick & 0xFF;
- data[ev * 3 + 2] = mptEnv[ev].tick >> 8;
+ data[ev].value = static_cast<int8>(mptEnv[ev].value) - envOffset;
+ data[ev].tick = mptEnv[ev].tick;
}
} else
{
// Fix non-existing envelopes so that they can still be edited in Impulse Tracker.
num = 2;
- data[0] = data[3] = envDefault - envOffset;
- data[4] = 10;
+ data[0].value = data[1].value = envDefault - envOffset;
+ data[1].tick = 10;
}
}
@@ -76,8 +75,8 @@ void ITEnvelope::ConvertToMPT(InstrumentEnvelope &mptEnv, uint8 envOffset, uint8
// Attention: Full MPTM envelope is stored in extended instrument properties
for(uint32 ev = 0; ev < std::min<uint32>(25, num); ev++)
{
- mptEnv[ev].value = data[ev * 3] + envOffset;
- mptEnv[ev].tick = (data[ev * 3 + 2] << 8) | (data[ev * 3 + 1]);
+ mptEnv[ev].value = Clamp<int8, int8>(data[ev].value + envOffset, 0, 64);
+ mptEnv[ev].tick = data[ev].tick;
if(ev > 0 && ev < num && mptEnv[ev].tick < mptEnv[ev - 1].tick)
{
// Fix broken envelopes... Instruments 2 and 3 in NoGap.it by Werewolf have envelope points where the high byte of envelope nodes is missing.