I just thought I'd mention, if you're trying to move your particle system to C++ while still keeping your other code in BlitzMax, I doubt you'll get much of a performance boost. Remember that simply calling a DLL function has a slight overhead, so it's not helpful unless the calculations are really intense. Not to mention that what you're doing looks really tedious.
BTW, C++ isn't as "easy" as BlitzMax in several ways. One of them you might not know about is that std::list isn't the fastest way to store a list of objects - there are other methods. I think I've noticed that adding and removing thousands of objects per second to BlitzMax's lists are actually slightly faster than doing so with std::list (due to one of the advantages of garbage collection). So if you want really fast allocation / deallocation of particles, try looking into other storage methods like std::vector or std::queue. Or if you want maximum speed, you could use a straight array of cParticle objects and manage them manually.
BTW, C++ isn't as "easy" as BlitzMax in several ways. One of them you might not know about is that std::list isn't the fastest way to store a list of objects - there are other methods. I think I've noticed that adding and removing thousands of objects per second to BlitzMax's lists are actually slightly faster than doing so with std::list (due to one of the advantages of garbage collection). So if you want really fast allocation / deallocation of particles, try looking into other storage methods like std::vector or std::queue. Or if you want maximum speed, you could use a straight array of cParticle objects and manage them manually.