CL-TCOD has been tested with SBCL 1.0.36 on Linux and Windows, Clozure 1.5
on Linux and Windows, and CLISP on Windows.

**Note** that it has not been used on a Mac; if you do this you may need to
tell CFFI the name of the compiled libtcod library under MacOS. To do this,
open tcod.lisp in an editor, find the ='(define-foreign-library…'= clause,
uncomment the ='(:macintosh…)'= line and change the string on that line to
the name of the libtcod library file.

1.3 Dependencies

1.4 Hints on installation

You need to know your way around your chosen common lisp and how to install and
load lisp libraries before proceeding. You also need to have a version of
libtcod newer than 1.4.1rc2, which is the first version that includes the
='wrappers.c'= and ='wrappers.h'= source files that allow CL-TCOD to interface
with libtcod.

If CFFI or DEFSTAR are not installed, download and install them somewhere
ASDF can find them. CFFI requires several third-party lisp libraries – see
the CFFI documentation for more details. Note that if you have
Quicklisp installed, you can install CFFI and its dependencies
easily using the command (ql:quickload "cffi") at the Lisp prompt.

Put the CL-TCOD files in a directory where ASDF can find them.

Make sure libtcod is installed and compiled. Make sure the libtcod
dynamically linked library (.DLL or .SO file) is somewhere your lisp
system can find it. It probably is, but if CFFI complains about being unable
to find the library, you can either copy it to an appropriate directory or
add its directory to the list variable cffi:*foreign-library-directories*
e.g. by typing the following in the lisp interpreter:

(push #P"/my/libtcod/directory/" cffi:*foreign-library-directories*)

On windows, DLL files should be put in one of the directories listed in the
PATH environment variable. You will need to put SDL.dll in the same place
if you don't already have SDL installed.

On Linux, you can usually put .SO files in /usr/local/lib/.
Use your package installer to install libSDL.
Try running the libtcod demo programs to check everything works.

Start lisp, then load CL-TCOD. Using Quicklisp:

(ql:quickload :tcod)

Using ASDF:

(load "/path/to/asdf/asdf.lisp")
(asdf:oos 'asdf:load-op :tcod)

Type something like the following commands at the lisp prompt to start using
TCOD from within Lisp. Alternatively you can type (tcod:hello-world), which
is a function containing the code below.

In general, most functions exist in both U.S. and non-U.S. spellings, This is
mainly relevant to those functions with colour/color or centre/center in their
names.

1.5.2 Colournums

In libtcod, colours are represented as structures containing three integer
values: red, green and blue (each 0-255). The name of the structure type is
TCOD_color_t.

In CL-TCOD, these colour structs are converted into 3-byte integers using the C
functions int_to_color(int) and color_to_int(TCOD_color_t), both defined in
wrappers.c. The 3 bytes are red, green and blue in order (blue is 1's). ie:

/* C */ ;; lisp ;;
struct TCOD_color_t {r, g, b} <==> #x00RRGGBB

So, for example, one way to use the function TCOD_color_multiply_scalar from
lisp is:

(tcod:color-multiply-scalar (tcod:compose-colour 218 165 32) 0.5)

All C functions that take or return TCOD_color_t structs, are wrapped by lisp
functions that take or return integers as described above.

1.5.3 Colours by keyword

A lisp keyword is any symbol beginning with ':'. In lisp, keywords (like all
symbols) are first-class values and can be passed around just like any other
value. CL-TCOD uses keywords to refer to particular colours, for example the
keyword :cyan refers to the colour #x0056A3CD (or 5678029 in decimal notation).

You can use keywords instead of colournums as arguments to lisp functions, by
using the function colour to return the colournum associated with a keyword:

CL-TCOD knows all the colour names defined in the 'rgb.txt' file under
Xwindows, eg :navajo-white, :honeydew, :mint-cream, and so on. There is
nothing special about the fact that rgb.txt comes from Xwindows – the colours
are just named R,G,B values and can be used anywhere that CL-TCOD can be
used. Look in the source file ='tcod-colours.lisp'= to see the available colour
names. If you are using GNU Emacs, the
king of lisp IDEs, do M-x list-colors-display to see a list of all colours.

1.5.4 Lisp format versus C printf

The TCOD functions that accept printf-like string-formatting arguments,
have been modified to instead accept arguments to Common Lisp's format
function.' For example:

1.5.5 Miscellaneous extra functions

1.5.6 Coverage

Does not provide wrappers for:

File parser. Using this from lisp would be a very cumbersome way to read
values from a file, as the resulting values are not lisp objects. You would
be better to either consider using the lisp
`read' function, or looking into lisp libraries for parser generation.

namegen-get-sets – I haven't yet implemented this as it will have to
involve converting from libtcod's bespoke 'linked list' to a lisp list.
You may be better to write your random name generator in lisp (fairly trivial).

sys-get-directory-content, sys-file-exists, sys-is-directory,
sys-delete-file: Common Lisp already has functions that do the same thing.

1.6.2 Learning Common Lisp

Quicklisp allows you to very easily install
libraries – it automatically downloads and installs a library and its
dependencies, from within Lisp. If you don't decide to go with Lisp in a
Box (below), then Quicklisp should be the first thing you install once you have
your lisp running.

*"Lisp in a Box"* – aims to make it easy to start using Common Lisp by
providing a single download with everything set up in advance (Lisp, Emacs,
SLIME, and Quicklisp).

If you are on a Mac, the free, high-quality Clozure CL
has a builtin graphical IDE.

Some editors with good lisp syntax highlighting include jEdit and Notepad++.

1.6.3 A note on editors and IDEs

Emacs is a very powerful program. It is mainly used as a programmers' text and
source code editor, but it can do – and plugins exist to make it do – just
about anything you can imagine. It is mostly written in a dialect of lisp, and
this is also its extension language. When combined with SLIME, a plugin
that allows it to communicate directly with a running common lisp
compiler/interpreter, Emacs is not only the best IDE for common lisp, but
one of the best and most advanced IDEs available for any programming language.

The downside: because Emacs + SLIME is so good, common lisp programmers have
put very little effort into getting other popular programming editors/IDEs to
support common lisp, at least beyond simple syntax highlighting. Emacs is an
idiosyncratic program (though development is active, it is about 34 years old)
and despite good efforts to modernise/regularise its interface it still has a
steeper learning curve than many other IDEs, especially when you are also
struggling to set up SLIME and get it to communicate through a socket with
your lisp process…

My advice is that while all roads lead to Emacs, you don't have to hurry to get
there. Initially you should concentrate on getting common lisp set up and
starting to learn the language. Think about using the trial version of one of
the big commercial implementations (Allegro or LispWorks), as they have
built-in IDEs. Once you are ready to move on from them, install Emacs and
SLIME.

1.6.4 Commercial Common Lisp implementations

These are both high quality, but painfully expensive. Luckily they have
'trial' versions that can be downloaded for free, and which I recommend you
use when beginning to learn Common Lisp as they come with integrated
graphical editors/development environments (although if you have a Mac
you may wish to investigate Clozure CL's IDE – see below).

LispWorks – starts at $900 USD for a
noncommercial license. The trial version quits automatically after 5 hours.

1.6.5 Full-featured, free Common Lisp implementations

Move on to one of these if and when you outgrow Allegro or LispWorks.

For the title of the best, most robust free multiplatform Common Lisp compiler,
it is currently a very close call between these two:

Steel Bank Common Lisp (SBCL) Compiles to
machine code, great on Linux/Mac,
still nominally 'experimental' on Windows but actually seems very stable
on that platform.

Clozure CL Compiles to machine code; native to
Mac but recently ported to Linux and Windows. Formerly known as OpenMCL.
The Mac version has a graphical IDE.
Not to be confused with Clojure, which is a different
dialect of lisp from Common Lisp.

Other worthwhile free implementations:

GNU CLISP Bytecode compiler, so programs won't run
as fast as in the compiled lisps discussed above. However it runs pretty much
everywhere, and is easy to install on Windows.

Embeddable Common Lisp Promising, compiles
to C and then passes code to your C compiler. Does this 'on the fly' when
running as an interpreter. Also designed to be easily embeddable in non-Lisp
applications as a scripting language.

Armed Bear Common Lisp
Common Lisp compiler running inside the Java virtual machine, so your
code will run on any platform and can use all the Java libraries. I doubt
you'll be able to use libtcod with this though.

1.7.5.211 Function: map-compute-fov

1.7.5.211.1 Syntax

1.7.5.211.2 Description

Compute field of view information for MAP, assuming the player is at
(PLAYER-X, PLAYER-Y), and using the field of view algorithm ALGORITHM.

1.7.5.212 Function: map-copy

1.7.5.212.1 Syntax

(map-copy map-src map-dest)

1.7.5.212.2 Description

Copy the map object SRC into the new map object DEST.

1.7.5.213 Function: map-delete

1.7.5.213.1 Syntax

(map-delete map)

1.7.5.213.2 Description

Destroy the map object MAP.

1.7.5.214 Function: map-get-height

1.7.5.214.1 Syntax

(map-get-height map)

1.7.5.214.2 Description

Return the height of the map object MAP.

1.7.5.215 Function: map-get-nb-cells

1.7.5.215.1 Syntax

(map-get-nb-cells map)

1.7.5.215.2 Description

Return the number of cells in the map object MAP.

1.7.5.216 Function: map-get-width

1.7.5.216.1 Syntax

(map-get-width map)

1.7.5.216.2 Description

Return the width of the map object MAP.

1.7.5.217 Function: map-is-in-fov?

1.7.5.217.1 Syntax

(map-is-in-fov? map x y)

1.7.5.217.2 Description

Return true if position (X, Y) on the map is visible.

1.7.5.218 Function: map-is-transparent?

1.7.5.218.1 Syntax

(map-is-transparent? map x y)

1.7.5.218.2 Description

Return true if position (X, Y) on the map is set to be transparent.

1.7.5.219 Function: map-is-walkable?

1.7.5.219.1 Syntax

(map-is-walkable? map x y)

1.7.5.219.2 Description

Return true if position (X, Y) on the map is set to be walkable.

1.7.5.220 Function: map-new

1.7.5.220.1 Syntax

(map-new width height)

1.7.5.220.2 Description

Return a new map object of the given dimensions.

1.7.5.221 Function: map-set-in-fov

1.7.5.221.1 Syntax

(map-set-in-fov map x y fov?)

1.7.5.221.2 Description

Set whether the cell at X, Y in MAP is in field of view.

1.7.5.222 Function: map-set-properties

1.7.5.222.1 Syntax

(map-set-properties map x y transparent? walkable?)

1.7.5.222.2 Description

Set the properties of the map cell at (X, Y). It is walkable if
walkable? is true, and transparent if transparent? is true.

1.7.5.223 Function: mouse-cx

1.7.5.223.1 Syntax

(mouse-cx instance)

1.7.5.223.2 Description

Return whether debug-block represents elsewhere code.

1.7.5.224 Function: mouse-cy

1.7.5.224.1 Syntax

(mouse-cy instance)

1.7.5.224.2 Description

Return whether debug-block represents elsewhere code.

1.7.5.225 Function: mouse-dx

1.7.5.225.1 Syntax

(mouse-dx instance)

1.7.5.225.2 Description

Return whether debug-block represents elsewhere code.

1.7.5.226 Function: mouse-dy

1.7.5.226.1 Syntax

(mouse-dy instance)

1.7.5.226.2 Description

Return whether debug-block represents elsewhere code.

1.7.5.227 Function: mouse-get-cx

1.7.5.227.1 Syntax

(mouse-get-cx)

1.7.5.227.2 Description

Not documented.

1.7.5.228 Function: mouse-get-cy

1.7.5.228.1 Syntax

(mouse-get-cy)

1.7.5.228.2 Description

Not documented.

1.7.5.229 Function: mouse-get-dcx

1.7.5.229.1 Syntax

(mouse-get-dcx)

1.7.5.229.2 Description

Not documented.

1.7.5.230 Function: mouse-get-dcy

1.7.5.230.1 Syntax

(mouse-get-dcy)

1.7.5.230.2 Description

Not documented.

1.7.5.231 Function: mouse-get-dx

1.7.5.231.1 Syntax

(mouse-get-dx)

1.7.5.231.2 Description

Not documented.

1.7.5.232 Function: mouse-get-dy

1.7.5.232.1 Syntax

(mouse-get-dy)

1.7.5.232.2 Description

Not documented.

1.7.5.233 Function: mouse-get-lbutton

1.7.5.233.1 Syntax

(mouse-get-lbutton)

1.7.5.233.2 Description

Not documented.

1.7.5.234 Function: mouse-get-lbutton-pressed

1.7.5.234.1 Syntax

(mouse-get-lbutton-pressed)

1.7.5.234.2 Description

Not documented.

1.7.5.235 Function: mouse-get-mbutton

1.7.5.235.1 Syntax

(mouse-get-mbutton)

1.7.5.235.2 Description

Not documented.

1.7.5.236 Function: mouse-get-mbutton-pressed

1.7.5.236.1 Syntax

(mouse-get-mbutton-pressed)

1.7.5.236.2 Description

Not documented.

1.7.5.237 Function: mouse-get-rbutton

1.7.5.237.1 Syntax

(mouse-get-rbutton)

1.7.5.237.2 Description

Not documented.

1.7.5.238 Function: mouse-get-rbutton-pressed

1.7.5.238.1 Syntax

(mouse-get-rbutton-pressed)

1.7.5.238.2 Description

Not documented.

1.7.5.239 Function: mouse-get-status

1.7.5.239.1 Syntax

(mouse-get-status &optional (update? nil))

1.7.5.239.2 Description

Note that as of libtcod 1.5.1rc1, `mouse-get-status' returns
information about the status of the mouse as at the last time
`sys-check-for-event' was called. If you want the current status
of the mouse to be returned instead, UPDATE? should be non-nil.

1.7.5.240 Function: mouse-get-x

1.7.5.240.1 Syntax

(mouse-get-x)

1.7.5.240.2 Description

Not documented.

1.7.5.241 Function: mouse-get-y

1.7.5.241.1 Syntax

(mouse-get-y)

1.7.5.241.2 Description

Not documented.

1.7.5.242 Function: mouse-is-cursor-visible?

1.7.5.242.1 Syntax

(mouse-is-cursor-visible?)

1.7.5.242.2 Description

Not documented.

1.7.5.243 Function: mouse-lbutton

1.7.5.243.1 Syntax

(mouse-lbutton instance)

1.7.5.243.2 Description

Return whether debug-block represents elsewhere code.

1.7.5.244 Function: mouse-lbutton-pressed

1.7.5.244.1 Syntax

(mouse-lbutton-pressed instance)

1.7.5.244.2 Description

Return whether debug-block represents elsewhere code.

1.7.5.245 Function: mouse-mbutton

1.7.5.245.1 Syntax

(mouse-mbutton instance)

1.7.5.245.2 Description

Return whether debug-block represents elsewhere code.

1.7.5.246 Function: mouse-mbutton-pressed

1.7.5.246.1 Syntax

(mouse-mbutton-pressed instance)

1.7.5.246.2 Description

Return whether debug-block represents elsewhere code.

1.7.5.247 Function: mouse-move

1.7.5.247.1 Syntax

(mouse-move pixel-x pixel-y)

1.7.5.247.2 Description

Not documented.

1.7.5.248 Function: mouse-rbutton

1.7.5.248.1 Syntax

(mouse-rbutton instance)

1.7.5.248.2 Description

Return whether debug-block represents elsewhere code.

1.7.5.249 Function: mouse-rbutton-pressed

1.7.5.249.1 Syntax

(mouse-rbutton-pressed instance)

1.7.5.249.2 Description

Return whether debug-block represents elsewhere code.

1.7.5.250 Function: mouse-show-cursor

1.7.5.250.1 Syntax

(mouse-show-cursor visible?)

1.7.5.250.2 Description

Not documented.

1.7.5.251 Function: mouse-wheel-down

1.7.5.251.1 Syntax

(mouse-wheel-down instance)

1.7.5.251.2 Description

Return whether debug-block represents elsewhere code.

1.7.5.252 Function: mouse-wheel-up

1.7.5.252.1 Syntax

(mouse-wheel-up instance)

1.7.5.252.2 Description

Return whether debug-block represents elsewhere code.

1.7.5.253 Function: mouse-x

1.7.5.253.1 Syntax

(mouse-x instance)

1.7.5.253.2 Description

Return whether debug-block represents elsewhere code.

1.7.5.254 Function: mouse-y

1.7.5.254.1 Syntax

(mouse-y instance)

1.7.5.254.2 Description

Return whether debug-block represents elsewhere code.

1.7.5.255 Function: namegen-destroy

1.7.5.255.1 Syntax

(namegen-destroy)

1.7.5.255.2 Description

Not documented.

1.7.5.256 Function: namegen-generate

1.7.5.256.1 Syntax

(namegen-generate name allocate?)

1.7.5.256.2 Description

Not documented.

1.7.5.257 Function: namegen-generate-custom

1.7.5.257.1 Syntax

(namegen-generate-custom name rule allocate?)

1.7.5.257.2 Description

Not documented.

1.7.5.258 Function: namegen-parse

1.7.5.258.1 Syntax

(namegen-parse filename rng)

1.7.5.258.2 Description

Not documented.

1.7.5.259 Function: noise-delete

1.7.5.259.1 Syntax

(noise-delete noise)

1.7.5.259.2 Description

Destroy a noise object.

1.7.5.260 Function: noise-get

1.7.5.260.1 Syntax

(noise-get noise &rest nums)

1.7.5.260.2 Description

Returns the flat noise function at the given coordinates.

1.7.5.261 Function: noise-get-ex

1.7.5.261.1 Syntax

(noise-get-ex noise noise-type &rest nums)

1.7.5.261.2 Description

Returns the flat noise function at the given coordinates,
using noise type NOISE-TYPE.

1.7.5.262 Function: noise-get-fbm

1.7.5.262.1 Syntax

(noise-get-fbm noise octaves &rest nums)

1.7.5.262.2 Description

Returns the fractional Brownian motion function at the given coordinates.

1.7.5.263 Function: noise-get-fbm-ex

1.7.5.263.1 Syntax

(noise-get-fbm-ex noise noise-type octaves &rest nums)

1.7.5.263.2 Description

Returns the fractional Brownian motion function at the given coordinates,
using noise type NOISE-TYPE.

1.7.5.264 Function: noise-get-turbulence

1.7.5.264.1 Syntax

(noise-get-turbulence noise octaves &rest nums)

1.7.5.264.2 Description

Returns the turbulence function at the given coordinates.

1.7.5.265 Function: noise-get-turbulence-ex

1.7.5.265.1 Syntax

(noise-get-turbulence-ex noise noise-type octaves &rest nums)

1.7.5.265.2 Description

Returns the turbulence function at the given coordinates,
using noise type NOISE-TYPE.

1.7.5.267.2 Description

1.7.5.268 Function: path-compute

1.7.5.268.1 Syntax

1.7.5.268.2 Description

Compute the path between the two points (OX,OY) and (DX,DY), using the
A* algorithm.

1.7.5.269 Function: path-delete

1.7.5.269.1 Syntax

(path-delete a*-path)

1.7.5.269.2 Description

Delete an A* path object.

1.7.5.270 Function: path-get

1.7.5.270.1 Syntax

(path-get a*-path index)

1.7.5.270.2 Description

Return the INDEXth step in the path from its current origin to its current
destination.

1.7.5.271 Function: path-get-destination

1.7.5.271.1 Syntax

(path-get-destination a*-path)

1.7.5.271.2 Description

Return the coordinates of the current destination of the A* path PATH.

1.7.5.272 Function: path-get-origin

1.7.5.272.1 Syntax

(path-get-origin a*-path)

1.7.5.272.2 Description

Return the coordinates of the current origin of the A* path PATH.

1.7.5.273 Function: path-is-empty?

1.7.5.273.1 Syntax

(path-is-empty? a*-path)

1.7.5.273.2 Description

Return true if the path object is empty (has zero steps).

1.7.5.274 Function: path-new-using-function

1.7.5.274.1 Syntax

(path-new-using-function xdim ydim callback user-data diagonal-cost)

1.7.5.274.2 Description

Return a new A* path object, which will call the function CALLBACK to
calculate movement costs.

1.7.5.275 Function: path-new-using-map

1.7.5.275.1 Syntax

(path-new-using-map map diagonal-cost)

1.7.5.275.2 Description

Return a new A* path object, using the map MAP.

1.7.5.276 Function: path-reverse

1.7.5.276.1 Syntax

(path-reverse a*-path)

1.7.5.276.2 Description

Swap origin and destination for an A* path object.

1.7.5.277 Function: path-size

1.7.5.277.1 Syntax

(path-size a*-path)

1.7.5.277.2 Description

Return the number of steps in the path.

1.7.5.278 Function: path-walk

1.7.5.278.1 Syntax

(path-walk a*-path recalc-when-needed?)

1.7.5.278.2 Description

Move one step along PATH. The path becomes one step shorter. Returns
the coordinates of the new location.

1.7.5.279 Function: random-delete

1.7.5.279.1 Syntax

(random-delete rng)

1.7.5.279.2 Description

Not documented.

1.7.5.280 Function: random-get-double

1.7.5.280.1 Syntax

(random-get-double rng min max)

1.7.5.280.2 Description

Not documented.

1.7.5.281 Function: random-get-double-mean

1.7.5.281.1 Syntax

(random-get-double-mean rng min max mean)

1.7.5.281.2 Description

Not documented.

1.7.5.282 Function: random-get-float

1.7.5.282.1 Syntax

(random-get-float rng min max)

1.7.5.282.2 Description

Not documented.

1.7.5.283 Function: random-get-float-mean

1.7.5.283.1 Syntax

(random-get-float-mean rng min max mean)

1.7.5.283.2 Description

Not documented.

1.7.5.284 Function: random-get-instance

1.7.5.284.1 Syntax

(random-get-instance)

1.7.5.284.2 Description

Not documented.

1.7.5.285 Function: random-get-int

1.7.5.285.1 Syntax

(random-get-int rng min max)

1.7.5.285.2 Description

Not documented.

1.7.5.286 Function: random-get-int-mean

1.7.5.286.1 Syntax

(random-get-int-mean rng min max mean)

1.7.5.286.2 Description

Not documented.

1.7.5.287 Function: random-new

1.7.5.287.1 Syntax

(random-new algorithm)

1.7.5.287.2 Description

Not documented.

1.7.5.288 Function: random-new-from-seed

1.7.5.288.1 Syntax

(random-new-from-seed algorithm seed)

1.7.5.288.2 Description

Not documented.

1.7.5.289 Function: random-restore

1.7.5.289.1 Syntax

(random-restore rng backup)

1.7.5.289.2 Description

Not documented.

1.7.5.290 Function: random-save

1.7.5.290.1 Syntax

(random-save rng)

1.7.5.290.2 Description

Not documented.

1.7.5.291 Function: random-set-distribution

1.7.5.291.1 Syntax

(random-set-distribution rng dist)

1.7.5.291.2 Description

Not documented.

1.7.5.292 Function: same-keys?

1.7.5.292.1 Syntax

(same-keys? key1 key2)

1.7.5.292.2 Description

Not documented.

1.7.5.293 Function: start-colors

1.7.5.293.1 Syntax

(start-colors)

1.7.5.293.2 Description

Not documented.

1.7.5.294 Function: start-colours

1.7.5.294.1 Syntax

(start-colours)

1.7.5.294.2 Description

Not documented.

1.7.5.295 Function: sys-check-for-event

1.7.5.295.1 Syntax

(sys-check-for-event eventmask key mouseptr)

1.7.5.295.2 Description

Not documented.

1.7.5.296 Function: sys-clipboard-get

1.7.5.296.1 Syntax

(sys-clipboard-get)

1.7.5.296.2 Description

Not documented.

1.7.5.297 Function: sys-clipboard-set

1.7.5.297.1 Syntax

(sys-clipboard-set text)

1.7.5.297.2 Description

Not documented.

1.7.5.298 Function: sys-create-directory

1.7.5.298.1 Syntax

(sys-create-directory path)

1.7.5.298.2 Description

Not documented.

1.7.5.299 Function: sys-delete-directory

1.7.5.299.1 Syntax

(sys-delete-directory path)

1.7.5.299.2 Description

Not documented.

1.7.5.300 Function: sys-elapsed-milli

1.7.5.300.1 Syntax

(sys-elapsed-milli)

1.7.5.300.2 Description

Not documented.

1.7.5.301 Function: sys-elapsed-seconds

1.7.5.301.1 Syntax

(sys-elapsed-seconds)

1.7.5.301.2 Description

Not documented.

1.7.5.302 Function: sys-force-fullscreen-resolution

1.7.5.302.1 Syntax

(sys-force-fullscreen-resolution width height)

1.7.5.302.2 Description

Not documented.

1.7.5.303 Function: sys-get-char-size

1.7.5.303.1 Syntax

(sys-get-char-size)

1.7.5.303.2 Description

Return the dimensions of each character in the current font bitmap.

1.7.5.304 Function: sys-get-current-resolution

1.7.5.304.1 Syntax

(sys-get-current-resolution)

1.7.5.304.2 Description

Not documented.

1.7.5.305 Function: sys-get-events

1.7.5.305.1 Syntax

(sys-get-events)

1.7.5.305.2 Description

User-friendly wrapper for the new input event model in libtcod 1.5.1rc1.
When called, returns a list of all queued events (calling the function
also EMPTIES the queue). Each element in the list is a cons cell of the
form (EVENT-TYPE . DATA) where EVENT-TYPE is a member of the `event' enum,
and DATA is either a key struct or a mouse-state struct.