public List<ObjectList> getObjectsDt2(int levelNo)
{
LevelRec lr = ConfigScript.getLevelRec(levelNo);
int objCount = lr.objCount, addr = lr.objectsBeginAddr;
var objects = new List<ObjectRec>();
int objectsReaded = 0;
int currentHeight = 0;
while (objectsReaded < objCount)
{
byte command = Globals.romdata[addr];
if (command == 0xFF)
{
currentHeight = Globals.romdata[addr + 1];
if (currentHeight == 0xFF)
break;
addr += 2;
}
else
{
byte v = Globals.romdata[addr + 2];
byte xbyte = Globals.romdata[addr + 0];
byte ybyte = Globals.romdata[addr + 1];
byte sx = (byte)(xbyte >> 5);
byte x = (byte)((xbyte & 0x1F) << 3);
byte sy = (byte)currentHeight;
byte y = ybyte;
var obj = new ObjectRec(v, sx, sy, x, y);
objects.Add(obj);
objectsReaded++;
addr += 3;
}
}
return new List<ObjectList> { new ObjectList { objects = objects, name = "Objects" } };
}