parent
9734c2ebaa
commit
c75f363453
|
@ -325,7 +325,9 @@ bool DivEngine::loadXM(unsigned char* file, size_t len) {
|
||||||
for (unsigned short i=0; i<patCount; i++) {
|
for (unsigned short i=0; i<patCount; i++) {
|
||||||
logV("pattern %d",i);
|
logV("pattern %d",i);
|
||||||
headerSeek=reader.tell();
|
headerSeek=reader.tell();
|
||||||
headerSeek+=reader.readI();
|
unsigned int headerSeekAdd=reader.readI();
|
||||||
|
logV("seek is %d",headerSeekAdd);
|
||||||
|
headerSeek+=headerSeekAdd;
|
||||||
|
|
||||||
unsigned char packType=reader.readC();
|
unsigned char packType=reader.readC();
|
||||||
if (packType!=0) {
|
if (packType!=0) {
|
||||||
|
@ -350,7 +352,10 @@ bool DivEngine::loadXM(unsigned char* file, size_t len) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int packedSeek=headerSeek+(unsigned short)reader.readS();
|
unsigned short packedSize=reader.readS();
|
||||||
|
logV("packed size: %d",packedSize);
|
||||||
|
|
||||||
|
unsigned int packedSeek=headerSeek+packedSize;
|
||||||
|
|
||||||
logV("seeking to %x...",headerSeek);
|
logV("seeking to %x...",headerSeek);
|
||||||
if (!reader.seek(headerSeek,SEEK_SET)) {
|
if (!reader.seek(headerSeek,SEEK_SET)) {
|
||||||
|
@ -363,6 +368,10 @@ bool DivEngine::loadXM(unsigned char* file, size_t len) {
|
||||||
|
|
||||||
// read data
|
// read data
|
||||||
for (int j=0; j<totalRows; j++) {
|
for (int j=0; j<totalRows; j++) {
|
||||||
|
if (reader.tell()>=packedSeek) {
|
||||||
|
logV("end of data - stopping here...");
|
||||||
|
break;
|
||||||
|
}
|
||||||
for (int k=0; k<totalChans; k++) {
|
for (int k=0; k<totalChans; k++) {
|
||||||
unsigned char note=reader.readC();
|
unsigned char note=reader.readC();
|
||||||
unsigned char vol=0;
|
unsigned char vol=0;
|
||||||
|
@ -836,7 +845,10 @@ bool DivEngine::loadXM(unsigned char* file, size_t len) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int packedSeek=headerSeek+(unsigned short)reader.readS();
|
unsigned short packedSize=reader.readS();
|
||||||
|
logV("packed size: %d",packedSize);
|
||||||
|
|
||||||
|
unsigned int packedSeek=headerSeek+packedSize;
|
||||||
|
|
||||||
logV("seeking to %x...",headerSeek);
|
logV("seeking to %x...",headerSeek);
|
||||||
if (!reader.seek(headerSeek,SEEK_SET)) {
|
if (!reader.seek(headerSeek,SEEK_SET)) {
|
||||||
|
@ -849,6 +861,10 @@ bool DivEngine::loadXM(unsigned char* file, size_t len) {
|
||||||
|
|
||||||
// read data
|
// read data
|
||||||
for (int j=0; j<totalRows; j++) {
|
for (int j=0; j<totalRows; j++) {
|
||||||
|
if (reader.tell()>=packedSeek) {
|
||||||
|
logV("end of data - stopping here...");
|
||||||
|
break;
|
||||||
|
}
|
||||||
for (int k=0; k<totalChans; k++) {
|
for (int k=0; k<totalChans; k++) {
|
||||||
DivPattern* p=ds.subsong[0]->pat[k].getPattern(i,true);
|
DivPattern* p=ds.subsong[0]->pat[k].getPattern(i,true);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue