BDCFF extension for Emerald Mines

(and various Emerald Mines / Boulder Dash clones)
Proposal V0.15
February 24 2008

Based on the Crazy Dream 9 proposal, which is based on Tim Stridmann's BDCFF proposal v0.32.

Contributing to this proposal: LogicDeLuxe, HerzAusGold, David Tritscher, cirix, Steffest
Current duscussion thread for this proposal is http://www.artsoft.org/forum/viewtopic.php?t=1547

Currently this proposal supports all elements from the various C64 Boulderdash engines and all elements from the various (amiga) Emerald Mine engines.
It allso provides a framework (at least) to extend it for other elements occuring in other engines/clones.

StructurePropertiesMap codesSubsets

Basic File Structure:
; A comment line
[BDCFF] ; BDCFF necessary header
; Info about BDCFF version, etc.
Version=cdpc1.0beta1
[game]
; game and default cave properties
; -> check here all available properties

[highscores]
1 LogicDeLuxe 666666
2 Prof Knibble 666665
3 No One 666664
; Can contain several lines of
; Rank Name Scores
; The first rank is listed first, followed by the second etc.
; Can also occur in [cave] section
; May be absent
[/highscores]

[mapcodes]
; extended codes for map-coded caves, may be absent.
Length=1        ; The length (1 or 2 characters) of the map-codes. Default value = 1
; For example,
.=DIRT
W=STEELWALL
; ...etc. If Length = 2 then ..=DIRT, Ws=STEELWALL, etc.
[/mapcodes]

[cave]

; cave data and properties
; -> check here all available properties

Size=6 5
[demo]
; demo data for this cave, all demo may be in one line, i.e. .30uLtf4curCDRr7 etc.
.30     ; no movement for 30 turns
u       ; move up one space
L       ; snap left without moving. ie the fire button was pressed during this move.
t       ; A true random number decision was true. For instance, this could be required for an amoeba.
f4      ; The next 4 true random number decisions were false.
cur     ; combined move up and right. cru is synonymous for that and can be used as well. (Diagonal movement enabled.)
CDR     ; combined snap down right. CRD is synonymous.
r7      ; move right 7 spaces
; etc.
; May be absent
[/demo]
[objects]
; cave objects data, this is absent if cave is map-coded.
; For example,
Point=1 1 INBOX
Line=2 1 2 4 DIAMOND
Point=4 3 OUTBOX
[Level=5]
; Here goes a firefly in level 5 only.
Point=4 4 FIREFLYl
[/Level]
[/objects]
[/cave]
[cave]

; next cave, etc.
[map]
; a map of a cave, is absent if cave is object-coded.
; For example,
WWWWWW
WXd..W
W.d..W
W.d..W
W.d.PW
WWWWWW
[/map]

[yam]
; Specifies the objects that appear when a YAM explodes
; May be absent if the engine or the level doesn't contain yams
; uses the same object codes as the map-section
;empty lines should be skipped but may be present for readability
; may be in one line, i.e. $3RR$3$3Yl$3$3RR$3 etc.
; for example

$3RR$3
$3Yl$3
$3RR$3

$1$1$1
$1Bo$1
$1$1$1

$3RR$3
$3Yl$3
$3RR$3

RoRoRo
RoRoRo
RoRoRo

[/yam]

[magicball]
; Specifies the objects that appear when a MAGICBALL is active.
; in the EMV5/EMV6 engine this in only 1 object
; in the engine of David Tritscher, there is room for 8 objects (a 3x3 grid with the ball in the middle
; for example
$1$1$1
$1  $1
$1$1$1
[magicball]

[/cave]
[/game]

[/BDCFF]