40 lines
698 B
C++
40 lines
698 B
C++
#include "EditManager.h"
|
|
#include "Window.h"
|
|
#include "edit.h"
|
|
|
|
|
|
EditManager::EditManager(Window *window) {
|
|
this->window = window;
|
|
|
|
mode = VIEW;
|
|
}
|
|
|
|
void EditManager::addRoom() {
|
|
//newRoom = Room();
|
|
mode = ADD;
|
|
|
|
startAddMode();
|
|
|
|
window->update();
|
|
}
|
|
|
|
void EditManager::finishRoom() {
|
|
mode = VIEW;
|
|
|
|
if(getActiveRoom() && getActiveRoom()->size() > 2 && isPolygonOk(getActiveRoom())) {
|
|
getLevel()->push_back(*getActiveRoom());
|
|
setActiveRoom(&getLevel()->back());
|
|
|
|
endAddMode();
|
|
}
|
|
|
|
window->update();
|
|
}
|
|
|
|
void EditManager::addVertex(const Vertex &v) {
|
|
if(mode != ADD || !getActiveRoom())
|
|
return;
|
|
|
|
getActiveRoom()->push_back(v);
|
|
window->update();
|
|
}
|