hedgewars/uLandTemplates.pas
author unc0rr
Tue, 23 Jan 2007 22:48:08 +0000
changeset 361 c3eebac100c0
parent 360 ab6a94334d6d
child 364 52cb4d6f84b7
permissions -rw-r--r--
- Show sample line - Load() works
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     1
(*
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     2
 * Hedgewars, a worms-like game
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     3
 * Copyright (c) 2005, 2006 Andrey Korotaev <unC0Rr@gmail.com>
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     4
 *
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     8
 *
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    12
 * GNU General Public License for more details.
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    13
 *
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    14
 * You should have received a copy of the GNU General Public License
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    15
 * along with this program; if not, write to the Free Software
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    17
 *)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    18
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    19
unit uLandTemplates;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    20
interface
351
29bc9c36ad5f Fixed-point arithmetics in engine.
unc0rr
parents: 184
diff changeset
    21
uses SDLh, uFloat;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    22
{$INCLUDE options.inc}
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    23
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    24
type PPointArray = ^TPointArray;
358
236bbd12d4d9 - New Land Generator
unc0rr
parents: 351
diff changeset
    25
     TPointArray = array[0..64] of TSDL_Rect;
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    26
     TEdgeTemplate = record
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    27
                     BasePoints: PPointArray;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    28
                     BasePointsCount: Longword;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    29
                     FillPoints: PPointArray;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    30
                     FillPointsCount: Longword;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    31
                     canMirror, canFlip: boolean;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    32
                     end;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    33
359
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    34
const Template0Points: array[0..17] of TSDL_Rect =
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    35
      (
359
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    36
       (x:  410; y: 1024; w:    1; h:    1),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    37
       (x:  160; y:  760; w:  130; h:  170),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    38
       (x:  342; y:  706; w:  316; h:  150),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    39
       (x:  238; y:  386; w:  270; h:  180),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    40
       (x:  246; y:  176; w:  242; h:  156),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    41
       (x:  622; y:  128; w:  480; h:  300),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    42
       (x:  806; y:  468; w:  152; h:  324),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    43
       (x:  650; y: 1024; w:  500; h:    1),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    44
       (x: 1250; y: 1100; w:    1; h:    1),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    45
       (x: 1490; y: 1024; w:    1; h:    1),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    46
       (x: 1452; y:  904; w:   74; h:   12),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    47
       (x: 1248; y:  575; w:   68; h:  425),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    48
       (x: 1426; y:  592; w:  140; h:  142),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    49
       (x: 1310; y:  192; w:  150; h:  350),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    50
       (x: 1588; y:  194; w:  148; h:  332),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    51
       (x: 1618; y:  472; w:  276; h:  314),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    52
       (x: 1710; y:  850; w:  130; h:   86),
59fbfc65fbda - New land templates
unc0rr
parents: 358
diff changeset
    53
       (x: 1734; y: 1024; w:    1; h:    1)
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    54
      );
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    55
      Template0FPoints: array[0..0] of TPoint =
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    56
      (
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    57
       (x: 1023; y:    0)
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    58
      );
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
    59
360
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    60
const Template1Points: array[0..14] of TSDL_Rect =
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    61
      (
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    62
       (x:  400; y: 1024; w:   25; h:    1),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    63
       (x:  284; y:  892; w:  254; h:   58),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    64
       (x:  492; y:  634; w:  100; h:  200),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    65
       (x:  274; y:  256; w:  276; h:  400),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    66
       (x:  620; y:  254; w:  125; h:  270),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    67
       (x:  680; y:  550; w:   96; h:  390),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    68
       (x:  826; y:  614; w:  110; h:  350),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    69
       (x:  800; y:  186; w:  150; h:  380),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    70
       (x: 1000; y:  186; w:  170; h:  375),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    71
       (x: 1012; y:  540; w:  188; h:  298),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    72
       (x: 1240; y:  668; w:  136; h:  172),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    73
       (x: 1270; y:  194; w:  120; h:  392),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    74
       (x: 1514; y:  194; w:  364; h:  362),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    75
       (x: 1450; y:  652; w:  315; h:  232),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    76
       (x: 1460; y: 1024; w:   25; h:    1)
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    77
      );
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    78
      Template1FPoints: array[0..0] of TPoint =
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    79
      (
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    80
       (x: 1023; y:    0)
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    81
      );
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    82
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    83
const Template2Points: array[0..20] of TSDL_Rect =
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    84
      (
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    85
       (x:  354; y: 1024; w:    1; h:    1),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    86
       (x:  232; y:  926; w:  226; h:   60),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    87
       (x:  120; y:  846; w:  298; h:   62),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    88
       (x:  280; y:  704; w:  210; h:  102),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    89
       (x:  208; y:  422; w:  192; h:  248),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    90
       (x:  292; y:  160; w:  206; h:  240),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    91
       (x:  526; y:  172; w:   92; h:  334),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    92
       (x:  462; y:  528; w:  226; h:  126),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    93
       (x:  556; y:  678; w:  268; h:  156),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    94
       (x:  722; y:  164; w:  138; h:  500),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    95
       (x:  890; y:  156; w:   94; h:  352),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    96
       (x:  898; y:  562; w:  170; h:  264),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    97
       (x: 1092; y:  384; w:   84; h:  446),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    98
       (x: 1206; y:  200; w:  158; h:  278),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
    99
       (x: 1300; y:  490; w:  104; h:  336),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   100
       (x: 1416; y:  546; w:   90; h:  398),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   101
       (x: 1546; y:  192; w:  134; h:  532),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   102
       (x: 1702; y:  246; w:  156; h:  258),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   103
       (x: 1700; y:  548; w:  132; h:  340),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   104
       (x: 1534; y:  898; w:  252; h:   82),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   105
       (x: 1604; y: 1024; w:    1; h:    1)
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   106
      );
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   107
      Template2FPoints: array[0..0] of TPoint =
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   108
      (
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   109
       (x: 1023; y:    0)
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   110
      );
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   111
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   112
const EdgeTemplates: array[0..2] of TEdgeTemplate =
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   113
      (
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   114
       (BasePoints: @Template0Points;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   115
        BasePointsCount: Succ(High(Template0Points));
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   116
        FillPoints: @Template0FPoints;
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   117
        FillPointsCount: Succ(High(Template0FPoints));
360
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   118
        canMirror: true; canFlip: false;
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   119
       ),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   120
       (BasePoints: @Template1Points;
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   121
        BasePointsCount: Succ(High(Template1Points));
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   122
        FillPoints: @Template1FPoints;
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   123
        FillPointsCount: Succ(High(Template1FPoints));
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   124
        canMirror: true; canFlip: false;
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   125
       ),
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   126
       (BasePoints: @Template2Points;
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   127
        BasePointsCount: Succ(High(Template2Points));
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   128
        FillPoints: @Template2FPoints;
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   129
        FillPointsCount: Succ(High(Template2FPoints));
ab6a94334d6d - Two more templates
unc0rr
parents: 359
diff changeset
   130
        canMirror: true; canFlip: false;
358
236bbd12d4d9 - New Land Generator
unc0rr
parents: 351
diff changeset
   131
       )
184
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   132
      );
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   133
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   134
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   135
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   136
implementation
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   137
f97a7a3dc8f6 - Update more headers
unc0rr
parents: 183
diff changeset
   138
end.