Hi All!I'm a beginner programmer and I'd like to join your project. I think i could do some easy to implement features and fix some simpler bugs.
I have already found and fixed these:- .xml-s won't load if the filename was given with extension (see OGWorld::Initialize()) because in OGXmlConfig::Open() the existence of the file is only checked after adding the filename another extension. - If there are no attached balls in the world, OGBall::FindTarget() sets pTargetBall_ to null which is dereferenced in OGBall::IsCanClimb() and OGBall::Move(), causing segfault. - sensors BeginContact() method called both in OGContactListener::BeginContact() and OGContactListener::EndContact() sometimes causing strange behavior of the pipe and the balls. - In ExitSensor::_EndContact(), data->isTouching is only set false to attached balls, so force keep applied to unattached balls if pulled away from the pipe. - Pipe remains open if a ball enters the sensor attached but leaves it unattached.
Also, I think it would be better if strands would be built to the nearest attached balls when placing one. I could code it, if you think so. It would be nice, if we could somehow check if a circle overlaps with strands and placed balls. That would make possible for balls to catch strands when falling and avoid placing more balls to the same place or over an existing strand. Finally, I'd like to suggest to recalculate the path of climbing balls every timestep rather than only at the endpoints if it's not too demanding to the CPU, because now those balls move along the same line even if the strand moved away.
Have a nice day! Ferenc Barta