Log in

View Full Version : DTMarray help!



ffcfoo
07-14-2010, 05:29 PM
Okay I have my DTM's setup like this:

procedure LoadDTMs;
begin
SetArrayLength(DTMarray, 6);

DTMarray[0] := DTMFromString('78DA63CC6166602860644006C9DE3A0CFC4 01' + // Tree Logs
'A24FA1F0818AB816ACA51D530303081499828633C504D0D01 3525' +
'4035E904D42402D5E4E0570300B3DE095D');
DTMarray[1] := DTMFromString('78DA639CCECCC050C0C8800C3AD26D19F88 13' + // Oak Logs
'448F43F1030CE03AA494755C3C0C0042661A28C3D40353504 D4CC' +
'07AAA922A0A61BA82607BF1A0039500A82');
DTMarray[2] := DTMFromString('78DA633CC0CCC050C0C8800C5C6DC518F88 13' + // Willow Logs
'448F43F10309E00AA494755C3C0C0042661A28CDB806A6A08 A839' +
'055453458439D9F8D5000034A60AC0');
DTMarray[3] := DTMFromString('78DA637CCDCCC090C7C8800C626C7919F88 13' + // Maple Logs
'448F43F10307E02AA494755C3C0C0042661A28C0F816A6A09 A8F9' +
'0C54534540CD03A09A6CFC6A00951E0BA0');
DTMarray[4] := DTMFromString('78DA63CC61666098C2C8800CFC2CB919F88 13' + // Yew Logs
'44C94B104A8A61B550D030313440EA62606A8663601355540 3573' +
'08A84902AAE9C7AF06007E0E05C5');
DTMarray[5] := DTMFromString('78DA639CCCCCC0308591011934548431F00 36' + // Magic Logs
'990E87F20605C0454B300550D03031398848932CE03AAE921 A0A6' +
'830873BA816A26E25703009B4E0B57');
end;

procedure FreeDTMs;
var
I: Integer;
begin
for I := 0 to High(DTMarray) do
FreeDTM(DTMarray[I]);
end;

and I have my function for when I run out of logs:

function OutOfLogs: Boolean;
var
x, y: Integer;
begin
GameTab(Tab_Inv);
Result := not(FindDtm(DTMarray, x, y, MIX1, MIY1, MIX2, MIY2));
end;

Now what I do not understand since EvilChicken told me to set my DTM's in array I do not know how to setup my function anymore.

Result := not(FindDtm(DTMarray, x, y, MIX1, MIY1, MIX2, MIY2));

I do not know what to do for that? There are alot of DTM's with the names DTMarray, how do I make it use all of them?

MylesMadness
07-14-2010, 05:33 PM
function OutOfLogs: Boolean;
var
x, y: Integer;
begin
GameTab(Tab_Inv);
for I:=0 to high(DTMarray) do
begin
Result := not(FindDtm(DTMarray[I], x, y, MIX1, MIY1, MIX2, MIY2));
if not result then esit;
end;
end;

Frement
07-14-2010, 05:34 PM
program new;
{$I SRL/SRL.scar}

var LOG_NORMAL, LOG_OAK, LOG_WILLOW, LOG_MAPLE, LOG_YEW, LOG_MAGIC: Integer;
DTMarray: TIntegerArray;

procedure LoadDTMs;
begin
LOG_NORMAL := 0;
LOG_OAK := 1;
LOG_WILLOW := 2;
LOG_MAPLE := 3;
LOG_YEW := 4;
LOG_MAGIC := 5;
SetArrayLength(DTMarray, 6);
DTMarray[LOG_NORMAL] := DTMFromString('78DA63CC6166602860644006C9DE3A0CFC4 01' + // Tree Logs
'A24FA1F0818AB816ACA51D530303081499828633C504D0D01 3525' +
'4035E904D42402D5E4E0570300B3DE095D');
DTMarray[LOG_OAK] := DTMFromString('78DA639CCECCC050C0C8800C3AD26D19F88 13' + // Oak Logs
'448F43F1030CE03AA494755C3C0C0042661A28C3D40353504 D4CC' +
'07AAA922A0A61BA82607BF1A0039500A82');
DTMarray[LOG_WILLOW] := DTMFromString('78DA633CC0CCC050C0C8800C5C6DC518F88 13' + // Willow Logs
'448F43F10309E00AA494755C3C0C0042661A28CDB806A6A08 A839' +
'055453458439D9F8D5000034A60AC0');
DTMarray[LOG_MAPLE] := DTMFromString('78DA637CCDCCC090C7C8800C626C7919F88 13' + // Maple Logs
'448F43F10307E02AA494755C3C0C0042661A28C0F816A6A09 A8F9' +
'0C54534540CD03A09A6CFC6A00951E0BA0');
DTMarray[LOG_YEW] := DTMFromString('78DA63CC61666098C2C8800CFC2CB919F88 13' + // Yew Logs
'44C94B104A8A61B550D030313440EA62606A8663601355540 3573' +
'08A84902AAE9C7AF06007E0E05C5');
DTMarray[LOG_MAGIC] := DTMFromString('78DA639CCCCCC0308591011934548431F00 36' + // Magic Logs
'990E87F20605C0454B300550D03031398848932CE03AAE921 A0A6' +
'830873BA816A26E25703009B4E0B57');
end;

procedure FreeDTMs;
var
I: Integer;
begin
for I := 0 to High(DTMarray) do
FreeDTM(DTMarray[I]);
end;

function OutOfLogs: Boolean;
var
x, y: Integer;
begin
GameTab(Tab_Inv);
Result := not(FindDtm(DTMarray[LOG_NORMAL], x, y, MIX1, MIY1, MIX2, MIY2));
end;

begin
SetupSRL;
end.

Shuttleu
07-14-2010, 05:35 PM
for i:=0 to High(DTMarray) do
begin
Result := not(FindDtm(DTMarray[i], x, y, MIX1, MIY1, MIX2, MIY2));
if (not(Result)) then Break;
end;
like that?

~shut

Frement
07-14-2010, 05:43 PM
Use like this: program new;
{$I SRL/SRL.scar}

var LOG_NORMAL, LOG_OAK, LOG_WILLOW, LOG_MAPLE, LOG_YEW, LOG_MAGIC: Integer;
DTMarray: TIntegerArray;

procedure DeclareVars;
begin
LOG_NORMAL := 0;
LOG_OAK := 1;
LOG_WILLOW := 2;
LOG_MAPLE := 3;
LOG_YEW := 4;
LOG_MAGIC := 5;
end;

procedure DeclarePlayers;
begin
NumberOfPlayers(1);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Active := True;
Integers[1] := LOG_NORMAL;
end;
end;

procedure LoadDTMs;
begin
SetArrayLength(DTMarray, 6);
DTMarray[LOG_NORMAL] := DTMFromString('78DA63CC6166602860644006C9DE3A0CFC4 01' + // Tree Logs
'A24FA1F0818AB816ACA51D530303081499828633C504D0D01 3525' +
'4035E904D42402D5E4E0570300B3DE095D');
DTMarray[LOG_OAK] := DTMFromString('78DA639CCECCC050C0C8800C3AD26D19F88 13' + // Oak Logs
'448F43F1030CE03AA494755C3C0C0042661A28C3D40353504 D4CC' +
'07AAA922A0A61BA82607BF1A0039500A82');
DTMarray[LOG_WILLOW] := DTMFromString('78DA633CC0CCC050C0C8800C5C6DC518F88 13' + // Willow Logs
'448F43F10309E00AA494755C3C0C0042661A28CDB806A6A08 A839' +
'055453458439D9F8D5000034A60AC0');
DTMarray[LOG_MAPLE] := DTMFromString('78DA637CCDCCC090C7C8800C626C7919F88 13' + // Maple Logs
'448F43F10307E02AA494755C3C0C0042661A28C0F816A6A09 A8F9' +
'0C54534540CD03A09A6CFC6A00951E0BA0');
DTMarray[LOG_YEW] := DTMFromString('78DA63CC61666098C2C8800CFC2CB919F88 13' + // Yew Logs
'44C94B104A8A61B550D030313440EA62606A8663601355540 3573' +
'08A84902AAE9C7AF06007E0E05C5');
DTMarray[LOG_MAGIC] := DTMFromString('78DA639CCCCCC0308591011934548431F00 36' + // Magic Logs
'990E87F20605C0454B300550D03031398848932CE03AAE921 A0A6' +
'830873BA816A26E25703009B4E0B57');
end;

procedure FreeDTMs;
var
I: Integer;
begin
for I := 0 to High(DTMarray) do
FreeDTM(DTMarray[I]);
end;

function OutOfLogs: Boolean;
var
x, y: Integer;
begin
GameTab(Tab_Inv);
Result := not(FindDtm(DTMarray[Players[CurrentPlayer].Integers[0]], x, y, MIX1, MIY1, MIX2, MIY2));
end;

begin
SetupSRL;
DeclareVars;
DeclarePlayers;
end.

ffcfoo
07-14-2010, 05:44 PM
program new;
{$I SRL/SRL.scar}

var LOG_NORMAL, LOG_OAK, LOG_WILLOW, LOG_MAPLE, LOG_YEW, LOG_MAGIC: Integer;
DTMarray: TIntegerArray;

procedure LoadDTMs;
begin
LOG_NORMAL := 0;
LOG_OAK := 1;
LOG_WILLOW := 2;
LOG_MAPLE := 3;
LOG_YEW := 4;
LOG_MAGIC := 5;
SetArrayLength(DTMarray, 6);
DTMarray[LOG_NORMAL] := DTMFromString('78DA63CC6166602860644006C9DE3A0CFC4 01' + // Tree Logs
'A24FA1F0818AB816ACA51D530303081499828633C504D0D01 3525' +
'4035E904D42402D5E4E0570300B3DE095D');
DTMarray[LOG_OAK] := DTMFromString('78DA639CCECCC050C0C8800C3AD26D19F88 13' + // Oak Logs
'448F43F1030CE03AA494755C3C0C0042661A28C3D40353504 D4CC' +
'07AAA922A0A61BA82607BF1A0039500A82');
DTMarray[LOG_WILLOW] := DTMFromString('78DA633CC0CCC050C0C8800C5C6DC518F88 13' + // Willow Logs
'448F43F10309E00AA494755C3C0C0042661A28CDB806A6A08 A839' +
'055453458439D9F8D5000034A60AC0');
DTMarray[LOG_MAPLE] := DTMFromString('78DA637CCDCCC090C7C8800C626C7919F88 13' + // Maple Logs
'448F43F10307E02AA494755C3C0C0042661A28C0F816A6A09 A8F9' +
'0C54534540CD03A09A6CFC6A00951E0BA0');
DTMarray[LOG_YEW] := DTMFromString('78DA63CC61666098C2C8800CFC2CB919F88 13' + // Yew Logs
'44C94B104A8A61B550D030313440EA62606A8663601355540 3573' +
'08A84902AAE9C7AF06007E0E05C5');
DTMarray[LOG_MAGIC] := DTMFromString('78DA639CCCCCC0308591011934548431F00 36' + // Magic Logs
'990E87F20605C0454B300550D03031398848932CE03AAE921 A0A6' +
'830873BA816A26E25703009B4E0B57');
end;

procedure FreeDTMs;
var
I: Integer;
begin
for I := 0 to High(DTMarray) do
FreeDTM(DTMarray[I]);
end;

function OutOfLogs: Boolean;
var
x, y: Integer;
begin
GameTab(Tab_Inv);
Result := not(FindDtm(DTMarray[LOG_NORMAL], x, y, MIX1, MIY1, MIX2, MIY2));
end;

begin
SetupSRL;
end.

I like Frement's Idea! I didn't know I could do that xD

Shuttleu
07-14-2010, 05:45 PM
Use like this: program new;
{$I SRL/SRL.scar}

var LOG_NORMAL, LOG_OAK, LOG_WILLOW, LOG_MAPLE, LOG_YEW, LOG_MAGIC: Integer;
DTMarray: TIntegerArray;

procedure DeclareVars;
begin
LOG_NORMAL := 0;
LOG_OAK := 1;
LOG_WILLOW := 2;
LOG_MAPLE := 3;
LOG_YEW := 4;
LOG_MAGIC := 5;
end;

procedure DeclarePlayers;
begin
NumberOfPlayers(1);
CurrentPlayer := 0;
with Players[0] do
begin
Name := '';
Pass := '';
Active := True;
Integers[1] := LOG_NORMAL;
end;
end;

procedure LoadDTMs;
begin
SetArrayLength(DTMarray, 6);
DTMarray[LOG_NORMAL] := DTMFromString('78DA63CC6166602860644006C9DE3A0CFC4 01' + // Tree Logs
'A24FA1F0818AB816ACA51D530303081499828633C504D0D01 3525' +
'4035E904D42402D5E4E0570300B3DE095D');
DTMarray[LOG_OAK] := DTMFromString('78DA639CCECCC050C0C8800C3AD26D19F88 13' + // Oak Logs
'448F43F1030CE03AA494755C3C0C0042661A28C3D40353504 D4CC' +
'07AAA922A0A61BA82607BF1A0039500A82');
DTMarray[LOG_WILLOW] := DTMFromString('78DA633CC0CCC050C0C8800C5C6DC518F88 13' + // Willow Logs
'448F43F10309E00AA494755C3C0C0042661A28CDB806A6A08 A839' +
'055453458439D9F8D5000034A60AC0');
DTMarray[LOG_MAPLE] := DTMFromString('78DA637CCDCCC090C7C8800C626C7919F88 13' + // Maple Logs
'448F43F10307E02AA494755C3C0C0042661A28C0F816A6A09 A8F9' +
'0C54534540CD03A09A6CFC6A00951E0BA0');
DTMarray[LOG_YEW] := DTMFromString('78DA63CC61666098C2C8800CFC2CB919F88 13' + // Yew Logs
'44C94B104A8A61B550D030313440EA62606A8663601355540 3573' +
'08A84902AAE9C7AF06007E0E05C5');
DTMarray[LOG_MAGIC] := DTMFromString('78DA639CCCCCC0308591011934548431F00 36' + // Magic Logs
'990E87F20605C0454B300550D03031398848932CE03AAE921 A0A6' +
'830873BA816A26E25703009B4E0B57');
end;

procedure FreeDTMs;
var
I: Integer;
begin
for I := 0 to High(DTMarray) do
FreeDTM(DTMarray[I]);
end;

function OutOfLogs: Boolean;
var
x, y: Integer;
begin
GameTab(Tab_Inv);
Result := not(FindDtm(DTMarray[Players[CurrentPlayer].Integers[0]], x, y, MIX1, MIY1, MIX2, MIY2));
end;

begin
SetupSRL;
DeclareVars;
DeclarePlayers;
end.

i think you mean to put
Result := not(FindDtm(DTMarray[Players[CurrentPlayer].Integers[1]], x, y, MIX1, MIY1, MIX2, MIY2));

~shut

Frement
07-14-2010, 05:59 PM
Yeah sorry.

MylesMadness
07-14-2010, 06:01 PM
Why vars and not consts?

Frement
07-14-2010, 06:07 PM
Why vars and not consts?

Yeah well doesn't matter ^^

ffcfoo
07-14-2010, 06:09 PM
Why vars and not consts?

I was about to say the same thing xD