While a lot of bugs in dm.exe's -o param have been fixed, there is still an issue with lists:
<var file="code\modules\virus2\antibodies.dm:18">ANTIGENS
<val file="code\modules\virus2\antibodies.dm:18">
<list>list
<val file="code\modules\virus2\antibodies.dm:19">"A"</val>
</item>
<val file="code\modules\virus2\antibodies.dm:20">"B"</val>
</item>
<val file="code\modules\virus2\antibodies.dm:21">"RH"</val>
</item>
<val file="code\modules\virus2\antibodies.dm:22">"Q"</val>
</item>
<val file="code\modules\virus2\antibodies.dm:23">"U"</val>
</item>
<val file="code\modules\virus2\antibodies.dm:24">"V"</val>
</item>
<val file="code\modules\virus2\antibodies.dm:25">"Z"</val>
</item>
<val file="code\modules\virus2\antibodies.dm:26">"M"</val>
</item>
<val file="code\modules\virus2\antibodies.dm:27">"N"</val>
</item>
<val file="code\modules\virus2\antibodies.dm:28">"P"</val>
</item>
<val file="code\modules\virus2\antibodies.dm:29">"O"</val>
</item>
</list>
</val>
</var>
As you can see, the opening tag for is missing, as well as there being missing data.
The code in question that's causing issues is this:
var/global/const/ANTIGEN_A = 1
var/global/const/ANTIGEN_B = 2
var/global/const/ANTIGEN_RH = 4
var/global/const/ANTIGEN_Q = 8
var/global/const/ANTIGEN_U = 16
var/global/const/ANTIGEN_V = 32
var/global/const/ANTIGEN_X = 64
var/global/const/ANTIGEN_Y = 128
var/global/const/ANTIGEN_Z = 256
var/global/const/ANTIGEN_M = 512
var/global/const/ANTIGEN_N = 1024
var/global/const/ANTIGEN_P = 2048
var/global/const/ANTIGEN_O = 4096
var/global/list/ANTIGENS = list(
"[ANTIGEN_A]" = "A",
"[ANTIGEN_B]" = "B",
"[ANTIGEN_RH]" = "RH",
"[ANTIGEN_Q]" = "Q",
"[ANTIGEN_U]" = "U",
"[ANTIGEN_V]" = "V",
"[ANTIGEN_Z]" = "Z",
"[ANTIGEN_M]" = "M",
"[ANTIGEN_N]" = "N",
"[ANTIGEN_P]" = "P",
"[ANTIGEN_O]" = "O"
)
I realise that the above code shouldn't even be compiling in the first place (since the params are non constant)