/usr/share/games/cuyo/example.ld is in cuyo-data 2.0.0brl1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 | #
# Copyright <=2004 by Immanuel Halupczok
# Maintenance modifications 2005-2007,2011 by the cuyo developers
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# This is an example file to show how to write your own cuyo
# levels. It's still under construction, but probably it's already
# useful to get started. To experiment with it, do the following:
# mkdir my_cuyo_levels
# cd my_cuyo_levels
# Put a copy of this file into my_cuyo_levels. Then
# mkdir pics
# The pics directory is the place where you can put images
# for your own levels (xpm files). Cuyo will find them there.
# However, you don't need to put any images there for this
# example, because it uses images of existing levels.
# Type
# cuyo example.ld
# to try this level; then read this file to see how it was done.
# If you wrote a cuyo level and you think it's worth being included
# in the normal cuyo distribution, you may send it to cuyo@karimmi.de.
# Before we start with this level, just one more comment on the
# organization of the level description files:
# When started, cuyo looks for an .ld file called "summary.ld".
# That file is generated from a file called "summary.in" and includes
# all the other .ld files.
# Most other ld files simply describe one level, but there's also
# one called "globals.ld", which contains some definitions useful
# in many different levels.
# "example" is the internal name of this level. (When you
# win a level, it's the internal name of the level that cuyo
# remembers.)
example = {
# Name of the level which is displayed on screen.
name = "Example Level"
# The author of the level. Insert your own name.
author = "Immi"
# The description which appears at the beginning.
description = "Where do I know all these icons from...?"
# The different kinds of blobs that exist in the level.
# In simple cases, it's enough to specify the name of an
# xpm file. For more elaborate kinds, you have to create
# an own section for the kind (inside the section of the
# level) and specify the name of the section.
# In this example, there are two simple kinds:
# igGo.xpm and inGruen.xpm.
# Look at the corresponding xpm files:
# - igGo.xpm is a 32x32 image. That image is used to draw the blobs.
# - inGruen.xpm is a 128x128 xpm. Cuyo always cuts big
# imagess in 32x32 parts, so inGruen.xpm consists of 16
# small icons. Now, which of the 16 different 32x32 icons
# is drawn depends on the neighbours of the blob. For example,
# if a blob shall be drawn which has another blob of the same
# kind on top of it, the bottom left icon is drawn.
# - For the kind "my_special", we want to do more elaborate
# things, so it has its own section (see below)
pics=igGo.xpm,inGruen.xpm,my_special
# How many blob have to be put together to make them explode:
numexplode = 5
# In one-player-mode, we want to make it a bit more difficult.
# So here, numexplode shall be 6. (You can add a "[1]" to any
# of these keywords to specify a difference in one-player-mode.
# Alternatively, you can add a "[2]" to specify a difference in
# two-player-mode. If you do both, you should delete the base
# version, because it is never used anyway.)
numexplode[1] = 6
# That's the stuff that has to be removed to win the level. (I'll
# call it "grass" because it's grass in the first level.)
# Here too, we can choose between specifying an xpm file
# or a section. However, when we specify a "big" xpm file
# (with several 32x32 icons), this has a different meaning
# than for the normal blob kinds. Which of the icons is
# drawn does not depend on the neighbours, but...
startpic=ipStart.xpm
# ... on startdist. Here we can specify which of the
# icons are where at the beginning of the level. startdist
# has to be a list of strings, each 10 characters long.
# Each string stands for one row. (The last one for the
# bottom row of the level.) A letter stands for a icon
# from the startpic, where "A" is the top left icon,
# "B" the one to the right of it, etc. "." means that
# there shall be nothing at that place.
startdist=".AF....AF.","BCDE..BCDE"
# The "grey blobs" that appear when the other player
# makes explosions. (This works like the normal blob kinds.)
greypic=inSchwarz.xpm
# OK, now everything is ready except for the blob
# kind "my_special". So let's describe that now.
my_special = {
# It uses several xpm files:
pics=ihBlau.xpm,inSchwarz2.xpm
# For this blob, being neighbours is diagonal.
# (See existing levels or the cual man page for possible values
# of this constant.)
# This constant only specifies when blobs explode, and not
# how they are drawn. So we still have to specify how the
# graphics shall look like separately.
neighbours=<neighbours_diagonal>
# The stuff inside <<>>-brackets is "cual code". Cual (= Cuyo
# animation language) is an (almost) complete language which
# makes it easy to program animations, etc. Try "man cual"
# for details.
# Note that the graphics of the simple blob kinds (where we
# only specified a xpm file) is done by cual code, too: the
# default definitions of the file "global.ld" are used.
<<
# That's the main procedure for drawing our "my_special" blob.
my_special={
# First, we draw the normal blob (with its diagonal connections).
# There's a procedure called "schemaDiag2" defined in global.ld,
# which draws the diagonal connections just in the way we want it:
# It will build up the icon of different parts of an image file.
# However, before we call it, we have to set the variable "file",
# so that the right xpm file is taken. (Well, in fact, this would
# not really be necessary, because file is automatically initialized
# to 0, but let's do it anyway.)
file = 0; # 0 = ihBlau.xpm, 1 = inSchwarz2.xpm
schemaDiag2;
# OK, up to now, our blob looks and behaves exactly like the blue
# blobs in the level "hormones". Now let's add a bit of animation.
# Start the animation with probability of 1:80.
# (This if does not exactly the same as the if in other languages:
# Once the expression "1:80" is true, the stuff after the arrow
# will be executed in each step until the animation has terminated.
# See "man cual" for details.)
if 1:80 => {
# This time, we'll take icons out of the second xpm file.
# (inSchwarz2.xpm). Because it's so often necessary to set
# the file variable, "1" is a shortcut for "file = 1"
1;
# Now, choose which 32x32 icon to draw. This is done by setting
# the variable pos. (pos = 0 is the top left icon,...)
# There's a shortcut here, too: "A" sets pos to 0, "B" sets pos
# to 1, etc.
A, B, C, D, E, F, G, H, G, F, E, D, C, B, A;
# Now, what does it make for a sense to set the value of
# pos 15 times in a row? Note that there are commas between
# the letters, not semicolons. That means that only *one*
# of these assignments is executed: on the first time, the
# first one, on the second time the second one, etc.
# OK, now the file and the pos are set, and we are ready
# to really draw the icon: (The drawing command is very short.)
*;
};
};
>>
}
}
|