void Bullet::init(Character* shooter) { setShooter(shooter); setZoomX(0.2); setZoomY(0.2); setX(shooter->getX()); setY(shooter->getY()); setZ(shooter->getZ()); setRemainTime(100); setDirectionToTarget(); }
void handleLcdInput(unsigned int input) { switch(currentPage) { case(startLink)://Link Status { switch(input) { case(LCD_BTN_LEFT): { currentPage = startFPS; break; } case(LCD_BTN_RIGHT): { currentPage = startBattery; break; } case(LCD_BTN_CENTER): { //check link status //if connected go to connected //else go to not connected if (isJoystickConnected(1)) { currentPage = startLink + 1; } else { currentPage = startLink + 2; } break; } } break; } case(startBattery)://Battery Status { switch(input) { case(LCD_BTN_LEFT): { currentPage = startLink; break; } case(LCD_BTN_RIGHT): { currentPage = startSensor; break; } case(LCD_BTN_CENTER): { currentPage = startBattery + 1; break; } } break; } case(startSensor)://Sensor Status { switch(input) { case(LCD_BTN_LEFT): { currentPage = startBattery; break; } case(LCD_BTN_RIGHT): { currentPage = startMotor; break; } case(LCD_BTN_CENTER): { quadNum = 0; imeNum = 0; sensIndex = 1; currentPage = startSensor + 1; break; } } break; } case(startMotor)://Motor Status { switch(input) { case(LCD_BTN_LEFT): { currentPage = startSensor; break; } case(LCD_BTN_RIGHT): { currentPage = startAuton; break; } case(LCD_BTN_CENTER): { currentMotorNum = 1; currentPage = startMotor + 1; break; } } break; } case(startAuton)://Auton Status { switch(input) { case(LCD_BTN_LEFT): { currentPage = startMotor; break; } case(LCD_BTN_RIGHT): { currentPage = startMode; break; } case(LCD_BTN_CENTER): { currentPage = startAuton + 1; break; } } break; } case(startMode)://Op Mode status { switch(input) { case(LCD_BTN_LEFT): { currentPage = startAuton; break; } case(LCD_BTN_RIGHT): { currentPage = startFPS;; break; } case(LCD_BTN_CENTER): { currentPage = startMode + 1; break; } } break; } case(startFPS): { switch(input) { case(LCD_BTN_LEFT): { currentPage = startMode; break; } case(LCD_BTN_RIGHT): { currentPage = startLink; break; } case(LCD_BTN_CENTER): { currentPage = startFPS + 1; break; } } break; } case(startLink + 1)://Link Status - Link Est. { switch(input) { case(LCD_BTN_LEFT): { //nothing break; } case(LCD_BTN_RIGHT): { //nothing break; } case(LCD_BTN_CENTER): { //returns to top of branch currentPage = startLink; break; } } break; } case(startLink + 2)://Link Status - Link Not Est. { switch(input) { case(LCD_BTN_LEFT): { //nothing break; } case(LCD_BTN_RIGHT): { //nothing break; } case(LCD_BTN_CENTER): { //return to top of branch currentPage = startLink; break; } } break; } case(startBattery + 1)://Battery Status - Battery Selector { switch(input) { case(LCD_BTN_LEFT): { currentPage = startBattery + 2; break; } case(LCD_BTN_RIGHT): { currentPage = startBattery + 3; break; } case(LCD_BTN_CENTER): { currentPage = startBattery; break; } } break; } case(startBattery + 2)://Battery Status - Battery Selector - Prims Battery Status { switch(input) { case(LCD_BTN_LEFT): { //nothing break; } case(LCD_BTN_RIGHT): { //nothing break; } case(LCD_BTN_CENTER): { currentPage = startBattery; break; } } break; } case(startBattery + 3)://Battery Status - Battery Selector - Backup { switch(input) { case(LCD_BTN_LEFT): { //nothing break; } case(LCD_BTN_RIGHT): { //nothing break; } case(LCD_BTN_CENTER): { currentPage = startBattery; break; } } break; } case(startSensor + 1): { /* * SENSOR SELECTION MENU * * Menu for selecting individual types of sensors such * which can then have individual sensors. This screen * will display the name of the Sensor Group along with * the Buttons to select the sensor group and iterate * between individual sensor groups. * */ switch(input) { /* * LEFT BUTTON: Previous Sensor Group * CENTER BUTTON: Select Current Sensor Group * RIGHT BUTTON: Next Sensor Group * */ case(LCD_BTN_LEFT): { sensIndex--; if(sensIndex < 1){ sensIndex = 4; } break; } case(LCD_BTN_RIGHT): { sensIndex++; if(sensIndex > 4){ sensIndex = 1; } break; } case(LCD_BTN_CENTER): { //the +1 must be added to go beyond this page(startSensor + 1) currentPage = startSensor + sensIndex + 1; break; } } break; } case(startSensor + 2): { /* * QUADRATURE: Button Control * * There can be multiple Quadratures meaning the * case has functions to iterate between the * individual Quadratures. The screen will display * both the data of the current Quadrature and * the buttons to iterate between the other * individual Quadratures. * */ switch(input) { /* * LEFT BUTTON: Previous Quadrature * CENTER BUTTON: Return to Main Page * RIGHT BUTTON: Next Quadrature * */ case(LCD_BTN_LEFT): { quadNum--; if(quadNum < 0) quadNum = 3; break; } case(LCD_BTN_RIGHT): { quadNum++; if(quadNum > 3) quadNum = 0; break; } case(LCD_BTN_CENTER): { currentPage = startSensor; break; } } break; } case(startSensor + 3): { /* * IME: Button Control * * There can be multiple IME's meaning the IME * case has functions to iterate between the * individual IME's. The screen will display * both the data and the buttons to iterate * between the individual IME's. * */ switch(input) { /* * LEFT BUTTON: Previous IME * CENTER BUTTON: Return to Main Page * RIGHT BUTTON: Next IME * */ case(LCD_BTN_LEFT): { imeNum--; if(imeNum < 0) imeNum = 1; break; } case(LCD_BTN_RIGHT): { imeNum++; if(imeNum > 1) imeNum = 0; break; } case(LCD_BTN_CENTER): { currentPage = startSensor; break; } } break; } case(startSensor + 4): { /* * GYROSCOPE: Button Control * * There will only be one Gyroscope at all times, * meaning the side buttons will have to do nothing. * This results in the only usage of the middle * button to be returning to the main Sensor screen. * */ switch(input) { /* * LEFT BUTTON: No Function * CENTER BUTTON: Return to aMain Page * RIGHT BUTTON: No Function * */ case(LCD_BTN_LEFT): { break; } case(LCD_BTN_RIGHT): { break; } case(LCD_BTN_CENTER): { currentPage = startSensor; break; } } break; } case(startSensor + 5): { switch(input) { case(LCD_BTN_LEFT): { break; } case(LCD_BTN_RIGHT): { break; } case(LCD_BTN_CENTER): { currentPage = startSensor; break; } } break; } case(startMotor + 1): { switch(input) { case(LCD_BTN_LEFT): { currentGroupNum = 0; currentPage = startMotor + 2; break; } case(LCD_BTN_RIGHT): { currentMotorNum = 1; currentPage = startMotor + 9; break; } case(LCD_BTN_CENTER): { currentPage = startMotor; break; } } break; } case(startMotor + 2): { switch(input) { case(LCD_BTN_LEFT): { currentGroupNum--; if(currentGroupNum < 0) { currentGroupNum = NUM_GROUPS - 1; } //currentPage = startMotor + 2; //stay on to this page break; } case(LCD_BTN_RIGHT): { currentGroupNum++; if(currentGroupNum == NUM_GROUPS) { currentGroupNum = 0; } //currentPage = startMotor + 2; //stay on to this page break; } case(LCD_BTN_CENTER): { currentPage = startMotor + 3; break; } } break; } case(startMotor + 3): { switch(input) { case(LCD_BTN_LEFT): { /*int avg = 0; int counter = 0; for (int i = 0; i < groups[currentGroupNum].validMotors; i++) { avg += motorGet(groups[currentGroupNum].motors[i]); counter++; } if(counter != 0) { avg /= counter; } currentGroupSpeed = avg;*/ currentPage = startMotor + 4; break; } case(LCD_BTN_RIGHT): { currentGroupIndex = 0; currentPage = startMotor + 6; break; } case(LCD_BTN_CENTER): { currentPage = startMotor + 1; break; } } break; } case(startMotor + 4): { switch(input) { case(LCD_BTN_LEFT): { for (int i = 0; i < groups[currentGroupNum].validMotors; i++) { motorStop(groups[currentGroupNum].motors[i]); } //currentGroupSpeed = 0; //currentPage = startMotor + 4; //stay on this page break; } case(LCD_BTN_RIGHT): { currentPage = startMotor + 5; break; } case(LCD_BTN_CENTER): { currentPage = startMotor + 3; break; } } break; } case(startMotor + 5): { switch(input) { case(LCD_BTN_LEFT): { for (int i = 0; i < groups[currentGroupNum].validMotors; i++) { motorSet(groups[currentGroupNum].motors[i], -127); } //currentGroupSpeed = -127; currentPage = startMotor + 4; break; } case(LCD_BTN_RIGHT): { for (int i = 0; i < groups[currentGroupNum].validMotors; i++) { motorSet(groups[currentGroupNum].motors[i], 127); } //currentGroupSpeed = 127; currentPage = startMotor + 4; break; } case(LCD_BTN_CENTER): { currentPage = startMotor + 4; break; } } break; } case(startMotor + 6): { switch(input) { case(LCD_BTN_LEFT): { currentGroupIndex--; if (currentGroupIndex < 0) { currentGroupIndex = groups[currentGroupNum].validMotors - 1; } //currentPage = startMotor + 6; //stay on this page break; } case(LCD_BTN_RIGHT): { currentGroupIndex++; if (currentGroupIndex == groups[currentGroupNum].validMotors) { currentGroupIndex = 0; } //currentPage = startMotor + 6; //stay on this page break; } case(LCD_BTN_CENTER): { //currentGroupSpeed = 0; currentPage = startMotor + 7; break; } } break; } case(startMotor + 7): { switch(input) { case(LCD_BTN_LEFT): { motorStop(groups[currentGroupNum].motors[currentGroupIndex]); //currentGroupSpeed = 0; //currentPage = startMotor + 7; //stay on this page break; } case(LCD_BTN_RIGHT): { currentPage = startMotor + 8; break; } case(LCD_BTN_CENTER): { currentPage = startMotor + 3; break; } } break; } case(startMotor + 8): { switch(input) { case(LCD_BTN_LEFT): { motorSet(groups[currentGroupNum].motors[currentGroupIndex], -127); currentPage = startMotor + 7; break; } case(LCD_BTN_RIGHT): { motorSet(groups[currentGroupNum].motors[currentGroupIndex], 127); currentPage = startMotor + 7; break; } case(LCD_BTN_CENTER): { currentPage = startMotor + 7; break; } } break; } case(startMotor + 9): { switch(input) { case(LCD_BTN_LEFT): { currentMotorNum--; if(currentMotorNum < 1) { currentMotorNum = 10; } //currentPage = startMotor + 9 //stay on this page break; } case(LCD_BTN_RIGHT): { currentMotorNum++; if(currentMotorNum > 10) { currentMotorNum = 1; } //currentPage = startMotor + 9 //stay on this page break; } case(LCD_BTN_CENTER): { currentMotorSpeed = motorGet(currentMotorNum); currentPage = startMotor + 10; break; } } break; } case(startMotor + 10): { switch(input) { case(LCD_BTN_LEFT): { motorStop(currentMotorNum); //currentMotorSpeed = 0; //currentPage = startMotor + 10; //stay on this page break; } case(LCD_BTN_RIGHT): { currentPage = startMotor + 11; break; } case(LCD_BTN_CENTER): { currentPage = startMotor + 1; break; } } break; } case(startMotor + 11): { switch(input) { case(LCD_BTN_LEFT): { //currentMotorSpeed = -127; motorSet(currentMotorNum, -127); currentPage = startMotor + 10; break; } case(LCD_BTN_RIGHT): { //currentMotorSpeed = 127; motorSet(currentMotorNum, 127); currentPage = startMotor + 10; break; } case(LCD_BTN_CENTER): { currentPage = startMotor + 10; break; } } break; } case(startAuton + 1): { switch(input) { case(LCD_BTN_LEFT): { autonMode--; if(autonMode < 0) autonMode = 1; break; } case(LCD_BTN_RIGHT): { autonMode++; if(autonMode > 1) autonMode = 0; break; } case(LCD_BTN_CENTER): { currentPage = startAuton; break; } } break; } case(startMode + 1): { if (input == LCD_BTN_LEFT || input == LCD_BTN_RIGHT) { if (opMode == 1) { imeReset(IME_RIGHT_CHAIN_NUMBER); imeReset(IME_LEFT_CHAIN_NUMBER); } else if (opMode == 2) { setShooter(0); } } switch(input) { case(LCD_BTN_LEFT): { opMode--; if (opMode == -1) { opMode = 2; } break; } case(LCD_BTN_RIGHT): { opMode++; if (opMode == 3) { opMode = 0; } break; } case(LCD_BTN_CENTER): { currentPage = startMode; break; } } break; } case(startFPS + 1): { switch(input) { case(LCD_BTN_LEFT): { break; } case(LCD_BTN_RIGHT): { break; } case(LCD_BTN_CENTER): { currentPage = startFPS; break; } } break; } } }