From 698f901a6d983f3f44b07f6560b1370850483fa0 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 18 Feb 2012 22:13:02 +0000 Subject: Added map entities, added ini file reader. --- src/mapwidget.cc | 50 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) (limited to 'src/mapwidget.cc') diff --git a/src/mapwidget.cc b/src/mapwidget.cc index 0eb745f..32ec3a0 100644 --- a/src/mapwidget.cc +++ b/src/mapwidget.cc @@ -1,21 +1,23 @@ /* mapwidget.cc - This file is part of the Project::OSiRiON zone editor + This file is part of the Project::OSiRiON world editor and is distributed under the terms and conditions of the GNU General Public License version 2 */ -#include +#include "mapwidget.h" +#include "mapentity.h" #include #include +#include namespace editor { MapWidget::MapWidget(QWidget *parent) : QWidget(parent) { - setMinimumSize(256,256); + //setMinimumSize(256,256); // zoom sucks but it works mapwidget_zoom = 16; @@ -30,11 +32,34 @@ void MapWidget::wheelEvent(QWheelEvent *event) else if (mapwidget_zoom > 64) { mapwidget_zoom = 64; } - repaint(); - event->accept(); + + resizeChildren(); + update(); + event->accept(); } } +void MapWidget::resizeChildren() +{ + const float scale = (float) width() / (float) (mapwidget_zoom * 256); + + for (int i = 0; i < mapwidget_enties.size(); ++i) { + MapEntity * entity = mapwidget_enties.at(i); + int iconsize = 12; + int x = width() / 2 + (int) (entity->location(0) * scale) - iconsize /2; + int y = height() / 2 + (int)(entity->location(1) * scale) - iconsize /2; + + entity->setGeometry(x, y, iconsize, iconsize); + //qDebug() << "Moving entity to " << x << " " << y; + } + +} + +void MapWidget::resizeEvent (QResizeEvent *event) +{ + resizeChildren(); +} + void MapWidget::paintEvent(QPaintEvent *event) { QPen pen(Qt::blue, 1, Qt::SolidLine); @@ -68,6 +93,21 @@ void MapWidget::paintEvent(QPaintEvent *event) painter.drawLine(0, y, width(), y); y += gridsize; } + + QWidget::paintEvent(event); +} + +MapEntity *MapWidget::addEntity() +{ + MapEntity *mapentity = new MapEntity(this); + mapwidget_enties.append(mapentity); + + mapentity->show(); + + resizeChildren(); + update(); + + return mapentity; } } -- cgit v1.2.3