summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2015-10-23 09:07:58 +0200
committerErich Eckner <git@eckner.net>2015-10-23 09:07:58 +0200
commit39f0775faf3ad8a60282bd82a58a9e3f81fbc750 (patch)
tree1886b589a769eff34f0ce45733ba8f7faf41920b
parent81b1223989b8ae3ca201f78b04245ab09cfac988 (diff)
downloadunits-39f0775faf3ad8a60282bd82a58a9e3f81fbc750.tar.xz
neutralParameter in irdecoderunit.pas eingebaut
-rw-r--r--irdecoderunit.pas13
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;