リンカが実行されると、リンカでは以下の順序で処理を実行していきます。
リンク関数はモジュールの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を返してください。