ID:151689
 
In my MUD project I am currently saving all of my rooms to one big text file. This is bad for a number of reasons, but I am having trouble figuring out a way to fix it. Currently a saved room structure looks something like this:
1007 = object(".0")
                .0
                        type = /room
                        name = "Stairwell in the Academy"
                        desc = "Study continues upstairs."
                        sector = 0
                        luminosity = 1
                        flags = 2
                        east = 1004
                        east_door = object(".0")
                                .0
                                        type = /door/wood
                                        key_id = "newbie key"
                                        flags = 5
                        contents = list(object(".0"))
                                .0
                                        type = /action/exit
                                        udesc = ""
                                        odesc = "has arrived from downstairs."
                                        long_desc = "Some stairs"
                                        name = "up"
                                        desc = "ascends the stairs."
                                        dest = 1008

This is about as complex as the rooms get, since it has both doors and room actions. I figured it would probably be best to convert this to an XML system. But I am having problems with two areas:

1) How to organize the code to save rooms into files by area and read areas. I am guessing it would be best to do this starting with some kind of list file that lists all the areas to be read.

2) How to write/read room contents in XML format. Deadron's XML lib is easy enough to say up to read/write simple vars like name, desc, etc. but something like a contents save eludes me. I am guessing I would need to set up an XML routine for the objs and just call it per obj?
Use my XML library instead. It doesn't have dependability on other libraries, has automatic functions for retrieving values of various datatypes, and, according to tests run by (I believe) Kuraudo, is faster than Deadron's as well. The documentation should be able to help you, but if not, ask any questions about it here.