Hi Ty -- Did I read once that your base is implemented in C++? Let me clarify what you are saying you want to do: 1. class A in your scripting language needs to interface with class World in your base, and use its methods, and also to add methods of its own, and to do this dynamically. Right? 2. These new methods need to access class World in some way. Do they need to go so far as to touch private or protected data? Since you want dynamic insertion/removal of methods in class A, these methods will need to be able to work with World without being members of World. 3. As an aside, you could of course dynamically create a new inherited class C for each method m(), which is derived from World and therefore can use World's protected and public data. m() can be a virtual or nonvirtual method. But this all has to be done in the interface to your scripting language. This is an interesting problem, as it almost requires that the scripting language have the same inheritance structure as C++ to make the implementation fall out cleanly. But who ever heard of a clean implementation in the "real world"...*smile* Now, if your implementation goes so far as to create derived classes with their own virtual table for each function added to A, you will need some dynamic linking to pull it off. I'll have to think on this one for a while. Hey Ty, great job picking an interesting project. That should go really well on a resumé. Happy hacking. --le ----- Original Message ----- From: "Tyler Littlefield" <tyler@xxxxxxxxxxxxx> To: <programmingblind@xxxxxxxxxxxxx> Sent: Sunday, March 07, 2010 6:12 PM Subject: embedding scripting into a program:a few questions Hello all, As some of you may know, I'm working on a custom mud base that I will be releasing to the public and probably using for my own mud in the near future. I've got most of the stuff I want handled, except scripting; I was told to use Angelscript and was taking a look at it, but it seems to not be to well documented, so maybe someone has another idea. What I want, is to be able to make the world class (which stores a list of players, rooms, mobs, etc) accessible to the scripting language I use. Secondly, I want to expose events so that the language can attach it's own functions to them. Third and possibly more dificult, I want to expose my component system, which I will explain. Rather than using a is-a setup (through inheritance), I decided to go with a has-a setup. This provides some really cool ideas for design, such as being able to let clothing use containers if you decide that your shorts need pockets, without either moving container functionality up the inheritance, or using a multiple-inheritance setup, which can become messy. So, the components get loaded with the object from a list. I can easily use an AddComponent function to add the component to the list, but I'd like to allow builders and coders that I don't want using shell or that have an idea for a component to be able to build one in the language of choice, then register it with the dictionary that is used for holding components and allowing other objects to use this setup. So, in short I need a sort of transparent way to communicate back and forth, and not for the scripting language of choice to just control the driver, etc. Thanks, Tyler Littlefield http://tds-solutions.net Twitter: sorressean __________ View the list's information and change your settings at //www.freelists.org/list/programmingblind __________ View the list's information and change your settings at //www.freelists.org/list/programmingblind