error C2065: 'mEventProcessor' : undeclared identifier

themindfield$

16-02-2008 11:58:08

Hi. When I try to compile the code from (http://www.ogre3d.org/phpBB2addons/view ... light=walk) I get errors.

.\OgreNewtonFrameListener.cpp(16) : error C2065: 'mEventProcessor' : undeclared identifier
.\OgreNewtonFrameListener.cpp(16) : error C2227: left of '->addKeyListener' must point to class/struct/union/generic type
type is ''unknown-type''
.\OgreNewtonFrameListener.cpp(80) : error C2065: 'mInputDevice' : undeclared identifier
.\OgreNewtonFrameListener.cpp(80) : error C2227: left of '->capture' must point to class/struct/union/generic type


Code:

OgreNewtonFrameListener.cpp

#include ".\ogrenewtonframelistener.h"



OgreNewtonFrameListener::OgreNewtonFrameListener(RenderWindow* win, Camera* cam, SceneManager* mgr, OgreNewt::World* W, SceneNode* ncam, OgreNewt::Body* entity_body, SceneNode* nent, Entity* mEntity_buffer, AnimationState *mAnimationState_buffer) :
ExampleFrameListener(win,cam, true, true)
{
m_World = W;
msnCam = ncam;
mSceneMgr = mgr;
ent_body = entity_body;
msnEnt = nent;
mEntity = mEntity_buffer;
mAnimationState = mAnimationState_buffer;

mEventProcessor->addKeyListener( this );

}

OgreNewtonFrameListener::~OgreNewtonFrameListener(void)
{
}

void OgreNewtonFrameListener::keyReleased(KeyEvent *e)
{
Vector3 trans, strafe, vec;
Quaternion quat;

quat = msnEnt->getOrientation();

vec = Vector3(0.0,0.0,-0.5);
trans = quat * vec;

vec = Vector3(0.5,0.0,0.0);
strafe = quat * vec;

ent_body->setVelocity( (trans * 0) );

ent_body->setVelocity( (strafe * 0) );

if( mAnimationState->getAnimationName() == "Walk" )
{
mAnimationState->setTimePosition( 0.0f );
mAnimationState->setEnabled( false );
}

mAnimationState = mEntity->getAnimationState( "Idle1" );

mAnimationState->setLoop( true );

mAnimationState->setEnabled( true );

}

void OgreNewtonFrameListener::keyPressed(KeyEvent *e)
{
}

void OgreNewtonFrameListener::keyClicked(KeyEvent *e)
{
}


bool OgreNewtonFrameListener::frameStarted(const FrameEvent &evt)
{

mAnimationState->addTime( evt.timeSinceLastFrame );

Vector3 trans, strafe, vec;
Quaternion quat;

quat = msnEnt->getOrientation();

vec = Vector3(0.0,0.0,-0.5);
trans = quat * vec;

vec = Vector3(0.5,0.0,0.0);
strafe = quat * vec;

mInputDevice->capture();

msnCam->pitch( Degree(mInputDevice->getMouseRelativeY() * -0.5) );
msnCam->yaw( Degree(mInputDevice->getMouseRelativeX() * -0.5), SceneNode::TS_WORLD );

ent_body->unFreeze();

Ogre::Vector3 cur_vel = ent_body->getVelocity();

//Ogre::Vector3 cur_pos = ent_body->getPositionOrientation();


if (mInputDevice->isKeyDown(Ogre::KC_UP) || mInputDevice->isKeyDown(Ogre::KC_W))
{
// in your movement code
Ogre::Vector3 vel = trans * 1 * 10.0;
vel.y = cur_vel.y;

ent_body->setVelocity( vel );

// Set walking animation
if( mAnimationState->getAnimationName() == "Idle1" )
{
mAnimationState->setTimePosition( 0.0f );
mAnimationState->setEnabled( false );
}
mAnimationState = mEntity->getAnimationState( "Walk" );
mAnimationState->setLoop( true );
mAnimationState->setEnabled( true );
}

if (mInputDevice->isKeyDown(Ogre::KC_DOWN) || mInputDevice->isKeyDown(Ogre::KC_S))
{
//ent_body->setVelocity( (trans * -1 * 10.0) );
//ent_body->setPositionOrientation();

//ent_body->getOgreNode()->yaw( Ogre::Degree 90 );

// in your movement code
Ogre::Vector3 vel = trans * -1 * 10.0;
vel.y = cur_vel.y;

ent_body->setVelocity( vel );

// Set walking animation
if( mAnimationState->getAnimationName() == "Idle1" )
{
mAnimationState->setTimePosition( 0.0f );
mAnimationState->setEnabled( false );
}
mAnimationState = mEntity->getAnimationState( "Walk" );
mAnimationState->setLoop( true );
mAnimationState->setEnabled( true );
}

if (mInputDevice->isKeyDown(Ogre::KC_LEFT) || mInputDevice->isKeyDown(Ogre::KC_A))
{
ent_body->setVelocity( (strafe * -1 * 10.0) );
}

if (mInputDevice->isKeyDown(Ogre::KC_RIGHT) || mInputDevice->isKeyDown(Ogre::KC_D))
{
ent_body->setVelocity( (strafe * 10.0) );
}

if (mInputDevice->isKeyDown(Ogre::KC_PGDOWN))
{
Ogre::Vector3 dir(0,-1,0);
ent_body->setVelocity( (dir * 10.0) );
}

if (mInputDevice->isKeyDown(Ogre::KC_PGUP))
{
Ogre::Vector3 dir(0,1,0);
ent_body->setVelocity( (dir * 10.0) );
}

if (mInputDevice->isKeyDown(Ogre::KC_SPACE))
{
if (timer <= 0.0)
{
Ogre::Vector3 dir, vec;
Ogre::Quaternion camorient = msnCam->getWorldOrientation();
vec = Ogre::Vector3(0,0,-1);

dir = camorient * vec;

Entity* ent;
SceneNode* node;
Ogre::String name;
Ogre::Vector3 pos = msnCam->getWorldPosition();

name = "Body "+Ogre::StringConverter::toString( count++ );

ent = mSceneMgr->createEntity( name, "ellipsoid.mesh" );
node = mSceneMgr->getRootSceneNode()->createChildSceneNode( name );
node->attachObject( ent );

ent->setMaterialName( "Simple/dirt01" );
ent->setNormaliseNormals(true);

OgreNewt::Collision* col = new OgreNewt::CollisionPrimitives::Ellipsoid( m_World, Ogre::Vector3(1,1,1) );
OgreNewt::Body* body = new OgreNewt::Body( m_World, col );

Ogre::Vector3 inertia = OgreNewt::MomentOfInertia::CalcSphereSolid( 10 , 1.0 );
body->setMassMatrix( 10 , inertia );
body->attachToNode( node );
body->setStandardForceCallback();
body->setPositionOrientation( pos, camorient );
body->setVelocity( (dir * 50.0) );

timer = 0.2;
}
}

timer -= evt.timeSinceLastFrame;

mAnimationState->getEnabled();


if (mInputDevice->isKeyDown(Ogre::KC_ESCAPE))
return false;

return true;
}


OgreNewtonFrameListener.h

#pragma once
#include "ExampleFrameListener.h"

#include <OgreNewt.h>


class OgreNewtonFrameListener :
public ExampleFrameListener
{
protected:
OgreNewt::World* m_World;
SceneNode* msnCam;
Ogre::SceneNode* msnEnt;
SceneManager* mSceneMgr;
int count;
float timer;

OgreNewt::Body* ent_body; /*MY IMPLEMENTATION*/

OgreNewt::Collision* ent_col; /*MY IMPLEMENTATION*/

AnimationState* mAnimationState; /*MY IMPLEMENTATION*/

//AnimationState* mAnimationState_buffer; /*MY IMPLEMENTATION*/

Entity* mEntity; /*MY IMPLEMENTATION*/

//Entity* mEntity_buffer; /*MY IMPLEMENTATION*/



public:
OgreNewtonFrameListener(RenderWindow* win, Camera* cam, SceneManager* mgr, OgreNewt::World* W, SceneNode* ncam, OgreNewt::Body* entity_body, SceneNode* nent, Entity* mEntity_buffer, AnimationState* mAnimationState_buffer);
~OgreNewtonFrameListener(void);

bool frameStarted(const FrameEvent &evt);

void keyReleased( KeyEvent *e );

void keyPressed(KeyEvent *e);

void keyClicked(KeyEvent *e);
};


So, what is wrong?

albino

19-02-2008 15:16:42

you havent declared mEventProcessor and mInputDevice
in the script or the declarations are in wrong place.