private void LoadScreen(ItemSeeker seeker, int mapY) { var data = new ItemScreenData(); data.MapX = seeker.MapX; data.MapY = mapY; var item = LoadItem(seeker); if (item != null) { data.Items.Add(item); } while (seeker.MoreItemsPresent) { seeker.NextItem(); item = LoadItem(seeker); if (item != null) { data.Items.Add(item); } } Add(data); }
private void DisassmScreen(ItemSeeker seeker) { result.AppendLine(); result.AppendLine(); // Byte, map X result.AppendLine(FormatLine( byteCode + " " + FormatByte(seeker.MapX), "Map X = " + seeker.MapX.ToString())); if (seeker.ScreenEntrySizeByte == 0xFF) { // Byte indicates last screen WriteLine(ByteDirective(0xFF), "Last screen in row"); } else { // Byte, screen data size result.AppendLine(FormatLine( byteCode + " " + FormatByte(seeker.ScreenEntrySizeByte), seeker.ScreenEntrySize + " bytes of data for this screen")); } DisassmItem(seeker); while (seeker.MoreItemsPresent) { seeker.NextItem(); DisassmItem(seeker); } WriteLine(ByteDirective(0), "End of screen data"); }
public int GetRemainingItemsCount() { ItemSeeker i = this; int count = 1; while (i.MoreItemsPresent) { count++; i.NextItem(); if (count >= 16) { return(count); } } return(count); }