/*- ---------------------------------------------------------------- -*/ int main(int argc, char **argv) { cSettings set; // player settings Inventory inv; // player inventory int sockfd; // socket struct sockaddr_in servaddr; // struct for server address struct hostent *server = NULL; // stores information about the given host // setting the alarm to another handler signal(SIGALRM, catch_alarm_con); // getting parameters to set up the server according to the user initcSettings(argc, argv, &set); // taking data from inventory to a struct for easy management if ( readInventory(set.inventory, &inv) ) { perror("Inventory problem"); return -1; } // printing the inventory to the user printInventory(inv); // initializing socket and server values init(&sockfd, server, &servaddr, set.host_name); // starting up the client clientUp(sockfd, &servaddr, set, inv); // free-ing allocated space free(server); return 0; }
int loadGame(string filePrefix) { dout << "--- loadGame (started in: " << current_time << ")" << endl; dout << " loading game from '" << filePrefix << "'" << endl; resetGame(); if(readStates(filePrefix)) return 1; if(readAllScripts(filePrefix)) return 1; if(readDialogs(filePrefix)) return 1; if(readGameState(filePrefix)) return 1; if(readInventory(filePrefix)) return 1; if(readHotspots(filePrefix)) return 1; if(readScenes(filePrefix)) return 1; if(readMainCharacter(filePrefix)) return 1; if(readMusic(filePrefix)) return 1; soundPlayer.resumeAll(); dout << "--- End loadGame (ended in: " << current_time << ")" << endl << endl; return 0; }
Player PlayerInfoReader::readPlayer() { if (tokenByName(reader.name()) != T_Player) return Player(); Player p; const QXmlStreamAttributes &playerAttrs = reader.attributes(); p.hitPoints = playerAttrs.value("hp").toInt(); p.experience = playerAttrs.value("exp").toInt(); while (reader.readNextStartElement()) { Token t = tokenByName(reader.name()); switch (t) { case T_Name: p.name = reader.readElementText(); break; case T_Inventory: p.inventory = readInventory(); break; case T_Location: { p.location = reader.attributes().value("name").toString(); while (reader.readNextStartElement()) { if (tokenByName(reader.name()) == T_Position) { const QXmlStreamAttributes &attrs = reader.attributes(); p.position.setX(attrs.value("x").toInt()); p.position.setY(attrs.value("y").toInt()); reader.skipCurrentElement(); } else { reader.skipCurrentElement(); } } }; break; default: reader.skipCurrentElement(); break; } } return p; }