void RSSChannel::set(QString* src, const int start, const int end) { title = pickUp(src, start, end, RSSChannelTag::TitleS, RSSChannelTag::TitleE); link = pickUp(src, start, end, RSSChannelTag::LinkS, RSSChannelTag::LinkE); desc = pickUp(src, start, end, RSSChannelTag::DescS, RSSChannelTag::DescE); language = pickUp(src, start, end, RSSChannelTag::LanguageS, RSSChannelTag::LanguageE); qDebug() << "title" << title; /* qDebug() << "link" << link; qDebug() << "desc" << desc; qDebug() << "language" << language; */ }
void LocalPlayer::nextStep() { if (mPath.empty()) { if (mPickUpTarget) pickUp(mPickUpTarget); if (mWalkingDir) walk(mWalkingDir); } if (mGoingToTarget && mTarget && withinAttackRange(mTarget)) { mAction = Being::STAND; attack(mTarget, true); mGoingToTarget = false; mPath.clear(); return; } else if (mGoingToTarget && !mTarget) { mGoingToTarget = false; mPath.clear(); } Player::nextStep(); }
void LocalPlayer::nextStep() { // TODO: Fix picking up when reaching target (this method is obsolete) // TODO: Fix holding walking button to keep walking smoothly if (mPath.empty()) { if (mPickUpTarget) pickUp(mPickUpTarget); if (mWalkingDir) walk(mWalkingDir); } // TODO: Fix automatically walking within range of target, when wanted if (mGoingToTarget && mTarget && withinAttackRange(mTarget)) { mAction = Being::STAND; attack(mTarget, true); mGoingToTarget = false; mPath.clear(); return; } else if (mGoingToTarget && !mTarget) { mGoingToTarget = false; mPath.clear(); } #ifdef EATHENA_SUPPORT Player::nextStep(); #endif }
void philoCommand(int num) { int leftStick, rightStick; int thinkTime = 0; int totalTime = 0; int eatTime = 0; int totalTimeToEat = TOTAL_EAT_TIME; leftStick = num; totalTime = 0; srand((int)time(NULL) + num); if(num == PHILOSOPHERS - 1) { rightStick = 0; } else { rightStick = num + 1; } while(totalTimeToEat > 0) { if((thinkTime = randomGaussian(T_MEAN, T_STDEV)) < 0) { thinkTime = 0; } printf("Philo %d will think for %d seconds (%d seconds total)\n", num, thinkTime, totalTime); totalTime += thinkTime; sleep(thinkTime); if((eatTime = randomGaussian(T_MEAN, T_STDEV)) < 0) { eatTime = 0; } if((pickUp(leftStick, rightStick) == -1) && (errno == EINTR)) { fprintf(stderr, "Error with semop locking: %s\n", strerror(errno)); exit(1); } printf("Philo %d will eat for %d seconds (%d seconds total)\n", num, eatTime, TOTAL_EAT_TIME - totalTimeToEat); totalTimeToEat -= eatTime; sleep(eatTime); if((putDown(leftStick, rightStick) == -1) && (errno == EINTR)) { fprintf(stderr, "Error with semop unlocking: %s\n", strerror(errno)); exit(1); } } printf("Philosopher %d has finished eating for %d and thinking for %d ", num, TOTAL_EAT_TIME - totalTimeToEat, totalTime); exit(0); }
void RSSItem::set(QString* src, const int start, const int end) { title = pickUp(src, start, end, RSSItemTag::TitleS, RSSItemTag::TitleE); link = pickUp(src, start, end, RSSItemTag::LinkS, RSSItemTag::LinkE); desc = pickUp(src, start, end, RSSItemTag::DescS, RSSItemTag::DescE); guid = pickUp(src, start, end, RSSItemTag::GuidS, RSSItemTag::GuidE); author = pickUp(src, start, end, RSSItemTag::AuthorS, RSSItemTag::AuthorE); pubDate = pickUp(src, start, end, RSSItemTag::PubDateS, RSSItemTag::PubDateE); }
// Move the whirler void Whirler::move(Real delta) { // Rotate mNode->roll(Radian(-10 * delta)); mNode->pitch(Radian(mRotationSpeed * delta)); mFlareNode->roll(Radian(delta * 0.25f)); Vector3 pos = getPosition(); // Try to avoid all moving objects ObjectMapType::const_iterator i; ObjectSystem *ob = ObjectSystem::getSingletonPtr(); for(i=ob->getFirst(); i != ob->getLast(); ++i) { if((*i).second == this || (*i).second->getType() == OTYPE_MUSHROOM) continue; Vector3 d = pos - (*i).second->getPosition(); d.z = 0; if(d.squaredLength() > 60.0f*60.0f) continue; Real dist = d.normalise(); Real effect = 1.0f - (dist / 60.0f); mCurrentSpeed += d * effect * mSpeed * 3.0f * delta; } // ..and player as well Vector3 d = pos - mPlayer->getPosition(); d.z = 0; if(d.squaredLength() <= 60.0f*60.0f) { Real dist = d.normalise(); // If distance is very small, player catches it if(dist < 3.0f) { pickUp(); setToBeDeleted(); mPlayer->catchWhirler(); return; } Real effect = 1.0f - (dist / 60.0f); mCurrentSpeed += d * effect * mSpeed * 10.0f * delta; } // Cap the speed if(mCurrentSpeed.squaredLength() >= 55*55) { mCurrentSpeed = mCurrentSpeed.normalisedCopy() * 55.0f; } // Move mNode->translate(mCurrentSpeed * delta); mFlareNode->setPosition(mNode->getPosition()); }
void normalUp(unsigned char key, int x, int y) { if (key == 'w') pickUp(); if (key == 'm') keysDown &= ~mKey; if (key == 'e') switchItems(1); if (key == 'q') switchItems(-1); if (key == 'a') keysDown &= ~aKey; if (key == 'd') keysDown &= ~dKey; if (key == 27) exit(0); if (key == 32) punching = 0; }
int main() { // part 1 code Bus cityBus39(20, 78); Truck pickUp(30, true); move(cityBus39); move(pickUp); show(cityBus39); show(pickUp); /* part 2 code uncomment after you have completed part 1 Bus cityBus144; Truck pickUpAA4; std::cin >> cityBus144 >> pickUpAA4; std::cout << cityBus144 << pickUpAA4; */ return 0; }
void GameController::processTurn() { ui->clearStatusBar(); int oldHP = player->getHP(); char command = getch(); switch (command) { case 2: player->move(player->getX(), player->getY() + 1); break; case 3: player->move(player->getX(), player->getY() - 1); break; case 4: player->move(player->getX() - 1, player->getY()); break; case 5: player->move(player->getX() + 1, player->getY()); break; case '1': player->move(player->getX() - 1, player->getY() + 1); break; case '2': player->move(player->getX(), player->getY() + 1); break; case '3': player->move(player->getX() + 1, player->getY() + 1); break; case '4': player->move(player->getX() - 1, player->getY()); break; case '6': player->move(player->getX() + 1, player->getY()); break; case '7': player->move(player->getX() - 1, player->getY() - 1); break; case '8': player->move(player->getX(), player->getY() - 1); break; case '9': player->move(player->getX() + 1, player->getY() - 1); break; case 'e': enter(); break; case 'h': ui->writeToStatusBar("Commands: " "e -- enter the map, " "i -- browse inventory, " "p -- pick up an item, \n" "t -- talk, " "f -- cast a flood spell, " "q -- quit.\n"); break; case 'i': ui->browseInventory(player); break; case 'p': pickUp(); break; case 't': talk(); break; case 'f': ui->writeToStatusBar(player->castAFlood()); break; case 'q': tryToQuit(); break; default: break; } string *message = new string(); int enemiesKilled = currentMap->processActorsTurns(player, message); score += enemiesKilled; player->addExp(enemiesKilled); if (*message != "") ui->writeToStatusBar(*message + "\n"); int newHP = player->getHP(); if (newHP < oldHP) ui->writeToStatusBar("You were attacked!\n"); ui->updateStatsBar(player); if (!player->isAlive()) { if (player->drowned()) ui->writeToStatusBar("You drowned!\n"); state = over; } }
int main(void) { ArSerialConnection con; ArRobot robot; int ret; std::string str; ArActionLimiterForwards limiter("speed limiter near", 225, 600, 250); ArActionLimiterForwards limiterFar("speed limiter far", 225, 1100, 400); ArActionTableSensorLimiter tableLimiter; ArActionLimiterBackwards backwardsLimiter; ArActionConstantVelocity stop("stop", 0); ArSonarDevice sonar; ArACTS_1_2 acts; ArPTZ *ptz; ptz = new ArVCC4(&robot, true); ArGripper gripper(&robot); Acquire acq(&acts, &gripper); DriveTo driveTo(&acts, &gripper, ptz); DropOff dropOff(&acts, &gripper, ptz); PickUp pickUp(&acts, &gripper, ptz); TakeBlockToWall takeBlock(&robot, &gripper, ptz, &acq, &driveTo, &pickUp, &dropOff, &tableLimiter); if (!acts.openPort(&robot)) { printf("Could not connect to acts, exiting\n"); exit(0); } Aria::init(); robot.addRangeDevice(&sonar); //con.setBaud(38400); if ((ret = con.open()) != 0) { str = con.getOpenMessage(ret); printf("Open failed: %s\n", str.c_str()); Aria::shutdown(); return 1; } robot.setDeviceConnection(&con); if (!robot.blockingConnect()) { printf("Could not connect to robot... exiting\n"); Aria::shutdown(); return 1; } ptz->init(); ArUtil::sleep(8000); printf("### 2222\n"); ptz->panTilt(0, -40); printf("### whee\n"); ArUtil::sleep(8000); robot.setAbsoluteMaxTransVel(400); robot.setStateReflectionRefreshTime(250); robot.comInt(ArCommands::ENABLE, 1); robot.comInt(ArCommands::SOUNDTOG, 0); ArUtil::sleep(200); robot.addAction(&tableLimiter, 100); robot.addAction(&limiter, 99); robot.addAction(&limiterFar, 98); robot.addAction(&backwardsLimiter, 97); robot.addAction(&acq, 77); robot.addAction(&driveTo, 76); robot.addAction(&pickUp, 75); robot.addAction(&dropOff, 74); robot.addAction(&stop, 30); robot.run(true); Aria::shutdown(); return 0; }
int main(void) { ArSerialConnection con; ArRobot robot; int ret; std::string str; ArActionLimiterForwards limiter("speed limiter near", 300, 600, 250); ArActionLimiterForwards limiterFar("speed limiter far", 300, 1100, 400); ArActionLimiterBackwards backwardsLimiter; ArActionConstantVelocity stop("stop", 0); ArActionConstantVelocity backup("backup", -200); ArSonarDevice sonar; ArACTS_1_2 acts; ArSonyPTZ sony(&robot); ArGripper gripper(&robot, ArGripper::GENIO); Acquire acq(&acts, &gripper); DriveTo driveTo(&acts, &gripper, &sony); PickUp pickUp(&acts, &gripper, &sony); TakeBlockToWall takeBlock(&robot, &gripper, &sony, &acq, &driveTo, &pickUp, &backup); Aria::init(); if (!acts.openPort(&robot)) { printf("Could not connect to acts\n"); exit(1); } robot.addRangeDevice(&sonar); //con.setBaud(38400); if ((ret = con.open()) != 0) { str = con.getOpenMessage(ret); printf("Open failed: %s\n", str.c_str()); Aria::shutdown(); return 1; } robot.setDeviceConnection(&con); if (!robot.blockingConnect()) { printf("Could not connect to robot... exiting\n"); Aria::shutdown(); return 1; } sony.init(); ArUtil::sleep(1000); //robot.setAbsoluteMaxTransVel(400); robot.setStateReflectionRefreshTime(250); robot.comInt(ArCommands::ENABLE, 1); robot.comInt(ArCommands::SOUNDTOG, 0); ArUtil::sleep(200); robot.addAction(&limiter, 100); robot.addAction(&limiterFar, 99); robot.addAction(&backwardsLimiter, 98); robot.addAction(&acq, 77); robot.addAction(&driveTo, 76); robot.addAction(&pickUp, 75); robot.addAction(&backup, 50); robot.addAction(&stop, 30); robot.run(true); Aria::shutdown(); return 0; }
void Player::customize() { m_characterName = ""; CallbackOverlay nameInput(3,30, "What is your name?", &m_characterName, &drawNameInput, &handleNameInput); //nameInput.main(m_level); std::vector<ListDefinition>raceList; raceList.push_back(ListDefinition(LIST_ENTRY,'a',"Human")); raceList.push_back(ListDefinition(LIST_ENTRY,'b',"Vedalken")); raceList.push_back(ListDefinition(LIST_ENTRY,'c',"Leonin")); raceList.push_back(ListDefinition(LIST_ENTRY,'d',"Viashino")); raceList.push_back(ListDefinition(LIST_ENTRY,'r',"Random")); ListOverlay raceOverlay(5, 30, "Select starting race", false, false, raceList); raceOverlay.main(m_level); for(unsigned int i=0; i<raceOverlay.m_definition.size(); i++) { ListDefinition &def = raceOverlay.m_definition[i]; if(def.m_selected) { switch(i) { case 0: m_race=PLAYER_HUMAN; break; case 1: m_race=PLAYER_VEDALKEN; break; case 2: m_race=PLAYER_LEONIN; break; case 3: m_race=PLAYER_VIASHINO; break; case 4: boost::random::uniform_int_distribution<> raceDist(0,3); m_race = raceDist(RAND); break; } } } pickUp(m_level->m_actorFactory.getActor("Short Sword",m_level)); pickUp(m_level->m_actorFactory.getActor("Minor Mana Potion",m_level)); pickUp(m_level->m_actorFactory.getActor("Short Bow",m_level)); Actor *arrow = m_level->m_actorFactory.getActor("Arrow",m_level); arrow->m_amount = 20; pickUp(arrow); m_weapon = 0; m_quiver = 3; int manaPoints = generateAttributes(); calculateBonuses(); calculateHp(); calculateAc(); TCODConsole::root->clear(); increaseMana(manaPoints); drawNewCard(0,true); drawNewCard(1); drawNewCard(2); m_level->m_playerGenerated = true; std::string msg = "Welcome "; /*msg += m_characterName; msg += " the ";*/ msg += m_raceName; m_level->m_messages->showMessage(msg, MESSAGE_WARNING); m_level->m_messages->showMessage("You enter the dungeons of Svogthos in search of the Orb of Knowledge", MESSAGE_WARNING); }
void Player::doPickUp() { bool showNothingMessage = true; if(m_level->m_dungeon->getGlyph(m_x,m_y) == 28) { m_level->m_messages->showMessage("You absorb the shard of knowledge",MESSAGE_NOTIFICATION); int manaAmount = m_hd/7 + 1; increaseMana(manaAmount); int w = m_level->m_dungeon->m_width; m_level->m_dungeon->m_tiles[m_x+m_y*w] = m_level->m_tileFactory.getTile("Crystal Floor"); showNothingMessage = false; } if(m_level->m_dungeon->getGlyph(m_x,m_y) == 31) { m_level->m_messages->showMessage("Congratulations",MESSAGE_NOTIFICATION); m_level->m_messages->showMessage("You have obtained the Orb of Knowledge",MESSAGE_NOTIFICATION); int w = m_level->m_dungeon->m_width; m_level->m_dungeon->m_tiles[m_x+m_y*w] = m_level->m_tileFactory.getTile("Crystal Floor"); showNothingMessage = false; m_level->m_playerWon = true; CallbackOverlay winScreen(7,50, "You Win!", 0, &drawWinScreen, &handleWinScreen); winScreen.main(m_level); } bool pickedUp = false; std::vector<int> tags; tags.push_back(ITEM_PICK_UP); std::vector<Actor *> actors = m_level->getActors(m_x,m_y,tags); if(m_inventory.size()<26) { if(actors.size()>0) { showNothingMessage = false; std::vector<ListDefinition>itemList; char letter = 'a'; for(unsigned int i=0; i<actors.size(); i++,letter++) { Actor *actor = actors[i]; std::stringstream st; st << actor->m_name; if(actor->hasTag(ITEM_STACK)) { st << " x"; st << actor->m_amount; } itemList.push_back(ListDefinition(LIST_ENTRY, letter, st.str())); } ListOverlay itemOverlay(30, 30, "Pick up what?", itemList.size()>1, true, itemList); itemOverlay.main(m_level); for(unsigned int i=0; i<itemOverlay.m_definition.size(); i++) { ListDefinition &def = itemOverlay.m_definition[i]; if(def.m_selected) { Actor *item = actors[i]; if(item != 0) { std::string msg = "You pick up the "; msg += item->m_name; m_level->m_messages->showMessage(msg,MESSAGE_NOTIFICATION); pickUp(item); m_level->removeActor(item); pickedUp = true; } } } } if(showNothingMessage) { m_level->m_messages->showMessage("There is nothing here to pick up",MESSAGE_NOTIFICATION); } if(pickedUp) act(); } else { if(showNothingMessage) { m_level->m_messages->showMessage("You cannot carry more things",MESSAGE_NOTIFICATION); } } }