/*
* CthulhuMud
*/
#define MAX_SONGS 20
#define MAX_MSTYLES 16
#define MAX_INSTRUMENTS 8
#define MAX_LINES 100 /* this boils down to about 1k per song */
#define MAX_GLOBAL 10 /* max songs the global jukebox can hold */
#define PULSE_MUSIC ( 6 * PULSE_PER_SECOND)
#define MUSIC_FILE "../config/music.txt"
#define MSTYLE_FILE "../config/musicstyle.txt"
#define ACV_MUSIC_SING 1
#define ACV_MUSIC_PLAY 2
struct song_data {
char *group;
char *name;
char *lyrics[MAX_LINES];
int lines;
};
extern struct song_data song_table[MAX_SONGS];
struct mstyle_data {
char *name;
char *title;
bool instr[MAX_INSTRUMENTS];
int diff;
int volume;
bool loaded;
};
extern struct mstyle_data music_styles[MAX_MSTYLES];
void song_update (void);
void load_songs (void);
void load_mstyles (void);
int calculate_music_effect (CHAR_DATA *ch, OBJ_DATA *instrument);
int instrument_skill (OBJ_DATA *instrument);
int get_room_music (ROOM_INDEX_DATA *room, int style);
int music_number (char *name);
void evaluate_eff (CHAR_DATA *ch, int eff);