From de0a5b526b9cdaa25d83b29b79205db15bb60e5c Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 27 Dec 2021 15:35:58 -0500 Subject: [PATCH] Don't change frame for inanimate objects --- include/core/event.h | 1 + src/core/event.cpp | 5 ++++- src/project.cpp | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/core/event.h b/include/core/event.h index 6ee59ac5..1fc6be5f 100644 --- a/include/core/event.h +++ b/include/core/event.h @@ -99,6 +99,7 @@ public: int frame = 0; bool hFlip = false; bool usingSprite; + bool inanimate; DraggablePixmapItem *pixmapItem = nullptr; void setPixmapItem(DraggablePixmapItem *item) { pixmapItem = item; } diff --git a/src/core/event.cpp b/src/core/event.cpp index ea8e078f..36b665bc 100644 --- a/src/core/event.cpp +++ b/src/core/event.cpp @@ -26,7 +26,8 @@ Event::Event(const Event& toCopy) : spriteHeight(toCopy.spriteHeight), frame(toCopy.frame), hFlip(toCopy.hFlip), - usingSprite(toCopy.usingSprite) + usingSprite(toCopy.usingSprite), + inanimate(toCopy.inanimate) { } Event::Event(QJsonObject obj, QString type) : Event() @@ -427,6 +428,8 @@ void Event::setFrameFromMovement(QString facingDir) { // defaults this->frame = 0; this->hFlip = false; + if (this->inanimate) + return; if (facingDir == "DIR_NORTH") { this->frame = 1; this->hFlip = false; diff --git a/src/project.cpp b/src/project.cpp index 7ebe0aa7..ae739e99 100644 --- a/src/project.cpp +++ b/src/project.cpp @@ -2441,6 +2441,7 @@ void Project::loadEventPixmaps(QList objects) { object->spriteWidth = 16; object->spriteHeight = 16; object->usingSprite = false; + object->inanimate = true; QString event_type = object->get("event_type"); if (event_type == EventType::Object) { object->pixmap = QPixmap(":/images/Entities_16x16.png").copy(0, 0, 16, 16); @@ -2457,6 +2458,7 @@ void Project::loadEventPixmaps(QList objects) { if (event_type == EventType::Object) { QString info_label = pointerHash[object->get("sprite")].replace("&", ""); QStringList gfx_info = parser.readCArray("src/data/object_events/object_event_graphics_info.h", info_label); + object->inanimate = (gfx_info.value(8) == "TRUE"); QString pic_label = gfx_info.value(14); QString dimensions_label = gfx_info.value(11); QString subsprites_label = gfx_info.value(12);