Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- Description
- }
- unit userscript;
- uses 'lib\mteFunctions';
- procedure PrintFlags(flags: IInterface);
- begin
- AddMessage(Format('%.3s', [GetEditValue(flags)]));
- AddMessage(IntToHex(GetNativeValue(flags), 1));
- end;
- procedure ToggleFlag(flags: IInterface; flag: Integer);
- var
- flagValue: Integer;
- begin
- flagValue := 1 shl flag;
- if GetNativeValue(flags) and flagValue = 1 then
- SetNativeValue(flags, GetNativeValue(flags) and not flagValue)
- else
- SetNativeValue(flags, GetNativeValue(flags) or flagValue);
- end;
- procedure SetFlag(flags: IInterface; flag: Integer; state: boolean);
- var
- flagValue: Integer;
- begin
- flagValue := 1 shl flag;
- if state then
- SetNativeValue(flags, GetNativeValue(flags) or flagValue)
- else
- SetNativeValue(flags, GetNativeValue(flags) and not flagValue);
- end;
- function Process(e: IInterface): integer;
- var
- flags: IInterface;
- begin
- flags := ElementByPath(e, 'DATA');
- if not Assigned(flags) then
- exit;
- PrintFlags(flags);
- //ToggleFlag(flags, 0);
- SetFlag(flags, 0, false);
- PrintFlags(flags);
- SetFlag(flags, 1, true);
- PrintFlags(flags);
- SetFlag(flags, 2, true);
- PrintFlags(flags);
- SetFlag(flags, 0, false);
- SetFlag(flags, 1, false);
- SetFlag(flags, 2, false);
- PrintFlags(flags);
- Result := 0;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment