Crossfire Server, Branch 1.12
R12190
|
00001 #include <QtGui> 00002 #include "CREUtils.h" 00003 #include "CREPixmap.h" 00004 00005 extern "C" { 00006 #include "global.h" 00007 #include "recipe.h" 00008 #include "libproto.h" 00009 } 00010 00011 QTreeWidgetItem* CREUtils::archetypeNode(QTreeWidgetItem* parent) 00012 { 00013 QTreeWidgetItem* item = new QTreeWidgetItem(parent, QStringList(QTreeWidget::tr("Archetypes"))); 00014 return item; 00015 } 00016 00017 QTreeWidgetItem* CREUtils::archetypeNode(const archt* arch, QTreeWidgetItem* parent) 00018 { 00019 QTreeWidgetItem* item = new QTreeWidgetItem(parent, QStringList(arch->name)); 00020 //item->setData(0, Qt::UserRole, arch->getId()); 00021 item->setIcon(0, CREPixmap::getIcon(arch->clone.face->number)); 00022 return item; 00023 } 00024 00025 QTreeWidgetItem* CREUtils::artifactNode(QTreeWidgetItem* parent) 00026 { 00027 QTreeWidgetItem* item = new QTreeWidgetItem(parent, QStringList(QTreeWidget::tr("Artifacts"))); 00028 return item; 00029 } 00030 00031 QTreeWidgetItem* CREUtils::artifactNode(const artifact* arti, QTreeWidgetItem* parent) 00032 { 00033 QTreeWidgetItem* item = new QTreeWidgetItem(parent, QStringList(arti->item->name)); 00034 if (arti->item->face != NULL && arti->item->face != blank_face) 00035 item->setIcon(0, CREPixmap::getIcon(arti->item->face->number)); 00036 else 00037 { 00038 int face = 0; 00039 for (linked_char* allowed = arti->allowed; allowed; allowed = allowed->next) 00040 { 00041 if (allowed->name[0] == '!') 00042 continue; 00043 const archt* specific = find_archetype(allowed->name); 00044 if (specific && specific->clone.face != NULL) 00045 { 00046 face = specific->clone.face->number; 00047 break; 00048 } 00049 } 00050 00051 if (face == 0) 00052 { 00053 const archt* generic = get_archetype_by_type_subtype(arti->item->type, -1); 00054 if (generic != NULL && generic->clone.face != NULL) 00055 face = generic->clone.face->number; 00056 } 00057 00058 if (face) 00059 item->setIcon(0, CREPixmap::getIcon(face)); 00060 } 00061 return item; 00062 } 00063 00064 QTreeWidgetItem* CREUtils::treasureNode(QTreeWidgetItem* parent) 00065 { 00066 QTreeWidgetItem* item = new QTreeWidgetItem(parent, QStringList(QTreeWidget::tr("Treasures"))); 00067 return item; 00068 } 00069 00070 QTreeWidgetItem* CREUtils::treasureNode(const treasurelist* list, QTreeWidgetItem* parent) 00071 { 00072 QTreeWidgetItem* item = new QTreeWidgetItem(parent, QStringList(list->name)); 00073 if (list->total_chance == 0) 00074 item->setIcon(0, CREPixmap::getTreasureIcon()); 00075 else 00076 item->setIcon(0, CREPixmap::getTreasureOneIcon()); 00077 return item; 00078 } 00079 00080 QTreeWidgetItem* CREUtils::treasureNode(const treasure* treasure, QTreeWidgetItem* parent) 00081 { 00082 QTreeWidgetItem* item; 00083 if (treasure->item) 00084 { 00085 item = CREUtils::archetypeNode(treasure->item, parent); 00086 } 00087 else 00088 { 00089 treasurelist* other = find_treasurelist(treasure->name); 00090 if (other == NULL) 00091 item = new QTreeWidgetItem(parent, QStringList(QString(QTreeWidget::tr("Invalid list: %1")).arg(treasure->name))); 00092 else 00093 { 00094 item = CREUtils::treasureNode(other, parent); 00095 } 00096 } 00097 00098 return item; 00099 } 00100 00101 QTreeWidgetItem* CREUtils::formulaeNode(const recipe* recipe, QTreeWidgetItem* parent) 00102 { 00103 QString title; 00104 const archt* base = NULL; 00105 00106 if (recipe->arch_names == 0) 00107 { 00108 title = QString("%1 (no archetype?)").arg(recipe->title); 00109 } 00110 else 00111 { 00112 base = find_archetype(recipe->arch_name[0]); 00113 if (strcmp(recipe->title, "NONE") == 0) 00114 { 00115 title = base->clone.name; 00116 } 00117 else 00118 { 00119 title = QString("%1 of %2").arg(base->clone.name, recipe->title); 00120 } 00121 } 00122 QTreeWidgetItem* item = new QTreeWidgetItem(parent, QStringList(title)); 00123 if (base != NULL && base->clone.face != 0) 00124 item->setIcon(0, CREPixmap::getIcon(base->clone.face->number)); 00125 00126 return item; 00127 } 00128 00129 QTreeWidgetItem* CREUtils::faceNode(QTreeWidgetItem* parent) 00130 { 00131 QTreeWidgetItem* item = new QTreeWidgetItem(parent, QStringList(QTreeWidget::tr("Faces"))); 00132 return item; 00133 } 00134 00135 QTreeWidgetItem* CREUtils::faceNode(const New_Face* face, QTreeWidgetItem* parent) 00136 { 00137 QTreeWidgetItem* item = new QTreeWidgetItem(parent, QStringList(face->name)); 00138 item->setIcon(0, CREPixmap::getIcon(face->number)); 00139 return item; 00140 } 00141 00142 QTreeWidgetItem* CREUtils::animationNode(QTreeWidgetItem* parent) 00143 { 00144 return new QTreeWidgetItem(parent, QStringList(QTreeWidget::tr("Animations"))); 00145 } 00146 00147 QTreeWidgetItem* CREUtils::animationNode(const Animations* anim, QTreeWidgetItem* parent) 00148 { 00149 QTreeWidgetItem* item = new QTreeWidgetItem(parent, QStringList(anim->name)); 00150 if (anim->num_animations > 0) 00151 item->setIcon(0, CREPixmap::getIcon(anim->faces[0])); 00152 else 00153 LOG(llevDebug, "empty animation: %s\n", anim->name); 00154 return item; 00155 }