On the way home from a SAN283 (Data Communications and Client/Server Applications) I was thinking about a new system unrelated to sockets but of reworking the way the DB routines worked. The professor had to give a lecture on UNIX and C because there were ENT (Engineering Technologies) students there that had not taken a programming course and in that lecture he talked about functions which re-sparked my idea a few weeks ago to make the loading and parsing of the world files a little more neat. Basically I had it tiered such as this (using mobiles as an example): Boot db load_all(L_MOBILE) parse_index() parse_mobiles() read_file() load_all(L_OBJECTS) ... load_all(L_ROOMS) ... done load_all(mobiles) figures out the correct index file and passes it's FILE * to parse_index(). parse_index() then reads every line in the index and calls read_file(FILE *). read_file() then takes that whole mob file. It passes it to parse_mobiles() which then parses the information and returns the number of characters used placing the mob structure in the address given as an argument. Those all loop until finished placing the informationinto the mob_proto structure that was allocated through a count of the mobiles total as usual. The beauty of this would be that instead of prototyping a mobile and then loading it to modify, you could create the string to be parsed on the fly and then load it. Like: struct mob_data * x= parse_mobiles("puff~\npuff~\na dragon~\n1 23\netc\n"); if (x) char_to_room(x, r_mortal_start_room); And of course, sprintf()'s could tailor the mob and allow the parse_mobile code to transfer it to the correct structure. The existing code already has a structure something like this but must originate from a file. Won't break anything...but would be useful for making zombies, unique mobs, and other things on the fly that don't need to be prototyped. (a la animate dead, summon, etc.) I'll start work on a patch that will do this but was interested in what people think of the new possibilities. (Or we could even get funny and not load the mobs from disk until they are actually accessed with it, or perhaps don't load a zone until someone goes there, or load rooms unless someone enters it, etc, with minor changes.) -- greerga@muohio.edu me@null.net | Genius may have its limitations, but stupidity http://www.muohio.edu/~greerga | is not thus handicapped. -- Elbert Hubbard +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST