Event_object_graphics_pointers are now read for explicit indexes.

This commit is contained in:
tustin2121 2019-06-08 14:05:01 -04:00 committed by huderlem
parent dae8f7deaf
commit 13b6f8f6e3
2 changed files with 8 additions and 6 deletions

View file

@ -337,7 +337,7 @@ QMap<QString, QString> 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("\\[(?<index>[A-Za-z1-9_]*)\\]=(?<value>[A-Za-z1-9_]*)");
QRegularExpression re("\\[(?<index>[A-Za-z1-9_]*)\\]=(?<value>&?[A-Za-z1-9_]*)");
QRegularExpressionMatchIterator iter = re.globalMatch(body);
while (iter.hasNext()) {

View file

@ -1561,8 +1561,9 @@ void Project::loadEventPixmaps(QList<Event*> objects) {
QMap<QString, int> 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<QString, QString> 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<Event*> 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);