void DoBeforeSave() { if (play.cur_music_number >= 0) { if (IsMusicPlaying() == 0) play.cur_music_number = -1; } if (displayed_room >= 0) { // update the current room script's data segment copy if (roominst) save_room_data_segment(); } }
int PlayMusicQueued(int musnum) { // Just get the queue size if (musnum < 0) return play.music_queue_size; if ((IsMusicPlaying() == 0) && (play.music_queue_size == 0)) { newmusic(musnum); return 0; } if (play.music_queue_size >= MAX_QUEUED_MUSIC) { debug_script_log("Too many queued music, cannot add %d", musnum); return 0; } if ((play.music_queue_size > 0) && (play.music_queue[play.music_queue_size - 1] >= QUEUED_MUSIC_REPEAT)) { quit("!PlayMusicQueued: cannot queue music after a repeating tune has been queued"); } if (play.music_repeat) { debug_script_log("Queuing music %d to loop", musnum); musnum += QUEUED_MUSIC_REPEAT; } else { debug_script_log("Queuing music %d", musnum); } play.music_queue[play.music_queue_size] = musnum; play.music_queue_size++; if (play.music_queue_size == 1) { clear_music_cache(); cachedQueuedMusic = load_music_from_disk(musnum, (play.music_repeat > 0)); } return play.music_queue_size; }
int TTowers::MakeTurn () { int i, st; if (MusicOn && (!IsMusicPlaying())) JukeboxNext(); if (nofBadLife == 0) return TRUE; if (DeleteKilled () == FALSE) return FALSE; for (i = 0; i < nofBadLife; i++) { do { st = ProblemJednotky (BL[i]); if (st == FALSE) { ProgressNull (); return FALSE; } } while (st == -1); ProgressInc (); } return TRUE; }