I figured I would revert, well I only backed up my source not the libs and dlls. So I tried to find the old files and put them in place. I did a clean and build with again, the same error. I talked to brainsaw ( irrOde author ) and he has no idea. The debug crashes at the ODE initphysiscs function. So I'm guessing its not irrlicht. The irrODE is a static lib no dll. In order to use it I must include the ode_single.dll form the ODE engine but this file has not changed since 09.
At this point I have no idea what could have cause this and having nothing left to revert to. So I'm faced fighting it. The calling convention I use is the default ( __cdecl ). the irrOde lib is also built with this calling convention and I can only assume the ode_single is as well. So I don't think that is the issue. The static lib has no dll, so its not a miss match and the ode_single.dll is just an ODE reference for the wrapper that has never changed. So what left could this mean?
____________
small update
____________
I went a head and built my own new ODE_single.dll and the environment is in fact the same calling convention. My new dll did not fix anything.
Figured I'd also include some code.
This is the line I crash on
Code: Select all
void initPhys (){ CIrrOdeManager::getSharedInstance()->initPhysics();}
Code: Select all
void CIrrOdeManager::initPhysics() {
m_iNodesInitialized=0;
m_bPhysicsInitialized=false;
list<CIrrOdeWorld *>::Iterator itw;
for (itw=m_lWorlds.begin(); itw!=m_lWorlds.end(); itw++)
(*itw)->initPhysics();
core::list<irr::ode::IIrrOdeStepMotor *>::Iterator it;
for (it=m_lStepMotors.begin(); it!=m_lStepMotors.end(); it++) (*it)->initPhysics();
m_bPhysicsInitialized=true;
}
Code: Select all
Metroid64.exe!irr::ode::CIrrOdeGeomBox::initPhysics() + 0x158 bytes
Metroid64.exe!irr::ode::CIrrOdeBody::initPhysics() + 0x4f7 bytes
Metroid64.exe!irr::ode::CIrrOdeWorld::initPhysics() + 0x503 bytes
Metroid64.exe!irr::ode::CIrrOdeManager::initPhysics() + 0xb0 bytes
> Metroid64.exe!CPhysManager::initPhys() Line 26 + 0x2f bytes C++
Metroid64.exe!CGamePlayState::loadMap(CGameManager * pManager=0x0012fcec, const char * map=0x005a6a50, irr::core::vector3d<float> mapPosition={...}, irr::core::vector3d<float> camPosition={...}) Line 227 C++
Metroid64.exe!CGamePlayState::loadMap(CGameManager * pManager=0x0012fcec, const char * map=0x005a6a50) Line 117 C++
Metroid64.exe!CGameStateLevel01::Init(CGameManager * pManager=0x0012fcec) Line 60 C++
Metroid64.exe!CGameManager::ChangeState(CGameState * pState=0x005db8f8) Line 88 + 0x18 bytes C++
Metroid64.exe!CGameState::ChangeState(CGameManager * pManager=0x0012fcec, CGameState * pState=0x005db8f8) Line 51 C++
Metroid64.exe!CGameStateLoad01::Update(CGameManager * pManager=0x0012fcec) Line 70 C++
Metroid64.exe!CGameManager::Update() Line 101 + 0x19 bytes C++
Metroid64.exe!CGame::run() Line 27 C++
Metroid64.exe!main() Line 24 C++
Metroid64.exe!__tmainCRTStartup() Line 582 + 0x19 bytes C
Metroid64.exe!mainCRTStartup() Line 399 C
kernel32.dll!7c816fd7()
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
Metroid64.exe!irr::ode::CIrrOdeDevice::CIrrOdeDevice() + 0xf7 bytes
cccccccc()