package mapmaker; import util.*; import mapmaker.mapcmd.*; public class DescRoom extends CRoom implements DescObj { DescObj descObj = new CDescObj(); public DescRoom(AreaMap map) { super(map); } // DescRoom public Text getDesc() { return descObj.getDesc(); } // getDesc public void setDesc(Text desc) { descObj.setDesc(desc); } // setDesc /** executes RCmdSetRoomDesc in addition to those handled by CRoom */ public void execute(RoomCommand cmd) { if (cmd instanceof RCmdSetRoomDesc) { setDesc(((RCmdSetRoomDesc)cmd).desc); return; } super.execute(cmd); } // execute /** copies room description if orgRoom is instance of DescObj */ public void deepCopyFrom(Room orgRoom) { super.deepCopyFrom(orgRoom); if (orgRoom instanceof DescObj) setDesc(((DescObj)orgRoom).getDesc()); else setDesc(new Text()); } // deepCopyFrom public Room cloneRoom(AreaMap map) { Room room = new DescRoom(map); room.deepCopyFrom(this); return room; } // cloneRoom } // DescRoom