public itm(Reader reader) { Title = reader.ReadRSDKString(); Music = reader.ReadByte(); Background = reader.ReadByte(); PlayerXpos = (ushort)(reader.ReadByte() << 8); PlayerXpos |= reader.ReadByte(); PlayerYPos = (ushort)(reader.ReadByte() << 8); PlayerYPos |= reader.ReadByte(); // Read objects from the item file int ObjCount = reader.ReadByte() << 8; ObjCount |= reader.ReadByte(); for (int i = 0; i < ObjCount; i++) { // Object type, 1 byte, unsigned int obj_type = reader.ReadByte(); // Object subtype, 1 byte, unsigned int obj_subtype = reader.ReadByte(); // X Position, 2 bytes, big-endian, signed int obj_xPos = reader.ReadSByte() << 8; obj_xPos |= reader.ReadByte(); // Y Position, 2 bytes, big-endian, signed int obj_yPos = reader.ReadSByte() << 8; obj_yPos |= reader.ReadByte(); // Add object objects.Add(new Object(obj_type, obj_subtype, obj_xPos, obj_yPos)); } reader.Close(); }
internal void ReadObjectsNames(Reader reader) { byte objects_count = reader.ReadByte(); for (int i = 0; i < objects_count; ++i) { ScriptPaths.Add(reader.ReadRSDKString()); } }
internal void ReadObjectsSpriteSheets(Reader reader) { byte objectSheets_count = reader.ReadByte(); for (int i = 0; i < objectSheets_count; ++i) { ObjectsSheets.Add(reader.ReadRSDKString()); } }
internal void ReadObjectsNames(Reader reader) { byte srctxt_count = reader.ReadByte(); for (int i = 0; i < srctxt_count; ++i) { ScriptPaths.Add(reader.ReadRSDKString()); /*Console.WriteLine(ScriptPaths[i]);*/ } }
internal void ReadObjectsNames(Reader reader) { byte objects_count = reader.ReadByte(); Unknown = new byte[objects_count]; for (int i = 0; i < objects_count; ++i) { ObjectsNames.Add(reader.ReadRSDKString()); } for (int i = 0; i < objects_count; i++) { Unknown[i] = reader.ReadByte(); } }
public Scene(Reader reader) { Title = reader.ReadRSDKString(); //Console.WriteLine("Stage Name: " + Title); byte[] buffer = new byte[5]; ActiveLayer0 = reader.ReadByte(); ActiveLayer1 = reader.ReadByte(); ActiveLayer2 = reader.ReadByte(); ActiveLayer3 = reader.ReadByte(); Midpoint = reader.ReadByte(); reader.Read(buffer, 0, 2); //Read Width width = 0; height = 0; // Map width in 128 pixel units // In RSDKv1, it's one byte long width = buffer[0]; height = buffer[1]; MapLayout = new ushort[height][]; for (int i = 0; i < height; i++) { MapLayout[i] = new ushort[width]; } for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { // 128x128 Block number is 16-bit // Big-Endian in RSDKv1 and RSDKv2 reader.Read(buffer, 0, 2); //Read size MapLayout[y][x] = (ushort)(buffer[1] + (buffer[0] << 8)); } } // Read number of object types, Only RSDKv1 and RSDKv2 support this feature int ObjTypeCount = reader.ReadByte(); for (int n = 0; n < ObjTypeCount; n++) { string name = reader.ReadRSDKString(); objectTypeNames.Add(name); //Console.WriteLine(name); } // Read object data int ObjCount = 0; // 2 bytes, big-endian, unsigned ObjCount = reader.ReadByte() << 8; ObjCount |= reader.ReadByte(); Object.cur_id = 0; for (int n = 0; n < ObjCount; n++) { // Add object objects.Add(new Object(reader)); } reader.Close(); }
public Level(Reader reader) { // Separate path components String dirname = Path.GetDirectoryName(reader.GetFilename()); String basename = "\\" + Path.GetFileNameWithoutExtension(reader.GetFilename()); String itmPath = dirname + basename + ".itm"; Reader ITMreader = new Reader(itmPath); Title = ITMreader.ReadRSDKString(); width = reader.ReadByte(); height = reader.ReadByte(); MapLayout = new ushort[height][]; for (int i = 0; i < height; i++) { MapLayout[i] = new ushort[width]; } // Read map data from the map file for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { MapLayout[y][x] = reader.ReadByte(); } } Music = ITMreader.ReadByte(); Background = ITMreader.ReadByte(); PlayerXpos = (ushort)(ITMreader.ReadByte() << 8); PlayerXpos |= ITMreader.ReadByte(); PlayerYPos = (ushort)(ITMreader.ReadByte() << 8); PlayerYPos |= ITMreader.ReadByte(); // Read objects from the item file int ObjCount = ITMreader.ReadByte() << 8; ObjCount |= ITMreader.ReadByte(); for (int i = 0; i < ObjCount; i++) { // Object type, 1 byte, unsigned int obj_type = ITMreader.ReadByte(); // Object subtype, 1 byte, unsigned int obj_subtype = ITMreader.ReadByte(); // X Position, 2 bytes, big-endian, signed int obj_xPos = ITMreader.ReadSByte() << 8; obj_xPos |= ITMreader.ReadByte(); // Y Position, 2 bytes, big-endian, signed int obj_yPos = ITMreader.ReadSByte() << 8; obj_yPos |= ITMreader.ReadByte(); // Add object objects.Add(new Object(obj_type, obj_subtype, obj_xPos, obj_yPos)); } reader.Close(); }
public PlayerData(Reader reader) { PlayerAnimLocation = reader.ReadRSDKString(); PlayerScriptLocation = reader.ReadRSDKString(); PlayerName = reader.ReadRSDKString(); }
internal WAVConfiguration(Reader reader) { Name = reader.ReadRSDKString(); }