diff --git a/game/clk_map.c b/game/clk_map.c index f51d765..8a1c618 100644 --- a/game/clk_map.c +++ b/game/clk_map.c @@ -415,7 +415,7 @@ static char sing_song_clk(int id,int xa,int ya,int xr,int yr) playing=0; if (standardflute) { - if (fletna_get_buffer_pos()) + if (fletna_can_add_timer()) { THE_TIMER *t; if (standardflute) diff --git a/game/globals.h b/game/globals.h index c237ce1..a825f56 100644 --- a/game/globals.h +++ b/game/globals.h @@ -1691,6 +1691,7 @@ void animate_checkbox(int first_id,int last_id,int step); void fletna_pridej_notu(char note); void check_fletna(THE_TIMER *t); char fletna_get_buffer_pos(void); +char fletna_can_add_timer(); void check_global_fletna(THE_TIMER *t); void fletna_glob_add_note(uint8_t note); diff --git a/game/interfac.c b/game/interfac.c index 9389c90..1fc4be6 100644 --- a/game/interfac.c +++ b/game/interfac.c @@ -1178,6 +1178,7 @@ void skeldal_soupak(OBJREC *o) static char fletna_str[13]; static uint8_t pos=0; +static uint8_t minnotes=6; // C C# D D# E F F# G G# A A# B C // A B C D E F G H I J K L M @@ -1193,7 +1194,7 @@ void fletna_pridej_notu(char note) { note+=65; fletna_str[pos]=note; - if (pos==countof(fletna_str)) memmove(fletna_str,fletna_str+1,pos-1); + if (pos==countof(fletna_str)-1) memmove(fletna_str,fletna_str+1,pos-1); else pos++; } @@ -1263,6 +1264,10 @@ void check_fletna(THE_TIMER *t) pos=0; } +char fletna_can_add_timer() { + return pos >=minnotes; +} + char fletna_get_buffer_pos() { return pos;