67 lines
1.4 KiB
C
67 lines
1.4 KiB
C
#include "zf_common_headfile.h"
|
|
#include "gl_headfile.h"
|
|
|
|
enum barrier_type_e barrier_type = BARRIER_NONE;
|
|
|
|
|
|
void CheckBarrier() {
|
|
if (barrier_type == BARRIER_NONE && Lpt0_found_barrier_in && !Lpt1_found_barrier_in && is_straight1) {
|
|
barrier_type = BARRIER_LEFT_BEGIN;
|
|
}
|
|
if (barrier_type == BARRIER_NONE && !Lpt0_found_barrier_in && Lpt1_found_barrier_in && is_straight0) {
|
|
barrier_type = BARRIER_RIGHT_BEGIN;
|
|
}
|
|
}
|
|
|
|
void RunBarrier() {
|
|
if (barrier_type == BARRIER_LEFT_BEGIN)
|
|
{
|
|
track_type = TRACK_RIGHT;
|
|
if (Lpt0_found)
|
|
{
|
|
Lpt0_found_count++;
|
|
}
|
|
if (Lpt0_found_count >= 1)
|
|
{
|
|
Lpt0_found_count = 0;
|
|
barrier_type = BARRIER_LEFT_RUNNING;
|
|
track_type = TRACK_RIGHT;
|
|
}
|
|
}
|
|
else if (barrier_type == BARRIER_LEFT_RUNNING)
|
|
{
|
|
track_type = TRACK_RIGHT;
|
|
if (Lpt0_found)
|
|
{
|
|
barrier_type = BARRIER_NONE;
|
|
track_type = TRACK_RIGHT;
|
|
}
|
|
}
|
|
|
|
|
|
if (barrier_type == BARRIER_RIGHT_BEGIN)
|
|
{
|
|
track_type = TRACK_LEFT;
|
|
if (Lpt1_found)
|
|
{
|
|
Lpt1_found_count++;
|
|
}
|
|
if (Lpt1_found_count >= 1)
|
|
{
|
|
Lpt1_found_count = 0;
|
|
barrier_type = BARRIER_RIGHT_RUNNING;
|
|
track_type = TRACK_LEFT;
|
|
}
|
|
}
|
|
else if (barrier_type == BARRIER_RIGHT_RUNNING)
|
|
{
|
|
track_type = TRACK_LEFT;
|
|
if (Lpt1_found)
|
|
{
|
|
barrier_type = BARRIER_NONE;
|
|
track_type = TRACK_LEFT;
|
|
}
|
|
}
|
|
|
|
}
|