Upgrading from an old OgreOde version

ekt

10-12-2006 10:36:01

I've updated my OgreOde copy to the latest cvs version.
my previous version was rather old, and i have some questions/problems.

In SimpleScenesApplication.cpp there is a typo. In non heihort branch, frameStarted gets called instead of frameEnded. This causes F1-F6 keys never get read and demos not starting.

@@ -97,11 +97,11 @@
bool SimpleScenesFrameListener::frameEnded(const FrameEvent& evt)
{
// Tell our demo that the frame's ended before doing default processing

#if (OGRE_VERSION < ((1 << 16) | (3 << 8) | 0))
- _demo->frameStarted(evt,mInputDevice);
+ _demo->frameEnded(evt, mInputDevice);
#else
_demo->frameEnded(evt, mKeyboard, mMouse);
#endif //OGRE_VERSION not heihort
return ExampleFrameListener::frameEnded(evt);
}


Then a question. In my game i've implemented the stepper myself. After cd/stepping/etc i was calling _world->synchronise();
now i have to:
_world->updateDrawState();
_world->synchronise();

is this right?

Then, a problem. Body autosleep suddenly stopped working. Before it was working with no problem. I'll check deeply myself, but if you have any idea maybe you can direct me to the solution faster.

And least but not least, some kudos to tuan: DebugContacs==cool, WorldIsNotASingleton==cool, GeomOffset==cool, EverythingIveNotYetNoticed==cool :)


cheers

tuan kuranes

14-12-2006 14:23:00

Thanks for report.
is this right?
Yes. but you should perhaps use StepHandler::step(real time)
No Idea about autosleep. Let me know about the problem.EverythingIveNotYetNoticed==cool From Memory, FixedFrame stepping, Stepper independant of Ode stepper choice (stepFast, step, quickstepper), now separeted Loader/Prefab dll that should help making your own loader. not speaking of timescaling using stephandlers.

ekt

17-12-2006 16:42:51

No Idea about autosleep. Let me know about the problem.

actually bodies seems to go to sleep correctly. it tricked me the fact that the 'debug wire' does not change color anymore. i can see this also in the standard demos.

debug object changes material using Body::isAwake, which simply returns _isEnabled. which is calculated as dBodyIsEnabled(_body) || _debug_node;
if we have a _debug_node, dBodyIsEnabled() result will never make a difference. if i get it right

tuan kuranes

18-12-2006 15:37:29

Thanks for precise and nice report !
Fixed that in CVS. (btw added some more sleep things : car now unsleep, new autosleep mode, demoed in samplescenes)