mirror of
https://github.com/AquariaOSE/Aquaria.git
synced 2025-02-04 02:24:00 +00:00
Fix some SceneEditor crashes/quirks and remove some dead code in the process.
This commit is contained in:
parent
4d7af56b95
commit
ab74abe903
2 changed files with 47 additions and 429 deletions
|
@ -341,12 +341,6 @@ enum EditorStates
|
||||||
ES_MAX
|
ES_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SelectionType
|
|
||||||
{
|
|
||||||
ST_SINGLE =0,
|
|
||||||
ST_MULTIPLE ,
|
|
||||||
ST_MAX
|
|
||||||
};
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
class EntityClass
|
class EntityClass
|
||||||
|
@ -444,9 +438,6 @@ public:
|
||||||
|
|
||||||
EditTypes editType;
|
EditTypes editType;
|
||||||
EditorStates state;
|
EditorStates state;
|
||||||
Quad *target;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Element *getElementAtCursor();
|
Element *getElementAtCursor();
|
||||||
Entity *getEntityAtCursor();
|
Entity *getEntityAtCursor();
|
||||||
|
@ -459,7 +450,6 @@ public:
|
||||||
Element *editingElement;
|
Element *editingElement;
|
||||||
Entity *editingEntity;
|
Entity *editingEntity;
|
||||||
Path *editingPath;
|
Path *editingPath;
|
||||||
SelectionType selectionType;
|
|
||||||
|
|
||||||
void toggleWarpAreaRender();
|
void toggleWarpAreaRender();
|
||||||
int selectedIdx;
|
int selectedIdx;
|
||||||
|
@ -521,19 +511,15 @@ protected:
|
||||||
void editModeElements();
|
void editModeElements();
|
||||||
void editModeEntities();
|
void editModeEntities();
|
||||||
void editModePaths();
|
void editModePaths();
|
||||||
int selectedType, possibleSelectedType;
|
|
||||||
|
|
||||||
void deleteSelected();
|
void deleteSelected();
|
||||||
void cloneSelectedElement();
|
void cloneSelectedElement();
|
||||||
void cloneSelectedElementInput();
|
|
||||||
void enterScaleState();
|
void enterScaleState();
|
||||||
void enterRotateState();
|
void enterRotateState();
|
||||||
void enterMoveState();
|
void enterMoveState();
|
||||||
|
|
||||||
Vector oldPosition, oldRotation, oldScale, cursorOffset;
|
Vector oldPosition, oldRotation, oldScale, cursorOffset;
|
||||||
|
|
||||||
RenderObject *getSelectedRenderObject();
|
|
||||||
|
|
||||||
Entity *movingEntity;
|
Entity *movingEntity;
|
||||||
void updateDrawingWarpArea(char c, int k);
|
void updateDrawingWarpArea(char c, int k);
|
||||||
char drawingWarpArea;
|
char drawingWarpArea;
|
||||||
|
|
|
@ -574,20 +574,12 @@ void SceneEditor::init()
|
||||||
selectedElements.clear();
|
selectedElements.clear();
|
||||||
autoSaveTimer = 0;
|
autoSaveTimer = 0;
|
||||||
skinMinX = skinMinY = skinMaxX = skinMaxY = -1;
|
skinMinX = skinMinY = skinMaxX = skinMaxY = -1;
|
||||||
selectionType = ST_SINGLE;
|
|
||||||
editingElement = 0;
|
editingElement = 0;
|
||||||
editingEntity = 0;
|
editingEntity = 0;
|
||||||
pathRender = new PathRender();
|
pathRender = new PathRender();
|
||||||
core->getTopStateData()->addRenderObject(pathRender, LR_DEBUG_TEXT);
|
core->getTopStateData()->addRenderObject(pathRender, LR_DEBUG_TEXT);
|
||||||
pathRender->alpha = 0;
|
pathRender->alpha = 0;
|
||||||
|
|
||||||
selectedType = -1;
|
|
||||||
possibleSelectedType = -1;
|
|
||||||
|
|
||||||
target = new Quad;
|
|
||||||
//target->setTexture("target");
|
|
||||||
core->getTopStateData()->addRenderObject(target, LR_HUD);
|
|
||||||
target->alpha = 0;
|
|
||||||
editType = ET_ELEMENTS;
|
editType = ET_ELEMENTS;
|
||||||
state = ES_SELECTING;
|
state = ES_SELECTING;
|
||||||
drawingWarpArea = 'N';
|
drawingWarpArea = 'N';
|
||||||
|
@ -1026,7 +1018,6 @@ void SceneEditor::moveToBack()
|
||||||
void SceneEditor::editModeElements()
|
void SceneEditor::editModeElements()
|
||||||
{
|
{
|
||||||
selectedIdx = -1;
|
selectedIdx = -1;
|
||||||
target->alpha.interpolateTo(0, 0.5);
|
|
||||||
editType = ET_ELEMENTS;
|
editType = ET_ELEMENTS;
|
||||||
if (curElement < dsq->game->elementTemplates.size())
|
if (curElement < dsq->game->elementTemplates.size())
|
||||||
{
|
{
|
||||||
|
@ -1035,6 +1026,8 @@ void SceneEditor::editModeElements()
|
||||||
}
|
}
|
||||||
placer->alpha = 0.5;
|
placer->alpha = 0.5;
|
||||||
pathRender->alpha = 0;
|
pathRender->alpha = 0;
|
||||||
|
editingEntity = NULL;
|
||||||
|
editingPath = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SceneEditor::editModeEntities()
|
void SceneEditor::editModeEntities()
|
||||||
|
@ -1048,15 +1041,20 @@ void SceneEditor::editModeEntities()
|
||||||
placer->setTexture(selectedEntity.prevGfx);
|
placer->setTexture(selectedEntity.prevGfx);
|
||||||
placer->alpha = 0.5;
|
placer->alpha = 0.5;
|
||||||
pathRender->alpha = 0;
|
pathRender->alpha = 0;
|
||||||
|
selectedElements.clear();
|
||||||
|
editingElement = NULL;
|
||||||
|
editingPath = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SceneEditor::editModePaths()
|
void SceneEditor::editModePaths()
|
||||||
{
|
{
|
||||||
selectedIdx = -1;
|
selectedIdx = -1;
|
||||||
target->alpha.interpolateTo(0, 0.5);
|
|
||||||
editType = ET_PATHS;
|
editType = ET_PATHS;
|
||||||
placer->alpha = 0;
|
placer->alpha = 0;
|
||||||
pathRender->alpha = 0.5;
|
pathRender->alpha = 0.5;
|
||||||
|
selectedElements.clear();
|
||||||
|
editingElement = NULL;
|
||||||
|
editingEntity = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
Element *SceneEditor::getElementAtCursor()
|
Element *SceneEditor::getElementAtCursor()
|
||||||
|
@ -1128,23 +1126,6 @@ void SceneEditor::deleteSelected()
|
||||||
editingElement = 0;
|
editingElement = 0;
|
||||||
dsq->game->reconstructGrid();
|
dsq->game->reconstructGrid();
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
RenderObject *r = getSelectedRenderObject();
|
|
||||||
if (r)
|
|
||||||
{
|
|
||||||
if (dynamic_cast<Element*>(r))
|
|
||||||
{
|
|
||||||
deleteSelectedElement();
|
|
||||||
}
|
|
||||||
Entity *ent = 0;
|
|
||||||
if (ent=dynamic_cast<Entity*>(r))
|
|
||||||
{
|
|
||||||
dsq->game->removeEntity(ent);
|
|
||||||
//removeEntity();
|
|
||||||
}
|
|
||||||
selectedIdx = -1;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
else if (editType == ET_ENTITIES)
|
else if (editType == ET_ENTITIES)
|
||||||
{
|
{
|
||||||
|
@ -1218,23 +1199,6 @@ void SceneEditor::updateSaveFileEnemyPosition(Entity *ent)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RenderObject *SceneEditor::getSelectedRenderObject()
|
|
||||||
{
|
|
||||||
if (editType == ET_ELEMENTS)
|
|
||||||
{
|
|
||||||
if (selectedIdx > -1)
|
|
||||||
{
|
|
||||||
if (selectedType == 0)
|
|
||||||
return dsq->getElement(selectedIdx);
|
|
||||||
/*
|
|
||||||
else if (selectedType == 1)
|
|
||||||
return dsq->entities[selectedIdx];
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SceneEditor::checkForRebuild()
|
void SceneEditor::checkForRebuild()
|
||||||
{
|
{
|
||||||
if (editType == ET_ELEMENTS && state != ES_SELECTING && !selectedElements.empty())
|
if (editType == ET_ELEMENTS && state != ES_SELECTING && !selectedElements.empty())
|
||||||
|
@ -1276,14 +1240,6 @@ void SceneEditor::exitMoveState()
|
||||||
|
|
||||||
void SceneEditor::enterMoveState()
|
void SceneEditor::enterMoveState()
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
if (editType == ET_ELEMENTS && state == ES_SELECTING && selectedIdx > -1)
|
|
||||||
{
|
|
||||||
state = ES_MOVING;
|
|
||||||
oldPosition = getSelectedRenderObject()->position;
|
|
||||||
cursorOffset = getSelectedRenderObject()->position - dsq->getGameCursorPosition();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
if (state != ES_SELECTING) return;
|
if (state != ES_SELECTING) return;
|
||||||
state = ES_MOVING;
|
state = ES_MOVING;
|
||||||
if (editType == ET_ELEMENTS)
|
if (editType == ET_ELEMENTS)
|
||||||
|
@ -1324,16 +1280,6 @@ void SceneEditor::enterMoveState()
|
||||||
|
|
||||||
void SceneEditor::enterRotateState()
|
void SceneEditor::enterRotateState()
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
if (editType == ET_ELEMENTS && state == ES_SELECTING && selectedIdx > -1)
|
|
||||||
{
|
|
||||||
state = ES_ROTATING;
|
|
||||||
oldRotation = getSelectedRenderObject()->rotation;
|
|
||||||
//cursorOffset = getSelectedRenderObject()->position - dsq->getGameCursorPosition();
|
|
||||||
//cursorOffset = Vector(0,0);
|
|
||||||
cursorOffset = dsq->getGameCursorPosition();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
if (state != ES_SELECTING) return;
|
if (state != ES_SELECTING) return;
|
||||||
if (editType == ET_ENTITIES)
|
if (editType == ET_ENTITIES)
|
||||||
{
|
{
|
||||||
|
@ -1365,8 +1311,6 @@ void SceneEditor::enterRotateState()
|
||||||
{
|
{
|
||||||
state = ES_ROTATING;
|
state = ES_ROTATING;
|
||||||
oldRotation = editingElement->rotation;
|
oldRotation = editingElement->rotation;
|
||||||
//cursorOffset = getSelectedRenderObject()->position - dsq->getGameCursorPosition();
|
|
||||||
//cursorOffset = Vector(0,0);
|
|
||||||
cursorOffset = dsq->getGameCursorPosition();
|
cursorOffset = dsq->getGameCursorPosition();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1374,15 +1318,6 @@ void SceneEditor::enterRotateState()
|
||||||
|
|
||||||
void SceneEditor::enterScaleState()
|
void SceneEditor::enterScaleState()
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
if (editType == ET_ELEMENTS && state == ES_SELECTING && selectedIdx > -1)
|
|
||||||
{
|
|
||||||
state = ES_SCALING;
|
|
||||||
oldScale = getSelectedRenderObject()->scale;
|
|
||||||
//cursorOffset = getSelectedRenderObject()->position - dsq->getGameCursorPosition();
|
|
||||||
cursorOffset = dsq->getGameCursorPosition();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
if (state != ES_SELECTING) return;
|
if (state != ES_SELECTING) return;
|
||||||
if (editType == ET_ELEMENTS)
|
if (editType == ET_ELEMENTS)
|
||||||
{
|
{
|
||||||
|
@ -1523,41 +1458,11 @@ void SceneEditor::mouseButtonRightUp()
|
||||||
//dsq->game->reconstructGrid();
|
//dsq->game->reconstructGrid();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
void SceneEditor::toggleElementFlag1()
|
|
||||||
{
|
|
||||||
if (editingElement)
|
|
||||||
{
|
|
||||||
editingElement->setFlag("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void SceneEditor::toggleElementFlag2()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void SceneEditor::toggleElementFlag3()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void SceneEditor::toggleElementFlag4()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void SceneEditor::toggleElementFlag5()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
void SceneEditor::toggleElementSolid()
|
void SceneEditor::toggleElementSolid()
|
||||||
{
|
{
|
||||||
if (editingElement)
|
if (editingElement)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
TileVector t(editingElement->position);
|
|
||||||
editingElement->position = t.worldVector();
|
|
||||||
*/
|
|
||||||
|
|
||||||
switch(editingElement->elementFlag)
|
switch(editingElement->elementFlag)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
|
@ -1623,35 +1528,6 @@ void SceneEditor::mouseButtonLeft()
|
||||||
enterMoveState();
|
enterMoveState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
if (!selectedElements.empty())
|
|
||||||
{
|
|
||||||
enterMoveState();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
if (state == ES_MOVING || state == ES_ROTATING || state == ES_SCALING)
|
|
||||||
{
|
|
||||||
if (selectedIdx != -1)
|
|
||||||
{
|
|
||||||
if (selectedType == 1)
|
|
||||||
{
|
|
||||||
RenderObject *r = getSelectedRenderObject();
|
|
||||||
Entity *e = dynamic_cast<Entity*>(r);
|
|
||||||
if (e)
|
|
||||||
{
|
|
||||||
updateSaveFileEnemyPosition(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
state = ES_SELECTING;
|
|
||||||
//selectedIdx = -1;
|
|
||||||
}
|
|
||||||
else if (state == ES_SELECTING)
|
|
||||||
{
|
|
||||||
placeElement();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
else if (editType == ET_ENTITIES)
|
else if (editType == ET_ENTITIES)
|
||||||
{
|
{
|
||||||
|
@ -1685,29 +1561,6 @@ void SceneEditor::mouseButtonLeft()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
else if (selectedIdx != -1)
|
|
||||||
{
|
|
||||||
if (selectedIdx >= 0 && selectedIdx < dsq->game->getNumPaths())
|
|
||||||
{
|
|
||||||
Path *p = dsq->game->getPath(selectedIdx);
|
|
||||||
PathNode n;
|
|
||||||
n.position = dsq->getGameCursorPosition();
|
|
||||||
p->nodes.push_back(n);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (selectedIdx != -1)
|
|
||||||
{
|
|
||||||
if (selectedIdx >= 0 && selectedIdx < dsq->game->getNumPaths())
|
|
||||||
{
|
|
||||||
Path *p = dsq->game->getPath(selectedIdx);
|
|
||||||
p->nodes[selectedNode] =
|
|
||||||
PathNode n;
|
|
||||||
n.position = dsq->getGameCursorPosition();
|
|
||||||
p->nodes.push_back(n);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1746,27 +1599,6 @@ void SceneEditor::mouseButtonRight()
|
||||||
else
|
else
|
||||||
enterRotateState();
|
enterRotateState();
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
switch(state)
|
|
||||||
{
|
|
||||||
case ES_SELECTING:
|
|
||||||
selectedType = possibleSelectedType;
|
|
||||||
selectedIdx = possibleSelectedIdx;
|
|
||||||
break;
|
|
||||||
case ES_MOVING:
|
|
||||||
getSelectedRenderObject()->position = oldPosition;
|
|
||||||
state = ES_SELECTING;
|
|
||||||
break;
|
|
||||||
case ES_ROTATING:
|
|
||||||
getSelectedRenderObject()->rotation = oldRotation;
|
|
||||||
state = ES_SELECTING;
|
|
||||||
break;
|
|
||||||
case ES_SCALING:
|
|
||||||
getSelectedRenderObject()->scale = oldScale;
|
|
||||||
state = ES_SELECTING;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
if (editType == ET_ELEMENTS && state == ES_MOVING)
|
if (editType == ET_ELEMENTS && state == ES_MOVING)
|
||||||
{
|
{
|
||||||
|
@ -1875,11 +1707,6 @@ void SceneEditor::skinLevel(pngRawInfo *png, int minX, int minY, int maxX, int m
|
||||||
{
|
{
|
||||||
e->safeKill();
|
e->safeKill();
|
||||||
deleteElements.push_back(e);
|
deleteElements.push_back(e);
|
||||||
/*
|
|
||||||
e->setLife(0.1);
|
|
||||||
e->setDecayRate(1);
|
|
||||||
deleteElements.push_back(e);
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (i = 0; i < deleteElements.size(); i++)
|
for (i = 0; i < deleteElements.size(); i++)
|
||||||
|
@ -2260,14 +2087,6 @@ void SceneEditor::generateLevel()
|
||||||
}
|
}
|
||||||
|
|
||||||
dsq->game->addObsRow(rows[i].x1/TILE_SIZE, rows[i].y/TILE_SIZE, w/TILE_SIZE);
|
dsq->game->addObsRow(rows[i].x1/TILE_SIZE, rows[i].y/TILE_SIZE, w/TILE_SIZE);
|
||||||
/*
|
|
||||||
BoxElement *box = new BoxElement(w,h);
|
|
||||||
|
|
||||||
box->position = Vector(rows[i].x1 + int(w/2), useY);
|
|
||||||
box->position.z = boxElementZ;
|
|
||||||
dsq->game->addRenderObject(box, BLACKGROUND);
|
|
||||||
dsq->elements.push_back(box);
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dsq->game->reconstructGrid(true);
|
dsq->game->reconstructGrid(true);
|
||||||
|
@ -2358,6 +2177,9 @@ void SceneEditor::scaleElement1()
|
||||||
|
|
||||||
void SceneEditor::flipElementHorz()
|
void SceneEditor::flipElementHorz()
|
||||||
{
|
{
|
||||||
|
if (editType != ET_ELEMENTS)
|
||||||
|
return;
|
||||||
|
|
||||||
if (editingElement)
|
if (editingElement)
|
||||||
editingElement->flipHorizontal();
|
editingElement->flipHorizontal();
|
||||||
else
|
else
|
||||||
|
@ -2366,6 +2188,9 @@ void SceneEditor::flipElementHorz()
|
||||||
|
|
||||||
void SceneEditor::flipElementVert()
|
void SceneEditor::flipElementVert()
|
||||||
{
|
{
|
||||||
|
if (editType != ET_ELEMENTS)
|
||||||
|
return;
|
||||||
|
|
||||||
if (editingElement)
|
if (editingElement)
|
||||||
editingElement->flipVertical();
|
editingElement->flipVertical();
|
||||||
else
|
else
|
||||||
|
@ -2687,8 +2512,6 @@ void prevEntityPage()
|
||||||
createEntityPage();
|
createEntityPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
//page = game->entityGroups.begin();
|
|
||||||
|
|
||||||
void SceneEditor::selectEntityFromGroups()
|
void SceneEditor::selectEntityFromGroups()
|
||||||
{
|
{
|
||||||
createEntityPage();
|
createEntityPage();
|
||||||
|
@ -2697,24 +2520,11 @@ void SceneEditor::selectEntityFromGroups()
|
||||||
se_changedEntityType = false;
|
se_changedEntityType = false;
|
||||||
editType = ET_SELECTENTITY;
|
editType = ET_SELECTENTITY;
|
||||||
|
|
||||||
|
|
||||||
//bool done = false;
|
|
||||||
//bool mbrd = false;
|
|
||||||
bool mbld = false;
|
bool mbld = false;
|
||||||
bool ld = false, rd = false;
|
bool ld = false, rd = false;
|
||||||
ld = core->getKeyState(KEY_E);
|
ld = core->getKeyState(KEY_E);
|
||||||
while (!se_changedEntityType)
|
while (!se_changedEntityType)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
if (core->mouse.buttons.right && !mbrd)
|
|
||||||
mbrd = true;
|
|
||||||
else if (!core->mouse.buttons.right && mbrd)
|
|
||||||
{
|
|
||||||
mbrd = false;
|
|
||||||
nextEntityPage();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (core->mouse.buttons.left && !mbld)
|
if (core->mouse.buttons.left && !mbld)
|
||||||
mbld = true;
|
mbld = true;
|
||||||
else if (!core->mouse.buttons.left && mbld)
|
else if (!core->mouse.buttons.left && mbld)
|
||||||
|
@ -2831,26 +2641,7 @@ void SceneEditor::nextElement()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (editType == ET_ENTITIES)
|
if (editType == ET_ELEMENTS)
|
||||||
{
|
|
||||||
/*
|
|
||||||
if (editingEntity)
|
|
||||||
{
|
|
||||||
// swap entity type up (somehow)
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
curEntity++;
|
|
||||||
|
|
||||||
if (curEntity >= dsq->game->entityTypeList.size())
|
|
||||||
curEntity = 0;
|
|
||||||
|
|
||||||
updateEntityPlacer();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
else if (editType == ET_ELEMENTS)
|
|
||||||
{
|
{
|
||||||
if (dsq->game->elementTemplates.empty()) return;
|
if (dsq->game->elementTemplates.empty()) return;
|
||||||
if (core->getCtrlState())
|
if (core->getCtrlState())
|
||||||
|
@ -2888,7 +2679,6 @@ void SceneEditor::nextElement()
|
||||||
|
|
||||||
if (dsq->game->elementTemplates[curElement].idx < 1024)
|
if (dsq->game->elementTemplates[curElement].idx < 1024)
|
||||||
{
|
{
|
||||||
//int idx = dsq->game->elementTemplates[curElement].idx;
|
|
||||||
placer->setTexture(dsq->game->elementTemplates[curElement].gfx);
|
placer->setTexture(dsq->game->elementTemplates[curElement].gfx);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2912,28 +2702,8 @@ void SceneEditor::prevElement()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (editType == ET_ENTITIES)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
if (editingEntity)
|
|
||||||
{
|
|
||||||
// swap entity type up (somehow)
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
curEntity--;
|
|
||||||
|
|
||||||
if (curEntity < 0)
|
if (editType == ET_ELEMENTS)
|
||||||
curEntity = dsq->game->entityTypeList.size()-1;
|
|
||||||
|
|
||||||
updateEntityPlacer();
|
|
||||||
|
|
||||||
|
|
||||||
//dsq->game->entityTypeList
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
else if (editType == ET_ELEMENTS)
|
|
||||||
{
|
{
|
||||||
if (dsq->game->elementTemplates.empty()) return;
|
if (dsq->game->elementTemplates.empty()) return;
|
||||||
if (!selectedElements.empty())
|
if (!selectedElements.empty())
|
||||||
|
@ -2967,7 +2737,6 @@ void SceneEditor::doPrevElement()
|
||||||
|
|
||||||
if (dsq->game->elementTemplates[curElement].idx < 1024)
|
if (dsq->game->elementTemplates[curElement].idx < 1024)
|
||||||
{
|
{
|
||||||
//int idx = dsq->game->elementTemplates[curElement].idx;
|
|
||||||
placer->setTexture(dsq->game->elementTemplates[curElement].gfx);
|
placer->setTexture(dsq->game->elementTemplates[curElement].gfx);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2997,29 +2766,6 @@ void SceneEditor::moveLayer()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
int realLayer1 = LR_ELEMENTS1 + fromLayer, realLayer2 = LR_ELEMENTS1 + toLayer;
|
|
||||||
std::vector<RenderObject*> move;
|
|
||||||
for (int i = 0; i < dsq->renderObjectLayers[realLayer1].renderObjects.size(); i++)
|
|
||||||
{
|
|
||||||
RenderObject *r = dsq->renderObjectLayers[realLayer1].renderObjects[i];
|
|
||||||
if (r)
|
|
||||||
{
|
|
||||||
move.push_back(r);
|
|
||||||
core->removeRenderObject(r, Core::DO_NOT_DESTROY_RENDER_OBJECT);
|
|
||||||
//dsq->renderObjectLayers[realLayer1].renderObjects[i] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (int i = 0; i < move.size(); i++)
|
|
||||||
{
|
|
||||||
RenderObject *r = move[i];
|
|
||||||
if (r)
|
|
||||||
{
|
|
||||||
r->layer = realLayer2;
|
|
||||||
dsq->addRenderObject(r, realLayer2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3070,8 +2816,6 @@ void SceneEditor::placeElement()
|
||||||
{
|
{
|
||||||
if (!core->getShiftState() && !core->getKeyState(KEY_LALT) && !drawingBox)
|
if (!core->getShiftState() && !core->getKeyState(KEY_LALT) && !drawingBox)
|
||||||
{
|
{
|
||||||
//errorLog("placeElement");
|
|
||||||
|
|
||||||
dsq->game->createElement(dsq->game->elementTemplates[curElement].idx, placer->position, bgLayer, placer);
|
dsq->game->createElement(dsq->game->elementTemplates[curElement].idx, placer->position, bgLayer, placer);
|
||||||
updateText();
|
updateText();
|
||||||
dsq->game->reconstructGrid();
|
dsq->game->reconstructGrid();
|
||||||
|
@ -3104,29 +2848,10 @@ void SceneEditor::placeElement()
|
||||||
{
|
{
|
||||||
p->addNode(selectedNode);
|
p->addNode(selectedNode);
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
if (selectedIdx >= 0 && selectedIdx < dsq->game->getNumPaths())
|
|
||||||
{
|
|
||||||
Path *p = dsq->game->getPath(selectedIdx);
|
|
||||||
PathNode n;
|
|
||||||
n.position = dsq->getGameCursorPosition();
|
|
||||||
p->nodes.push_back(n);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SceneEditor::cloneSelectedElementInput()
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
if (core->getShiftState())
|
|
||||||
{
|
|
||||||
cloneSelectedElement();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
void SceneEditor::cloneSelectedElement()
|
void SceneEditor::cloneSelectedElement()
|
||||||
{
|
{
|
||||||
if (editType == ET_ELEMENTS)
|
if (editType == ET_ELEMENTS)
|
||||||
|
@ -3180,15 +2905,6 @@ void SceneEditor::cloneSelectedElement()
|
||||||
newp->init();
|
newp->init();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
if (selectedIdx > -1)
|
|
||||||
{
|
|
||||||
Element *e1 = dsq->elements[selectedIdx];
|
|
||||||
Element *e = dsq->game->createElement(e1->templateIdx, placer->position, e1->layer-LR_ELEMENTS1, getSelectedRenderObject());
|
|
||||||
selectedIdx = dsq->elements.size()-1;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SceneEditor::shutdown()
|
void SceneEditor::shutdown()
|
||||||
|
@ -3265,7 +2981,6 @@ void SceneEditor::toggle(bool on)
|
||||||
text->alpha.interpolateTo(0, 0.2);
|
text->alpha.interpolateTo(0, 0.2);
|
||||||
placer->alpha.interpolateTo(0, 0.2);
|
placer->alpha.interpolateTo(0, 0.2);
|
||||||
//core->flags.unset(CF_CLEARBUFFERS);
|
//core->flags.unset(CF_CLEARBUFFERS);
|
||||||
target->alpha = 0;
|
|
||||||
dsq->darkLayer.toggle(true);
|
dsq->darkLayer.toggle(true);
|
||||||
|
|
||||||
dsq->game->rebuildElementUpdateList();
|
dsq->game->rebuildElementUpdateList();
|
||||||
|
@ -3400,14 +3115,6 @@ void SceneEditor::endDrawingWarpArea(char c)
|
||||||
a.sceneName = dsq->getUserInputString("Enter map to warp to");
|
a.sceneName = dsq->getUserInputString("Enter map to warp to");
|
||||||
a.spawnOffset = dsq->getUserInputDirection("Enter warp direction");
|
a.spawnOffset = dsq->getUserInputDirection("Enter warp direction");
|
||||||
dsq->game->warpAreas.push_back(a);
|
dsq->game->warpAreas.push_back(a);
|
||||||
/*
|
|
||||||
BoxElement *boxElement = new BoxElement(boxPromo->width.getValue(), boxPromo->height.getValue());
|
|
||||||
boxElement->position = boxPromo->position;
|
|
||||||
boxElement->position.z = boxElementZ;
|
|
||||||
dsq->game->addRenderObject(boxElement, BLACKGROUND);
|
|
||||||
dsq->elements.push_back(boxElement);
|
|
||||||
dsq->game->reconstructGrid();
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3482,9 +3189,6 @@ void SceneEditor::update(float dt)
|
||||||
Vector p = Vector(cursorTile.x*TILE_SIZE+TILE_SIZE/2, cursorTile.y*TILE_SIZE+TILE_SIZE/2);
|
Vector p = Vector(cursorTile.x*TILE_SIZE+TILE_SIZE/2, cursorTile.y*TILE_SIZE+TILE_SIZE/2);
|
||||||
placer->position = p;
|
placer->position = p;
|
||||||
|
|
||||||
|
|
||||||
//selectedIdx = idx;
|
|
||||||
|
|
||||||
int camSpeed = 500/zoom.x;
|
int camSpeed = 500/zoom.x;
|
||||||
if (core->getShiftState())
|
if (core->getShiftState())
|
||||||
camSpeed = 5000/zoom.x;
|
camSpeed = 5000/zoom.x;
|
||||||
|
@ -3533,19 +3237,6 @@ void SceneEditor::update(float dt)
|
||||||
dsq->cameraPos.y += mouseY/oldZoom.y - mouseY/zoom.y;
|
dsq->cameraPos.y += mouseY/oldZoom.y - mouseY/zoom.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
for (int i = 0; i < dsq->elements.size(); i++)
|
|
||||||
{
|
|
||||||
//dsq->elements[i]->flags.unset(RO_RENDERBORDERS);
|
|
||||||
dsq->elements[i]->renderBorders = false;
|
|
||||||
}
|
|
||||||
RenderObject *r;
|
|
||||||
if (r = getSelectedRenderObject())
|
|
||||||
{
|
|
||||||
//r->flags.set(RO_RENDERBORDERS);
|
|
||||||
r->renderBorders = true;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
if (this->editType == ET_PATHS)
|
if (this->editType == ET_PATHS)
|
||||||
{
|
{
|
||||||
switch(state)
|
switch(state)
|
||||||
|
@ -3573,11 +3264,12 @@ void SceneEditor::update(float dt)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ES_SCALING:
|
case ES_SCALING:
|
||||||
|
{
|
||||||
|
if (editingPath)
|
||||||
{
|
{
|
||||||
float factor = 1;
|
float factor = 1;
|
||||||
Vector add = Vector((dsq->getGameCursorPosition().x - cursorOffset.x)*factor,
|
Vector add = Vector((dsq->getGameCursorPosition().x - cursorOffset.x)*factor,
|
||||||
(dsq->getGameCursorPosition().y - cursorOffset.y)*factor);
|
(dsq->getGameCursorPosition().y - cursorOffset.y)*factor);
|
||||||
//editingElement->scale=oldScale + add;
|
|
||||||
Vector sz = oldScale + add;
|
Vector sz = oldScale + add;
|
||||||
if (sz.x < 32)
|
if (sz.x < 32)
|
||||||
sz.x = 32;
|
sz.x = 32;
|
||||||
|
@ -3588,8 +3280,10 @@ void SceneEditor::update(float dt)
|
||||||
editingPath->rect.y1 = -sz.y/2;
|
editingPath->rect.y1 = -sz.y/2;
|
||||||
editingPath->rect.y2 = sz.y/2;
|
editingPath->rect.y2 = sz.y/2;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case ES_MOVING:
|
case ES_MOVING:
|
||||||
|
if (selectedIdx >= 0)
|
||||||
dsq->game->getPath(selectedIdx)->nodes[selectedNode].position = dsq->getGameCursorPosition() + cursorOffset;
|
dsq->game->getPath(selectedIdx)->nodes[selectedNode].position = dsq->getGameCursorPosition() + cursorOffset;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -3599,16 +3293,12 @@ void SceneEditor::update(float dt)
|
||||||
switch(state)
|
switch(state)
|
||||||
{
|
{
|
||||||
case ES_MOVING:
|
case ES_MOVING:
|
||||||
|
if (editingEntity)
|
||||||
editingEntity->position = dsq->getGameCursorPosition() + cursorOffset;
|
editingEntity->position = dsq->getGameCursorPosition() + cursorOffset;
|
||||||
/*
|
|
||||||
if (core->getShiftState())
|
|
||||||
{
|
|
||||||
TileVector t(getSelectedRenderObject()->position);
|
|
||||||
getSelectedRenderObject()->position = t.worldVector();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
break;
|
break;
|
||||||
case ES_ROTATING:
|
case ES_ROTATING:
|
||||||
|
{
|
||||||
|
if (editingEntity)
|
||||||
{
|
{
|
||||||
float add = (dsq->getGameCursorPosition().x - cursorOffset.x)/2.4f;
|
float add = (dsq->getGameCursorPosition().x - cursorOffset.x)/2.4f;
|
||||||
if (core->getCtrlState())
|
if (core->getCtrlState())
|
||||||
|
@ -3624,6 +3314,7 @@ void SceneEditor::update(float dt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if (editType == ET_ELEMENTS)
|
else if (editType == ET_ELEMENTS)
|
||||||
{
|
{
|
||||||
switch(state)
|
switch(state)
|
||||||
|
@ -3640,37 +3331,12 @@ void SceneEditor::update(float dt)
|
||||||
{
|
{
|
||||||
closest = len;
|
closest = len;
|
||||||
idx = i;
|
idx = i;
|
||||||
possibleSelectedType = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
FOR_ENTITIES(i)
|
|
||||||
{
|
|
||||||
Entity *e = *i;
|
|
||||||
Vector dist = e->position - dsq->getGameCursorPosition();
|
|
||||||
int len = dist.getSquaredLength2D();
|
|
||||||
if ((len < closest || closest == -1))
|
|
||||||
{
|
|
||||||
closest = len;
|
|
||||||
idx = i;
|
|
||||||
possibleSelectedType = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
possibleSelectedIdx = idx;
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ES_MOVING:
|
case ES_MOVING:
|
||||||
updateSelectedElementPosition(dsq->getGameCursorPosition() - cursorOffset);
|
updateSelectedElementPosition(dsq->getGameCursorPosition() - cursorOffset);
|
||||||
/*
|
|
||||||
if (core->getShiftState())
|
|
||||||
{
|
|
||||||
TileVector t(getSelectedRenderObject()->position);
|
|
||||||
getSelectedRenderObject()->position = t.worldVector();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
break;
|
break;
|
||||||
case ES_ROTATING:
|
case ES_ROTATING:
|
||||||
{
|
{
|
||||||
|
@ -3808,20 +3474,6 @@ void SceneEditor::update(float dt)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RenderObject *r = getSelectedRenderObject();
|
|
||||||
if (r)
|
|
||||||
{
|
|
||||||
target->position = r->position;
|
|
||||||
target->alpha = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
target->alpha = 0;
|
|
||||||
/*
|
|
||||||
if (movingEntity)
|
|
||||||
{
|
|
||||||
movingEntity->position = dsq->getGameCursorPosition();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3836,16 +3488,6 @@ void SceneEditor::nextEntityType()
|
||||||
exitMoveState();
|
exitMoveState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (editType == ET_ENTITIES)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
selectedEntityType++;
|
|
||||||
if (selectedEntityType>=dsq->game->entityTypeList.size())
|
|
||||||
{
|
|
||||||
selectedEntityType = 0;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
else if (editType == ET_SELECTENTITY)
|
else if (editType == ET_SELECTENTITY)
|
||||||
{
|
{
|
||||||
nextEntityPage();
|
nextEntityPage();
|
||||||
|
@ -3863,16 +3505,6 @@ void SceneEditor::prevEntityType()
|
||||||
exitMoveState();
|
exitMoveState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (editType == ET_ENTITIES)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
selectedEntityType --;
|
|
||||||
if (selectedEntityType < 0)
|
|
||||||
{
|
|
||||||
selectedEntityType = dsq->game->entityTypeList.size()-1;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
else if (editType == ET_SELECTENTITY)
|
else if (editType == ET_SELECTENTITY)
|
||||||
{
|
{
|
||||||
prevEntityPage();
|
prevEntityPage();
|
||||||
|
|
Loading…
Add table
Reference in a new issue