
 
 
 
 ARVOXML User Documentation
 
 
 
 
 
 
 ARVOXML 
 
 
 
 
 An AGI tool to generate "defines.txt" by John Nickerson (Mokalus of Borg), mokalus@yahoo.com.au
 (c) John Nickerson (Mokalus of Borg), October 2002
 
 -- License Agreement --
 
You are hereby granted the right to do whatever you like with this software
and it's source code, including redistribution and alteration, on the following
conditions:

 
 
 The author's name and contact details (John Nickerson (Mokalus of Borg), mokalus@yahoo.com.au) are not removed or hidden.
 
 The author accepts no responsibility for any damage that may be caused
to your hardware, other software, or wetware, through use of the program.

 No warranty is given, either express or implied, including, but not limited
to, usability or fitness for a particular purpose, except where prohibited
by law, and on the planet Neptune ('coz we all know what they're like about
warranties).
 
 
 -- Executive Summary of License Agreement --
Go nuts, but don't bother me.

 -- Current Version --
 1.1.0b
 
 -- Using the Program --
 
 
(The file "Arvoxml.exe" has been compiled from "Arvoxml.py" with "py2exe", available from Starship Python, and requires "python22.dll" to run.)
 
(The file "Arvoxml.py" requires the Python interpreter, which can be downloaded for free at www.python.org for a variety of platforms.)
 
 
 
The program can be run with either command-line arguments, or user input. The command-line syntax is as follows:
 
 
 
 
arvoxml [options]
 
Valid options:

-i[filename]Set input file to 'filename'. Prompt if no filename is given on the command line. Note: no spaces between '-i' and filename argument.
-o[filename]Set output file to 'filename'. Same behaviour as '-i' if no argument given. Defaults to "defines.txt".
-w or -dUse Windows/DOS-friendly newlines (CR-LF). (default)
-u or -lUse Unix/Linux newlines (LF).

 

If no arguments are given on the command line, the program will print a short summary of the command line argument options. If you have problems getting the program to open files, try specifying the path in full.
 
 
 -- Further Information/Programs --
 
AGI Studio: 
 http://members.ozemail.com.au/~ptrkelly/agi/agistudio.html
 
 
The Python interpreter and language: 
 http://www.python.org
 
 
 -- Source File Format --
 
 Scopes
 
 
 
 A scope is enclosed by <scope></scope> tags, and is used to define separate sections of the source file, and, by extension, sections of the game. Say, for instance, you have a very short game, with two separate "chapters", and two rooms in each, which each have a couple of variables that are only relevant within that room. You might feed ARVOXML a source file segment like this:
 
 
 
 var current_chapter
 
 
<scope>
 
 
	<flag name="night_time" />
 
 
	<scope>
 
 
		<flag name="seen_owl" />
 
 
	</scope>
 
 
	<scope>
 
 
		<flag name="tripped" />
 
 
	</scope>
 
 
</scope>
 
 
<scope>br />
	<var name="mushrooms_found" />
 
 
	<scope>
 
 
		<flag name="caught_moth" />
 
 
	</scope>
 
 
	<scope>
 
 
		<var name="glow_worms" />
 
 
	</scope>
 
 
</scope>
 
 
 
 This would result in both "seen_owl" and "tripped" to be assigned to the same machine-level flag, because the independent scopes indicate that the use of these two flags never overlaps.
 
 
 
 Declarations
 
 
 A declaration is what tells the program that a variable, flag or numerical constant should have a definition in the output file. It's very simple.
 
 
To define a variable: 
 <var name="my_var" />
 
 
To define a flag: 
 <flag name="my_flag" />
 
 
To define a numerical constant: 
 <const name="my_const" value="0" />
 (where '0' can be replaced by any integer)
 
 
 
 
 Manually Setting Variable/Flag Numbers
 
 
You can manually set the current variable or flag number with a "setvar" or
"setflag" command in the source file. For example, 
 <setvar value="35" />
 will make the next variable in the current or contained scope v35. Similarly, 
 <setflag value="42" />
 will make the next flag f42.
 
 
 
 Copy Sections and Comments
 Text that appears anywhere else in the source file will be copied, verbatim, to the output file. Use a double forward-slash '//' to mark line comments.

 
 
 -- Known Issues --
 
 There are currently no known bugs or problems.
 
 
 
 -- Bug Reporting --
 
To report a bug, please email me at mokalus@yahoo.com.au, with the following format:
 
 
Name:
Date:
Program version:
Command line used:
Description of error:
Error message (if any):
 
 
 
 
