Results 1 to 11 of 11

Thread: DTMarray help!

  1. #1
    Join Date
    Jan 2009
    Location
    Tacoma,Wa
    Posts
    338
    Mentioned
    0 Post(s)
    Quoted
    11 Post(s)

    Question DTMarray help!

    Okay I have my DTM's setup like this:

    SCAR Code:
    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:

    SCAR Code:
    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.

    SCAR Code:
    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?

  2. #2
    Join Date
    Mar 2007
    Posts
    3,116
    Mentioned
    0 Post(s)
    Quoted
    2 Post(s)

    Default

    SCAR Code:
    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;

  3. #3
    Join Date
    Nov 2007
    Location
    46696E6C616E64
    Posts
    3,069
    Mentioned
    44 Post(s)
    Quoted
    302 Post(s)

    Default

    SCAR Code:
    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.
    There used to be something meaningful here.

  4. #4
    Join Date
    Aug 2007
    Location
    in a random little world
    Posts
    5,778
    Mentioned
    0 Post(s)
    Quoted
    7 Post(s)

  5. #5
    Join Date
    Nov 2007
    Location
    46696E6C616E64
    Posts
    3,069
    Mentioned
    44 Post(s)
    Quoted
    302 Post(s)

    Default

    Use like this:
    SCAR Code:
    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.
    There used to be something meaningful here.

  6. #6
    Join Date
    Jan 2009
    Location
    Tacoma,Wa
    Posts
    338
    Mentioned
    0 Post(s)
    Quoted
    11 Post(s)

    Default

    Quote Originally Posted by Frement View Post
    SCAR Code:
    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

  7. #7
    Join Date
    Aug 2007
    Location
    in a random little world
    Posts
    5,778
    Mentioned
    0 Post(s)
    Quoted
    7 Post(s)

    Default

    Quote Originally Posted by Frement View Post
    Use like this:
    SCAR Code:
    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
    SCAR Code:
    Result := not(FindDtm(DTMarray[Players[CurrentPlayer].Integers[1]], x, y, MIX1, MIY1, MIX2, MIY2));

    ~shut

  8. #8
    Join Date
    Nov 2007
    Location
    46696E6C616E64
    Posts
    3,069
    Mentioned
    44 Post(s)
    Quoted
    302 Post(s)

    Default

    Yeah sorry.
    There used to be something meaningful here.

  9. #9
    Join Date
    Mar 2007
    Posts
    3,116
    Mentioned
    0 Post(s)
    Quoted
    2 Post(s)

    Default

    Why vars and not consts?

  10. #10
    Join Date
    Nov 2007
    Location
    46696E6C616E64
    Posts
    3,069
    Mentioned
    44 Post(s)
    Quoted
    302 Post(s)

    Default

    Quote Originally Posted by MylesMadness View Post
    Why vars and not consts?
    Yeah well doesn't matter ^^
    There used to be something meaningful here.

  11. #11
    Join Date
    Jan 2009
    Location
    Tacoma,Wa
    Posts
    338
    Mentioned
    0 Post(s)
    Quoted
    11 Post(s)

    Default

    Quote Originally Posted by MylesMadness View Post
    Why vars and not consts?
    I was about to say the same thing xD

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •