I'm curious as to why Valve decided to change these interfaces and use IGameEvent rather than KeyValues.
One guess that I have, is that KeyValues has more methods than is really needed for game events. KeyValues has extra things for getting and setting pointer and color data types. Events only use Bool, Int, Float, and String data types so those extra methods are not needed for events. And I would guess that is why IGameEvent is used instead now. However, by using IGameEvent, a little power is lost as a result. With KeyValues I was able to determine the data type of a particular param/argument and also iterate through the list of params/arguments for an event that had occurred. This kind of thing was very useful for creating a logging system to print data about every event that occurs without having to explicitly get the value of a key. I did not have to actually know the names of all the event params in order to do this. I have noticed that I am currently still able to use the older IGameEventListener to do what I want, however the comments in igamevents.h state it should not be used and is for legacy support. Is there a particular reason that I should not use the older one? And is there any chance for IGameEvent to be expanded to allow for iteration of the event's params/arguments because I would like to use the newer interface, but it doesn't provide everything I need at the moment. _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders