void PonscripterLabel::executeSystemLookback() { current_font = &sentence_font; if (event_mode & WAIT_BUTTON_MODE) { if (current_button_state.button == 0 || (current_text_buffer == start_text_buffer && current_button_state.button == -2)) return; if (current_button_state.button == -1 || (current_button_state.button == -3 && current_text_buffer->next == cached_text_buffer) || current_button_state.button <= -4) { event_mode = IDLE_EVENT_MODE; deleteButtons(); if (lookback_sp[0] >= 0) sprite_info[lookback_sp[0]].visible(false); if (lookback_sp[1] >= 0) sprite_info[lookback_sp[1]].visible(false); leaveSystemCall(); return; } if (current_button_state.button == 1 || current_button_state.button == -2) { current_text_buffer = current_text_buffer->previous; } else current_text_buffer = current_text_buffer->next; } else { current_text_buffer = current_text_buffer->previous; if (current_text_buffer->empty()) { if (lookback_sp[0] >= 0) sprite_info[lookback_sp[0]].visible(false); if (lookback_sp[1] >= 0) sprite_info[lookback_sp[1]].visible(false); leaveSystemCall(); return; } event_mode = WAIT_BUTTON_MODE; system_menu_mode = SYSTEM_LOOKBACK; } setupLookbackButton(); refreshMouseOverButton(); rgb_t color = sentence_font.color; sentence_font.color = lookback_color; restoreTextBuffer(); sentence_font.color = color; dirty_rect.fill(screen_width, screen_height); flush(refreshMode()); }
bool ONScripter::executeSystemReset() { if ( executeSystemYesNo( SYSTEM_RESET ) ){ resetCommand(); leaveSystemCall( false ); return true; } leaveSystemCall(); return false; }
void PonscripterLabel::executeSystemLoad() { SaveFileInfo save_file_info; current_font = &menu_font; if (event_mode & WAIT_BUTTON_MODE) { if (current_button_state.button == 0) return; event_mode = IDLE_EVENT_MODE; if (current_button_state.button > 0) { searchSaveFile(save_file_info, current_button_state.button); if (!save_file_info.valid) { event_mode = WAIT_BUTTON_MODE; refreshMouseOverButton(); return; } deleteButtons(); yesno_selected_file_no = current_button_state.button; yesno_caller = SYSTEM_LOAD; system_menu_mode = SYSTEM_YESNO; advancePhase(); } else { deleteButtons(); leaveSystemCall(); } } else { system_menu_mode = SYSTEM_LOAD; createSaveLoadMenu(false); } }
void ONScripter::executeSystemEnd() { if ( executeSystemYesNo( SYSTEM_END ) ) endCommand(); else leaveSystemCall(); }
void ONScripter::executeSystemAutomode() { automode_flag = true; skip_mode &= ~SKIP_NORMAL; printf("systemcall_automode: change to automode\n"); leaveSystemCall(); }
void PonscripterLabel::executeSystemSave() { current_font = &menu_font; if (event_mode & WAIT_BUTTON_MODE) { if (current_button_state.button == 0) return; event_mode = IDLE_EVENT_MODE; deleteButtons(); if (current_button_state.button > 0) { yesno_selected_file_no = current_button_state.button; yesno_caller = SYSTEM_SAVE; system_menu_mode = SYSTEM_YESNO; advancePhase(); return; } leaveSystemCall(); } else { system_menu_mode = SYSTEM_SAVE; createSaveLoadMenu(true); } }
void ONScripter::executeSystemMenu() { current_font = &menu_font; if ( menuselectvoice_file_name[MENUSELECTVOICE_OPEN] ) playSound(menuselectvoice_file_name[MENUSELECTVOICE_OPEN], SOUND_CHUNK, false, MIX_WAVE_CHANNEL); text_info.fill( 0, 0, 0, 0 ); flush( refreshMode() ); menu_font.num_xy[0] = rmenu_link_width; menu_font.num_xy[1] = rmenu_link_num; menu_font.top_xy[0] = (screen_width * screen_ratio2 / screen_ratio1 - menu_font.num_xy[0] * menu_font.pitch_xy[0]) / 2; menu_font.top_xy[1] = (screen_height * screen_ratio2 / screen_ratio1 - menu_font.num_xy[1] * menu_font.pitch_xy[1]) / 2; menu_font.setXY( (menu_font.num_xy[0] - rmenu_link_width) / 2, (menu_font.num_xy[1] - rmenu_link_num) / 2 ); RMenuLink *link = root_rmenu_link.next; int counter = 1; while( link ){ ButtonLink *button = getSelectableSentence( link->label, &menu_font, false ); root_button_link.insert( button ); button->no = counter++; link = link->next; flush( refreshMode() ); } flushEvent(); refreshMouseOverButton(); event_mode = WAIT_BUTTON_MODE; do waitEventSub(-1); while (current_button_state.button == 0); deleteButtonLink(); if ( current_button_state.button == -1 ){ if ( menuselectvoice_file_name[MENUSELECTVOICE_CANCEL] ) playSound(menuselectvoice_file_name[MENUSELECTVOICE_CANCEL], SOUND_CHUNK, false, MIX_WAVE_CHANNEL); leaveSystemCall(); return; } if ( menuselectvoice_file_name[MENUSELECTVOICE_CLICK] ) playSound(menuselectvoice_file_name[MENUSELECTVOICE_CLICK], SOUND_CHUNK, false, MIX_WAVE_CHANNEL); link = root_rmenu_link.next; counter = 1; while ( link ){ if ( current_button_state.button == counter++ ){ system_menu_mode = link->system_call_no; break; } link = link->next; } }
void ONScripterLabel::executeWindowErase() { if (windowchip_sprite_no >= 0) sprite_info[windowchip_sprite_no].visible = false; #if 0 //windoweffect w/windowerase broken currently FIXME refreshSurface(effect_dst_surface, NULL, mode_saya_flag ? REFRESH_SAYA_MODE : REFRESH_NORMAL_MODE); //use the windoweffect when executing the erase int shelter_menu_mode = system_menu_mode; system_menu_mode = SYSTEM_NULL; //prevents infinite event looping if (!setEffect(&window_effect, false, false)) { while(doEffect(&window_effect, false)); } system_menu_mode = shelter_menu_mode; #else display_mode = DISPLAY_MODE_NORMAL; flush(mode_saya_flag ? REFRESH_SAYA_MODE : REFRESH_NORMAL_MODE); #endif event_mode = WAIT_TIMER_MODE | WAIT_BUTTON_MODE; waitEventSub(-1); if (windowchip_sprite_no >= 0) sprite_info[windowchip_sprite_no].visible = true; leaveSystemCall(); }
void PonscripterLabel::executeSystemSkip() { setSkipMode(true); if (!(shelter_event_mode & WAIT_BUTTON_MODE)) shelter_event_mode &= ~WAIT_TIMER_MODE; leaveSystemCall(); }
void PonscripterLabel::executeSystemEnd() { if (yesno_caller == SYSTEM_END) { leaveSystemCall(); } else { yesno_caller = SYSTEM_END; system_menu_mode = SYSTEM_YESNO; advancePhase(); } }
void PonscripterLabel::executeWindowErase() { if (event_mode & WAIT_BUTTON_MODE) { event_mode = IDLE_EVENT_MODE; leaveSystemCall(); } else { display_mode = NORMAL_DISPLAY_MODE; flush(mode_saya_flag ? REFRESH_SAYA_MODE : REFRESH_NORMAL_MODE); event_mode = WAIT_BUTTON_MODE; system_menu_mode = SYSTEM_WINDOWERASE; } }
void ONScripter::executeWindowErase() { if (windowchip_sprite_no >= 0) sprite_info[windowchip_sprite_no].visible = false; display_mode = DISPLAY_MODE_NORMAL; flush(mode_saya_flag ? REFRESH_SAYA_MODE : REFRESH_NORMAL_MODE); event_mode = WAIT_TIMER_MODE | WAIT_BUTTON_MODE; waitEventSub(-1); if (windowchip_sprite_no >= 0) sprite_info[windowchip_sprite_no].visible = true; leaveSystemCall(); }
void PonscripterLabel::executeSystemCall() { //printf("***** executeSystemCall %d %d %d*****\n", system_menu_enter_flag, volatile_button_state.button, system_menu_mode ); dirty_rect.fill(screen_width, screen_height); if (!system_menu_enter_flag) { enterSystemCall(); } switch (system_menu_mode) { case SYSTEM_SKIP: executeSystemSkip(); break; case SYSTEM_RESET: executeSystemReset(); break; case SYSTEM_SAVE: executeSystemSave(); break; case SYSTEM_YESNO: executeSystemYesNo(); break; case SYSTEM_LOAD: executeSystemLoad(); break; case SYSTEM_LOOKBACK: executeSystemLookback(); break; case SYSTEM_WINDOWERASE: executeWindowErase(); break; case SYSTEM_MENU: executeSystemMenu(); break; case SYSTEM_AUTOMODE: executeSystemAutomode(); break; case SYSTEM_END: executeSystemEnd(); break; default: leaveSystemCall(); } }
int ONScripter::executeSystemCall() { enterSystemCall(); while(system_menu_mode != SYSTEM_NULL){ dirty_rect.fill( screen_width, screen_height ); switch(system_menu_mode){ case SYSTEM_SKIP: executeSystemSkip(); return 2; // continue parsing text break; case SYSTEM_RESET: if (executeSystemReset()) return 1; // stop parsing text break; case SYSTEM_SAVE: executeSystemSave(); break; case SYSTEM_LOAD: if (executeSystemLoad()) return 1; // stop parsing text break; case SYSTEM_LOOKBACK: executeSystemLookback(); break; case SYSTEM_WINDOWERASE: executeWindowErase(); break; case SYSTEM_MENU: executeSystemMenu(); break; case SYSTEM_AUTOMODE: executeSystemAutomode(); return 2; // continue parsing text break; case SYSTEM_END: executeSystemEnd(); break; default: leaveSystemCall(); } } return 0; }
void ONScripter::executeSystemLookback() { int i; uchar3 color; current_font = &sentence_font; current_page = current_page->previous; if ( current_page->text_count == 0 ){ if ( lookback_sp[0] >= 0 ) sprite_info[ lookback_sp[0] ].visible = false; if ( lookback_sp[1] >= 0 ) sprite_info[ lookback_sp[1] ].visible = false; leaveSystemCall(); return; } while(1){ setupLookbackButton(); refreshMouseOverButton(); dirty_rect.fill( screen_width, screen_height ); flush( refreshMode() & ~REFRESH_TEXT_MODE); for ( i=0 ; i<3 ; i++ ){ color[i] = sentence_font.color[i]; sentence_font.color[i] = lookback_color[i]; } restoreTextBuffer(accumulation_surface); for ( i=0 ; i<3 ; i++ ) sentence_font.color[i] = color[i]; flush( REFRESH_NONE_MODE ); event_mode = WAIT_BUTTON_MODE; waitEventSub(-1); if ( current_button_state.button == 0 || ( current_page == start_page && current_button_state.button == -2 ) ){ continue; } if ( current_button_state.button == -1 || ( current_button_state.button == -3 && current_page->next == cached_page ) || current_button_state.button <= -4 ) { event_mode = IDLE_EVENT_MODE; deleteButtonLink(); if ( lookback_sp[0] >= 0 ) sprite_info[ lookback_sp[0] ].visible = false; if ( lookback_sp[1] >= 0 ) sprite_info[ lookback_sp[1] ].visible = false; leaveSystemCall(); return; } if ( current_button_state.button == 1 || current_button_state.button == -2 ){ current_page = current_page->previous; } else current_page = current_page->next; } }
void ONScripter::executeSystemSkip() { skip_mode |= SKIP_NORMAL; leaveSystemCall(); }
void PonscripterLabel::executeSystemYesNo() { current_font = &menu_font; if (event_mode & WAIT_BUTTON_MODE) { if (current_button_state.button == 0) return; event_mode = IDLE_EVENT_MODE; deleteButtons(); if (current_button_state.button == 1) { // yes is selected playSound(menuselectvoice_file_name[MENUSELECTVOICE_YES], SOUND_WAVE | SOUND_OGG, false, MIX_WAVE_CHANNEL); if (yesno_caller == SYSTEM_SAVE) { saveSaveFile(yesno_selected_file_no); leaveSystemCall(); } else if (yesno_caller == SYSTEM_LOAD) { current_font = &sentence_font; if (loadSaveFile(yesno_selected_file_no)) { system_menu_mode = yesno_caller; advancePhase(); return; } leaveSystemCall(false); saveon_flag = true; internal_saveon_flag = true; text_on_flag = false; indent_offset = 0; line_enter_status = 0; string_buffer_offset = 0; string_buffer_restore = -1; break_flag = false; if (loadgosub_label) gosubReal(loadgosub_label, script_h.getCurrent()); readToken(); } else if (yesno_caller == SYSTEM_RESET) { resetCommand("reset"); readToken(); event_mode = IDLE_EVENT_MODE; leaveSystemCall(false); } else if (yesno_caller == SYSTEM_END) { endCommand("end"); } } else { playSound(menuselectvoice_file_name[MENUSELECTVOICE_NO], SOUND_WAVE | SOUND_OGG, false, MIX_WAVE_CHANNEL); system_menu_mode = yesno_caller & 0xf; if (yesno_caller == SYSTEM_RESET) leaveSystemCall(); advancePhase(); } } else { text_info.fill(0, 0, 0, 0); pstring name; if (yesno_caller == SYSTEM_SAVE) { SaveFileInfo save_file_info; searchSaveFile(save_file_info, yesno_selected_file_no); processMessage(name, locale.message_save_confirm, save_file_info); } else if (yesno_caller == SYSTEM_LOAD) { SaveFileInfo save_file_info; searchSaveFile(save_file_info, yesno_selected_file_no); processMessage(name, locale.message_load_confirm, save_file_info); } else if (yesno_caller == SYSTEM_RESET) name = locale.message_reset_confirm; else if (yesno_caller == SYSTEM_END) name = locale.message_end_confirm; current_font->area_x = int (ceil(current_font->StringAdvance(name))); current_font->area_y = current_font->line_top(4); current_font->top_x = (screen_width * screen_ratio2 / screen_ratio1 - current_font->area_x) / 2; current_font->top_y = (screen_height * screen_ratio2 / screen_ratio1 - current_font->area_y) / 2; current_font->SetXY(0, 0); buttons[0] = getSelectableSentence(name, current_font, false); flush(refreshMode()); float yes_len = current_font->StringAdvance(locale.message_yes), no_len = current_font->StringAdvance(locale.message_no); name = locale.message_yes; current_font->SetXY(float (current_font->area_x) / 4 - yes_len / 2, current_font->line_top(2)); buttons[1] = getSelectableSentence(name, current_font, false); name = locale.message_no; current_font->SetXY(float (current_font->area_x) * 3 / 4 - no_len / 2, current_font->line_top(2)); buttons[2] = getSelectableSentence(name, current_font, false); flush(refreshMode()); event_mode = WAIT_BUTTON_MODE; refreshMouseOverButton(); } }
bool ONScripter::executeSystemLoad() { current_font = &menu_font; text_info.fill( 0, 0, 0, 0 ); menu_font.num_xy[0] = (strlen(save_item_name)+1)/2+2+13; menu_font.num_xy[1] = num_save_file+2; menu_font.top_xy[0] = (screen_width * screen_ratio2 / screen_ratio1 - menu_font.num_xy[0] * menu_font.pitch_xy[0]) / 2; menu_font.top_xy[1] = (screen_height * screen_ratio2 / screen_ratio1 - menu_font.num_xy[1] * menu_font.pitch_xy[1]) / 2; menu_font.setXY( (menu_font.num_xy[0] - strlen( load_menu_name ) / 2) / 2, 0 ); uchar3 color = {0xff, 0xff, 0xff}; drawString( load_menu_name, color, &menu_font, true, accumulation_surface, NULL, &text_info ); menu_font.newLine(); menu_font.newLine(); flush( refreshMode() ); bool nofile_flag; char *buffer = new char[ strlen( save_item_name ) + 31 + 1 ]; SaveFileInfo save_file_info; for ( unsigned int i=1 ; i<=num_save_file ; i++ ){ searchSaveFile( save_file_info, i ); menu_font.setXY( (menu_font.num_xy[0] - (strlen( save_item_name ) / 2 + 15) ) / 2 ); if ( save_file_info.valid ){ sprintf( buffer, MESSAGE_SAVE_EXIST, save_item_name, save_file_info.sjis_no, save_file_info.sjis_month, save_file_info.sjis_day, save_file_info.sjis_hour, save_file_info.sjis_minute ); nofile_flag = false; } else{ sprintf( buffer, MESSAGE_SAVE_EMPTY, save_item_name, save_file_info.sjis_no ); nofile_flag = true; } ButtonLink *button = getSelectableSentence( buffer, &menu_font, false, nofile_flag ); root_button_link.insert( button ); button->no = i; flush( refreshMode() ); } delete[] buffer; refreshMouseOverButton(); event_mode = WAIT_BUTTON_MODE; int file_no = 0; while(1){ waitEventSub(-1); if ( current_button_state.button > 0 ){ file_no = current_button_state.button; searchSaveFile( save_file_info, file_no ); if ( !save_file_info.valid ) continue; } if (current_button_state.button != 0) break; } if ( current_button_state.button > 0 ){ deleteButtonLink(); if (executeSystemYesNo( SYSTEM_LOAD, file_no )){ current_font = &sentence_font; system_menu_mode = NULL; // for fadeout in mp3stopCommand() if ( loadSaveFile( file_no ) ) return false; leaveSystemCall( false ); refreshSurface(backup_surface, NULL, REFRESH_NORMAL_MODE); saveon_flag = true; internal_saveon_flag = true; text_on_flag = false; indent_offset = 0; line_enter_status = 0; page_enter_status = 0; string_buffer_offset = 0; break_flag = false; flushEvent(); if (loadgosub_label) gosubReal( loadgosub_label, script_h.getCurrent() ); return true; } return false; } deleteButtonLink(); leaveSystemCall(); return false; }
void ONScripter::executeSystemSave() { current_font = &menu_font; text_info.fill( 0, 0, 0, 0 ); menu_font.num_xy[0] = (strlen(save_item_name)+1)/2+2+13; menu_font.num_xy[1] = num_save_file+2; menu_font.top_xy[0] = (screen_width * screen_ratio2 / screen_ratio1 - menu_font.num_xy[0] * menu_font.pitch_xy[0]) / 2; menu_font.top_xy[1] = (screen_height * screen_ratio2 / screen_ratio1 - menu_font.num_xy[1] * menu_font.pitch_xy[1]) / 2; menu_font.setXY((menu_font.num_xy[0] - strlen( save_menu_name ) / 2 ) / 2, 0); uchar3 color = {0xff, 0xff, 0xff}; drawString( save_menu_name, color, &menu_font, true, accumulation_surface, NULL, &text_info ); menu_font.newLine(); menu_font.newLine(); flush( refreshMode() ); bool nofile_flag; char *buffer = new char[ strlen( save_item_name ) + 31 + 1 ]; for ( unsigned int i=1 ; i<=num_save_file ; i++ ){ SaveFileInfo save_file_info; searchSaveFile( save_file_info, i ); menu_font.setXY( (menu_font.num_xy[0] - (strlen( save_item_name ) / 2 + 15) ) / 2 ); if ( save_file_info.valid ){ sprintf( buffer, MESSAGE_SAVE_EXIST, save_item_name, save_file_info.sjis_no, save_file_info.sjis_month, save_file_info.sjis_day, save_file_info.sjis_hour, save_file_info.sjis_minute ); nofile_flag = false; } else{ sprintf( buffer, MESSAGE_SAVE_EMPTY, save_item_name, save_file_info.sjis_no ); nofile_flag = true; } ButtonLink *button = getSelectableSentence( buffer, &menu_font, false, nofile_flag ); root_button_link.insert( button ); button->no = i; flush( refreshMode() ); } delete[] buffer; refreshMouseOverButton(); event_mode = WAIT_BUTTON_MODE; do waitEventSub(-1); while (current_button_state.button == 0); deleteButtonLink(); if ( current_button_state.button > 0 ){ int file_no = current_button_state.button; if (executeSystemYesNo( SYSTEM_SAVE, file_no )){ if (saveon_flag && internal_saveon_flag) saveSaveFile(-1); saveSaveFile( file_no ); leaveSystemCall(); } return; } leaveSystemCall(); }
void ONScripterLabel::executeSystemSave() { current_font = &menu_font; text_info.fill( 0, 0, 0, 0 ); menu_font.num_xy[0] = (strlen(save_item_name)+1)/2+2+13; menu_font.num_xy[1] = num_save_file+2; menu_font.top_xy[0] = (ContractPos(screen_width) - menu_font.num_xy[0] * menu_font.pitch_xy[0]) / 2; menu_font.top_xy[1] = (ContractPos(screen_height) - menu_font.num_xy[1] * menu_font.pitch_xy[1]) / 2; menu_font.setXY((menu_font.num_xy[0] - (strlen( save_menu_name )+1) / 2 ) / 2, 0); //Mion: fixed the menu title bug noted in the past by Seung Park: // the menu title must be drawn close to last during refresh, // not in the textwindow, since there could be sprites above the // window if windowback is used. if (system_menu_title){ dirty_rect.add( system_menu_title->pos ); delete system_menu_title; system_menu_title = NULL; } system_menu_title = getSentence( save_menu_name, &menu_font, 1, false ); menu_font.newLine(); flush( refreshMode() ); bool nofile_flag; int slen = strlen(save_item_name); char *buffer = new char[ slen + (slen % 2) + 30 + 3 ]; for ( unsigned int i=1 ; i<=num_save_file ; i++ ){ SaveFileInfo save_file_info; searchSaveFile( save_file_info, i ); menu_font.setXY( (menu_font.num_xy[0] - ((strlen( save_item_name )+1) / 2 + 15) ) / 2 ); if ( save_file_info.valid ){ sprintf( buffer, getMessageString(MESSAGE_SAVE_EXIST), save_item_name, save_file_info.sjis_no, save_file_info.sjis_month, save_file_info.sjis_day, save_file_info.sjis_hour, save_file_info.sjis_minute ); nofile_flag = false; } else{ sprintf( buffer, getMessageString(MESSAGE_SAVE_EMPTY), save_item_name, save_file_info.sjis_no ); nofile_flag = true; } ButtonLink *button = getSelectableSentence( buffer, &menu_font, false, nofile_flag ); root_button_link.insert( button ); button->no = i; flush( refreshMode() ); } delete[] buffer; refreshMouseOverButton(); event_mode = WAIT_BUTTON_MODE; do waitEventSub(-1); while (current_button_state.button == 0); deleteButtonLink(); if (system_menu_title){ dirty_rect.add( system_menu_title->pos ); delete system_menu_title; system_menu_title = NULL; } if ( current_button_state.button > 0 ){ int file_no = current_button_state.button; if (executeSystemYesNo( SYSTEM_SAVE, file_no )){ saveSaveFile( file_no ); leaveSystemCall(); } return; } leaveSystemCall(); }
void PonscripterLabel::executeSystemAutomode() { setAutoMode(true); printf("systemcall_automode: change to automode\n"); leaveSystemCall(); }
void PonscripterLabel::executeSystemMenu() { int counter = 1; current_font = &menu_font; if (event_mode & WAIT_BUTTON_MODE) { if (current_button_state.button == 0) return; event_mode = IDLE_EVENT_MODE; deleteButtons(); if (current_button_state.button == -1) { playSound(menuselectvoice_file_name[MENUSELECTVOICE_CANCEL], SOUND_WAVE | SOUND_OGG, false, MIX_WAVE_CHANNEL); leaveSystemCall(); return; } playSound(menuselectvoice_file_name[MENUSELECTVOICE_CLICK], SOUND_WAVE | SOUND_OGG, false, MIX_WAVE_CHANNEL); for (RMenuElt::iterator it = rmenu.begin(); it != rmenu.end(); ++it) { if (current_button_state.button == counter++) { system_menu_mode = it->system_call_no; break; } } advancePhase(); } else { playSound(menuselectvoice_file_name[MENUSELECTVOICE_OPEN], SOUND_WAVE | SOUND_OGG, false, MIX_WAVE_CHANNEL); system_menu_mode = SYSTEM_MENU; yesno_caller = SYSTEM_MENU; text_info.fill(0, 0, 0, 0); flush(refreshMode()); current_font->area_x = screen_width * screen_ratio2 / screen_ratio1; current_font->area_y = current_font->line_top(rmenu.size()); current_font->top_x = 0; current_font->top_y = (screen_height * screen_ratio2 / screen_ratio1 - current_font->area_y) / 2; current_font->SetXY(0, 0); for (RMenuElt::iterator it = rmenu.begin(); it != rmenu.end(); ++it) { const float sw = float (screen_width * screen_ratio2) / float (screen_ratio1); current_font->SetXY((sw - current_font->StringAdvance(it->label)) / 2); buttons[counter++] = getSelectableSentence(it->label, current_font, false); flush(refreshMode()); } flushEvent(); event_mode = WAIT_BUTTON_MODE; refreshMouseOverButton(); } }