Ejemplo n.º 1
0
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();
}
Ejemplo n.º 2
0
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;
	}
	}
}