much the same as the reflection equivalent but in colour
its quite hard to explain what it does so here is a example
on fishing spots there are two spots which includes nets and two which include harpoons
so one might be
Cage and Harpoon
the next one might be
Harpoon and Net
if there are two spots on top of each other then it could easily get them mixed up
so you want to choose the harpoon that is on the cage spot, but it could choose the harpoon on the net spot
what this does is you enter the first and second options (so cage and harpoon) then you can put whether you want it to choose the first option or the second option
Simba Code:
function ChooseOptionDual(First, Second: string; FirstOption: Boolean; Action: fnct_ActionOptions): Boolean;
var
B: TBox;
i, H, ii, L, x: Integer;
T: TPoint;
Options: array of TOptions;
begin
Result := False;
Options := GetChooseOptions('jack shit');
if (Length(Options) < 1) then
Exit;
H := High(Options);
for ii := 0 to H-1 do
If Pos(First, Options[ii].Str) > 0 Then
If Pos(Second, Options[ii+1].Str) > 0 Then
begin
Result := True;
if FirstOption then
B := Options[ii].Bounds
else
B := Options[ii+1].Bounds
GetMousePos(T.x, T.y);
case Action of
ClickLeft: if PointInBox(T, B) then
ClickMouse2(true)
else
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 1);
Move: if not PointInBox(T, B) then
MouseBoxEx(B.x1 + 5, B.Y1, B.x2 - 5, B.Y1 + 5,5, 3);
Nothing: begin end;
else
srl_warn('ChooseOptionDual', 'ClickRight not a valid click for RS menus!', warn_AllVersions);
end;
Exit;
end;
B := Options[0].BigBox;//to mmouse away
if Action <> Nothing then
begin
x := Max(B.X1 - 52, 0);
if x = 0 then
x := B.X2+10;
MMouse(x, Max(B.Y1 - 50, 0), 40, B.Y2-B.Y1);
Wait(200 + Random(100));
end;
end;
~shut