Uh huh. I noticed something else too (well, I guess it's the same thing): When passing an Upgrade to a function, it has to be a pointer to one.
Code:void addUpgrade(Upgrade upg) //:( It doesn't work. 2 bad, I didn't wanna mess with pointer-vectors... { upgrades.push_back(upg); }