After an exhaustive discussion about pointers and whatnot in the For Beginners forum, I discovered what was eating up so much memory when Angels 20 was run.
Turns out, I didn't know half as much as I thought about pointers. The big thing with A20 that was sucking up memory was the fact that I was not deleting old pointers before making new ones. By fixing that, I cut the memory requirements in half from 230MB to about 130MB. After I got done with that, I went through my older code and realized that I was creating the maximum number of flak objects for a map, but only using a small percentage of them. That fix cut it down to about 100MB. Then I realized I was doing that all over the place, so I got to work deleting pointers and whatnot. In the end I came out to about 40MB with the full level loaded with textures and sound effects.
I am so happy about this, it really renewed my weaning interest in finishing A20. Before now I was always thinking in the back of my head: "It doesn't matter if I finish this game or not, no one will be able to play it but you on your uber-machine". Tomorrow, I plan on fixing up my level editor so that its a bit more user friendly, and Mark and I can start efficiently pumping out the levels for our single player campaign.
I didn't do anything on my 4E4 project today, because I spent so much time improving A20. The only really big things I need to pu in my 4E4 engine are the monster generators and the enemies with smart AI. I think I will have each monster generator object contain an array of Enemy objects that it can spawn and then just run all the Enemy updates through a function in the generator class.
Well, its pretty damn late here, so I'm gonna go to bed.
Don't Forget To Try the New Angels 20 Version