BDCFF extension for Emerald Mines

(and various Emerald Mines / Boulder Dash clones)
Proposal V0.15
February 24 2008
This is an old version restored from an even older backup, so it's probably not as complete as it once was. Preserved for historical purposes.

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

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.
; game and default cave properties
; -> check here all available properties

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

; 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,
; ...etc. If Length = 2 then ..=DIRT, Ws=STEELWALL, etc.


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

Size=6 5
; 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
; 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
; Here goes a firefly in level 5 only.
Point=4 4 FIREFLYl

; next cave, etc.
; a map of a cave, is absent if cave is object-coded.
; For example,

; 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






; 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