- printf_P(PSTR(" one build on disc: "));
- if (strat_infos.conf.flags & STRAT_CONF_ONLY_ONE_ON_DISC)
- printf_P(PSTR("on\r\n"));
- else
- printf_P(PSTR("off\r\n"));
-
- printf_P(PSTR(" bypass static2: "));
- if (strat_infos.conf.flags & STRAT_CONF_BYPASS_STATIC2)
- printf_P(PSTR("on\r\n"));
- else
- printf_P(PSTR("off\r\n"));
-
- printf_P(PSTR(" take one lintel: "));
- if (strat_infos.conf.flags & STRAT_CONF_TAKE_ONE_LINTEL)
- printf_P(PSTR("on\r\n"));
- else
- printf_P(PSTR("off\r\n"));
-
- printf_P(PSTR(" skip this temple when temple check fails: "));
- if (strat_infos.conf.flags & STRAT_CONF_SKIP_WHEN_CHECK_FAILS)
- printf_P(PSTR("on\r\n"));
- else
- printf_P(PSTR("off\r\n"));
-
- printf_P(PSTR(" store static2: "));
- if (strat_infos.conf.flags & STRAT_CONF_STORE_STATIC2)
- printf_P(PSTR("on\r\n"));
- else
- printf_P(PSTR("off\r\n"));
-
- printf_P(PSTR(" (big3) try to build a temple with 3 lintels: "));
- if (strat_infos.conf.flags & STRAT_CONF_BIG_3_TEMPLE)
- printf_P(PSTR("on\r\n"));
- else
- printf_P(PSTR("off\r\n"));
-
- printf_P(PSTR(" early opponent scan: "));
- if (strat_infos.conf.flags & STRAT_CONF_EARLY_SCAN)
- printf_P(PSTR("on\r\n"));
- else
- printf_P(PSTR("off\r\n"));
-
- printf_P(PSTR(" push opponent columns: "));
- if (strat_infos.conf.flags & STRAT_CONF_PUSH_OPP_COLS)
- printf_P(PSTR("on\r\n"));
- else
- printf_P(PSTR("off\r\n"));
-
- printf_P(PSTR(" scan opponent min time: %d\r\n"),
- strat_infos.conf.scan_opp_min_time);
- printf_P(PSTR(" delay between oppnent scan: %d\r\n"),
- strat_infos.conf.delay_between_opp_scan);
- printf_P(PSTR(" scan our min time: %d\r\n"),
- strat_infos.conf.scan_our_min_time);
- printf_P(PSTR(" delay between our scan: %d\r\n"),
- strat_infos.conf.delay_between_our_scan);
- printf_P(PSTR(" wait opponent gone before scan: %d\r\n"),
- strat_infos.conf.wait_opponent);
- printf_P(PSTR(" lintel min time: %d\r\n"),
- strat_infos.conf.lintel_min_time);
- printf_P(PSTR(" scan_opp_angle: %d\r\n"),
- strat_infos.conf.scan_opp_angle);
-}
-
-void strat_dump_temple(struct temple *temple)
-{
- if (!strat_infos.dump_enabled)
- return;
-
- printf_P(PSTR(" temple %p (%s): "), temple, temple->zone->name);
-
- if (temple->flags & TEMPLE_F_MONOCOL)
- printf_P(PSTR("MONOCOL "));
- else
- printf_P(PSTR("BICOL "));
-
- if (temple->flags & TEMPLE_F_ON_DISC)
- printf_P(PSTR("ON_DISC "));
- else
- printf_P(PSTR("ON_ZONE_0_1 "));
-
- if (temple->flags & TEMPLE_F_OPPONENT)
- printf_P(PSTR("OPPONENT "));
- else
- printf_P(PSTR("OURS "));
-
- if (temple->flags & TEMPLE_F_LINTEL)
- printf_P(PSTR("LIN_ON_TOP "));
- else
- printf_P(PSTR("COL_ON_TOP "));
-
- printf_P(PSTR("\r\n"));
-
- printf_P(PSTR(" pos=(%d,%d,%d) ckpt=(%d,%d) ltime=%d\r\n"),
- temple->x, temple->y, temple->a,
- temple->checkpoint_x, temple->checkpoint_y,
- temple->last_try_time);
- printf_P(PSTR(" L: lev=%d da=%d,%d\r\n"),
- temple->level_l, temple->dist_l, temple->angle_l);
- printf_P(PSTR(" R: lev=%d da=%d,%d\r\n"),
- temple->level_l, temple->dist_l, temple->angle_l);
-}
-
-void strat_dump_zone(struct build_zone *zone)
-{
- if (!strat_infos.dump_enabled)
- return;
-
- printf_P(PSTR(" zone %s: "), zone->name);
-
- if (zone->flags & ZONE_F_DISC)
- printf_P(PSTR("DISC "));
- else if (zone->flags & ZONE_F_ZONE1)
- printf_P(PSTR("ZONE1 "));
- else if (zone->flags & ZONE_F_ZONE0)
- printf_P(PSTR("ZONE0 "));
-
- if (zone->flags & ZONE_F_BUSY)
- printf_P(PSTR("BUSY "));
- else
- printf_P(PSTR("FREE "));
-
- printf_P(PSTR("\r\n"));
-
- printf_P(PSTR(" lev=%d ckpt=(%d,%d) ltime=%d\r\n"),
- zone->level,
- zone->checkpoint_x, zone->checkpoint_y,
- zone->last_try_time);
-}
-
-void strat_dump_static_cols(void)
-{
- if (!strat_infos.dump_enabled)
- return;
-
- printf_P(PSTR(" static cols: l0=%d l1=%d l2=%d\r\n"),
- strat_infos.s_cols.flags & STATIC_COL_LINE0_DONE,
- strat_infos.s_cols.flags & STATIC_COL_LINE1_DONE,
- strat_infos.s_cols.flags & STATIC_COL_LINE2_DONE);
-}
-
-void strat_dump_col_disp(void)
-{
- if (!strat_infos.dump_enabled)
- return;
-
- printf_P(PSTR(" c1 cnt=%d ltt=%d\r\n"),
- strat_infos.c1.count, strat_infos.c1.last_try_time);
- printf_P(PSTR(" c2 cnt=%d ltt=%d\r\n"),
- strat_infos.c2.count, strat_infos.c2.last_try_time);
- printf_P(PSTR(" c3 cnt=%d ltt=%d\r\n"),
- strat_infos.c3.count, strat_infos.c3.last_try_time);
-}
-
-void strat_dump_lin_disp(void)
-{
- if (!strat_infos.dump_enabled)
- return;
- printf_P(PSTR(" l1 cnt=%d ltt=%d\r\n"),
- strat_infos.l1.count, strat_infos.l1.last_try_time);
- printf_P(PSTR(" l2 cnt=%d ltt=%d\r\n"),
- strat_infos.l2.count, strat_infos.l2.last_try_time);
-
-}
-
-void strat_dump_all_temples(void)
-{
- struct temple *temple;
- uint8_t i;
-
- if (!strat_infos.dump_enabled)
- return;
-
- for (i=0; i<MAX_TEMPLE; i++) {
- temple = &strat_infos.temple_list[i];
- if (!(temple->flags & TEMPLE_F_VALID))
- continue;
- strat_dump_temple(temple);
- }
-}
-
-void strat_dump_all_zones(void)
-{
- struct build_zone *zone;
- uint8_t i;
-
- if (!strat_infos.dump_enabled)
- return;
-
- for (i=0; i<MAX_ZONE; i++) {
- zone = &strat_infos.zone_list[i];
- if (!(zone->flags & ZONE_F_VALID))
- continue;
- strat_dump_zone(zone);
- }