+void RandomPlacement(int button)
+{
+ int new_element;
+ int x, y;
+
+ new_element = (button == 1 ? new_element1 :
+ button == 2 ? new_element2 :
+ button == 3 ? new_element3 : 0);
+
+ CopyLevelToUndoBuffer();
+
+ if (random_placement_method == RANDOM_USE_PERCENTAGE)
+ {
+ for(x=0; x<lev_fieldx; x++)
+ for(y=0; y<lev_fieldy; y++)
+ if (RND(100) < random_placement_percentage)
+ Feld[x][y] = new_element;
+ }
+ else
+ {
+ int elements_left = random_placement_num_objects;
+
+ while (elements_left > 0)
+ {
+ x = RND(lev_fieldx);
+ y = RND(lev_fieldy);
+
+ if (Feld[x][y] != new_element)
+ {
+ Feld[x][y] = new_element;
+ elements_left--;
+ }
+ }
+ }
+
+ DrawMiniLevel(level_xpos, level_ypos);
+}
+