From 13b6f8f6e3fad4f8e5ccec604adc0a75a4c0cdd3 Mon Sep 17 00:00:00 2001 From: tustin2121 Date: Sat, 8 Jun 2019 14:05:01 -0400 Subject: [PATCH] Event_object_graphics_pointers are now read for explicit indexes. --- src/core/parseutil.cpp | 2 +- src/project.cpp | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/core/parseutil.cpp b/src/core/parseutil.cpp index edfd0f81..c26794f0 100644 --- a/src/core/parseutil.cpp +++ b/src/core/parseutil.cpp @@ -337,7 +337,7 @@ QMap ParseUtil::readNamedIndexCArray(QString filename, QString QRegularExpression re_text(QString("\\b%1\\b\\s*\\[?\\s*\\]?\\s*=\\s*\\{([^\\}]*)\\}").arg(label)); QString body = re_text.match(text).captured(1).replace(QRegularExpression("\\s*"), ""); - QRegularExpression re("\\[(?[A-Za-z1-9_]*)\\]=(?[A-Za-z1-9_]*)"); + QRegularExpression re("\\[(?[A-Za-z1-9_]*)\\]=(?&?[A-Za-z1-9_]*)"); QRegularExpressionMatchIterator iter = re.globalMatch(body); while (iter.hasNext()) { diff --git a/src/project.cpp b/src/project.cpp index 520a371a..7234fd1b 100644 --- a/src/project.cpp +++ b/src/project.cpp @@ -1561,8 +1561,9 @@ void Project::loadEventPixmaps(QList objects) { QMap constants = getEventObjGfxConstants(); - QStringList pointers = parser.readCArray("src/data/field_event_obj/event_object_graphics_info_pointers.h", "gEventObjectGraphicsInfoPointers"); - + // QStringList pointers = parser.readCArray("src/data/field_event_obj/event_object_graphics_info_pointers.h", "gEventObjectGraphicsInfoPointers"); + QMap pointerHash = parser.readNamedIndexCArray("src/data/field_event_obj/event_object_graphics_info_pointers.h", "gEventObjectGraphicsInfoPointers"); + for (Event *object : objects) { if (!object->pixmap.isNull()) { continue; @@ -1585,9 +1586,10 @@ void Project::loadEventPixmaps(QList objects) { } if (event_type == EventType::Object) { - int sprite_id = constants.value(object->get("sprite")); - - QString info_label = pointers.value(sprite_id).replace("&", ""); + // int sprite_id = constants.value(object->get("sprite")); + // QString info_label = pointers.value(sprite_id).replace("&", ""); + + QString info_label = pointerHash[object->get("sprite")].replace("&", ""); QStringList gfx_info = parser.readCArray("src/data/field_event_obj/event_object_graphics_info.h", info_label); QString pic_label = gfx_info.value(14); QString dimensions_label = gfx_info.value(11);