示例#1
0
/*- ---------------------------------------------------------------- -*/
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;
}
示例#2
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;
}