Fixed playptmod offset command, and disabled offset bug handling for FT2 files

CQTexperiment
Chris Moeller 2014-08-19 23:02:10 -07:00
parent 6ea578a23e
commit 4a8deb992e
1 changed files with 14 additions and 2 deletions

View File

@ -1515,6 +1515,7 @@ static void fxVibratoVolumeSlide(player *p, mod_channel *ch);
static void fxTremolo(player *p, mod_channel *ch); static void fxTremolo(player *p, mod_channel *ch);
static void fxNotInUse(player *p, mod_channel *ch); static void fxNotInUse(player *p, mod_channel *ch);
static void fxSampleOffset(player *p, mod_channel *ch); static void fxSampleOffset(player *p, mod_channel *ch);
static void fxSampleOffset_FT2(player *p, mod_channel *ch);
static void fxVolumeSlide(player *p, mod_channel *ch); static void fxVolumeSlide(player *p, mod_channel *ch);
static void fxPositionJump(player *p, mod_channel *ch); static void fxPositionJump(player *p, mod_channel *ch);
static void fxSetVolume(player *p, mod_channel *ch); static void fxSetVolume(player *p, mod_channel *ch);
@ -1575,7 +1576,7 @@ static effect_routine fxRoutines_FT2[16] =
fxVibratoVolumeSlide, fxVibratoVolumeSlide,
fxTremolo, fxTremolo,
fxPan, fxPan,
fxSampleOffset, fxSampleOffset_FT2,
fxVolumeSlide, fxVolumeSlide,
fxPositionJump, fxPositionJump,
fxSetVolume, fxSetVolume,
@ -2249,7 +2250,7 @@ static void fxSampleOffset(player *p, mod_channel *ch)
if (p->modTick == 0) if (p->modTick == 0)
{ {
if (ch->param > 0) if (ch->param > 0)
ch->offsetTemp = ch->param * 256; ch->offsetTemp = (uint16_t)(ch->param) * 256;
ch->offset += ch->offsetTemp; ch->offset += ch->offsetTemp;
@ -2258,6 +2259,17 @@ static void fxSampleOffset(player *p, mod_channel *ch)
} }
} }
static void fxSampleOffset_FT2(player *p, mod_channel *ch)
{
if (p->modTick == 0)
{
if (ch->param > 0)
ch->offset = (uint16_t)(ch->param) * 256;
ch->offsetBugNotAdded = true;
}
}
static void fxVolumeSlide(player *p, mod_channel *ch) static void fxVolumeSlide(player *p, mod_channel *ch)
{ {
unsigned char hiNybble; unsigned char hiNybble;