Hi,
I compiled Panda 1.81 with VS2013 Express today. With a few minor code changes I got it to compile as static debug lib (though thinking about it I never specified debug in makepanda…). Anyway, I got my code I had running ok in VS2008 to compile eventually, but then I got a runtime assertion from Panda on this line:
NodePath np_ground = window->get_render().attach_new_node(floor_rigid_node);
To give it some context:
PandaFramework framework;
PT(AsyncTaskManager) task_mgr;
// Init everything :D
framework.open_framework(argc, argv);
framework.set_window_title("Bullet Physics");
window = framework.open_window();
window->enable_keyboard();
Application* app = new Application(window);
hud = new HUD();
// Let's say I wanna get the key "w"
//framework.define_key("w", "forwardalign", Move, 0);
framework.define_key("w", "forward", Move, 0);
framework.define_key("w-up", "forwardrepeat", Move, 0);
framework.define_key("s", "back", Move, 0);
framework.define_key("s-up", "backup", Move, 0);
framework.define_key("a", "left", Move, 0);
framework.define_key("a-up", "leftup", Move, 0);
framework.define_key("d", "right", Move, 0);
framework.define_key("d-up", "rightup", Move, 0);
task_mgr = AsyncTaskManager::get_global_ptr();
// Make physics simulation.
// Static world stuff.
Application::GetPhysicsWorld()->set_gravity(0, 0, -9.8);
BulletPlaneShape *floor_shape = new BulletPlaneShape(*new LVecBase3f(0, 0, 1), 1);
BulletRigidBodyNode *floor_rigid_node = new BulletRigidBodyNode("Ground");
floor_rigid_node->add_shape(floor_shape);
NodePath np_ground = window->get_render().attach_new_node(floor_rigid_node);
I get the following assertion:
Expression: rnode != (TypeRegistryNode*)NULL at typeHandler.cxx line 76
This code runs ok in VS2008 Express using the prebuilt dlls. I’m going to look into this myself, but wondered if anyone has seen this or actually understands it. I rebuilt Bullet with VS2013 thinking that would fix it, but apparently not.
Cheers,
Zobbo