- if(le_current_level != NULL)
- {
- if(event.type == SDL_KEYDOWN || event.type == SDL_KEYUP || ((event.type == SDL_MOUSEBUTTONDOWN || SDL_MOUSEMOTION) && (event.motion.x > screen->w-64 && event.motion.x < screen->w &&
- event.motion.y > 0 && event.motion.y < screen->h)))
- {
- le_mouse_pressed[LEFT] = false;
- le_mouse_pressed[RIGHT] = false;
-
- if(show_menu == false)
- {
- /* Check for button events */
- button_event(&le_test_level_bt,&event);
- if(button_get_state(&le_test_level_bt) == BUTTON_CLICKED)
- le_testlevel();
- button_event(&le_save_level_bt,&event);
- if(button_get_state(&le_save_level_bt) == BUTTON_CLICKED)
- level_save(le_current_level,le_level_subset.name.c_str(),le_level);
- button_event(&le_next_level_bt,&event);
- if(button_get_state(&le_next_level_bt) == BUTTON_CLICKED)
- {
- if(le_level < le_level_subset.levels)
- {
- le_goto_level(++le_level);
- }
- else
- {
- st_level new_lev;
- char str[1024];
- int d = 0;
- sprintf(str,"Level %d doesn't exist.",le_level+1);
- text_drawf(&white_text,str,0,-18,A_HMIDDLE,A_VMIDDLE,2);
- text_drawf(&white_text,"Do you want to create it?",0,0,A_HMIDDLE,A_VMIDDLE,2);
- text_drawf(&red_text,"(Y)es/(N)o",0,20,A_HMIDDLE,A_VMIDDLE,2);
- flipscreen();
- while(d == 0)
- {
- while(SDL_PollEvent(&event))
- switch(event.type)
- {
- case SDL_KEYDOWN: // key pressed
- switch(event.key.keysym.sym)
- {
- case SDLK_y:
- level_default(&new_lev);
- level_save(&new_lev,le_level_subset.name.c_str(),++le_level);
- le_level_subset.levels = le_level;
- le_goto_level(le_level);
- d = 1;
- break;
- case SDLK_n:
- d = 1;
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
- SDL_Delay(50);
- }
- }
- }
- button_event(&le_previous_level_bt,&event);
- if(button_get_state(&le_previous_level_bt) == BUTTON_CLICKED)
- {
- if(le_level > 1)
- le_goto_level(--le_level);
- }
- button_event(&le_rubber_bt,&event);
- if(button_get_state(&le_rubber_bt) == BUTTON_CLICKED)
- le_current_tile = 0;
- button_event(&le_select_mode_one_bt,&event);
- if(button_get_state(&le_select_mode_one_bt) == BUTTON_CLICKED)
- le_selection_mode = CURSOR;
- button_event(&le_select_mode_two_bt,&event);
- if(button_get_state(&le_select_mode_two_bt) == BUTTON_CLICKED)
- le_selection_mode = SQUARE;
-
- button_event(&le_bad_bt,&event);
- if(button_get_state(&le_bad_bt) == BUTTON_CLICKED)
- {
- le_bad_panel.hidden = false;
- le_fgd_panel.hidden = true;
- le_bkgd_panel.hidden = true;
- }
-
- button_event(&le_fgd_bt,&event);
- if(button_get_state(&le_fgd_bt) == BUTTON_CLICKED)
- {
- le_bad_panel.hidden = true;
- le_fgd_panel.hidden = false;
- le_bkgd_panel.hidden = true;
- }
- button_event(&le_bkgd_bt,&event);
- if(button_get_state(&le_bkgd_bt) == BUTTON_CLICKED)
- {
- le_bad_panel.hidden = true;
- le_fgd_panel.hidden = true;
- le_bkgd_panel.hidden = false;
- }
- button_event(&le_settings_bt,&event);
- if(button_get_state(&le_settings_bt) == BUTTON_CLICKED)
- {
- if(show_menu == false)
- {
- update_level_settings_menu();
- Menu::set_current(level_settings_menu);
- show_menu = true;
- }
- else
- {
- Menu::set_current(leveleditor_menu);
- show_menu = false;
- }
- }
- if((pbutton = button_panel_event(&le_bkgd_panel,&event)) != NULL)
- {
- if(button_get_state(pbutton) == BUTTON_CLICKED)
- {
- char c = '\0';
- if(pbutton->tag >= 0 && pbutton->tag <= 3)
- c = 'G' + pbutton->tag;
- else if(pbutton->tag >= 4 && pbutton->tag <= 7)
- c = 'g' + pbutton->tag - 4;
- else if(pbutton->tag >= 8 && pbutton->tag <= 11)
- c = 'C' + pbutton->tag - 8;
- else if(pbutton->tag >= 12 && pbutton->tag <= 15)
- c = 'c' + pbutton->tag - 12;
- if(c != '\0')
- le_current_tile = c;
- }
- }
- if((pbutton = button_panel_event(&le_fgd_panel,&event)) != NULL)
- {
- if(button_get_state(pbutton) == BUTTON_CLICKED)
- {
- char c = '\0';
- if(pbutton->tag == 0)
- c = '#' ;
- else if(pbutton->tag == 1)
- c = '[';
- else if(pbutton->tag == 2)
- c = '=';
- else if(pbutton->tag == 3)
- c = ']';
- else if(pbutton->tag == 4)
- c = '^';
- else if(pbutton->tag == 5)
- c = '&';
- else if(pbutton->tag == 6)
- c = '|';
- else if(pbutton->tag == 7)
- c = '*';
- else if(pbutton->tag == 8)
- c = '\\';
- else if(pbutton->tag == 9)
- c = 'a';
- else if(pbutton->tag == 10)
- c = 'B';
- else if(pbutton->tag == 11)
- c = 'A';
- else if(pbutton->tag == 12)
- c = '!';
- else if(pbutton->tag == 13)
- c = '$';
- else if(pbutton->tag == 14)
- c = 'X';
- else if(pbutton->tag == 15)
- c = 'Y';
- else if(pbutton->tag == 16)
- c = 'x';
- else if(pbutton->tag == 17)
- c = 'y';
- if(c != '\0')
- le_current_tile = c;
- }
- }
- if((pbutton = button_panel_event(&le_bad_panel,&event)) != NULL)
- {
- if(button_get_state(pbutton) == BUTTON_CLICKED)
- {
- char c = '\0';
- if(pbutton->tag >= 0 && pbutton->tag <= 2)
- c = '0' + pbutton->tag;
- if(c != '\0')
- le_current_tile = c;
- }
- }
- }
- else
- {
- button_event(&le_settings_bt,&event);
- if(button_get_state(&le_settings_bt) == BUTTON_CLICKED)
- {
- if(show_menu == false)
- {
- update_level_settings_menu();
- Menu::set_current(level_settings_menu);
- show_menu = true;
- }
- else
- {
- Menu::set_current(leveleditor_menu);
- show_menu = false;
- }
- }
- }
- }
- if(show_menu == false)
- {
- button_event(&le_move_left_bt,&event);
- button_event(&le_move_right_bt,&event);