aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorzedarider <ymherklotz@gmail.com>2016-07-20 21:05:42 +0200
committerzedarider <ymherklotz@gmail.com>2016-07-20 21:05:42 +0200
commit16fb95a1056df76c71af9d31bd05820a6d159aa0 (patch)
treea2b7200f53ce9d2384deab4bb48e3a33b0091823 /src
parent4d6b9a03d9de2d63c82d212fc745eb83aa03548c (diff)
downloadCardeval-16fb95a1056df76c71af9d31bd05820a6d159aa0.tar.gz
Cardeval-16fb95a1056df76c71af9d31bd05820a6d159aa0.zip
renamed all objects so that they are unified
Diffstat (limited to 'src')
-rw-r--r--src/cardeval.cpp76
-rw-r--r--src/main.cpp36
2 files changed, 63 insertions, 49 deletions
diff --git a/src/cardeval.cpp b/src/cardeval.cpp
index e1e6f5b..6c04d29 100644
--- a/src/cardeval.cpp
+++ b/src/cardeval.cpp
@@ -41,7 +41,7 @@ CardEval::~CardEval() {
}
-void CardEval::getCards(std::vector<cardStruct> &cardDeck) {
+void CardEval::get_cards() {
// load root node from the file into memory
XMLElement* root_el = card_doc.FirstChildElement("CardDefs");
@@ -49,45 +49,49 @@ void CardEval::getCards(std::vector<cardStruct> &cardDeck) {
for(XMLElement* ent_iterator = root_el->FirstChildElement("Entity"); ent_iterator != NULL;
ent_iterator = ent_iterator->NextSiblingElement("Entity")) {
- cardStruct card_info;
+ card_struct card_info;
// iterates through the card information in tags
for(XMLElement* tag_iterator = ent_iterator->FirstChildElement("Tag");
tag_iterator != NULL; tag_iterator = tag_iterator->NextSiblingElement("Tag")) {
- // add information to the cardinfo
- if(tag_iterator->Attribute("name", "CardName")) {
- // if tag is cardname
- card_info.card_name = tag_iterator->FirstChildElement("enUS")->GetText();
-
- } else if(tag_iterator->Attribute("name", "Collectible") &&
- tag_iterator->Attribute("value", "1")) {
- card_info.is_collectible = true;
-
- } else if(tag_iterator->Attribute("name", "CardType")) {
- get_type(tag_iterator->Attribute("value"));
-
- } else if(tag_iterator->Attribute("name", "Class")) {
- get_class(tag_iterator->Attribute("value"));
- }
+ card_info = set_card_info(tag_iterator);
}
}
}
void CardEval::exit_with_error() {
+ // exit the program with an error message
std::exit(EXIT_FAILURE);
}
+void CardEval::add_card_to_vec(card_struct &in_card) {
+ // just adds the card to the respective vector
+ if(in_card.card_type == 'm') {
+ minions.push_back(in_card);
+ } else if(in_card.card_type == 's') {
+ spells.push_back(in_card);
+ } else if(in_card.card_type == 'w') {
+ weapons.push_back(in_card);
+ } else {
+ random.push_back(in_card);
+ }
+}
+
char CardEval::get_type(std::string type_str) {
int type_int = std::stoi(type_str);
switch(type_int) {
+ // when it is a minion
case 4:
return 'm';
+ // when the card is a spell
case 5:
return 's';
+ // when the card is a weapon
case 7:
return 'w';
+ // otherwise return null
default:
return '\0';
}
@@ -119,3 +123,41 @@ std::string CardEval::get_class(std::string class_str) {
return "";
}
}
+
+card_struct CardEval::set_card_info(XMLElement* tag_it) {
+ card_struct tmp_card;
+
+ // add information to the cardinfo
+ if(tag_it->Attribute("name", "CardName")) {
+ // if tag is cardname
+ tmp_card.card_name = tag_it->FirstChildElement("enUS")->GetText();
+ } else if(tag_it->Attribute("name", "Collectible") &&
+ tag_it->Attribute("value", "1")) {
+ tmp_card.is_collectible = true;
+
+ } else if(tag_it->Attribute("name", "CardType")) {
+ tmp_card.card_type = get_type(tag_it->Attribute("value"));
+
+ } else if(tag_it->Attribute("name", "Class")) {
+ tmp_card.class_name = get_class(tag_it->Attribute("value"));
+
+ } else if(tag_it->Attribute("name", "Cost")) {
+ tmp_card.cost = std::stoi(tag_it->Attribute("value"));
+
+ } else if(tag_it->Attribute("name", "Atk")) {
+ tmp_card.attack = std::stoi(tag_it->Attribute("value"));
+
+ } else if(tag_it->Attribute("name", "Health")) {
+ tmp_card.health = std::stoi(tag_it->Attribute("value"));
+
+ } else if(tag_it->Attribute("name", "Rarity")) {
+ tmp_card.rarity = std::stoi(tag_it->Attribute("value"));
+
+ } else if(tag_it->Attribute("name", "Durability")) {
+ tmp_card.durability = std::stoi(tag_it->Attribute("value"));
+ } else{
+
+ }
+
+ return tmp_card;
+}
diff --git a/src/main.cpp b/src/main.cpp
index e855621..1335355 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -13,41 +13,13 @@
#include <tinyxml2.h>
+#include "../include/cardeval.hpp"
+
using namespace std;
using namespace tinyxml2;
int main(int argc, char** argv) {
- cout << "executing " << argv[0] << endl;
- cout << "arguments given: " << argc-1 << endl;
-
- XMLDocument doc;
- doc.LoadFile("resources/CardDefs.xml");
-
- XMLElement* entityElement = doc.FirstChildElement("CardDefs");
- for(XMLElement* elIterator = entityElement->FirstChildElement("Entity"); elIterator != NULL; elIterator = elIterator->NextSiblingElement("Entity")) {
- bool setCardName = false;
- bool setCollectible = false;
- bool setMinion = false;
- bool written = false;
- string cardName = "";
- for(XMLElement* tagIterator = elIterator->FirstChildElement("Tag"); tagIterator != NULL; tagIterator = tagIterator->NextSiblingElement("Tag")) {
- if(tagIterator->Attribute("name", "CardName")) {
- setCardName = true;
- cardName = tagIterator->FirstChildElement("enUS")->GetText();
- } else if(tagIterator->Attribute("name", "Collectible") && tagIterator->Attribute("value", "1")) {
- setCollectible = true;
- } else if(tagIterator->Attribute("name", "CardType") && tagIterator->Attribute("value", "10")) {
- setMinion = true;
- }
-
- if(setCardName && setCollectible && setMinion && !written) {
- cout << cardName << endl;
- written = true;
- } if(tagIterator == nullptr) {
-
- }
- }
- }
-
+ CardEval ce(argc, argv);
+ ce.get_cards();
return 0;
}