diff --git a/Editor/editing/_scenes/level/items/item_bgo.h b/Editor/editing/_scenes/level/items/item_bgo.h index ea1c325ee..9f2f836aa 100644 --- a/Editor/editing/_scenes/level/items/item_bgo.h +++ b/Editor/editing/_scenes/level/items/item_bgo.h @@ -32,7 +32,7 @@ class ItemBGO : public LvlBaseItem public: ItemBGO(QGraphicsItem *parent = nullptr); ItemBGO(LvlScene *parentScene, QGraphicsItem *parent = nullptr); - ~ItemBGO(); + virtual ~ItemBGO(); void setBGOData(LevelBGO inD, obj_bgo *mergedSet = nullptr, long *animator_id = nullptr); diff --git a/Editor/editing/_scenes/level/items/item_block.h b/Editor/editing/_scenes/level/items/item_block.h index e170ac55d..23e97bd70 100644 --- a/Editor/editing/_scenes/level/items/item_block.h +++ b/Editor/editing/_scenes/level/items/item_block.h @@ -32,7 +32,7 @@ class ItemBlock : public LvlBaseItem public: ItemBlock(LvlScene *parentScene, QGraphicsItem *parent = nullptr); ItemBlock(QGraphicsItem *parent = nullptr); - ~ItemBlock(); + virtual ~ItemBlock(); void setMainPixmap(/*const QPixmap &pixmap*/); void setBlockData(LevelBlock inD, obj_block *mergedSet = nullptr, long *animator = nullptr); diff --git a/Editor/editing/_scenes/level/items/item_door.h b/Editor/editing/_scenes/level/items/item_door.h index c50c0e5de..c183d74ff 100644 --- a/Editor/editing/_scenes/level/items/item_door.h +++ b/Editor/editing/_scenes/level/items/item_door.h @@ -32,7 +32,7 @@ class ItemDoor : public LvlBaseItem public: ItemDoor(QGraphicsItem *parent = nullptr); ItemDoor(LvlScene *parentScene, QGraphicsItem *parent = nullptr); - ~ItemDoor(); + virtual ~ItemDoor(); void setDoorData(LevelDoor inD, int doorDir, bool init = false); void setScenePoint(LvlScene *theScene); diff --git a/Editor/editing/_scenes/level/items/item_playerpoint.h b/Editor/editing/_scenes/level/items/item_playerpoint.h index 05c8f1509..b8b9eedc9 100644 --- a/Editor/editing/_scenes/level/items/item_playerpoint.h +++ b/Editor/editing/_scenes/level/items/item_playerpoint.h @@ -32,7 +32,7 @@ class ItemPlayerPoint : public LvlBaseItem public: explicit ItemPlayerPoint(QGraphicsItem *parent = nullptr); explicit ItemPlayerPoint(LvlScene *parentScene, QGraphicsItem *parent = nullptr); - ~ItemPlayerPoint(); + virtual ~ItemPlayerPoint(); QRectF boundingRect() const; void paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *); diff --git a/Editor/editing/_scenes/level/items/item_water.h b/Editor/editing/_scenes/level/items/item_water.h index cf2e2bb1c..046d8b17b 100644 --- a/Editor/editing/_scenes/level/items/item_water.h +++ b/Editor/editing/_scenes/level/items/item_water.h @@ -32,7 +32,7 @@ class ItemPhysEnv : public LvlBaseItem public: ItemPhysEnv(QGraphicsItem *parent = nullptr); ItemPhysEnv(LvlScene *parentScene, QGraphicsItem *parent = nullptr); - ~ItemPhysEnv(); + virtual ~ItemPhysEnv(); void setSize(QSize sz); void setRectSize(QRect rect); diff --git a/Editor/editing/_scenes/world/items/item_level.h b/Editor/editing/_scenes/world/items/item_level.h index dd50d8655..19618020b 100644 --- a/Editor/editing/_scenes/world/items/item_level.h +++ b/Editor/editing/_scenes/world/items/item_level.h @@ -32,7 +32,7 @@ class ItemLevel : public WldBaseItem public: ItemLevel(QGraphicsItem *parent = nullptr); ItemLevel(WldScene *parentScene, QGraphicsItem *parent = nullptr); - ~ItemLevel(); + virtual ~ItemLevel(); void setLevelData(WorldLevelTile inD, obj_w_level *mergedSet = nullptr, long *animator_id = nullptr, long *path_id = nullptr, diff --git a/Editor/editing/_scenes/world/items/item_music.h b/Editor/editing/_scenes/world/items/item_music.h index b7e5c1373..b3cbf1d09 100644 --- a/Editor/editing/_scenes/world/items/item_music.h +++ b/Editor/editing/_scenes/world/items/item_music.h @@ -32,7 +32,7 @@ class ItemMusic : public WldBaseItem public: ItemMusic(QGraphicsItem *parent = nullptr); ItemMusic(WldScene *parentScene, QGraphicsItem *parent = nullptr); - ~ItemMusic(); + virtual ~ItemMusic(); void setMusicData(WorldMusicBox inD); void transformTo(int musicID, QString musicFile); diff --git a/Editor/editing/_scenes/world/items/item_path.h b/Editor/editing/_scenes/world/items/item_path.h index edd6a7e5a..f1e2ede5b 100644 --- a/Editor/editing/_scenes/world/items/item_path.h +++ b/Editor/editing/_scenes/world/items/item_path.h @@ -32,7 +32,7 @@ class ItemPath : public WldBaseItem public: ItemPath(QGraphicsItem *parent = nullptr); ItemPath(WldScene *parentScene, QGraphicsItem *parent = nullptr); - ~ItemPath(); + virtual ~ItemPath(); void setPathData(WorldPathTile inD, obj_w_path *mergedSet = nullptr, long *animator_id = nullptr); diff --git a/Editor/editing/_scenes/world/items/item_point.h b/Editor/editing/_scenes/world/items/item_point.h index d4e496e54..a4bca9593 100644 --- a/Editor/editing/_scenes/world/items/item_point.h +++ b/Editor/editing/_scenes/world/items/item_point.h @@ -31,7 +31,7 @@ class ItemPoint : public WldBaseItem public: ItemPoint(QGraphicsItem *parent = nullptr); ItemPoint(WldScene *scenePoint, QGraphicsItem *parent = nullptr); - ~ItemPoint(); + virtual ~ItemPoint(); QRectF boundingRect() const; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); diff --git a/Editor/editing/_scenes/world/items/item_scene.h b/Editor/editing/_scenes/world/items/item_scene.h index 42ad7ac35..77be9cb89 100644 --- a/Editor/editing/_scenes/world/items/item_scene.h +++ b/Editor/editing/_scenes/world/items/item_scene.h @@ -32,7 +32,7 @@ class ItemScene : public WldBaseItem public: ItemScene(QGraphicsItem *parent = nullptr); ItemScene(WldScene *parentScene, QGraphicsItem *parent = nullptr); - ~ItemScene(); + virtual ~ItemScene(); void setSceneData(WorldScenery inD, obj_w_scenery *mergedSet = nullptr, long *animator_id = nullptr); diff --git a/Editor/editing/_scenes/world/items/item_tile.h b/Editor/editing/_scenes/world/items/item_tile.h index 57a73a2d8..c8f575f11 100644 --- a/Editor/editing/_scenes/world/items/item_tile.h +++ b/Editor/editing/_scenes/world/items/item_tile.h @@ -32,7 +32,7 @@ class ItemTile : public WldBaseItem public: ItemTile(QGraphicsItem *parent = nullptr); ItemTile(WldScene *parentScene, QGraphicsItem *parent = nullptr); - ~ItemTile(); + virtual ~ItemTile(); void setTileData(WorldTerrainTile inD, obj_w_tile *mergedSet = nullptr, long *animator_id = nullptr); diff --git a/changelog.editor.txt b/changelog.editor.txt index 1f4755eaf..69a93c549 100644 --- a/changelog.editor.txt +++ b/changelog.editor.txt @@ -51,6 +51,7 @@ beta2 - World maps saving into the SMBX-38A format now works - Reworked the message box edit dialogue: Added the accurate preview for different target engines - Added layer and event statistics that can be opened by layer's or event's context menu +- Fixed random crashes when removing objects from the scene Editor 0.3.2 - Added support for an element (Block, BGO, NPC), section, and level-wide Extra Settings