The TADS Alternate Library
Version 2.0
Components
Copyright 2000 by Kevin Forchione.
This is part of the TADS Alternate Library Authors Manual.
Introduction and Table of Contents
Components
The alternate library
adopts a component approach to its library files. This means that a file will
contain a single function, class, or object definition, which are then stored
in a corresponding directory (The exception to this are the grammar files,
which contain both class and object definitions.) This allows an author to
include only those files s/he requires, and add basic functionality by
modifying header files.
A typical definition follows:
////////////////////////////////////////////////////////////////////////
//
// ALT
Library File: Item 000318
//
// Copyright
(c) 2000 Kevin Forchione. All rights reserved.
// Based on
ADV.T (c) and STD.T (c) Michael Roberts.
//
// This file
is part of the ALT replacement library for ADV.T and
// STD.T and
requires TADS 2.5.1 or later.
//
////////////////////////////////////////////////////////////////////////
#ifndef _ITEM_H_
#define _ITEM_H_
#include <thing.h>
#pragma C+
/*
* Item: Thing
*
* A basic Item which can be picked up by the
player. It has no weight
* (0) and minimal bulk (1). The weight property should be set
* to a non-zero value for heavy objects. The bulk property
* should be set to a value greater than 1 for
bulky objects, and to
* zero for objects that are very small and
take essentially no effort
* to hold---or, more precisely, don't detract
at all from the player's
* ability to hold other objects (for example,
a piece of paper).
*/
class Item: Thing
weight =
0
bulk = 1
;
#pragma C-
#endif /* _ITEM_H_ */
The comment box at the top
contains the name of the definition as well as a serial number (in yymmdd
format) for the file. Following that a check is made using precompiler symbols
to determine if the file has been previously #included. If not then we #include
it in our source.
Following #ifndef and
#define will be any #includes required by the file for compilation. Any class,
object, or function referenced in the definition should be listed as an
#include. This helps to insure that modules that work together are compiled
together. In the example above, thing.h must be present in the compilation in
order to compile item.h because Item inherits from Thing.
Alt uses TADS C-style
operators. But Alt does not require an author to use C-style operators. Each
file sets the compilation to use C-style operators via the #pragma C+
precompiler statement and then returns compilation to the TADS default via the
#pragma C- precompiler statement.