mirror of
https://github.com/OpenMW/openmw.git
synced 2025-05-15 02:11:27 +00:00
Implement Fixme script instruction
This commit is contained in:
parent
ce9a18fb87
commit
f0971ee8ad
5 changed files with 22 additions and 2 deletions
|
@ -447,5 +447,7 @@ op 0x20002fe: RemoveFromLevItem
|
||||||
op 0x20002ff: SetFactionReaction
|
op 0x20002ff: SetFactionReaction
|
||||||
op 0x2000300: EnableLevelupMenu
|
op 0x2000300: EnableLevelupMenu
|
||||||
op 0x2000301: ToggleScripts
|
op 0x2000301: ToggleScripts
|
||||||
|
op 0x2000302: Fixme
|
||||||
|
op 0x2000303: Fixme, explicit
|
||||||
|
|
||||||
opcodes 0x2000302-0x3ffffff unused
|
opcodes 0x2000304-0x3ffffff unused
|
||||||
|
|
|
@ -734,6 +734,18 @@ namespace MWScript
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template <class R>
|
||||||
|
class OpFixme : public Interpreter::Opcode0
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
virtual void execute (Interpreter::Runtime& runtime)
|
||||||
|
{
|
||||||
|
MWWorld::Ptr ptr = R()(runtime);
|
||||||
|
MWBase::Environment::get().getWorld()->fixPosition(ptr);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
void installOpcodes (Interpreter::Interpreter& interpreter)
|
void installOpcodes (Interpreter::Interpreter& interpreter)
|
||||||
{
|
{
|
||||||
interpreter.installSegment5(Compiler::Transformation::opcodeSetScale,new OpSetScale<ImplicitRef>);
|
interpreter.installSegment5(Compiler::Transformation::opcodeSetScale,new OpSetScale<ImplicitRef>);
|
||||||
|
@ -774,6 +786,8 @@ namespace MWScript
|
||||||
interpreter.installSegment5(Compiler::Transformation::opcodeGetStartingAngle, new OpGetStartingAngle<ImplicitRef>);
|
interpreter.installSegment5(Compiler::Transformation::opcodeGetStartingAngle, new OpGetStartingAngle<ImplicitRef>);
|
||||||
interpreter.installSegment5(Compiler::Transformation::opcodeGetStartingAngleExplicit, new OpGetStartingAngle<ExplicitRef>);
|
interpreter.installSegment5(Compiler::Transformation::opcodeGetStartingAngleExplicit, new OpGetStartingAngle<ExplicitRef>);
|
||||||
interpreter.installSegment5(Compiler::Transformation::opcodeResetActors, new OpResetActors);
|
interpreter.installSegment5(Compiler::Transformation::opcodeResetActors, new OpResetActors);
|
||||||
|
interpreter.installSegment5(Compiler::Transformation::opcodeFixme, new OpFixme<ImplicitRef>);
|
||||||
|
interpreter.installSegment5(Compiler::Transformation::opcodeFixmeExplicit, new OpFixme<ExplicitRef>);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1311,6 +1311,7 @@ namespace MWWorld
|
||||||
actor.getRefData().setPosition(pos);
|
actor.getRefData().setPosition(pos);
|
||||||
|
|
||||||
osg::Vec3f traced = mPhysics->traceDown(actor, dist*1.1f);
|
osg::Vec3f traced = mPhysics->traceDown(actor, dist*1.1f);
|
||||||
|
if (traced != pos.asVec3())
|
||||||
moveObject(actor, actor.getCell(), traced.x(), traced.y(), traced.z());
|
moveObject(actor, actor.getCell(), traced.x(), traced.y(), traced.z());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -541,6 +541,7 @@ namespace Compiler
|
||||||
extensions.registerInstruction("moveworld","cf",opcodeMoveWorld,opcodeMoveWorldExplicit);
|
extensions.registerInstruction("moveworld","cf",opcodeMoveWorld,opcodeMoveWorldExplicit);
|
||||||
extensions.registerFunction("getstartingangle",'f',"c",opcodeGetStartingAngle,opcodeGetStartingAngleExplicit);
|
extensions.registerFunction("getstartingangle",'f',"c",opcodeGetStartingAngle,opcodeGetStartingAngleExplicit);
|
||||||
extensions.registerInstruction("resetactors","",opcodeResetActors);
|
extensions.registerInstruction("resetactors","",opcodeResetActors);
|
||||||
|
extensions.registerInstruction("fixme","",opcodeFixme, opcodeFixmeExplicit);
|
||||||
extensions.registerInstruction("ra","",opcodeResetActors);
|
extensions.registerInstruction("ra","",opcodeResetActors);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -498,6 +498,8 @@ namespace Compiler
|
||||||
const int opcodeMoveWorld = 0x2000208;
|
const int opcodeMoveWorld = 0x2000208;
|
||||||
const int opcodeMoveWorldExplicit = 0x2000209;
|
const int opcodeMoveWorldExplicit = 0x2000209;
|
||||||
const int opcodeResetActors = 0x20002f4;
|
const int opcodeResetActors = 0x20002f4;
|
||||||
|
const int opcodeFixme = 0x2000302;
|
||||||
|
const int opcodeFixmeExplicit = 0x2000303;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace User
|
namespace User
|
||||||
|
|
Loading…
Reference in a new issue