diff options
author | Erich Eckner <git@eckner.net> | 2015-10-23 09:07:58 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2015-10-23 09:07:58 +0200 |
commit | 39f0775faf3ad8a60282bd82a58a9e3f81fbc750 (patch) | |
tree | 1886b589a769eff34f0ce45733ba8f7faf41920b | |
parent | 81b1223989b8ae3ca201f78b04245ab09cfac988 (diff) | |
download | units-39f0775faf3ad8a60282bd82a58a9e3f81fbc750.tar.xz |
neutralParameter in irdecoderunit.pas eingebaut
-rw-r--r-- | irdecoderunit.pas | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/irdecoderunit.pas b/irdecoderunit.pas index a48a38f..95a4337 100644 --- a/irdecoderunit.pas +++ b/irdecoderunit.pas @@ -45,7 +45,8 @@ type neuZustand: longword; // und neuer Zustand einzelKlick, // gedrückt gehaltene Taste = Befehl mehrmals? kollapsTrenner: boolean; // Darf über diesen Befehl hinweg nicht kollabiert werden? - cmd,params: string; // Befehl + Parameter + cmd,params, // Befehl + Parameter + neutralParams: string; // + Parameter, bei denen dieser Befehl entfällt kollapsArt: tKollapsArt; // Wie kollabiert dieser Befehl? constructor create; destructor destroy; override; @@ -285,7 +286,7 @@ begin end; end; - if cmd<>'nop' then + if (cmd<>'nop') and (params<>befehlsTabelle[bef].neutralParams) then befehlAusfuehren(cmd,params); end; @@ -314,12 +315,15 @@ begin cmd:=''; fillchar(params,sizeof(params),#0); params:=''; + fillchar(neutralParams,sizeof(neutralParams),#0); + neutralParams:=''; end; destructor tBefehl.destroy; begin cmd:=''; params:=''; + neutralParams:=''; inherited destroy; end; @@ -351,6 +355,7 @@ begin setlength(befehlsTabelle,length(befehlsTabelle)+1); befehlsTabelle[length(befehlsTabelle)-1]:=tBefehl.create; befehlsTabelle[length(befehlsTabelle)-1].nummer:=length(zeichenTabelle)-1; + befehlsTabelle[length(befehlsTabelle)-1].neutralParams:=''; befehlsTabelle[length(befehlsTabelle)-1].altZustand:=cStat; befehlsTabelle[length(befehlsTabelle)-1].neuZustand:=cStat; inc(cStat); @@ -361,6 +366,10 @@ begin befehlsTabelle[length(befehlsTabelle)-1].params:=zeile; continue; end; + if startetMit('neutral:',zeile) then begin + befehlsTabelle[length(befehlsTabelle)-1].neutralParams:=zeile; + continue; + end; if startetMit('altZustand:',zeile) then begin befehlsTabelle[length(befehlsTabelle)-1].altZustand:=strtoint(zeile); continue; |