From: ian Date: Sat, 10 May 2008 11:25:23 +0000 (+0000) Subject: explicit inversion command X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=e43fdb8ceb7030ef0fb7f4fef890f713bce84181;p=trains.git explicit inversion command --- diff --git a/hostside/commands.c b/hostside/commands.c index b7ffd1f..064a601 100644 --- a/hostside/commands.c +++ b/hostside/commands.c @@ -271,6 +271,20 @@ static int cmd_speed(ParseState *ps, const CmdInfo *ci) { return 0; } +static int cmd_invert(ParseState *ps, const CmdInfo *ci) { + Segment *seg; + + actual_inversions_start(); + while (ps->remain) { + MUSTECR( ps_needsegment(ps,&seg,0) ); + seg->seg_inverted ^= 1; + actual_inversions_segment(seg); + } + actual_inversions_done(); + + return 0; +} + const CmdInfo toplevel_cmds[]= { { "!pic", cmd_pic, CIXF_ANYSTA|CIXF_FORCE }, { "!nmra", cmd_nmra, }, @@ -278,6 +292,7 @@ const CmdInfo toplevel_cmds[]= { { "movpos", cmd_movpos }, //{ "autopoint", cmd_autopoint }, { "!movpos", cmd_movpos, CIXF_ANYSTA|CIXF_FORCE }, + { "!invert", cmd_invert, CIXF_ANYSTA|CIXF_FORCE }, { "speed", cmd_speed }, { 0 } };