aboutsummaryrefslogtreecommitdiff
path: root/modules/chibi/cp_loader_it_info.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/chibi/cp_loader_it_info.cpp')
-rw-r--r--modules/chibi/cp_loader_it_info.cpp254
1 files changed, 118 insertions, 136 deletions
diff --git a/modules/chibi/cp_loader_it_info.cpp b/modules/chibi/cp_loader_it_info.cpp
index a474fcd2f..a98396df6 100644
--- a/modules/chibi/cp_loader_it_info.cpp
+++ b/modules/chibi/cp_loader_it_info.cpp
@@ -28,54 +28,50 @@
/*************************************************************************/
#include "cp_loader_it.h"
-
-
CPLoader::Error CPLoader_IT::load_header(bool p_dont_set) {
-
- char aux_songname[26];
-
- file->get_byte_array((uint8_t*)aux_songname,26);
+ char aux_songname[26];
+
+ file->get_byte_array((uint8_t *)aux_songname, 26);
if (!p_dont_set)
- song->set_name( aux_songname );
-
- uint8_t aux_hlmin=file->get_byte();
- uint8_t aux_hlmaj=file->get_byte();
+ song->set_name(aux_songname);
+
+ uint8_t aux_hlmin = file->get_byte();
+ uint8_t aux_hlmaj = file->get_byte();
- if (aux_hlmin==0) aux_hlmin=4;
- if (aux_hlmaj==0) aux_hlmaj=16;
+ if (aux_hlmin == 0) aux_hlmin = 4;
+ if (aux_hlmaj == 0) aux_hlmaj = 16;
if (!p_dont_set) {
- song->set_row_highlight_minor( aux_hlmin );
- song->set_row_highlight_major( aux_hlmaj );
+ song->set_row_highlight_minor(aux_hlmin);
+ song->set_row_highlight_major(aux_hlmaj);
}
- header.ordnum=file->get_word();
- header.insnum=file->get_word();
- header.smpnum=file->get_word();
- header.patnum=file->get_word();
-
- header.cwt=file->get_word(); /* Created with tracker (y.xx = 0x0yxx) */
- header.cmwt=file->get_word(); /* Compatible with tracker ver > than val. */
- header.flags=file->get_word();
-
+ header.ordnum = file->get_word();
+ header.insnum = file->get_word();
+ header.smpnum = file->get_word();
+ header.patnum = file->get_word();
+
+ header.cwt = file->get_word(); /* Created with tracker (y.xx = 0x0yxx) */
+ header.cmwt = file->get_word(); /* Compatible with tracker ver > than val. */
+ header.flags = file->get_word();
+
if (!p_dont_set) {
- song->set_stereo( header.flags & 1 );
- song->set_linear_slides( header.flags & 8 );
- song->set_old_effects( header.flags & 16 );
- song->set_compatible_gxx( header.flags & 32 );
- song->set_instruments( header.flags & 4 );
+ song->set_stereo(header.flags & 1);
+ song->set_linear_slides(header.flags & 8);
+ song->set_old_effects(header.flags & 16);
+ song->set_compatible_gxx(header.flags & 32);
+ song->set_instruments(header.flags & 4);
}
-
-
- header.special=file->get_word();
+
+ header.special = file->get_word();
if (!p_dont_set) {
- song->set_global_volume( file->get_byte() );
- song->set_mixing_volume( file->get_byte() );
- song->set_speed( file->get_byte() );
- song->set_tempo( file->get_byte() );
- song->set_stereo_separation( file->get_byte() );
+ song->set_global_volume(file->get_byte());
+ song->set_mixing_volume(file->get_byte());
+ song->set_speed(file->get_byte());
+ song->set_tempo(file->get_byte());
+ song->set_stereo_separation(file->get_byte());
} else {
@@ -86,127 +82,122 @@ CPLoader::Error CPLoader_IT::load_header(bool p_dont_set) {
file->get_byte(); // skip
}
file->get_byte(); // ZERO Byte
- header.msglength=file->get_word();
- header.msgoffset=file->get_dword();
+ header.msglength = file->get_word();
+ header.msgoffset = file->get_dword();
char chibi[4];
- file->get_byte_array((uint8_t*)chibi,4);
- header.is_chibi=(chibi[0]=='C' && chibi[1]=='H' && chibi[2]=='B' && chibi[3]=='I');
-
- for (int i=0;i<64;i++) {
-
- uint8_t panbyte=file->get_byte();
-
- uint8_t pan_dst=(panbyte<65) ? panbyte : 32;
- bool surround_dst=(panbyte==100);
- bool mute_dst=(panbyte>=128);
+ file->get_byte_array((uint8_t *)chibi, 4);
+ header.is_chibi = (chibi[0] == 'C' && chibi[1] == 'H' && chibi[2] == 'B' && chibi[3] == 'I');
+
+ for (int i = 0; i < 64; i++) {
+
+ uint8_t panbyte = file->get_byte();
+
+ uint8_t pan_dst = (panbyte < 65) ? panbyte : 32;
+ bool surround_dst = (panbyte == 100);
+ bool mute_dst = (panbyte >= 128);
if (!p_dont_set) {
- song->set_channel_pan( i, pan_dst );
- song->set_channel_surround( i, surround_dst );
- song->set_channel_mute( i, mute_dst );
+ song->set_channel_pan(i, pan_dst);
+ song->set_channel_surround(i, surround_dst);
+ song->set_channel_mute(i, mute_dst);
}
}
- for (int i=0;i<64;i++) {
+ for (int i = 0; i < 64; i++) {
unsigned char cv = file->get_byte();
if (!p_dont_set)
- song->set_channel_volume( i, cv );
+ song->set_channel_volume(i, cv);
}
- CP_ERR_COND_V( file->eof_reached(),FILE_CORRUPTED );
- CP_ERR_COND_V( file->get_error(),FILE_CORRUPTED );
+ CP_ERR_COND_V(file->eof_reached(), FILE_CORRUPTED);
+ CP_ERR_COND_V(file->get_error(), FILE_CORRUPTED);
return FILE_OK;
}
CPLoader::Error CPLoader_IT::load_effects() {
-
+
if (!header.is_chibi)
return FILE_OK; //no effects, regular IT file
-
+
/* GOTO End of IT header */
- file->seek(0xC0+header.ordnum+header.insnum*4+header.smpnum*4+header.patnum*4);
-
-
- if (file->get_byte()>0) //not made with this version, ignore extended info
+ file->seek(0xC0 + header.ordnum + header.insnum * 4 + header.smpnum * 4 + header.patnum * 4);
+
+ if (file->get_byte() > 0) //not made with this version, ignore extended info
return FILE_OK;
-
+
/* Chibitracker Extended info */
- switch(file->get_byte()) {
-
+ switch (file->get_byte()) {
+
case CPSong::REVERB_MODE_ROOM: {
-
- song->set_reverb_mode( CPSong::REVERB_MODE_ROOM );
+
+ song->set_reverb_mode(CPSong::REVERB_MODE_ROOM);
} break;
case CPSong::REVERB_MODE_STUDIO_SMALL: {
-
- song->set_reverb_mode( CPSong::REVERB_MODE_STUDIO_SMALL );
-
+
+ song->set_reverb_mode(CPSong::REVERB_MODE_STUDIO_SMALL);
+
} break;
case CPSong::REVERB_MODE_STUDIO_MEDIUM: {
-
- song->set_reverb_mode( CPSong::REVERB_MODE_STUDIO_MEDIUM );
-
+
+ song->set_reverb_mode(CPSong::REVERB_MODE_STUDIO_MEDIUM);
+
} break;
case CPSong::REVERB_MODE_STUDIO_LARGE: {
-
- song->set_reverb_mode( CPSong::REVERB_MODE_STUDIO_LARGE );
-
+
+ song->set_reverb_mode(CPSong::REVERB_MODE_STUDIO_LARGE);
+
} break;
case CPSong::REVERB_MODE_HALL: {
-
- song->set_reverb_mode( CPSong::REVERB_MODE_HALL );
-
+
+ song->set_reverb_mode(CPSong::REVERB_MODE_HALL);
+
} break;
case CPSong::REVERB_MODE_SPACE_ECHO: {
-
- song->set_reverb_mode( CPSong::REVERB_MODE_SPACE_ECHO );
-
+
+ song->set_reverb_mode(CPSong::REVERB_MODE_SPACE_ECHO);
+
} break;
case CPSong::REVERB_MODE_ECHO: {
-
- song->set_reverb_mode( CPSong::REVERB_MODE_ECHO );
-
+
+ song->set_reverb_mode(CPSong::REVERB_MODE_ECHO);
+
} break;
case CPSong::REVERB_MODE_DELAY: {
-
- song->set_reverb_mode( CPSong::REVERB_MODE_DELAY );
-
+
+ song->set_reverb_mode(CPSong::REVERB_MODE_DELAY);
+
} break;
case CPSong::REVERB_MODE_HALF_ECHO: {
-
- song->set_reverb_mode( CPSong::REVERB_MODE_HALF_ECHO );
-
+
+ song->set_reverb_mode(CPSong::REVERB_MODE_HALF_ECHO);
+
} break;
-
}
-
+
//chorus
- song->set_chorus_speed_hz10( file->get_byte() );
- song->set_chorus_delay_ms( file->get_byte() );
- song->set_chorus_depth_ms10( file->get_byte() );
- song->set_chorus_separation_ms( file->get_byte() );
-
- for (int i=0;i<CPPattern::WIDTH;i++) {
- song->set_channel_reverb(i,file->get_byte());
+ song->set_chorus_speed_hz10(file->get_byte());
+ song->set_chorus_delay_ms(file->get_byte());
+ song->set_chorus_depth_ms10(file->get_byte());
+ song->set_chorus_separation_ms(file->get_byte());
+
+ for (int i = 0; i < CPPattern::WIDTH; i++) {
+ song->set_channel_reverb(i, file->get_byte());
}
- for (int i=0;i<CPPattern::WIDTH;i++) {
- song->set_channel_chorus(i,file->get_byte());
+ for (int i = 0; i < CPPattern::WIDTH; i++) {
+ song->set_channel_chorus(i, file->get_byte());
}
-
+
return FILE_OK;
-
}
CPLoader::Error CPLoader_IT::load_message() {
-
if (!(header.special & 1)) {
return FILE_OK;
- }
-
+ }
file->seek(header.msgoffset);
@@ -214,55 +205,46 @@ CPLoader::Error CPLoader_IT::load_message() {
char message[8000];
-
char *tmpmsg = message;
- file->get_byte_array((uint8_t*)tmpmsg,header.msglength);
- tmpmsg[header.msglength]=0;
-
- for (int i=0;i<header.msglength;i++) if (tmpmsg[i]=='\r') tmpmsg[i]='\n';
+ file->get_byte_array((uint8_t *)tmpmsg, header.msglength);
+ tmpmsg[header.msglength] = 0;
+
+ for (int i = 0; i < header.msglength; i++)
+ if (tmpmsg[i] == '\r') tmpmsg[i] = '\n';
song->set_message(tmpmsg);
-
+
return FILE_OK;
}
CPLoader::Error CPLoader_IT::load_orders() {
file->seek(0xC0);
-
-
- for (int i=0;i<header.ordnum;i++) {
-
- uint8_t aux_order=file->get_byte();
- CPOrder order=CP_ORDER_NONE;
-
-
- if (i>=CPSong::MAX_ORDERS)
+
+ for (int i = 0; i < header.ordnum; i++) {
+
+ uint8_t aux_order = file->get_byte();
+ CPOrder order = CP_ORDER_NONE;
+
+ if (i >= CPSong::MAX_ORDERS)
continue;
- if (aux_order==254) {
+ if (aux_order == 254) {
- order=CP_ORDER_BREAK;
+ order = CP_ORDER_BREAK;
- } else if (aux_order<200) {
+ } else if (aux_order < 200) {
- order=aux_order;
+ order = aux_order;
//nothing!
-
- }
- song->set_order(i,order);
-
+ }
+ song->set_order(i, order);
}
-
- if (file->eof_reached() || file->get_error()) {
+ if (file->eof_reached() || file->get_error()) {
return FILE_CORRUPTED;
-
}
-
+
return FILE_OK;
}
-
-
-