lib/IFMapper/Room.rb in ifmapper-0.8.1 vs lib/IFMapper/Room.rb in ifmapper-0.8.5

- old
+ new

@@ -1,16 +1,17 @@ # # Class used to represent a Room or Location in a Map. # class Room - attr_accessor :name - attr_accessor :objects - attr_accessor :tasks - attr_reader :exits - attr_accessor :darkness - attr_accessor :x, :y + attr_accessor :name # Name of room + attr_accessor :objects # Objects found in room + attr_accessor :tasks # Tasks that need to be performed in room + attr_reader :exits # An array of 8 possible exits in room + attr_accessor :darkness # Is room in darkness? + attr_accessor :x, :y # Room location in grid + attr_accessor :desc # Room description DIRECTIONS = [ 'n', 'ne', 'e', @@ -30,10 +31,25 @@ 5 => [ -1, 1 ], 6 => [ -1, 0 ], 7 => [ -1, -1 ] } + def marshal_load(vars) + @name = vars.shift + @objects = vars.shift + @tasks = vars.shift + @exits = vars.shift + @darkness = vars.shift + @x = vars.shift + @y = vars.shift + @desc = vars.shift if not vars.empty? and vars[0].kind_of?(String) + end + + def marshal_dump + [ @name, @objects, @tasks, @exits, @darkness, @x, @y, @desc ] + end + def [](dir) return @exits[dir] end def []=(dir, connection) @@ -99,9 +115,10 @@ def copy(b) @name = b.name @objects = b.objects @tasks = b.tasks @darkness = b.darkness + @desc = b.desc end def initialize(x, y, name = 'Room') @exits = Array.new( DIRECTIONS.size )