mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-03-03 12:49:40 +00:00
Various fixes
This commit is contained in:
parent
f83ffecae5
commit
a711a3ebe1
5 changed files with 31 additions and 12 deletions
|
@ -147,5 +147,7 @@ op 0x2000150: ForceGreeting, explicit reference
|
||||||
op 0x2000151: ToggleFullHelp
|
op 0x2000151: ToggleFullHelp
|
||||||
op 0x2000152: Goodbye
|
op 0x2000152: Goodbye
|
||||||
op 0x2000153: SetScale
|
op 0x2000153: SetScale
|
||||||
op 0x2000154: SetAngle
|
op 0x2000154: SetScale, explicit reference
|
||||||
|
op 0x2000155: SetAngle
|
||||||
|
op 0x2000156: SetAngle, explicit reference
|
||||||
opcodes 0x2000155-0x3ffffff unused
|
opcodes 0x2000155-0x3ffffff unused
|
||||||
|
|
|
@ -592,7 +592,9 @@ namespace MWScript
|
||||||
const int opcodeModDispositionExplicit = 0x200014e;
|
const int opcodeModDispositionExplicit = 0x200014e;
|
||||||
|
|
||||||
const int opcodeSetScale = 0x2000153;
|
const int opcodeSetScale = 0x2000153;
|
||||||
const int opcodeSetAngle = 0x2000154;
|
const int opcodeSetScaleExplicit = 0x2000154;
|
||||||
|
const int opcodeSetAngle = 0x2000155;
|
||||||
|
const int opcodeSetAngleExplicit = 0x2000156;
|
||||||
|
|
||||||
void registerExtensions (Compiler::Extensions& extensions)
|
void registerExtensions (Compiler::Extensions& extensions)
|
||||||
{
|
{
|
||||||
|
@ -677,8 +679,8 @@ namespace MWScript
|
||||||
opcodeModDispositionExplicit);
|
opcodeModDispositionExplicit);
|
||||||
extensions.registerFunction("getpcrank",'l',"/S",opcodeGetPCRank,opcodeGetPCRankExplicit);
|
extensions.registerFunction("getpcrank",'l',"/S",opcodeGetPCRank,opcodeGetPCRankExplicit);
|
||||||
|
|
||||||
extensions.registerInstruction("setscale","/l",opcodeSetScale);
|
extensions.registerInstruction("setscale","l",opcodeSetScale,opcodeSetScaleExplicit);
|
||||||
extensions.registerInstruction("setangle","/Sl",opcodeSetAngle);
|
extensions.registerInstruction("setangle","Sl",opcodeSetAngle,opcodeSetAngleExplicit);
|
||||||
}
|
}
|
||||||
|
|
||||||
void installOpcodes (Interpreter::Interpreter& interpreter)
|
void installOpcodes (Interpreter::Interpreter& interpreter)
|
||||||
|
@ -752,7 +754,9 @@ namespace MWScript
|
||||||
interpreter.installSegment3(opcodeGetPCRankExplicit,new OpGetPCRank<ExplicitRef>);
|
interpreter.installSegment3(opcodeGetPCRankExplicit,new OpGetPCRank<ExplicitRef>);
|
||||||
|
|
||||||
interpreter.installSegment5(opcodeSetScale,new OpSetScale<ImplicitRef>);
|
interpreter.installSegment5(opcodeSetScale,new OpSetScale<ImplicitRef>);
|
||||||
|
interpreter.installSegment5(opcodeSetScaleExplicit,new OpSetScale<ExplicitRef>);
|
||||||
interpreter.installSegment5(opcodeSetAngle,new OpSetAngle<ImplicitRef>);
|
interpreter.installSegment5(opcodeSetAngle,new OpSetAngle<ImplicitRef>);
|
||||||
|
interpreter.installSegment5(opcodeSetAngleExplicit,new OpSetAngle<ExplicitRef>);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -290,8 +290,6 @@ namespace MWWorld
|
||||||
{
|
{
|
||||||
if (OEngine::Physic::PhysicActor* act = mEngine->getCharacter(handle))
|
if (OEngine::Physic::PhysicActor* act = mEngine->getCharacter(handle))
|
||||||
{
|
{
|
||||||
// TODO very dirty hack to avoid crash during setup -> needs cleaning up to allow
|
|
||||||
// start positions others than 0, 0, 0
|
|
||||||
act->setRotation(btQuaternion(rotation.x, rotation.y, rotation.z, rotation.w));
|
act->setRotation(btQuaternion(rotation.x, rotation.y, rotation.z, rotation.w));
|
||||||
}
|
}
|
||||||
if (OEngine::Physic::RigidBody* body = mEngine->getRigidBody(handle))
|
if (OEngine::Physic::RigidBody* body = mEngine->getRigidBody(handle))
|
||||||
|
@ -304,8 +302,6 @@ namespace MWWorld
|
||||||
{
|
{
|
||||||
if (OEngine::Physic::RigidBody* body = mEngine->getRigidBody(handle))
|
if (OEngine::Physic::RigidBody* body = mEngine->getRigidBody(handle))
|
||||||
{
|
{
|
||||||
// TODO very dirty hack to avoid crash during setup -> needs cleaning up to allow
|
|
||||||
// start positions others than 0, 0, 0
|
|
||||||
//body->setWorldTransform(btTransform().se
|
//body->setWorldTransform(btTransform().se
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -668,6 +668,7 @@ namespace MWWorld
|
||||||
Ogre::Quaternion rotz(Ogre::Degree(z),Ogre::Vector3::UNIT_Z);
|
Ogre::Quaternion rotz(Ogre::Degree(z),Ogre::Vector3::UNIT_Z);
|
||||||
ptr.getRefData().getBaseNode()->setOrientation(rotx*roty*rotz);
|
ptr.getRefData().getBaseNode()->setOrientation(rotx*roty*rotz);
|
||||||
mPhysics->rotateObject(Class::get(ptr).getId(ptr),ptr.getRefData().getBaseNode()->getOrientation());
|
mPhysics->rotateObject(Class::get(ptr).getId(ptr),ptr.getRefData().getBaseNode()->getOrientation());
|
||||||
|
std::cout << Class::get(ptr).getId(ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void World::indexToPosition (int cellX, int cellY, float &x, float &y, bool centre) const
|
void World::indexToPosition (int cellX, int cellY, float &x, float &y, bool centre) const
|
||||||
|
|
|
@ -392,8 +392,16 @@ namespace Physic
|
||||||
|
|
||||||
RigidBody* PhysicEngine::getRigidBody(std::string name)
|
RigidBody* PhysicEngine::getRigidBody(std::string name)
|
||||||
{
|
{
|
||||||
RigidBody* body = RigidBodyMap[name];
|
RigidBodyContainer::iterator it = RigidBodyMap.find(name);
|
||||||
return body;
|
if (it != RigidBodyMap.end() )
|
||||||
|
{
|
||||||
|
RigidBody* body = RigidBodyMap[name];
|
||||||
|
return body;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PhysicEngine::stepSimulation(double deltaT)
|
void PhysicEngine::stepSimulation(double deltaT)
|
||||||
|
@ -450,8 +458,16 @@ namespace Physic
|
||||||
|
|
||||||
PhysicActor* PhysicEngine::getCharacter(std::string name)
|
PhysicActor* PhysicEngine::getCharacter(std::string name)
|
||||||
{
|
{
|
||||||
PhysicActor* act = PhysicActorMap[name];
|
PhysicActorContainer::iterator it = PhysicActorMap.find(name);
|
||||||
return act;
|
if (it != PhysicActorMap.end() )
|
||||||
|
{
|
||||||
|
PhysicActor* act = PhysicActorMap[name];
|
||||||
|
return act;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PhysicEngine::emptyEventLists(void)
|
void PhysicEngine::emptyEventLists(void)
|
||||||
|
|
Loading…
Reference in a new issue