void PokemonBox::load() { QDomDocument doc; QFile in(QString(getBoxPath() + "/%1.box").arg(getName())); in.open(QIODevice::ReadOnly); if(!doc.setContent(&in)) { return ; } QDomElement box = doc.firstChildElement("Box"); if (box.isNull()) return; QDomElement slot = box.firstChildElement("Slot"); int version = box.attribute("Version", "0").toInt(); while (!slot.isNull()) { if (slot.attribute("Num").toInt() < 0 || slot.attribute("Num").toInt() > pokemons.size()) break; int num = slot.attribute("Num").toInt(); if (pokemons[num] != NULL) break; QDomElement poke = slot.firstChildElement("Pokemon"); if (poke.isNull()) break; PokeTeam p; if (version == 0 && poke.attribute("Num").toInt() < 505) { p.setGen(4); } p.loadFromXml(poke, version); addPokemon(p,num); slot = slot.nextSiblingElement("Slot"); } }
void CApp::OnLButtonDown(int mX, int mY) { if(state_helpScreen) { state_helpScreen = false; state_welcomeScreen = true; } if(state_welcomeScreen) { welcomeScreenLogic(mX, mY); } else if(state_storyScreen) { state_storyScreen = false; state_welcomeScreen = true; } else if(state_selectElement1) { int chosenElement = findElement(mX, mY); if(chosenElement != -1) { state_selectElement1 = false; state_selectElement2 = true; addPokemon(chosenElement, "Pokemon 1"); } } else if(state_selectElement2) { int chosenElement = findElement(mX, mY); if(chosenElement != -1) { state_selectElement2 = false; state_selectElement3 = true; addPokemon(chosenElement, "Pokemon 2"); } } else if(state_selectElement3) { int chosenElement = findElement(mX, mY); if(chosenElement != -1) { state_selectElement3 = false; state_selectMoves1 = true; addPokemon(chosenElement, "Pokemon 3"); } } else if(state_selectMoves1) { if(state_elementSelected) { chosenMove = findMove(mX, mY, chosenMoveElement); if(chosenMove != -1) {// && chosenMove >= 0 && chosenMove <= 35 if(addMove(chosenMove, 0)) { //If the poke now has 4 moves state_selectMoves1 = false; state_selectMoves2 = true; state_elementSelected = false; state_selectTheMove = -1; player2->team.at(0)->pokeMoveSet.push_back(new Move()); player2->team.at(0)->pokeMoveSet.push_back(new Move()); player2->team.at(0)->pokeMoveSet.push_back(new Move()); player2->team.at(0)->pokeMoveSet.push_back(new Move()); } else { state_elementSelected = false; state_selectTheMove = -1; } } else { state_elementSelected = false; state_selectTheMove = -1; } } else { chosenMoveElement = findMoveElement(mX, mY); if(chosenMoveElement != -1) state_elementSelected = true; } } else if(state_selectMoves2) { if(state_elementSelected) { chosenMove = findMove(mX, mY, chosenMoveElement); if(chosenMove != -1) {// && chosenMove >= 0 && chosenMove <= 35 if(addMove(chosenMove, 1)) { //If the poke now has 4 moves state_selectMoves2 = false; state_selectMoves3 = true; state_elementSelected = false; state_selectTheMove = -1; player2->team.at(1)->pokeMoveSet.push_back(new Move()); player2->team.at(1)->pokeMoveSet.push_back(new Move()); player2->team.at(1)->pokeMoveSet.push_back(new Move()); player2->team.at(1)->pokeMoveSet.push_back(new Move()); } else { state_elementSelected = false; state_selectTheMove = -1; } } else { state_elementSelected = false; state_selectTheMove = -1; } } else { chosenMoveElement = findMoveElement(mX, mY); if(chosenMoveElement != -1) state_elementSelected = true; } } else if(state_selectMoves3) { if(state_elementSelected) { chosenMove = findMove(mX, mY, chosenMoveElement); if(chosenMove != -1) {// && chosenMove >= 0 && chosenMove <= 35 if(addMove(chosenMove, 2)) { //If the poke now has 4 moves state_selectMoves3 = false; state_elementSelected = false; state_selectTheMove = -1; player2->team.at(2)->pokeMoveSet.push_back(new Move()); player2->team.at(2)->pokeMoveSet.push_back(new Move()); player2->team.at(2)->pokeMoveSet.push_back(new Move()); player2->team.at(2)->pokeMoveSet.push_back(new Move()); } else { state_elementSelected = false; state_selectTheMove = -1; } } else { state_elementSelected = false; state_selectTheMove = -1; } } else { chosenMoveElement = findMoveElement(mX, mY); if(chosenMoveElement != -1) state_elementSelected = true; } } else if(state_player1Win) { state_welcomeScreen = true; state_selectElement1 = false; state_selectElement2 = false; state_selectElement3 = false; state_moveOverlay = false; state_switchPokemon = false; state_player1Win = false; state_player2Win = false; } else if(state_player2Win) { state_welcomeScreen = true; state_selectElement1 = false; state_selectElement2 = false; state_selectElement3 = false; state_moveOverlay = false; state_switchPokemon = false; state_player1Win = false; state_player2Win = false; } else {//Battle State /* if(currentBattle->poke1->taunted) { //Not needed yet as CPU is already random currentBattle->poke1Move = currentBattle->poke1->getMove(rand() % 4); currentBattle->player1Attack = true; player1Ready = true; setBattleOff = false; return; }//Does being taunted or beatdown take priority?*/ if(currentBattle->beatdown1On) { currentBattle->player1Attack = true; player1Ready = true; setBattleOff = false; return; } if(currentBattle->powerFlare1) { currentBattle->player1Attack = false; player1Ready = true; setBattleOff = false; currentBattle->powerFlare1 = false; return; } if(state_switchPokemon == true) { setBattleOff = false; if(waitingForKnockoutSwitch) { //Have to check if pokemon were knocked out before the rest of the checks, as the future checks will modify the values setBattleOff = true; } switchPokemonLogic(mX, mY); } else if(state_moveOverlay == true) { moveOverlayLogic(mX, mY); } if( atInitiateLocation(mX, mY) && hitByTimerPoke1 == 0 && hitByTimerPoke2 == 0) { state_moveOverlay = true; } else { state_moveOverlay = false; } } }
MainWindow::MainWindow() { // Title setWindowTitle("Pokedex"); pokemonNameDisplay = new QLabel(); // Overall layout overallLayout = new QHBoxLayout(); // // Selected pokemon display // Layout pokemonDisplayLayout = new QVBoxLayout(); overallLayout->addLayout(pokemonDisplayLayout); // Pokemon image //TODO pokemonImageContainer = new QLabel(); pokemonDisplayLayout->addWidget(pokemonImageContainer); // Pokemon name //TODO pokemonNameLabel = new QLabel(""); pokemonDisplayLayout->addWidget(pokemonNameLabel); // Make it so image and name are at the top pokemonDisplayLayout->addStretch(); // // List of all pokemon //TODO pokemonListWidget = new QListWidget(); connect(pokemonListWidget, SIGNAL(currentRowChanged(int)), this, SLOT(displayPokemon(int))); overallLayout->addWidget(pokemonListWidget); // // Form to add pokemon // Layout formLayout = new QVBoxLayout(); overallLayout->addLayout(formLayout); // Pokemon name label pokemonNameLabel = new QLabel("Pokemon's Name:"); formLayout->addWidget(pokemonNameLabel); // Pokemon name input //TODO pokemonNameInput = new QLineEdit(); formLayout->addWidget(pokemonNameInput); // Image filename label imageFilenameLabel = new QLabel("Image Filename:"); formLayout->addWidget(imageFilenameLabel); // Image filename input //TODO imageFilenameInput = new QLineEdit(); formLayout->addWidget(imageFilenameInput); // Add button //TODO addButton = new QPushButton("Add Pokemon"); connect(addButton, SIGNAL(clicked()), this, SLOT(addPokemon())); formLayout->addWidget(addButton); // Set overall layout setLayout(overallLayout); }