movfeat++ <as above> } see route++
!movfeat } see !route
+ direction forwards|backwards|change <train>
+
DIRECT NMRA AND PIC INSTRUCTIONS
Example (always the same msg):
return 0;
}
+static int cmd_direction(ParseState *ps, const CmdInfo *ci) {
+ Train *tra;
+ int backwards;
+
+ MUSTECR( ps_needword(ps) );
+ if (!thiswordstrcmp(ps,"forwards")) backwards= 0;
+ else if (!thiswordstrcmp(ps,"backwards")) backwards= 1;
+ else if (!thiswordstrcmp(ps,"change")) backwards= !tra->backwards;
+ else return badcmd(ps, "direction must be forwards|backwards|change");
+
+ MUSTECR( ps_needtrain(ps,&tra) );
+ MUSTECR( ps_neednoargs(ps) );
+
+ MUSTECRPREDICT( safety_setdirection(tra,backwards,CMDPPC) );
+ return 0;
+}
+
/*---------- general machinery and the command table ----------*/
void command_doline(ParseState *ps, CommandInput *cmdi_arg) {
{ "!invert", cmd_invert, CIXF_ANYSTA|CIXF_FORCE },
{ "speed", cmd_speed },
{ "!speed", cmd_speed, CIXF_ANYSTA|CIXF_FORCE },
+ { "direction", cmd_direction },
{ 0 }
};