Your version:
IF brd(mloc) = bkg THEN
IF mloc > 7 THEN
dest = brd(mloc - 7)
IF dest = 0 AND jp = 0 THEN
nomo = nomo + 1
listm(moveptr + nomo) = mloc
listd(moveptr + nomo) = -7
ELSEIF (dest AND wman) > 0 AND mloc > 16 THEN
IF brd(mloc - 14) = 0 THEN
IF jp = 0 THEN
jp = 1
nomo = 0
ENDIF
nomo = nomo + 1
listm(moveptr + nomo) = mloc
listd(moveptr + nomo) = -14
ENDIF
ENDIF
ENDIF
ENDIF
Revised version:
IF brd(mloc) = bkg
IF mloc > 7
dest = brd(mloc - 7)
IF dest = 0 AND jp = 0
nomo = nomo + 1
listm(moveptr + nomo) = mloc
listd(moveptr + nomo) = -7
ELSE
IF (dest AND wman) > 0 AND mloc > 16
IF brd(mloc - 14) = 0
IF jp = 0
jp = 1
nomo = 0
ENDIF
nomo = nomo + 1
listm(moveptr + nomo) = mloc
listd(moveptr + nomo) = -14
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
No such thing as elseif in Db so lots are nested if's are the order of the day I'm afraid. There are two forms of IF (one without THEN and one with THEN)
IF condition
stuff1
stuff2
stuff3
ENDIF
IF condition THEN stuff1 : stuff2 : stuff3
This 2nd example means if condition is true THEN run all commands until end of line.
If your mansion house needs haunting, just call Rentaghost!