Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
clean-and-itasks
clean-libraries
Commits
723a998d
Commit
723a998d
authored
Jan 27, 2000
by
Mike Wiering
Browse files
Worms demo added
parent
a35860a1
Changes
20
Hide whitespace changes
Inline
Side-by-side
libraries/ObjectIO/Game Examples/WORMS/BIN/CONV.BAT
0 → 100755
View file @
723a998d
@echo
off
if
(
%
2
)==()
goto
error
..\bin\makedx
%
1
..\bin\map2icl
%
1
%
2
copy
%
1
.bmp ..\
*
.bmp
del
%
1
.bmp
copy
%
1
.dcl ..\
*
.dcl
del
%
1
.dcl
copy
%
1
.icl ..\
*
.icl
del
%
1
.icl
goto
end
:error
echo
usage
:
conv
levelfile
identifier
:end
libraries/ObjectIO/Game Examples/WORMS/BIN/DEFAULT.PAL
0 → 100644
View file @
723a998d
File added
libraries/ObjectIO/Game Examples/WORMS/BIN/EDLEV.BAT
0 → 100755
View file @
723a998d
@..\bin\edlev
%
1
%
2
%
3
%
4
\ No newline at end of file
libraries/ObjectIO/Game Examples/WORMS/BIN/EDLEV.EXE
0 → 100755
View file @
723a998d
File added
libraries/ObjectIO/Game Examples/WORMS/BIN/GRED.BAT
0 → 100755
View file @
723a998d
@..\bin\gred
%
1
%
2
%
3
%
4
\ No newline at end of file
libraries/ObjectIO/Game Examples/WORMS/BIN/GRED.EXE
0 → 100755
View file @
723a998d
File added
libraries/ObjectIO/Game Examples/WORMS/BIN/MAKEDX.EXE
0 → 100755
View file @
723a998d
File added
libraries/ObjectIO/Game Examples/WORMS/BIN/MAP2ICL.EXE
0 → 100755
View file @
723a998d
File added
libraries/ObjectIO/Game Examples/WORMS/HEAD.dcl
0 → 100644
View file @
723a998d
definition
module
HEAD
import
StdEnv
,
StdGameDef
HeadBitmap
::
GameBitmap
HeadMap
::
[{#
Int
}]
HeadSeq001
::
(
Int
,
[(
Int
,
Int
)])
HeadSequences
::
[(
Int
,
[(
Int
,
Int
)])]
libraries/ObjectIO/Game Examples/WORMS/HEAD.icl
0 → 100644
View file @
723a998d
implementation
module
HEAD
import
StdEnv
,
StdGameDef
HeadBitmap
::
GameBitmap
HeadBitmap
=
{
bitmapname
=
"HEAD.BMP"
,
unitsize
=
{
w
=
28
,
h
=
28
}
,
dimensions
=
(
11
,
1
)
,
transparent
=
Just
{
x
=
139
,
y
=
27
}
}
HeadMap
::
[{#
Int
}]
HeadMap
=
[{
1
,
2
,
3
,
4
,
5
,
-1
,
-1
},
{
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
},
{
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
},
{
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
}]
HeadSeq001
::
(
Int
,
[(
Int
,
Int
)])
HeadSeq001
=
(
-1
,[])
HeadSequences
::
[(
Int
,
[(
Int
,
Int
)])]
HeadSequences
=
[
HeadSeq001
]
\ No newline at end of file
libraries/ObjectIO/Game Examples/WORMS/L1.dcl
0 → 100644
View file @
723a998d
definition
module
L1
import
StdEnv
,
StdGameDef
Level1Bitmap
::
GameBitmap
Level1Map
::
[{#
Int
}]
Level1Bounds
::
[{#
Int
}]
libraries/ObjectIO/Game Examples/WORMS/L1.icl
0 → 100644
View file @
723a998d
implementation
module
L1
import
StdEnv
,
StdGameDef
Level1Bitmap
::
GameBitmap
Level1Bitmap
=
{
bitmapname
=
"L1.BMP"
,
unitsize
=
{
w
=
24
,
h
=
24
}
,
dimensions
=
(
13
,
2
)
,
transparent
=
Nothing
}
Level1Map
::
[{#
Int
}]
Level1Map
=
[{
1
,
2
,
3
,
3
,
4
,
3
,
5
,
2
,
5
,
3
,
5
,
3
,
4
,
3
,
5
,
5
,
3
,
4
,
5
,
3
,
2
,
3
,
5
,
4
,
3
,
3
,
2
,
1
},
{
1
,
3
,
6
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
8
,
3
,
1
},
{
1
,
3
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
3
,
1
},
{
1
,
4
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
4
,
1
},
{
1
,
3
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
3
,
1
},
{
1
,
5
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
5
,
1
},
{
1
,
2
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
2
,
1
},
{
1
,
5
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
5
,
1
},
{
1
,
3
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
3
,
1
},
{
1
,
4
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
4
,
1
},
{
1
,
3
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
3
,
1
},
{
1
,
5
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
5
,
1
},
{
1
,
2
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
4
,
1
},
{
1
,
3
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
3
,
1
},
{
1
,
4
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
4
,
1
},
{
1
,
3
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
3
,
1
},
{
1
,
4
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
4
,
1
},
{
1
,
3
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
3
,
1
},
{
1
,
3
,
13
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
14
,
15
,
3
,
1
},
{
1
,
4
,
3
,
3
,
4
,
3
,
5
,
5
,
2
,
3
,
5
,
3
,
2
,
3
,
3
,
4
,
3
,
5
,
2
,
5
,
3
,
5
,
3
,
4
,
3
,
3
,
4
,
1
}]
Level1Bounds
::
[{#
Int
}]
Level1Bounds
=
[{
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
4096
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
}]
libraries/ObjectIO/Game Examples/WORMS/L2.dcl
0 → 100644
View file @
723a998d
definition
module
L2
import
StdEnv
,
StdGameDef
Level2Bitmap
::
GameBitmap
Level2Map
::
[{#
Int
}]
Level2Bounds
::
[{#
Int
}]
libraries/ObjectIO/Game Examples/WORMS/L2.icl
0 → 100644
View file @
723a998d
implementation
module
L2
import
StdEnv
,
StdGameDef
Level2Bitmap
::
GameBitmap
Level2Bitmap
=
{
bitmapname
=
"L2.BMP"
,
unitsize
=
{
w
=
24
,
h
=
24
}
,
dimensions
=
(
13
,
2
)
,
transparent
=
Nothing
}
Level2Map
::
[{#
Int
}]
Level2Map
=
[{
1
,
2
,
3
,
3
,
4
,
3
,
5
,
2
,
5
,
3
,
5
,
3
,
4
,
3
,
5
,
5
,
3
,
4
,
5
,
3
,
2
,
3
,
5
,
4
,
3
,
3
,
2
,
1
},
{
1
,
3
,
6
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
8
,
3
,
1
},
{
1
,
3
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
3
,
1
},
{
1
,
4
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
4
,
1
},
{
1
,
3
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
3
,
1
},
{
1
,
5
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
5
,
1
},
{
1
,
2
,
9
,
10
,
11
,
11
,
10
,
10
,
12
,
3
,
5
,
4
,
2
,
3
,
5
,
4
,
3
,
2
,
3
,
9
,
11
,
11
,
10
,
10
,
11
,
12
,
2
,
1
},
{
1
,
5
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
5
,
1
},
{
1
,
3
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
3
,
1
},
{
1
,
4
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
4
,
1
},
{
1
,
3
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
3
,
1
},
{
1
,
5
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
5
,
1
},
{
1
,
2
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
4
,
1
},
{
1
,
3
,
9
,
10
,
11
,
11
,
10
,
10
,
12
,
3
,
2
,
5
,
3
,
4
,
3
,
5
,
2
,
5
,
3
,
9
,
11
,
11
,
10
,
10
,
11
,
12
,
3
,
1
},
{
1
,
14
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
4
,
1
},
{
1
,
3
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
3
,
1
},
{
1
,
4
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
4
,
1
},
{
1
,
3
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
3
,
1
},
{
1
,
3
,
15
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
16
,
3
,
1
},
{
1
,
4
,
3
,
3
,
4
,
3
,
5
,
5
,
2
,
3
,
5
,
3
,
2
,
3
,
3
,
4
,
3
,
5
,
2
,
5
,
3
,
5
,
3
,
4
,
3
,
3
,
14
,
1
}]
Level2Bounds
::
[{#
Int
}]
Level2Bounds
=
[{
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
32783
,
32783
,
32783
,
32783
,
32783
,
32783
,
32783
,
32783
,
32783
,
32783
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
32783
,
32783
,
32783
,
32783
,
32783
,
32783
,
32783
,
32783
,
32783
,
32783
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
4096
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
}]
libraries/ObjectIO/Game Examples/WORMS/L3.dcl
0 → 100644
View file @
723a998d
definition
module
L3
import
StdEnv
,
StdGameDef
Level3Bitmap
::
GameBitmap
Level3Map
::
[{#
Int
}]
Level3Bounds
::
[{#
Int
}]
libraries/ObjectIO/Game Examples/WORMS/L3.icl
0 → 100644
View file @
723a998d
implementation
module
L3
import
StdEnv
,
StdGameDef
Level3Bitmap
::
GameBitmap
Level3Bitmap
=
{
bitmapname
=
"L3.BMP"
,
unitsize
=
{
w
=
24
,
h
=
24
}
,
dimensions
=
(
13
,
2
)
,
transparent
=
Nothing
}
Level3Map
::
[{#
Int
}]
Level3Map
=
[{
1
,
2
,
3
,
3
,
4
,
3
,
5
,
2
,
5
,
2
,
5
,
3
,
4
,
3
,
5
,
5
,
3
,
4
,
5
,
3
,
2
,
3
,
5
,
4
,
3
,
3
,
2
,
1
},
{
1
,
3
,
6
,
7
,
7
,
7
,
7
,
7
,
8
,
3
,
6
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
7
,
8
,
3
,
1
},
{
1
,
3
,
9
,
10
,
11
,
11
,
10
,
10
,
12
,
3
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
3
,
1
},
{
1
,
4
,
9
,
11
,
10
,
10
,
11
,
11
,
12
,
4
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
4
,
1
},
{
1
,
3
,
9
,
11
,
10
,
10
,
11
,
11
,
12
,
3
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
3
,
1
},
{
1
,
5
,
9
,
10
,
11
,
11
,
10
,
10
,
12
,
5
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
5
,
1
},
{
1
,
2
,
9
,
10
,
11
,
11
,
10
,
13
,
14
,
2
,
15
,
13
,
13
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
2
,
1
},
{
1
,
5
,
9
,
11
,
10
,
10
,
12
,
2
,
5
,
4
,
3
,
3
,
2
,
9
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
5
,
1
},
{
1
,
3
,
9
,
11
,
10
,
10
,
11
,
7
,
7
,
7
,
7
,
7
,
7
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
3
,
1
},
{
1
,
4
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
4
,
1
},
{
1
,
3
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
3
,
1
},
{
1
,
5
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
13
,
13
,
13
,
13
,
13
,
13
,
10
,
11
,
11
,
10
,
12
,
5
,
1
},
{
1
,
2
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
12
,
2
,
3
,
5
,
4
,
3
,
2
,
9
,
11
,
11
,
10
,
12
,
4
,
1
},
{
1
,
3
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
7
,
7
,
8
,
2
,
6
,
7
,
11
,
10
,
10
,
11
,
12
,
3
,
1
},
{
1
,
4
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
3
,
9
,
11
,
11
,
10
,
10
,
11
,
12
,
4
,
1
},
{
1
,
3
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
3
,
9
,
10
,
10
,
11
,
11
,
10
,
12
,
3
,
1
},
{
1
,
4
,
9
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
12
,
4
,
9
,
10
,
10
,
11
,
11
,
10
,
12
,
4
,
1
},
{
1
,
3
,
9
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
11
,
10
,
10
,
11
,
12
,
3
,
9
,
11
,
11
,
10
,
10
,
11
,
12
,
3
,
1
},
{
1
,
3
,
15
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
13
,
14
,
5
,
15
,
13
,
13
,
13
,
13
,
13
,
14
,
3
,
1
},
{
1
,
4
,
3
,
3
,
4
,
3
,
5
,
5
,
2
,
3
,
5
,
3
,
2
,
3
,
3
,
4
,
3
,
5
,
2
,
5
,
3
,
5
,
3
,
4
,
3
,
3
,
4
,
1
}]
Level3Bounds
::
[{#
Int
}]
Level3Bounds
=
[{
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
32783
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
32783
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
32783
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
32783
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
32783
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
32783
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
32783
,
32783
,
32783
,
32783
,
32783
,
32783
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
4096
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
32783
,
32783
,
32783
,
32783
,
32783
,
32783
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
32783
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
32783
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
32783
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
32783
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
32783
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
32783
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
15
,
15
},
{
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
}]
libraries/ObjectIO/Game Examples/WORMS/WORM.dcl
0 → 100644
View file @
723a998d
definition
module
WORM
import
StdEnv
,
StdGameDef
WormBitmap
::
GameBitmap
WormMap
::
[{#
Int
}]
WormSeq001
::
(
Int
,
[(
Int
,
Int
)])
WormSequences
::
[(
Int
,
[(
Int
,
Int
)])]
libraries/ObjectIO/Game Examples/WORMS/WORM.icl
0 → 100644
View file @
723a998d
implementation
module
WORM
import
StdEnv
,
StdGameDef
WormBitmap
::
GameBitmap
WormBitmap
=
{
bitmapname
=
"WORM.BMP"
,
unitsize
=
{
w
=
24
,
h
=
24
}
,
dimensions
=
(
13
,
1
)
,
transparent
=
Just
{
x
=
71
,
y
=
23
}
}
WormMap
::
[{#
Int
}]
WormMap
=
[{
1
,
2
,
3
,
-1
,
-1
,
-1
,
-1
,
-1
},
{
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
},
{
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
},
{
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
},
{
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
},
{
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
},
{
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
},
{
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
},
{
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
,
-1
}]
WormSeq001
::
(
Int
,
[(
Int
,
Int
)])
WormSeq001
=
(
-1
,[])
WormSequences
::
[(
Int
,
[(
Int
,
Int
)])]
WormSequences
=
[
WormSeq001
]
\ No newline at end of file
libraries/ObjectIO/Game Examples/WORMS/Worms.icl
0 → 100644
View file @
723a998d
module
Worms
/*
Worms Demonstration Game for the Clean Game Library
Version: 2.0
Author: Mike Wiering (mike.wiering@cs.kun.nl)
*/
import
StdEnv
,
StdIO
import
StdGameDef
,
StdGame
,
StdGSt
,
GameFunctions
import
L1
,
L2
,
L3
,
WORM
,
HEAD
import
Random
::
GameState
=
{
curlevel
::
!
Int
,
maxlevel
::
!
Int
,
quit
::
!
Bool
,
wormlist
::
![
RealXY
]
,
gameover
::
!
Bool
,
timecounter
::
!
Int
,
randseed
::
!
RandomSeed
}
initialGameState
=
{
curlevel
=
0
,
maxlevel
=
7
,
quit
=
False
,
wormlist
=
[]
,
gameover
=
False
,
timecounter
=
0
,
randseed
=
nullRandomSeed
}
/* move with speed V */
V
=
3.0
/* 24 rem V must be 0 */
/* ---------- main program: load game definition and start the game! ---------- */
Start
::
*
World
->
*
World
Start
world
#
(
seed
,
world
)
=
getNewRandomSeed
world
=
startGame
WormsDemo
{
initialGameState
&
randseed
=
seed
}
[
ScreenSize
{
w
=
640
,
h
=
480
},
ColorDepth
16
]
world
/* ---------- the complete game definition ---------- */
WormsDemo
::
(
Game
GameState
)
WormsDemo
=
{
levels
=
[
blankScreen
,
GameLevel1
,
blankScreen
,
GameLevel2
,
blankScreen
,
GameLevel3
,
blankScreen
]
,
quitlevel
=
accGSt
WormsQuitFunction
,
nextlevel
=
accGSt
WormsNextLevelFunction
,
textitems
=
accGSt
WormsTextItems
}
/* if the quit function returns true, the game engine quit the level */
WormsQuitFunction
::
GameState
->
(
Bool
,
GameState
)
WormsQuitFunction
gst
=
(
gst
.
quit
,
gst
)
/* function that returns the next level to run, 0 = end game */
WormsNextLevelFunction
::
GameState
->
(
Int
,
GameState
)
WormsNextLevelFunction
gst
=:
{
curlevel
,
maxlevel
,
gameover
}
=
(
nextLevel
,
{
gst
&
curlevel
=
nextLevel
,
quit
=
False
,
timecounter
=
(
time
nextLevel
)
})
where
nextLevel
=
if
(
gameover
||
(
curlevel
+
1
>
maxlevel
))
0
(
curlevel
+
1
)
time
l
=
if
(
l
==
maxlevel
)
500
(
if
(
l
rem
2
==
1
)
100
(
~1
))
/* function that returns text to be displayed */
WormsTextItems
::
GameState
->
([
GameText
],
GameState
)
WormsTextItems
gst
=:
{
curlevel
,
gameover
,
timecounter
,
maxlevel
}
#
gst
=
{
gst
&
timecounter
=
timecounter
-
1
}
|
gst
.
timecounter
==
0
=
([],
{
gst
&
quit
=
True
})
|
gameover
|
timecounter
<
0
=
([
GameOver
],
{
gst
&
timecounter
=
250
})
=
([
GameOver
],
gst
)
=
if
(
curlevel
==
maxlevel
)
([
Ending1
timecounter
,
Ending2
timecounter
],
gst
)
(
if
(
curlevel
rem
2
==
1
)
([
LevelStat
((
curlevel
+
1
)
/
2
)],
gst
)
([],
gst
)
)
/* ---------- definitions of the levels ---------- */
/* block size */
W
:==
24
H
:==
24
DEFAULT_SIZE
:==
{
w
=
W
,
h
=
H
}
/* object codes (corresponds with level map) */
OBJ_START
:==
0x10
OBJ_WORMHEAD
:==
0x10
OBJ_WORMSEGMENT
:==
0x11
OBJ_FOOD
:==
0x12
OBJ_WALL
:==
0x80
/* user events */
EV_STOP
:==
0
EV_DIE
:==
1