- int event_type = gi->event.type;
-
- /*
- int button = gi->event.button;
- */
-
- int id;
- int i, x, y;
-
- /* get the button id */
- for (i=0; i<ED_NUM_CTRL_BUTTONS; i++)
- if (gi->id == control_button_gadget[i]->id)
- id = i;
-
- switch (id)
- {
- case ED_CTRL_ID_SINGLE_ITEMS:
- case ED_CTRL_ID_CONNECTED_ITEMS:
- case ED_CTRL_ID_LINE:
- case ED_CTRL_ID_TEXT:
- case ED_CTRL_ID_RECTANGLE:
- case ED_CTRL_ID_FILLED_BOX:
- case ED_CTRL_ID_FLOOD_FILL:
- case ED_CTRL_ID_RANDOM_PLACEMENT:
- case ED_CTRL_ID_BRUSH:
- drawing_function = id;
- break;
-
- case ED_CTRL_ID_CLEAR:
- if (Request("Are you sure to clear this level ?", REQ_ASK))
- {
- for(x=0; x<MAX_LEV_FIELDX; x++)
- for(y=0; y<MAX_LEV_FIELDY; y++)
- Feld[x][y] = EL_ERDREICH;
-
- DrawMiniLevel(level_xpos, level_ypos);
- }
- break;
-
- case ED_CTRL_ID_SAVE:
- {
- int player_present = FALSE;
-
- if (leveldir[leveldir_nr].readonly)
- {
- Request("This level is read only !", REQ_CONFIRM);
- break;
- }
-
- for(y=0; y<lev_fieldy; y++)
- for(x=0; x<lev_fieldx; x++)
- if (Feld[x][y] == EL_SPIELFIGUR || Feld[x][y] == EL_SPIELER1)
- player_present = TRUE;
-
- if (!player_present)
- Request("No Level without Gregor Mc Duffin please !", REQ_CONFIRM);
- else
- {
- if (Request("Save this level and kill the old ?", REQ_ASK))
- {
- for(x=0; x<lev_fieldx; x++)
- for(y=0; y<lev_fieldy; y++)
- Ur[x][y] = Feld[x][y];
- SaveLevel(level_nr);
- }
- }
- }
- break;
-
- case ED_CTRL_ID_EXIT:
- if (Request("Exit level editor ?", REQ_ASK | REQ_STAY_OPEN))
- {
- CloseDoor(DOOR_CLOSE_1);
-
- /*
- CloseDoor(DOOR_CLOSE_BOTH);
- */
-
- /* draw smaller door */
- XCopyArea(display, pix[PIX_DOOR], drawto, gc,
- DOOR_GFX_PAGEX7, 64,
- 108, 64,
- EX - 4, EY - 12);
- redraw_mask |= REDRAW_ALL;
-
- game_status = MAINMENU;
- DrawMainMenu();
- }
- else
- {
- CloseDoor(DOOR_CLOSE_1);
- XCopyArea(display, pix[PIX_DB_DOOR], pix[PIX_DB_DOOR], gc,
- DOOR_GFX_PAGEX2, DOOR_GFX_PAGEY1, DXSIZE,DYSIZE,
- DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1);
- OpenDoor(DOOR_OPEN_1);
- }
- break;