Vielleicht ist das einfacher zu verstehen wen die Code etwas mehr Strukturiert wiedergegeben wird. Ich habe Tab-zeichen zugefügt so das alle Zeilen im gleichen {}-Hierarchie-niveau die selbe Einsprung-abständen haben.
Tip: Setze deine Code zwisschen [ code ] Schreib hier deine Code [ / code] Tags in dein Bericht. (Nur die Leer-zeichen entfernen zwischen die [ ] Klammern !) Dann wird es isoliert von dein normale Text in ein Spezielles Fenster. Und werden auch Zeilen-einsprung behalten.
Code:
void moveCommand(behaviour_command_t * cmd)
{
if(cmd->move_value > 0) // any move/rotate commands?
{
if(cmd->rotate) rotate(cmd->speed_left, cmd->dir, cmd->move_value, false);
else if(cmd->move) move(cmd->speed_left, cmd->dir, DIST_MM(cmd->move_value), false);
// von Valen: Das nächste gehört nicht mehr zu den "if else if" Gesetzen. Weil das hier oben mit ein Punkt-komma abgeschlossen ist. Und kein tieferes {} Niveau verwendet wird.
cmd->move_value = 0; // clear move value - the move commands are only
// given once and then runs in background.
}
else if(!(cmd->move || cmd->rotate)) // just move at speed?
{
changeDirection(cmd->dir);
moveAtSpeed(cmd->speed_left,cmd->speed_right);
}
else if(isMovementComplete()) // movement complete? --> clear flags!
{
cmd->rotate = false;
cmd->move = false;
}
}
Lesezeichen