+/* check opponent position */
+void check_opponent(void)
+{
+ int16_t opp_x, opp_y;
+ int16_t opp_d, opp_a;
+ uint8_t i, j;
+
+ strat_opponent_lpack = 0;
+ strat_opponent_rpack = 0;
+
+ if (get_opponent_xyda(&opp_x, &opp_y, &opp_d, &opp_a) < 0)
+ return;
+
+ /* pack spickles if opponent too close */
+ if (opp_d < 600) {
+ if (opp_a > 45 && opp_a < 135)
+ strat_opponent_lpack = 1;
+ if (opp_a > 225 && opp_a < 315)
+ strat_opponent_rpack = 1;
+ }
+
+ /* check for oranges after 5 seconds */
+ if (time_get_s() > 5) {
+ if (mainboard.our_color == I2C_COLOR_YELLOW) {
+ if (opp_y < 500 && opp_x < 500)
+ strat_db.our_oranges_count = 0;
+ if (opp_y < 500 && opp_x > AREA_X - 500)
+ strat_db.opp_oranges_count = 0;
+ }
+ else {
+ if (opp_y > AREA_Y - 500 && opp_x < 500)
+ strat_db.our_oranges_count = 0;
+ if (opp_y > AREA_Y - 500 && opp_x > AREA_X - 500)
+ strat_db.opp_oranges_count = 0;
+ }
+ }
+
+ /* malus for some tomatoes and cobs, visited by opponent */
+ if (xycoord_to_ijcoord(&opp_x, &opp_y, &i, &j) < 0)
+ return;
+
+ strat_db.wp_table[i][j].opp_visited = 1;
+}
+