ID:105817
 
Applies to:DM Language
Status: Open

Issue hasn't been assigned a status value.
DM's binary OR width is currently 16 bits which only allows proper ORing of values from 0 to 65535. Please increase the upper bound to 232-1.

This works in the meantime.
proc{
_32bit_or(a,b){
var{
a1=round(a/(2**16));
a2=a%(2**16);
b1=round(b/(2**16));
b2=b%(2**16);
}
.=((a1|b1) * (2**16)) + (a2|b2);
}
}
Looks like all binary operations are done with 16-bit integers. Luckily a 32-bit binary operation can easily be split into two 16-bit operations.
Increasing to 32-bit precision is impossible because the internal number format is floating point, which only allows for 24 bits of precision. I'm not averse to increasing precision to 24-bit though it could impact existing games.