updated weapon C++ code, trying the *this pointer out