154
160
(new History_HeroFindsAllies
155
161
(*dynamic_cast<const History_HeroFindsAllies*>(a)));
164
(new History_EndTurn(*dynamic_cast<const History_EndTurn*>(a)));
170
History::History (XML_Helper *helper)
172
std::string type_str;
173
helper->getData(type_str, "type");
174
d_type = historyTypeFromString(type_str);
177
bool History::save(XML_Helper* helper) const
181
retval &= helper->openTag(History::d_tag);
182
retval &= saveContents(helper);
183
retval &= helper->closeTag();
188
bool History::saveContents(XML_Helper* helper) const
192
std::string type_str = historyTypeToString(History::Type(d_type));
193
retval &= helper->saveData("type", type_str);
194
retval &= doSave(helper);
161
199
//-----------------------------------------------------------------------------
162
200
//History_StartTurn
309
337
//History_HeroEmerges
311
339
History_HeroEmerges::History_HeroEmerges()
312
:History(History::HERO_EMERGES), d_hero(""), d_city("")
340
:History(History::HERO_EMERGES), d_hero(""), d_hero_id(0), d_city("")
316
344
History_HeroEmerges::History_HeroEmerges(const History_HeroEmerges &history)
317
:History(history), d_hero(history.d_hero), d_city(history.d_city)
345
:History(history), d_hero(history.d_hero), d_hero_id(history.d_hero_id),
346
d_city(history.d_city)
321
350
History_HeroEmerges::History_HeroEmerges(XML_Helper* helper)
322
:History(History::HERO_EMERGES)
324
353
helper->getData(d_hero, "hero");
325
354
helper->getData(d_city, "city");
355
helper->getData(d_hero_id, "hero_id");
328
358
History_HeroEmerges::~History_HeroEmerges()
1051
//-----------------------------------------------------------------------------
1054
History_EndTurn::History_EndTurn()
1055
:History(History::END_TURN)
1059
History_EndTurn::History_EndTurn(const History_EndTurn &history)
1064
History_EndTurn::History_EndTurn(XML_Helper* helper)
1069
History_EndTurn::~History_EndTurn()
1073
std::string History_EndTurn::dump() const
1075
std::stringstream s;
1077
s <<"player ends a turn" << "\n";
1082
bool History_EndTurn::doSave(XML_Helper* helper) const
1089
bool History_EndTurn::fillData()
1094
std::string History::historyTypeToString(const History::Type type)
1098
case History::START_TURN:
1099
return "History::START_TURN";
1100
case History::FOUND_SAGE:
1101
return "History::FOUND_SAGE";
1102
case History::GOLD_TOTAL:
1103
return "History::GOLD_TOTAL";
1104
case History::HERO_EMERGES:
1105
return "History::HERO_EMERGES";
1106
case History::CITY_WON:
1107
return "History::CITY_WON";
1108
case History::HERO_CITY_WON:
1109
return "History::HERO_CITY_WON";
1110
case History::CITY_RAZED:
1111
return "History::CITY_RAZED";
1112
case History::HERO_QUEST_STARTED:
1113
return "History::HERO_QUEST_STARTED";
1114
case History::HERO_QUEST_COMPLETED:
1115
return "History::HERO_QUEST_COMPLETED";
1116
case History::HERO_KILLED_IN_CITY:
1117
return "History::HERO_KILLED_IN_CITY";
1118
case History::HERO_KILLED_IN_BATTLE:
1119
return "History::HERO_KILLED_IN_BATTLE";
1120
case History::HERO_KILLED_SEARCHING:
1121
return "History::HERO_KILLED_SEARCHING";
1122
case History::SCORE:
1123
return "History::SCORE";
1124
case History::PLAYER_VANQUISHED:
1125
return "History::PLAYER_VANQUISHED";
1126
case History::DIPLOMATIC_PEACE:
1127
return "History::DIPLOMATIC_PEACE";
1128
case History::DIPLOMATIC_WAR:
1129
return "History::DIPLOMATIC_WAR";
1130
case History::DIPLOMATIC_TREACHERY:
1131
return "History::DIPLOMATIC_TREACHERY";
1132
case History::HERO_FINDS_ALLIES:
1133
return "History::HERO_FINDS_ALLIES";
1134
case History::END_TURN:
1135
return "History::END_TURN";
1137
return "History::START_TURN";
1140
History::Type History::historyTypeFromString(const std::string str)
1142
if (str.size() > 0 && isdigit(str.c_str()[0]))
1143
return History::Type(atoi(str.c_str()));
1144
if (str == "History::START_TURN")
1145
return History::START_TURN;
1146
else if (str == "History::FOUND_SAGE")
1147
return History::FOUND_SAGE;
1148
else if (str == "History::GOLD_TOTAL")
1149
return History::GOLD_TOTAL;
1150
else if (str == "History::HERO_EMERGES")
1151
return History::HERO_EMERGES;
1152
else if (str == "History::CITY_WON")
1153
return History::CITY_WON;
1154
else if (str== "History::HERO_CITY_WON")
1155
return History::HERO_CITY_WON;
1156
else if (str == "History::CITY_RAZED")
1157
return History::CITY_RAZED;
1158
else if (str == "History::HERO_QUEST_STARTED")
1159
return History::HERO_QUEST_STARTED;
1160
else if (str == "History::HERO_QUEST_COMPLETED")
1161
return History::HERO_QUEST_COMPLETED;
1162
else if (str == "History::HERO_KILLED_IN_CITY")
1163
return History::HERO_KILLED_IN_CITY;
1164
else if (str == "History::HERO_KILLED_IN_BATTLE")
1165
return History::HERO_KILLED_IN_BATTLE;
1166
else if (str == "History::HERO_KILLED_SEARCHING")
1167
return History::HERO_KILLED_SEARCHING;
1168
else if (str == "History::SCORE")
1169
return History::SCORE;
1170
else if (str == "History::PLAYER_VANQUISHED")
1171
return History::PLAYER_VANQUISHED;
1172
else if (str == "History::DIPLOMATIC_PEACE")
1173
return History::DIPLOMATIC_PEACE;
1174
else if (str == "History::DIPLOMATIC_WAR")
1175
return History::DIPLOMATIC_WAR;
1176
else if (str == "History::DIPLOMATIC_TREACHERY")
1177
return History::DIPLOMATIC_TREACHERY;
1178
else if (str == "History::HERO_FINDS_ALLIES")
1179
return History::HERO_FINDS_ALLIES;
1180
else if (str == "History::END_TURN")
1181
return History::END_TURN;
1182
return History::START_TURN;