コード例 #1
0
ファイル: array.cpp プロジェクト: ccawley2011/xoreos
static Variable as_push(AVM &avm){
	ArrayPtr array = avm.getRegister(1).as<Array>();
	if (!array)
		throw Common::Exception("Array::pop this is not an Array object");
	array->push(avm.getRegister(2));
	return Variable();
}
コード例 #2
0
ファイル: avm.cpp プロジェクト: Supermanu/xoreos
Variable AVM::registerClass(AVM &avm) {
	Variable name = avm.getRegister(1);
	Variable object = avm.getRegister(2);

	if (!name.isString())
		throw Common::Exception("AVM::registerClass(): name is not a string");
	if (!object.isObject())
		throw Common::Exception("AVM::registerClass(): value is not an object");

	if (_registerClass)
		_registerClass(name.asString(), object.asObject());

	return Variable();
}
コード例 #3
0
ファイル: avm.cpp プロジェクト: Supermanu/xoreos
Variable AVM::call(AVM &avm) {
	Variable name = avm.getRegister(1);
	if (!name.isString())
		throw Common::Exception("AVM::registerClass(): name is not a string");

	info("TODO: ExternalInterface.call(%s,...)", name.asString().c_str());

	return Variable();
}
コード例 #4
0
ファイル: avm.cpp プロジェクト: Supermanu/xoreos
Variable AVM::gotoAndPlay(AVM &avm) {
	Variable frame = avm.getRegister(1);

	if (!frame.isNumber() && !frame.isString())
		throw Common::Exception("AVM::gotoAndPlay(): parameter is neither a string nor a number");

	info("TODO: gotoAndPlay(%s)", frame.asString().c_str());

	return Variable();
}
コード例 #5
0
ファイル: function.cpp プロジェクト: ccawley2011/xoreos
Variable ScriptedFunction::operator()(AVM &avm) {
	_buffer.run(avm);
	return avm.getReturnValue();
}