Crossfire Resources Editor
GeneralMessageWrapper.cpp
Go to the documentation of this file.
1 /*
2  * Crossfire -- cooperative multi-player graphical RPG and adventure game
3  *
4  * Copyright (c) 2022 the Crossfire Development Team
5  *
6  * Crossfire is free software and comes with ABSOLUTELY NO WARRANTY. You are
7  * welcome to redistribute it under certain conditions. For details, please
8  * see COPYING and LICENSE.
9  *
10  * The authors can be reached via e-mail at <crossfire@metalforge.org>.
11  */
12 
13 #include "GeneralMessageWrapper.h"
14 #include "ResourcesManager.h"
15 
17  auto face = dynamic_cast<const FaceWrapper *> (asset);
18  if (face) {
19  return myWrappedItem->face == face->wrappedItem() ? Uses : DoesntUse;
20  }
21  auto quest = dynamic_cast<const QuestWrapper *>(asset);
22  if (quest && myWrappedItem->quest_code) {
23  std::string name(myWrappedItem->quest_code);
24  size_t len = strlen(quest->wrappedItem()->quest_code);
25  return (name.length() > len && name[len] == ' ' && name.substr(0, len) == quest->wrappedItem()->quest_code) ? Uses : DoesntUse;
26  }
27  return DoesntUse;
28 }
29 
32  AssetWrapper::wasModified(asset, type, extra);
33 }
34 
35 void GeneralMessageWrapper::setTitle(const QString &title) {
36  if (myWrappedItem->title != title) {
37  FREE_AND_COPY_IF(myWrappedItem->title, title.toLocal8Bit().data());
39  }
40 }
41 
42 void GeneralMessageWrapper::setQuest(const QString &quest) {
43  if (myWrappedItem->quest_code != quest) {
44  FREE_AND_COPY_IF(myWrappedItem->quest_code, quest.toLocal8Bit().data());
46  }
47 }
48 
50  if (chance != myWrappedItem->chance) {
51  myWrappedItem->chance = chance;
53  }
54 }
55 
56 void GeneralMessageWrapper::setFace(const Face *face) {
57  if (myWrappedItem->face != face) {
58  myWrappedItem->face = face;
60  }
61 }
62 
63 void GeneralMessageWrapper::setMessage(const QString &message) {
64  auto msg(message);
65  if (!msg.isEmpty() && msg[msg.size() - 1] != '\n') {
66  msg += "\n";
67  }
68  if (myWrappedItem->message != msg) {
69  FREE_AND_COPY_IF(myWrappedItem->message, msg.toLocal8Bit().data());
71  }
72 }
AssetTWrapper< GeneralMessage >::myWrappedItem
GeneralMessage * myWrappedItem
Definition: AssetWrapper.h:110
GeneralMessageWrapper.h
GeneralMessageWrapper::setMessage
void setMessage(const QString &message)
Definition: GeneralMessageWrapper.cpp:63
AssetWrapper::AssetUpdated
@ AssetUpdated
Definition: AssetWrapper.h:33
GeneralMessageWrapper::message
QString message
Definition: GeneralMessageWrapper.h:34
QuestWrapper
Definition: QuestWrapper.h:66
AssetWrapper::PossibleUse
PossibleUse
Definition: AssetWrapper.h:32
FaceWrapper
Definition: FaceWrapper.h:24
GeneralMessageWrapper::quest
QString quest
Definition: GeneralMessageWrapper.h:31
AssetWrapper
Base class for all assets that can be displayed or edited by CRE.
Definition: AssetWrapper.h:25
AssetWrapper::ChangeType
ChangeType
Definition: AssetWrapper.h:33
AssetWrapper::Uses
@ Uses
Definition: AssetWrapper.h:32
ResourcesManager.h
GeneralMessageWrapper::myResources
ResourcesManager * myResources
Definition: GeneralMessageWrapper.h:60
GeneralMessageWrapper::title
QString title
Definition: GeneralMessageWrapper.h:29
GeneralMessageWrapper::setFace
void setFace(const Face *face)
Definition: GeneralMessageWrapper.cpp:56
AssetWrapper::wasModified
virtual void wasModified(AssetWrapper *asset, ChangeType type, int extra)
Definition: AssetWrapper.h:84
GeneralMessageWrapper::setChance
void setChance(int chance)
Definition: GeneralMessageWrapper.cpp:49
GeneralMessageWrapper::chance
int chance
Definition: GeneralMessageWrapper.h:32
ResourcesManager::generalMessageModified
void generalMessageModified(GeneralMessage *message)
Definition: ResourcesManager.cpp:256
GeneralMessageWrapper::face
const Face face
Definition: GeneralMessageWrapper.h:33
AssetWrapper::markModified
void markModified(ChangeType change, int extra=0)
Definition: AssetWrapper.h:57
GeneralMessageWrapper::setQuest
void setQuest(const QString &quest)
Definition: GeneralMessageWrapper.cpp:42
AssetWrapper::DoesntUse
@ DoesntUse
Definition: AssetWrapper.h:32
GeneralMessageWrapper::uses
virtual PossibleUse uses(const AssetWrapper *asset, std::string &) const override
Definition: GeneralMessageWrapper.cpp:16
GeneralMessageWrapper::setTitle
void setTitle(const QString &title)
Definition: GeneralMessageWrapper.cpp:35
GeneralMessageWrapper::wasModified
virtual void wasModified(AssetWrapper *asset, ChangeType type, int extra) override
Definition: GeneralMessageWrapper.cpp:30