From 8cd16a9a9ca605137276379361b0328af736c2cc Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 28 Oct 2015 18:18:13 +0300 Subject: Add support for add images into buttons in skinned npc dialogs. --- src/resources/db/npcdialogdb.cpp | 14 +++++++++++--- src/resources/npcbuttoninfo.h | 8 +++++++- 2 files changed, 18 insertions(+), 4 deletions(-) (limited to 'src/resources') diff --git a/src/resources/db/npcdialogdb.cpp b/src/resources/db/npcdialogdb.cpp index 628ee233e..cf334a601 100644 --- a/src/resources/db/npcdialogdb.cpp +++ b/src/resources/db/npcdialogdb.cpp @@ -56,9 +56,6 @@ static void loadNpcDialog(NpcDialogInfo *const dialog, if (xmlNameEqual(childNode, "button")) { const std::string name = XML::getProperty(childNode, "name", ""); - if (name.empty()) - continue; - const std::string value = XML::getProperty(childNode, "value", ""); if (value.empty()) continue; @@ -70,6 +67,17 @@ static void loadNpcDialog(NpcDialogInfo *const dialog, childNode, "y", 0, 0, 10000); button->name = name; button->value = value; + button->image = XML::getProperty(childNode, "image", ""); + if (button->name.empty() && button->image.empty()) + { + logger->log("Error: npc button without name or image"); + delete button; + continue; + } + button->imageWidth = XML::getIntProperty( + childNode, "imageWidth", 16, 1, 1000); + button->imageHeight = XML::getIntProperty( + childNode, "imageHeight", 16, 1, 1000); dialog->buttons.push_back(button); } } diff --git a/src/resources/npcbuttoninfo.h b/src/resources/npcbuttoninfo.h index 19de87891..d54b7d94c 100644 --- a/src/resources/npcbuttoninfo.h +++ b/src/resources/npcbuttoninfo.h @@ -30,15 +30,21 @@ struct NpcButtonInfo final NpcButtonInfo() : name(), value(), + image(), x(0), - y(0) + y(0), + imageWidth(16), + imageHeight(16) { } std::string name; std::string value; + std::string image; int x; int y; + int imageWidth; + int imageHeight; }; #endif // RESOURCES_NPCBUTTONINFO_H -- cgit v1.2.3-70-g09d2