SRL Archive - Help

DTMarray help!


ffcfoo

2010-07-14 13:29:54

Okay I have my DTM's setup like this:

procedure LoadDTMs;
begin
SetArrayLength(DTMarray, 6);

DTMarray[0] := DTMFromString('78DA63CC6166602860644006C9DE3A0CFC401' + // Tree Logs
'A24FA1F0818AB816ACA51D530303081499828633C504D0D013525' +
'4035E904D42402D5E4E0570300B3DE095D');
DTMarray[1] := DTMFromString('78DA639CCECCC050C0C8800C3AD26D19F8813' + // Oak Logs
'448F43F1030CE03AA494755C3C0C0042661A28C3D40353504D4CC' +
'07AAA922A0A61BA82607BF1A0039500A82');
DTMarray[2] := DTMFromString('78DA633CC0CCC050C0C8800C5C6DC518F8813' + // Willow Logs
'448F43F10309E00AA494755C3C0C0042661A28CDB806A6A08A839' +
'055453458439D9F8D5000034A60AC0');
DTMarray[3] := DTMFromString('78DA637CCDCCC090C7C8800C626C7919F8813' + // Maple Logs
'448F43F10307E02AA494755C3C0C0042661A28C0F816A6A09A8F9' +
'0C54534540CD03A09A6CFC6A00951E0BA0');
DTMarray[4] := DTMFromString('78DA63CC61666098C2C8800CFC2CB919F8813' + // Yew Logs
'44C94B104A8A61B550D030313440EA62606A86636013555403573' +
'08A84902AAE9C7AF06007E0E05C5');
DTMarray[5] := DTMFromString('78DA639CCCCCC0308591011934548431F0036' + // Magic Logs
'990E87F20605C0454B300550D03031398848932CE03AAE921A0A6' +
'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

2010-07-14 13:33:40

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

2010-07-14 13:34:30

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('78DA63CC6166602860644006C9DE3A0CFC401' + // Tree Logs
'A24FA1F0818AB816ACA51D530303081499828633C504D0D013525' +
'4035E904D42402D5E4E0570300B3DE095D');
DTMarray[LOG_OAK] := DTMFromString('78DA639CCECCC050C0C8800C3AD26D19F8813' + // Oak Logs
'448F43F1030CE03AA494755C3C0C0042661A28C3D40353504D4CC' +
'07AAA922A0A61BA82607BF1A0039500A82');
DTMarray[LOG_WILLOW] := DTMFromString('78DA633CC0CCC050C0C8800C5C6DC518F8813' + // Willow Logs
'448F43F10309E00AA494755C3C0C0042661A28CDB806A6A08A839' +
'055453458439D9F8D5000034A60AC0');
DTMarray[LOG_MAPLE] := DTMFromString('78DA637CCDCCC090C7C8800C626C7919F8813' + // Maple Logs
'448F43F10307E02AA494755C3C0C0042661A28C0F816A6A09A8F9' +
'0C54534540CD03A09A6CFC6A00951E0BA0');
DTMarray[LOG_YEW] := DTMFromString('78DA63CC61666098C2C8800CFC2CB919F8813' + // Yew Logs
'44C94B104A8A61B550D030313440EA62606A86636013555403573' +
'08A84902AAE9C7AF06007E0E05C5');
DTMarray[LOG_MAGIC] := DTMFromString('78DA639CCCCCC0308591011934548431F0036' + // Magic Logs
'990E87F20605C0454B300550D03031398848932CE03AAE921A0A6' +
'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

2010-07-14 13:35:26

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

2010-07-14 13:43:13

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('78DA63CC6166602860644006C9DE3A0CFC401' + // Tree Logs
'A24FA1F0818AB816ACA51D530303081499828633C504D0D013525' +
'4035E904D42402D5E4E0570300B3DE095D');
DTMarray[LOG_OAK] := DTMFromString('78DA639CCECCC050C0C8800C3AD26D19F8813' + // Oak Logs
'448F43F1030CE03AA494755C3C0C0042661A28C3D40353504D4CC' +
'07AAA922A0A61BA82607BF1A0039500A82');
DTMarray[LOG_WILLOW] := DTMFromString('78DA633CC0CCC050C0C8800C5C6DC518F8813' + // Willow Logs
'448F43F10309E00AA494755C3C0C0042661A28CDB806A6A08A839' +
'055453458439D9F8D5000034A60AC0');
DTMarray[LOG_MAPLE] := DTMFromString('78DA637CCDCCC090C7C8800C626C7919F8813' + // Maple Logs
'448F43F10307E02AA494755C3C0C0042661A28C0F816A6A09A8F9' +
'0C54534540CD03A09A6CFC6A00951E0BA0');
DTMarray[LOG_YEW] := DTMFromString('78DA63CC61666098C2C8800CFC2CB919F8813' + // Yew Logs
'44C94B104A8A61B550D030313440EA62606A86636013555403573' +
'08A84902AAE9C7AF06007E0E05C5');
DTMarray[LOG_MAGIC] := DTMFromString('78DA639CCCCCC0308591011934548431F0036' + // Magic Logs
'990E87F20605C0454B300550D03031398848932CE03AAE921A0A6' +
'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

2010-07-14 13:44:15

From: Frement
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('78DA63CC6166602860644006C9DE3A0CFC401' + // Tree Logs
'A24FA1F0818AB816ACA51D530303081499828633C504D0D013525' +
'4035E904D42402D5E4E0570300B3DE095D');
DTMarray[LOG_OAK] := DTMFromString('78DA639CCECCC050C0C8800C3AD26D19F8813' + // Oak Logs
'448F43F1030CE03AA494755C3C0C0042661A28C3D40353504D4CC' +
'07AAA922A0A61BA82607BF1A0039500A82');
DTMarray[LOG_WILLOW] := DTMFromString('78DA633CC0CCC050C0C8800C5C6DC518F8813' + // Willow Logs
'448F43F10309E00AA494755C3C0C0042661A28CDB806A6A08A839' +
'055453458439D9F8D5000034A60AC0');
DTMarray[LOG_MAPLE] := DTMFromString('78DA637CCDCCC090C7C8800C626C7919F8813' + // Maple Logs
'448F43F10307E02AA494755C3C0C0042661A28C0F816A6A09A8F9' +
'0C54534540CD03A09A6CFC6A00951E0BA0');
DTMarray[LOG_YEW] := DTMFromString('78DA63CC61666098C2C8800CFC2CB919F8813' + // Yew Logs
'44C94B104A8A61B550D030313440EA62606A86636013555403573' +
'08A84902AAE9C7AF06007E0E05C5');
DTMarray[LOG_MAGIC] := DTMFromString('78DA639CCCCCC0308591011934548431F0036' + // Magic Logs
'990E87F20605C0454B300550D03031398848932CE03AAE921A0A6' +
'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

2010-07-14 13:45:02

From: Frement
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('78DA63CC6166602860644006C9DE3A0CFC401' + // Tree Logs
'A24FA1F0818AB816ACA51D530303081499828633C504D0D013525' +
'4035E904D42402D5E4E0570300B3DE095D');
DTMarray[LOG_OAK] := DTMFromString('78DA639CCECCC050C0C8800C3AD26D19F8813' + // Oak Logs
'448F43F1030CE03AA494755C3C0C0042661A28C3D40353504D4CC' +
'07AAA922A0A61BA82607BF1A0039500A82');
DTMarray[LOG_WILLOW] := DTMFromString('78DA633CC0CCC050C0C8800C5C6DC518F8813' + // Willow Logs
'448F43F10309E00AA494755C3C0C0042661A28CDB806A6A08A839' +
'055453458439D9F8D5000034A60AC0');
DTMarray[LOG_MAPLE] := DTMFromString('78DA637CCDCCC090C7C8800C626C7919F8813' + // Maple Logs
'448F43F10307E02AA494755C3C0C0042661A28C0F816A6A09A8F9' +
'0C54534540CD03A09A6CFC6A00951E0BA0');
DTMarray[LOG_YEW] := DTMFromString('78DA63CC61666098C2C8800CFC2CB919F8813' + // Yew Logs
'44C94B104A8A61B550D030313440EA62606A86636013555403573' +
'08A84902AAE9C7AF06007E0E05C5');
DTMarray[LOG_MAGIC] := DTMFromString('78DA639CCCCCC0308591011934548431F0036' + // Magic Logs
'990E87F20605C0454B300550D03031398848932CE03AAE921A0A6' +
'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

2010-07-14 13:59:08

Yeah sorry.

MylesMadness

2010-07-14 14:01:48

Why vars and not consts?

Frement

2010-07-14 14:07:10

From: MylesMadness
Why vars and not consts?


Yeah well doesn't matter ^^

ffcfoo

2010-07-14 14:09:01

From: MylesMadness
Why vars and not consts?


I was about to say the same thing xD