20130313
[gdash.git] / src / cave / object / caveobjectfill.cpp
blob7e8f0f83a30631b6cd1fdbc4320267aaa5900259
1 /*
2 * Copyright (c) 2007-2013, Czirkos Zoltan http://code.google.com/p/gdash/
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 #include "config.h"
19 #include "cave/object/caveobjectfill.hpp"
21 #include "misc/printf.hpp"
24 /// Create a new fill object.
25 /// @param _start The starting coordinates of the fill.
26 /// @param _fill_element The inside of the area will be filled with this element.
27 CaveFill::CaveFill(CaveObject::Type _type, Coordinate _start, GdElementEnum _fill_element)
28 : CaveObject(_type),
29 start(_start),
30 fill_element(_fill_element)
34 std::string CaveFill::get_coordinates_text() const
36 return SPrintf("%d,%d") % start.x % start.y;
39 void CaveFill::create_drag(Coordinate current, Coordinate displacement)
41 start=current;
44 void CaveFill::move(Coordinate current, Coordinate displacement)
46 if (start==current) /* can only drag by the starting point */
47 start+=displacement;
50 void CaveFill::move(Coordinate displacement)
52 start+=displacement;