1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-21 06:53:53 +00:00

addet provisional implementation of AiWander (doesn't do anything yet)

This commit is contained in:
Marc Zinnschlag 2012-06-16 16:06:15 +02:00
parent b16157a618
commit 7454713a9b
2 changed files with 33 additions and 1 deletions

View file

@ -88,7 +88,31 @@ namespace MWScript
}
};
template<class R>
class OpAiWander : public Interpreter::Opcode1
{
public:
virtual void execute (Interpreter::Runtime& runtime, unsigned int arg0)
{
MWWorld::Ptr ptr = R()(runtime);
// Interpreter::Type_Float range = runtime[0].mFloat;
runtime.pop();
// Interpreter::Type_Float duration = runtime[0].mFloat;
runtime.pop();
// Interpreter::Type_Float time = runtime[0].mFloat;
runtime.pop();
// discard additional idle arguments for now
// discard additional arguments (reset), because we have no idea what they mean.
for (unsigned int i=0; i<arg0; ++i) runtime.pop();
std::cout << "AiWanter" << std::endl;
}
};
const int opcodeAiTravel = 0x20000;
const int opcodeAiTravelExplicit = 0x20001;
@ -96,6 +120,8 @@ namespace MWScript
const int opcodeAiEscortExplicit = 0x20003;
const int opcodeGetAiPackageDone = 0x200007c;
const int opcodeGetAiPackageDoneExplicit = 0x200007d;
const int opcodeAiWander = 0x20010;
const int opcodeAiWanderExplicit = 0x20011;
void registerExtensions (Compiler::Extensions& extensions)
{
@ -103,6 +129,8 @@ namespace MWScript
opcodeAiTravelExplicit);
extensions.registerInstruction ("aiescort", "cffff/l", opcodeAiEscort,
opcodeAiEscortExplicit);
extensions.registerInstruction ("aiwander", "fff/llllllllll", opcodeAiWander,
opcodeAiWanderExplicit);
extensions.registerFunction ("getaipackagedone", 'l', "", opcodeGetAiPackageDone,
opcodeGetAiPackageDoneExplicit);
@ -114,6 +142,8 @@ namespace MWScript
interpreter.installSegment3 (opcodeAiTravelExplicit, new OpAiTravel<ExplicitRef>);
interpreter.installSegment3 (opcodeAiEscort, new OpAiEscort<ImplicitRef>);
interpreter.installSegment3 (opcodeAiEscortExplicit, new OpAiEscort<ExplicitRef>);
interpreter.installSegment3 (opcodeAiWander, new OpAiWander<ImplicitRef>);
interpreter.installSegment3 (opcodeAiWanderExplicit, new OpAiWander<ExplicitRef>);
interpreter.installSegment5 (opcodeGetAiPackageDone, new OpGetAiPackageDone<ImplicitRef>);
interpreter.installSegment5 (opcodeGetAiPackageDoneExplicit,
new OpGetAiPackageDone<ExplicitRef>);

View file

@ -29,7 +29,9 @@ op 0x2000c: PCLowerRank
op 0x2000d: PCJoinFaction
op 0x2000e: PCGetRank implicit
op 0x2000f: PCGetRank explicit
opcodes 0x20010-0x3ffff unused
op 0x20010: AiWander
op 0x20011: AiWander, explicit reference
opcodes 0x20012-0x3ffff unused
Segment 4:
(not implemented yet)