lib/src/main/cpp/test_items/stop_and_start.cpp
@@ -216,14 +216,27 @@
    bool ret = false;
    Line red_line;
    const int red_lines[][2] = {{0, 8}};
    int red_lines[2][2];
    int red_line_num = 0;
    if (map->num == 10) {
        red_lines[0][0] = 0;
        red_lines[0][1] = 8;
        red_lines[1][0] = 8;
        red_lines[1][1] = 9;
        red_line_num = 2;
    } else {
        red_lines[0][0] = 0;
        red_lines[0][1] = 8;
        red_line_num = 1;
    }
    Line frontAxle, rearAxle;
    MakeLine(&frontAxle, &car->carXY[car->left_front_tire[TIRE_OUTSIDE]], &car->carXY[car->right_front_tire[TIRE_OUTSIDE]]);
    MakeLine(&rearAxle, &car->carXY[car->left_rear_tire[TIRE_OUTSIDE]], &car->carXY[car->right_rear_tire[TIRE_OUTSIDE]]);
    for (int i = 0; i < sizeof(red_lines) / sizeof(red_lines[0]); ++i) {
    for (int i = 0; i < red_line_num; ++i) {
        MakeLine(&red_line, &map->point[red_lines[i][0]], &map->point[red_lines[i][1]]);
        if (IntersectionOf(red_line, frontAxle) == GM_Intersection ||
                IntersectionOf(red_line, rearAxle) == GM_Intersection) {
@@ -285,11 +298,19 @@
    Polygon carBody, map2;
    PointF vPoint = Calc3Point(map->point[8], map->point[0], DistanceOf(map->point[8], map->point[7]), 'R');
    PointF vPoint2;
    if (map->num == 10) {
        vPoint2 = Calc3Point(map->point[8], map->point[9], DistanceOf(map->point[8], map->point[7]), 'L');
    }
    map2.num = 4;
    map2.point = (PointF *)malloc(map2.num * sizeof(PointF));
    MakePolygon(&map2, {vPoint, map->point[0], map->point[7], map->point[8]});
    if (map->num == 9)
        MakePolygon(&map2, {vPoint, map->point[0], map->point[8], map->point[7]});
    else
        MakePolygon(&map2, {vPoint, map->point[0], map->point[9], vPoint2});
    carBody.num = car->bodyNum;
    carBody.point = (PointF *)malloc(carBody.num * sizeof(PointF));