X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Feditor.c;h=c17a4967ef27f6ecf69085bb0069b482169447ff;hp=fc81ebe09a6bee9e175a28daa927ee138172ebc5;hb=e5c5bf5c4a76a04f9bf64e92227bf2ef969fd25c;hpb=e557b2b5d9951a4e692fd4e32a5cf45c84252c64 diff --git a/src/editor.c b/src/editor.c index fc81ebe0..c17a4967 100644 --- a/src/editor.c +++ b/src/editor.c @@ -21,8 +21,8 @@ #define CHOICE_DELAY_VALUE 100 static int level_xpos,level_ypos; -static BOOL edit_mode; -static BOOL name_typing; +static boolean edit_mode; +static boolean name_typing; static int new_element1 = EL_MAUERWERK; static int new_element2 = EL_LEERRAUM; static int new_element3 = EL_ERDREICH; @@ -610,24 +610,25 @@ void FloodFill(int from_x, int from_y, int fill_element) static int check[4][2] = { {-1,0}, {0,-1}, {1,0}, {0,1} }; static int safety = 0; + /* check if starting field still has the desired content */ + if (Feld[from_x][from_y] == fill_element) + return; + safety++; - if (safety>lev_fieldx*lev_fieldy) - { - fprintf(stderr,"Something went wrong in 'FloodFill()'. Please debug.\n"); - exit(-1); - } + if (safety > lev_fieldx*lev_fieldy) + Error(ERR_EXIT, "Something went wrong in 'FloodFill()'. Please debug."); old_element = Feld[from_x][from_y]; Feld[from_x][from_y] = fill_element; for(i=0;i<4;i++) { - x = from_x+check[i][0]; - y = from_y+check[i][1]; + x = from_x + check[i][0]; + y = from_y + check[i][1]; - if (IN_LEV_FIELD(x,y) && Feld[x][y]==old_element) - FloodFill(x,y,fill_element); + if (IN_LEV_FIELD(x,y) && Feld[x][y] == old_element) + FloodFill(x, y, fill_element); } safety--; @@ -637,7 +638,7 @@ void LevelEd(int mx, int my, int button) { static int last_button = 0; static int in_field_pressed = FALSE; - static BOOL use_floodfill = FALSE; + static boolean use_floodfill = FALSE; int x = (mx-SX)/MINI_TILEX; int y = (my-SY)/MINI_TILEY; @@ -745,7 +746,7 @@ void LevelEd(int mx, int my, int button) edit_mode = FALSE; break; case ED_BUTTON_FILL: - AreYouSure("Caution ! Flood fill mode ! Choose area !",AYS_OPEN); + Request("Caution ! Flood fill mode ! Choose area !",REQ_OPEN); use_floodfill = TRUE; return; break; @@ -1010,7 +1011,7 @@ void LevelEd(int mx, int my, int button) edit_mode = TRUE; break; case ED_BUTTON_CLEAR: - if (AreYouSure("Are you sure to clear this level ?",AYS_ASK)) + if (Request("Are you sure to clear this level ?",REQ_ASK)) { for(x=0;x