Page 1 of 1

Problem with Bullet animator 0.2

Posted: Sat Mar 22, 2008 10:07 am
by VagueNess
Hi,

I've downloaded the serializable Bullet animator.
When I tried compiling it (with MSVC++ 2008), I get these errors:
c:\documents and settings\******\mijn documenten\visual studio 2008\projects\game\game\gminigolfapp.cpp(84) : error C2259: 'CWorldEditorGUI' : cannot instantiate abstract class
due to following members:
'bool irr::IEventReceiver::OnEvent(const irr::SEvent &)' : is abstract
c:\irrlicht-1.4\include\ieventreceiver.h(256) : see declaration of 'irr::IEventReceiver::OnEvent'
c:\documents and settings\******\mijn documenten\visual studio 2008\projects\game\game\gminigolfapp.cpp(92) : error C2259: 'irr::scene::CBulletAnimatorManager' : cannot instantiate abstract class
due to following members:
'irr::u32 irr::scene::ISceneNodeAnimatorFactory::getCreatableSceneNodeAnimatorTypeCount(void) const' : is abstract
c:\irrlicht-1.4\include\iscenenodeanimatorfactory.h(48) : see declaration of 'irr::scene::ISceneNodeAnimatorFactory::getCreatableSceneNodeAnimatorTypeCount'
'irr::scene::ESCENE_NODE_ANIMATOR_TYPE irr::scene::ISceneNodeAnimatorFactory::getCreateableSceneNodeAnimatorType(irr::u32) const' : is abstract
c:\irrlicht-1.4\include\iscenenodeanimatorfactory.h(53) : see declaration of 'irr::scene::ISceneNodeAnimatorFactory::getCreateableSceneNodeAnimatorType'
'const irr::c8 *irr::scene::ISceneNodeAnimatorFactory::getCreateableSceneNodeAnimatorTypeName(irr::scene::ESCENE_NODE_ANIMATOR_TYPE) const' : is abstract
c:\irrlicht-1.4\include\iscenenodeanimatorfactory.h(63) : see declaration of 'irr::scene::ISceneNodeAnimatorFactory::getCreateableSceneNodeAnimatorTypeName'
'const irr::c8 *irr::scene::ISceneNodeAnimatorFactory::getCreateableSceneNodeAnimatorTypeName(irr::u32) const' : is abstract
c:\irrlicht-1.4\include\iscenenodeanimatorfactory.h(58) : see declaration of 'irr::scene::ISceneNodeAnimatorFactory::getCreateableSceneNodeAnimatorTypeName'

c:\documents and settings\******\mijn documenten\visual studio 2008\projects\game\game\main.cpp(8) : error C2259: 'GMiniGolfApp' : cannot instantiate abstract class
due to following members:
'bool irr::IEventReceiver::OnEvent(const irr::SEvent &)' : is abstract
c:\irrlicht-1.4\include\ieventreceiver.h(256) : see declaration of 'irr::IEventReceiver::OnEvent'

c:\documents and settings\joshua willems\mijn documenten\visual studio 2008\projects\game\game\cworldeditorgui.cpp(268) : error C2440: 'initializing' : cannot convert from 'irr::core::list<T>::ConstIterator' to 'irr::core::list<T>::Iterator'
with
[
T=irr::scene::ISceneNode *
]
No constructor could take the source type, or constructor overload resolution was ambiguous
Can someone help?

Posted: Sat Mar 22, 2008 12:11 pm
by Halifax
Well I will take a guess as to why this doesn't work:
'bool irr::IEventReceiver::OnEvent(const irr::SEvent &)' : is abstract
I am guessing that there is a:

Code: Select all

virtual bool OnEvent(irr::SEvent event)
instead of

Code: Select all

virtual bool OnEvent(const irr::SEvent& event)

Posted: Sat Mar 22, 2008 12:29 pm
by VagueNess
I get the same error if i change it to:

Code: Select all

bool CWorldEditorGUI::OnEvent(const SEvent& event)

Posted: Sat Mar 22, 2008 2:00 pm
by hybrid
Well, that solved one of the problems, but there remain several others. You have to adjust your app to the latest API, otherwise some pure virtual methods will exist. Check for const qualifiers and s32/u32 differences.

Posted: Tue Mar 25, 2008 8:17 pm
by VagueNess
@hybrid: Actually, none of the problems is solved yet. :(

Posted: Wed Mar 26, 2008 11:27 am
by rogerborg
'irr::scene::CBulletAnimatorManager' : cannot instantiate abstract class
due to following members:
'irr::u32 irr::scene::ISceneNodeAnimatorFactory::getCreatableSceneNodeAnimatorTypeCount(void) const' : is abstract
This is telling you that your CBulletAnimatorManager implementation does not have a method that exactly matches:

Code: Select all

u32 getCreatableSceneNodeAnimatorTypeCount(void) const
So do you have an exact implementation of this method? Does it return a u32 rather than an i32? Is it a const method?