Rave glove fixes: removed double-stored glove mode members

Uncommented glove mode switch, which now calls a non-crashing method.
Fixed overlapping method names for very different methods (setRaveGloveMode becomes activateNewRaveGloveMode).
This commit is contained in:
Eric Johnston 2013-08-06 07:33:18 -07:00
parent b97ceed071
commit 16aae5993a
4 changed files with 20 additions and 14 deletions

View file

@ -55,7 +55,7 @@ void Hand::simulate(float deltaTime, bool isMine) {
if (_isRaveGloveActive) { if (_isRaveGloveActive) {
if (_raveGloveEffectsModeChanged) { if (_raveGloveEffectsModeChanged) {
setRaveGloveMode(_raveGloveEffectsMode); activateNewRaveGloveMode();
_raveGloveEffectsModeChanged = false; _raveGloveEffectsModeChanged = false;
} }
@ -352,6 +352,7 @@ void Hand::updateRaveGloveParticles(float deltaTime) {
} }
setRaveGloveMode(RAVE_GLOVE_EFFECTS_MODE_FIRE); setRaveGloveMode(RAVE_GLOVE_EFFECTS_MODE_FIRE);
activateNewRaveGloveMode();
_raveGloveParticleSystem.setUpDirection(glm::vec3(0.0f, 1.0f, 0.0f)); _raveGloveParticleSystem.setUpDirection(glm::vec3(0.0f, 1.0f, 0.0f));
_raveGloveInitialized = true; _raveGloveInitialized = true;
} else { } else {
@ -359,11 +360,10 @@ void Hand::updateRaveGloveParticles(float deltaTime) {
} }
} }
// The rave glove mode has changed, so activate the effects.
void Hand::activateNewRaveGloveMode() {
void Hand::setRaveGloveMode(int mode) { int mode = _raveGloveEffectsMode;
_raveGloveMode = mode;
_raveGloveParticleSystem.killAllParticles(); _raveGloveParticleSystem.killAllParticles();
for ( int f = 0; f< NUM_FINGERS; f ++ ) { for ( int f = 0; f< NUM_FINGERS; f ++ ) {

View file

@ -60,8 +60,6 @@ private:
float _raveGloveClock; float _raveGloveClock;
bool _raveGloveInitialized; bool _raveGloveInitialized;
int _raveGloveEmitter[NUM_FINGERS]; int _raveGloveEmitter[NUM_FINGERS];
int _raveGloveEffectsMode;
bool _raveGloveEffectsModeChanged;
Avatar* _owningAvatar; Avatar* _owningAvatar;
float _renderAlpha; float _renderAlpha;
@ -74,7 +72,7 @@ private:
void setLeapHands(const std::vector<glm::vec3>& handPositions, void setLeapHands(const std::vector<glm::vec3>& handPositions,
const std::vector<glm::vec3>& handNormals); const std::vector<glm::vec3>& handNormals);
virtual void setRaveGloveMode(int mode); void activateNewRaveGloveMode();
void renderRaveGloveStage(); void renderRaveGloveStage();
void renderLeapHandSpheres(); void renderLeapHandSpheres();

View file

@ -20,7 +20,8 @@ HandData::HandData(AvatarData* owningAvatar) :
_baseOrientation(0.0f, 0.0f, 0.0f, 1.0f), _baseOrientation(0.0f, 0.0f, 0.0f, 1.0f),
_owningAvatarData(owningAvatar), _owningAvatarData(owningAvatar),
_isRaveGloveActive(false), _isRaveGloveActive(false),
_raveGloveMode(RAVE_GLOVE_EFFECTS_MODE_THROBBING_COLOR) _raveGloveEffectsMode(RAVE_GLOVE_EFFECTS_MODE_THROBBING_COLOR),
_raveGloveEffectsModeChanged(false)
{ {
// Start with two palms // Start with two palms
addNewPalm(); addNewPalm();
@ -160,8 +161,7 @@ int HandData::decodeRemoteData(unsigned char* sourceBuffer) {
} }
setRaveGloveActive((gloveFlags & GLOVE_FLAG_RAVE) != 0); setRaveGloveActive((gloveFlags & GLOVE_FLAG_RAVE) != 0);
// This is disabled for crash tracing. setRaveGloveMode(effectsMode);
// setRaveGloveMode(effectsMode);
// One byte for error checking safety. // One byte for error checking safety.
unsigned char requiredLength = (unsigned char)(sourceBuffer - startPosition); unsigned char requiredLength = (unsigned char)(sourceBuffer - startPosition);
@ -171,6 +171,13 @@ int HandData::decodeRemoteData(unsigned char* sourceBuffer) {
return sourceBuffer - startPosition; return sourceBuffer - startPosition;
} }
void HandData::setRaveGloveMode(int effectsMode)
{
if (effectsMode != _raveGloveEffectsMode)
_raveGloveEffectsModeChanged = true;
_raveGloveEffectsMode = effectsMode;
}
void HandData::setFingerTrailLength(unsigned int length) { void HandData::setFingerTrailLength(unsigned int length) {
for (size_t i = 0; i < getNumPalms(); ++i) { for (size_t i = 0; i < getNumPalms(); ++i) {
PalmData& palm = getPalms()[i]; PalmData& palm = getPalms()[i];

View file

@ -70,9 +70,9 @@ public:
int decodeRemoteData(unsigned char* sourceBuffer); int decodeRemoteData(unsigned char* sourceBuffer);
void setRaveGloveActive(bool active) { _isRaveGloveActive = active; } void setRaveGloveActive(bool active) { _isRaveGloveActive = active; }
virtual void setRaveGloveMode(int effectsMode) { _raveGloveMode = effectsMode; } void setRaveGloveMode(int effectsMode);
bool isRaveGloveActive() const { return _isRaveGloveActive; } bool isRaveGloveActive() const { return _isRaveGloveActive; }
int getRaveGloveMode() { return _raveGloveMode; } int getRaveGloveMode() { return _raveGloveEffectsMode; }
friend class AvatarData; friend class AvatarData;
protected: protected:
@ -81,7 +81,8 @@ protected:
AvatarData* _owningAvatarData; AvatarData* _owningAvatarData;
std::vector<PalmData> _palms; std::vector<PalmData> _palms;
bool _isRaveGloveActive; bool _isRaveGloveActive;
int _raveGloveMode; int _raveGloveEffectsMode;
bool _raveGloveEffectsModeChanged;
private: private:
// privatize copy ctor and assignment operator so copies of this object cannot be made // privatize copy ctor and assignment operator so copies of this object cannot be made
HandData(const HandData&); HandData(const HandData&);