i like to design my agents so that they are black boxes.
in other words, your game should not be able to mess up you agents, other than initialization and delete.
i do this like:
for all_objects
object.act();
so the ai is ran from inside your class, and the player getinput is inside the class.
so player is derived from monster, where player.act overides monser.act, that normally does ai.
entity agent -default agent is monsters player -overrides ai routines with getinputs staticStuff dynamicStuff
you are apparently using static polymorphism, where you have a different class for each thing type. instead, think about having a general class that can be loaded with properties.
for instance, zombie would have hp = 50, while mummy would have hp = 80...there is no need for a mummy class.
also, think about ai scripts vs hard-coded ai. this way, you can load a mummy script or a zombie script.
Edited by - evilcrap on February 20, 2002 3:34:06 PM