aboutsummaryrefslogtreecommitdiff
path: root/common/image-map.cpp
diff options
context:
space:
mode:
authorStephen Kennedy2008-07-09 11:30:49 +0000
committerStephen Kennedy2008-07-09 11:30:49 +0000
commitb035101732407ae7595d80162346f995242654f2 (patch)
tree2be605a7e511c2fcc85e8352587da5a0cae44aa7 /common/image-map.cpp
parentd1bc01b1a9761cf1a45c99b22512b5c42cf3eb5b (diff)
downloadscummvm-rg350-b035101732407ae7595d80162346f995242654f2.tar.gz
scummvm-rg350-b035101732407ae7595d80162346f995242654f2.tar.bz2
scummvm-rg350-b035101732407ae7595d80162346f995242654f2.zip
- keyboard fully tested with multiple modes - key press events successfully passed back to engine, mode switching also works
- added support to re-parse keyboard pack if overlay size changes (to find more suitable layouts) svn-id: r32975
Diffstat (limited to 'common/image-map.cpp')
-rw-r--r--common/image-map.cpp28
1 files changed, 12 insertions, 16 deletions
diff --git a/common/image-map.cpp b/common/image-map.cpp
index 54b4858dd5..f9201618a4 100644
--- a/common/image-map.cpp
+++ b/common/image-map.cpp
@@ -28,10 +28,7 @@
namespace Common {
ImageMap::~ImageMap() {
- HashMap<String, Shape*>::iterator it;
- for (it = _areas.begin(); it != _areas.end(); it++) {
- delete it->_value;
- }
+ removeAllAreas();
}
Rect *ImageMap::createRectArea(const String& id) {
@@ -54,22 +51,21 @@ Polygon *ImageMap::createPolygonArea(const String& id) {
return p;
}
-/*
-void ImageMap::addMapArea(Shape *shape, const String& target) {
- if (_areas.contains(target)) {
- warning("Image map already contains an area with target of '%s'");
+void ImageMap::removeArea(const String& id) {
+ if (!_areas.contains(id))
return;
- }
- _areas[target] = shape;
-}
-void ImageMap::addRectMapArea(const Rect& rect, const String& target) {
- areas.push_back(MapArea(rect, target));
+ delete _areas[id];
+ _areas.erase(id);
}
-void ImageMap::addPolygonMapArea(const Polygon& poly, const String& target) {
- areas.push_back(MapArea(poly, target));
+void ImageMap::removeAllAreas() {
+ HashMap<String, Shape*>::iterator it;
+ for (it = _areas.begin(); it != _areas.end(); it++) {
+ delete it->_value;
+ }
+ _areas.clear();
}
-*/
+
String ImageMap::findMapArea(int16 x, int16 y) {
HashMap<String, Shape*>::iterator it;
for (it = _areas.begin(); it != _areas.end(); it++) {