Start(): Setzen des HP-Zaehlers verbessert
Wenn der Start-Haltepunkt die Route ueberschreitet, wird der
HP-Zaehler auf den letzten HP gesetzt, nicht auf -1. Bei der
naechsten Bewegung geht der Transporter dann auf HP 0.
Change-Id: Idd5222b21483cd545fc244059a27d7832499864d
diff --git a/std/transport.c b/std/transport.c
index 1639b40..92bc202 100644
--- a/std/transport.c
+++ b/std/transport.c
@@ -107,7 +107,15 @@
public varargs void Start(int pos)
{
Halt();
- rpos = (pos >= sizeof(route))?-1:pos-1;
+ // negative pos sind ein Fehler
+ if (pos<0)
+ raise_error(sprintf("Start(): Positionszaehler < 0: %d\n",pos));
+
+ // wenn pos zu gross fuer die Route ist, rpos auf Ende der Route setzen
+ // (i.e. sizeof(route)-1), damit bei der naechsten Bewegung am Anfang der
+ // Route begonnen wird.
+ rpos = min(pos, sizeof(route)-1);
+
call_out("changeHp",0);
// Tell TRAVELD our current route
ReportRoute();