リンク関数のライフサイクル

リンカが実行されると、リンカでは以下の順序で処理を実行していきます。

リンク関数はモジュールのlinkFuncsにリンクタイプをキーとした関数オブジェクトとして定義します。

module.linkFuncs['rpgmv-map'] = function(target, targetData, eventList) {
	// パラメータチェック
	var attributeError = function(paramName) {
		return new Tes.LinkError(
			'[' + paramName + '] : リンク対象パラメータが未指定です。',
			'linker.attribute.notFound.error', [
				paramName
			]
		);
	};
	if (target.attrs.id == null) {
		throw targetNotfoundError('id');
	}
	if (target.attrs.page == null) {
		throw targetNotfoundError('page');
	}

	// 更新対象チェック
	var targetError = function() {
		return new Tes.LinkError(
			'更新対象が見つかりません。',
			'linker.target.notFound.error'
		);
	};
	var events = targetData.events;
	if (events == null) {
		throw targetError();
	} else if (!isArray(events)) {
		throw targetError();
	}

	var event = null;
	for (var i = 1; i < events.length; i++) {
		var e = events[i];

		if (e.id == target.attrs.id) {
			event = e;
			break;
		}
	}

	if (event == null) {
		throw targetError();
	}

	if (event.pages == null) {
		throw targetError();
	} else if (!isArray(event.pages)) {
		throw targetError();
	}

	var page = event.pages[target.attrs.page];
	if (page == null) {
		throw targetError();
	}

	if (page.list == null) {
		throw targetError();
	}else if (!isArray(page.list)) {
		throw targetError();
	}

	// イベントリストをセット
	page.list = eventList;

	return targetData;
};

リンク関数の仕様は以下の通りです。

引数

戻り値

targetDataを返してください。