Wow, I can't believe it's been 9 months... But I finally got this worked out (for the most part), although there's something I'm struggling with.
The way I have it setup currently, we'll load the aa_effects from the database into an array when the zone boots up. However, it's a fairly static array (1628 AA IDs * 7 slots per), which uses more memory that it really needs to (182,336 bytes per zone per my calculations). I don't think it's really necessary to load into Shared Memory (although it wouldn't hurt), but I think we'd be better off using a
map instead.
The biggest hurdle is trying to figure out how to nest 1 map inside another (I think VS2008 is trying to make it a tree). I want to be able to access it via
aa_effects[aaid][slot] and have it return an
AA_Ability struct (or maybe even a new struct that doesn't have the slot).
Could someone with a little more C++ knowledge help point me in the right direction?