void InputConfig::loadFromXML(pugi::xml_node node, int playerNum) { this->clear(); setPlayerNum(playerNum); for(pugi::xml_node input = node.child("input"); input; input = input.next_sibling("input")) { std::string name = input.attribute("name").as_string(); std::string type = input.attribute("type").as_string(); InputType typeEnum = stringToInputType(type); if(typeEnum == TYPE_COUNT) { std::cout << "ERROR - input type \"" << type << "\" is invalid! Skipping input \"" << name << "\".\n"; continue; } int id = input.attribute("id").as_int(); int value = input.attribute("value").as_int(); if(value == 0) std::cout << "WARNING: InputConfig value is 0 for " << type << " " << id << "!\n"; mNameMap[toLower(name)] = Input(mDeviceId, typeEnum, id, value, true); } }
//初始化函数 void BackgroundEngine::initial() { this->pile.clear(); this->discardPile.clear(); this->discardPileCovered.clear(); //读入卡牌文件 QFile log("./log.txt"); log.open(QIODevice::WriteOnly); QTextStream out(&log); out << "try to open "; QFile fp("./cardDB.txt"); QTextStream in(&fp); QTextCodec *codec=QTextCodec::codecForName("GBK"); in.setCodec(codec); if (!fp.open(QIODevice::ReadOnly)) { out << "Cannot open file for reading. "; } out << "ready to read"; QStringList cardEntry; while (!in.atEnd()) { cardEntry=in.readLine().split("\t"); cardList<<new CardEntity(&cardEntry); } out << cardList.length(); log.close(); //洗牌 this->shuffle(false); fp.close(); setPlayerNum(playerSum); }
void Field::initializeField(int player_num) { setPlayerNum(player_num); makeInfomationArrays(); determinePanelsOrder(); shuffleDeck(); }