From b280482690fbea1866f8014c59a9402f79f40383 Mon Sep 17 00:00:00 2001 From: hebiiro Date: Fri, 14 Jun 2024 21:04:12 +0900 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=E6=B3=A2=E5=BD=A2=E3=82=92?= =?UTF-8?q?=E7=94=9F=E6=88=90=E3=81=99=E3=82=8B=E6=9D=A1=E4=BB=B6=E3=82=92?= =?UTF-8?q?=E6=8C=87=E5=AE=9A=E3=81=A7=E3=81=8D=E3=82=8B=E6=A9=9F=E8=83=BD?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- item_wave.aua/addin.hpp | 16 ++++ item_wave.aua/addin_dialog.hpp | 151 ++++++++++++++++++++++++++++----- item_wave.aua/app.hpp | 3 - item_wave.aua/config_io.hpp | 17 ++++ item_wave.aua/hive.hpp | 45 ++++++++++ item_wave.aua/hook.hpp | 10 ++- item_wave.aua/item_cache.hpp | 44 ++++++++++ item_wave.aua/item_wave.aua.rc | Bin 8588 -> 10426 bytes item_wave.aua/pch.h | 3 + item_wave.aua/resource.h | 12 +++ ultimate.auf/config_io.hpp | 6 +- 11 files changed, 278 insertions(+), 29 deletions(-) diff --git a/item_wave.aua/addin.hpp b/item_wave.aua/addin.hpp index 64521fb..2f8c675 100644 --- a/item_wave.aua/addin.hpp +++ b/item_wave.aua/addin.hpp @@ -30,6 +30,22 @@ namespace apn::item_wave { MY_TRACE_FUNC(""); + { + // 必須プラグインが存在するか確認します。 + + auto path = my::get_module_file_name(nullptr); + path = path.parent_path() / _T("plugins") / _T("lwinput.aui"); + if (!std::filesystem::exists(path)) + { + hive.message_box( + L"pluginsフォルダにlwinput.auiが存在しません\n" + L"L-SMASH-Worksをpluginsフォルダにインストールしてください\n" + ); + + return FALSE; + } + } + if (!config_io.init()) return FALSE; if (!addin_window.init()) return FALSE; if (!share_manager.init()) return FALSE; diff --git a/item_wave.aua/addin_dialog.hpp b/item_wave.aua/addin_dialog.hpp index 837b4d4..d0f2190 100644 --- a/item_wave.aua/addin_dialog.hpp +++ b/item_wave.aua/addin_dialog.hpp @@ -2,6 +2,25 @@ namespace apn::item_wave { + std::wstring pick_folder(HWND owner, const std::wstring& title, const std::wstring& start_folder) + { + auto dialog = wil::CoCreateInstance(__uuidof(FileOpenDialog)); + if (FAILED(dialog->SetTitle(title.c_str()))) return {}; + FILEOPENDIALOGOPTIONS options; + if (FAILED(dialog->GetOptions(&options))) return {}; + if (FAILED(dialog->SetOptions(options | FOS_PICKFOLDERS | FOS_FORCEFILESYSTEM))) return {}; +// if (FAILED(dialog->SetOptions(options | FOS_PATHMUSTEXIST | FOS_PICKFOLDERS | FOS_FORCEFILESYSTEM))) return {}; + wil::com_ptr start_folder_item; + if (FAILED(::SHCreateItemFromParsingName(start_folder.c_str(), nullptr, IID_PPV_ARGS(&start_folder_item)))) return {}; + if (FAILED(dialog->SetFolder(start_folder_item.get()))) return {}; + if (FAILED(dialog->Show(owner))) return {}; + wil::com_ptr result; + if (FAILED(dialog->GetResult(&result))) return {}; + wil::unique_cotaskmem_string selected_item; + if (FAILED(result->GetDisplayName(SIGDN_FILESYSPATH, &selected_item))) return {}; + return selected_item.get(); + } + // // このクラスはアドインダイアログです。 // @@ -14,6 +33,9 @@ namespace apn::item_wave { MY_TRACE_FUNC(""); + auto include_layers = layers_to_string(hive.include_layers); + auto exclude_layers = layers_to_string(hive.exclude_layers); + set_int(IDC_SCALE, hive.scale); set_combobox_index(IDC_WAVE_TYPE, hive.wave_type); set_combobox_index(IDC_UPDATE_MODE, hive.update_mode); @@ -22,6 +44,11 @@ namespace apn::item_wave set_check(IDC_SHOW_TEXT, hive.show_text); set_check(IDC_NAMECAGE, hive.namecage); set_check(IDC_BEHIND, hive.behind); + set_text(IDC_INCLUDE_LAYERS, include_layers); + set_text(IDC_EXCLUDE_LAYERS, exclude_layers); + set_text(IDC_INCLUDE_FOLDER, hive.include_folder); + set_text(IDC_EXCLUDE_FOLDER, hive.exclude_folder); + set_int(IDC_NAMECAGE_OFFSET, hive.namecage_offset); } // @@ -31,6 +58,9 @@ namespace apn::item_wave { MY_TRACE_FUNC(""); + my::tstring include_layers; + my::tstring exclude_layers; + get_int(IDC_SCALE, hive.scale); get_combobox_index(IDC_WAVE_TYPE, hive.wave_type); get_combobox_index(IDC_UPDATE_MODE, hive.update_mode); @@ -39,6 +69,14 @@ namespace apn::item_wave get_check(IDC_SHOW_TEXT, hive.show_text); get_check(IDC_NAMECAGE, hive.namecage); get_check(IDC_BEHIND, hive.behind); + get_text(IDC_INCLUDE_LAYERS, include_layers); + get_text(IDC_EXCLUDE_LAYERS, exclude_layers); + get_text(IDC_INCLUDE_FOLDER, hive.include_folder); + get_text(IDC_EXCLUDE_FOLDER, hive.exclude_folder); + get_int(IDC_NAMECAGE_OFFSET, hive.namecage_offset); + + hive.include_layers = string_to_layers(include_layers); + hive.exclude_layers = string_to_layers(exclude_layers); magi.exin.invalidate(); } @@ -58,8 +96,11 @@ namespace apn::item_wave auto margin_value = 2; auto margin = RECT { margin_value, margin_value, margin_value, margin_value }; + auto stat_margin = RECT { 0, 0, margin_value, 0 }; auto base_size = get_base_size(); auto row = std::make_shared(base_size + margin_value * 2); + auto stat = std::make_shared(base_size * 3); + auto spin = std::make_shared(base_size); auto rest = std::make_shared(1, 1, 1); std::shared_ptr q[24 + 1]; for (auto i = 0; i < std::size(q); i++) @@ -67,50 +108,90 @@ namespace apn::item_wave { auto node = root->add_pane(c_axis.c_vert, c_align.c_top, row); - node->add_pane(c_axis.c_horz, c_align.c_left, q[12], margin, ctrl(IDC_UPDATE_MODE_STAT)); - node->add_pane(c_axis.c_horz, c_align.c_left, q[24], margin, ctrl(IDC_UPDATE_MODE)); + { + auto sub_node = node->add_pane(c_axis.c_horz, c_align.c_left, q[12]); + sub_node->add_pane(c_axis.c_horz, c_align.c_left, stat, margin, ctrl(IDC_UPDATE_MODE_STAT)); + sub_node->add_pane(c_axis.c_horz, c_align.c_left, rest, margin, ctrl(IDC_UPDATE_MODE)); + } + + { + auto sub_node = node->add_pane(c_axis.c_horz, c_align.c_left, q[24]); + { + auto sub_node2 = sub_node->add_pane(c_axis.c_horz, c_align.c_left, stat, margin, ctrl(IDC_SCALE_STAT)); + } + { + auto sub_node2 = sub_node->add_pane(c_axis.c_horz, c_align.c_left, rest, margin); + sub_node2->add_pane(c_axis.c_horz, c_align.c_right, spin, {}, ctrl(IDC_SCALE_SPIN)); + sub_node2->add_pane(c_axis.c_horz, c_align.c_right, rest, {}, ctrl(IDC_SCALE)); + } + } } { auto node = root->add_pane(c_axis.c_vert, c_align.c_top, row); - node->add_pane(c_axis.c_horz, c_align.c_right, row, margin, ctrl(IDC_SCALE_SPIN)); - node->add_pane(c_axis.c_horz, c_align.c_right, q[12], margin, ctrl(IDC_SCALE)); - node->add_pane(c_axis.c_horz, c_align.c_right, q[24], margin, ctrl(IDC_SCALE_STAT)); + { + auto sub_node = node->add_pane(c_axis.c_horz, c_align.c_left, q[12]); + sub_node->add_pane(c_axis.c_horz, c_align.c_left, stat, margin, ctrl(IDC_WAVE_TYPE_STAT)); + sub_node->add_pane(c_axis.c_horz, c_align.c_left, rest, margin, ctrl(IDC_WAVE_TYPE)); + } + { + auto sub_node = node->add_pane(c_axis.c_horz, c_align.c_left, q[24]); + sub_node->add_pane(c_axis.c_horz, c_align.c_left, stat, margin, ctrl(IDC_XOR_MODE_STAT)); + sub_node->add_pane(c_axis.c_horz, c_align.c_left, rest, margin, ctrl(IDC_XOR_MODE)); + } } { auto node = root->add_pane(c_axis.c_vert, c_align.c_top, row); - node->add_pane(c_axis.c_horz, c_align.c_left, q[12], margin, ctrl(IDC_WAVE_TYPE_STAT)); - node->add_pane(c_axis.c_horz, c_align.c_left, q[24], margin, ctrl(IDC_WAVE_TYPE)); + node->add_pane(c_axis.c_horz, c_align.c_left, stat, margin, ctrl(IDC_INCLUDE_LAYERS_STAT)); + node->add_pane(c_axis.c_horz, c_align.c_left, rest, margin, ctrl(IDC_INCLUDE_LAYERS)); } { auto node = root->add_pane(c_axis.c_vert, c_align.c_top, row); - node->add_pane(c_axis.c_horz, c_align.c_left, q[12], margin, ctrl(IDC_XOR_MODE_STAT)); - node->add_pane(c_axis.c_horz, c_align.c_left, q[24], margin, ctrl(IDC_XOR_MODE)); + node->add_pane(c_axis.c_horz, c_align.c_left, stat, margin, ctrl(IDC_EXCLUDE_LAYERS_STAT)); + node->add_pane(c_axis.c_horz, c_align.c_left, rest, margin, ctrl(IDC_EXCLUDE_LAYERS)); } { auto node = root->add_pane(c_axis.c_vert, c_align.c_top, row); - node->add_pane(c_axis.c_horz, c_align.c_left, q[12], margin, ctrl(IDC_SELECT_PEN_COLOR)); - node->add_pane(c_axis.c_horz, c_align.c_left, q[24], margin, ctrl(IDC_SELECT_BRUSH_COLOR)); + node->add_pane(c_axis.c_horz, c_align.c_left, stat, margin, ctrl(IDC_INCLUDE_FOLDER_STAT)); + { + auto sub_node = node->add_pane(c_axis.c_horz, c_align.c_left, rest, margin); + sub_node->add_pane(c_axis.c_horz, c_align.c_right, spin, {}, ctrl(IDC_INCLUDE_FOLDER_DIR)); + sub_node->add_pane(c_axis.c_horz, c_align.c_right, rest, {}, ctrl(IDC_INCLUDE_FOLDER)); + } } { auto node = root->add_pane(c_axis.c_vert, c_align.c_top, row); - node->add_pane(c_axis.c_horz, c_align.c_left, q[12], margin, ctrl(IDC_CLEAR_CACHES)); + node->add_pane(c_axis.c_horz, c_align.c_left, stat, margin, ctrl(IDC_EXCLUDE_FOLDER_STAT)); + { + auto sub_node = node->add_pane(c_axis.c_horz, c_align.c_left, rest, margin); + sub_node->add_pane(c_axis.c_horz, c_align.c_right, spin, {}, ctrl(IDC_EXCLUDE_FOLDER_DIR)); + sub_node->add_pane(c_axis.c_horz, c_align.c_right, rest, {}, ctrl(IDC_EXCLUDE_FOLDER)); + } } { auto node = root->add_pane(c_axis.c_vert, c_align.c_top, row); - node->add_pane(c_axis.c_horz, c_align.c_left, q[12], margin, ctrl(IDC_SHOW_WAVE)); - node->add_pane(c_axis.c_horz, c_align.c_left, q[24], margin, ctrl(IDC_SHOW_TEXT)); + node->add_pane(c_axis.c_horz, c_align.c_left, q[8], margin, ctrl(IDC_SHOW_WAVE)); + node->add_pane(c_axis.c_horz, c_align.c_left, q[16], margin, ctrl(IDC_SHOW_TEXT)); + node->add_pane(c_axis.c_horz, c_align.c_left, q[24], margin, ctrl(IDC_BEHIND)); } { auto node = root->add_pane(c_axis.c_vert, c_align.c_top, row); - node->add_pane(c_axis.c_horz, c_align.c_left, q[12], margin, ctrl(IDC_NAMECAGE)); - node->add_pane(c_axis.c_horz, c_align.c_left, q[24], margin, ctrl(IDC_BEHIND)); + node->add_pane(c_axis.c_horz, c_align.c_left, q[8], margin, ctrl(IDC_NAMECAGE)); + node->add_pane(c_axis.c_horz, c_align.c_left, q[16], margin, ctrl(IDC_NAMECAGE_OFFSET_STAT)); + node->add_pane(c_axis.c_horz, c_align.c_left, q[24], margin, ctrl(IDC_NAMECAGE_OFFSET)); + } + + { + auto node = root->add_pane(c_axis.c_vert, c_align.c_top, row); + node->add_pane(c_axis.c_horz, c_align.c_left, q[8], margin, ctrl(IDC_SELECT_PEN_COLOR)); + node->add_pane(c_axis.c_horz, c_align.c_left, q[16], margin, ctrl(IDC_SELECT_BRUSH_COLOR)); + node->add_pane(c_axis.c_horz, c_align.c_left, q[24], margin, ctrl(IDC_CLEAR_CACHES)); } } @@ -124,13 +205,15 @@ namespace apn::item_wave switch (id) { // エディットボックス - case IDC_SCALE: if (code == EN_UPDATE) update_config(); break; - + case IDC_SCALE: + case IDC_INCLUDE_LAYERS: + case IDC_EXCLUDE_LAYERS: + case IDC_INCLUDE_FOLDER: + case IDC_EXCLUDE_FOLDER: if (code == EN_UPDATE) update_config(); break; // コンボボックス - case IDC_WAVE_TYPE: case IDC_UPDATE_MODE: + case IDC_WAVE_TYPE: case IDC_XOR_MODE: if (code == CBN_SELCHANGE) update_config(); break; - // ボタン case IDC_SELECT_PEN_COLOR: { @@ -144,8 +227,34 @@ namespace apn::item_wave magi.exin.invalidate(); break; } - case IDC_CLEAR_CACHES: app->clear_caches(); break; + case IDC_CLEAR_CACHES: + { + app->clear_caches(); + + break; + } + case IDC_INCLUDE_FOLDER_DIR: + { + auto folder = pick_folder(*this, L"対象フォルダを選択", hive.include_folder); + if (!folder.empty()) + { + set_text(IDC_INCLUDE_FOLDER, folder); + update_config(); + } + + break; + } + case IDC_EXCLUDE_FOLDER_DIR: + { + auto folder = pick_folder(*this, L"除外フォルダを選択", hive.exclude_folder); + if (!folder.empty()) + { + set_text(IDC_EXCLUDE_FOLDER, folder); + update_config(); + } + break; + } // チェックボックス case IDC_SHOW_WAVE: case IDC_SHOW_TEXT: diff --git a/item_wave.aua/app.hpp b/item_wave.aua/app.hpp index 3ed38b5..7c9b8b4 100644 --- a/item_wave.aua/app.hpp +++ b/item_wave.aua/app.hpp @@ -84,9 +84,6 @@ namespace apn::item_wave } } - if (proc_state.is_playing) - return FALSE; // 再生中のときはここで処理を終了します。 - // UIプロセスのウィンドウが作成済みの場合は if (hive.ui_window) { diff --git a/item_wave.aua/config_io.hpp b/item_wave.aua/config_io.hpp index 67e9652..7544188 100644 --- a/item_wave.aua/config_io.hpp +++ b/item_wave.aua/config_io.hpp @@ -69,6 +69,9 @@ namespace apn::item_wave using namespace my::json; + std::wstring include_layers; + std::wstring exclude_layers; + get_int(root, "scale", hive.scale); get_label(root, "wave_type", hive.wave_type, hive.c_wave_type.labels); get_label(root, "update_mode", hive.update_mode, hive.c_update_mode.labels); @@ -79,8 +82,15 @@ namespace apn::item_wave get_bool(root, "show_text", hive.show_text); get_bool(root, "namecage", hive.namecage); get_bool(root, "behind", hive.behind); + get_string(root, "include_layers", include_layers); + get_string(root, "exclude_layers", exclude_layers); + get_string(root, "include_folder", hive.include_folder); + get_string(root, "exclude_folder", hive.exclude_folder); get_window(root, "addin_window", addin_window); + hive.include_layers = string_to_layers(include_layers); + hive.exclude_layers = string_to_layers(exclude_layers); + return TRUE; } @@ -93,6 +103,9 @@ namespace apn::item_wave using namespace my::json; + auto include_layers = layers_to_string(hive.include_layers); + auto exclude_layers = layers_to_string(hive.exclude_layers); + set_int(root, "scale", hive.scale); set_label(root, "wave_type", hive.wave_type, hive.c_wave_type.labels); set_label(root, "update_mode", hive.update_mode, hive.c_update_mode.labels); @@ -103,6 +116,10 @@ namespace apn::item_wave set_bool(root, "show_text", hive.show_text); set_bool(root, "namecage", hive.namecage); set_bool(root, "behind", hive.behind); + set_string(root, "include_layers", include_layers); + set_string(root, "exclude_layers", exclude_layers); + set_string(root, "include_folder", hive.include_folder); + set_string(root, "exclude_folder", hive.exclude_folder); set_window(root, "addin_window", addin_window); return TRUE; diff --git a/item_wave.aua/hive.hpp b/item_wave.aua/hive.hpp index 3751d81..ee06692 100644 --- a/item_wave.aua/hive.hpp +++ b/item_wave.aua/hive.hpp @@ -2,6 +2,26 @@ namespace apn::item_wave { + inline static std::unordered_set string_to_layers(const std::wstring& s) + { + std::unordered_set layers; + std::wstringstream stream(s); + std::wstring layer; + while (std::getline(stream, layer, L',')) + layers.emplace(wcstol(layer.c_str(), nullptr, 0) - 1); + return layers; + } + + inline static std::wstring layers_to_string(const std::unordered_set& layers) + { + std::wstring s; + for (const auto& layer : layers) { + if (!s.empty()) s += L", "; + s += std::format(L"{}", layer + 1); + } + return s; + } + // // このクラスは他クラスから共通して使用される変数を保持します。 // @@ -120,6 +140,31 @@ namespace apn::item_wave // BOOL behind = TRUE; + // + // 波形を生成するレイヤーです。 + // + std::unordered_set include_layers; + + // + // 波形を生成しないレイヤーです。 + // + std::unordered_set exclude_layers; + + // + // 波形を生成するフォルダです。 + // + std::wstring include_folder; + + // + // 波形を生成しないフォルダです。 + // + std::wstring exclude_folder; + + // + // アイテム名の描画位置(X座標)に加算する値です。 + // + int32_t namecage_offset = -6; + // // メッセージボックスを表示します。 // diff --git a/item_wave.aua/hook.hpp b/item_wave.aua/hook.hpp index 7196977..c6a210b 100644 --- a/item_wave.aua/hook.hpp +++ b/item_wave.aua/hook.hpp @@ -77,7 +77,9 @@ namespace apn::item_wave auto cache = item_cache_manager.get_cache(current_item); if (!cache) return; - auto scale = std::max(1, hive.scale); + auto scale = hive.scale; + if (hive.wave_type == hive.c_wave_type.c_center) scale /= 2; + scale = std::max(1, scale); auto w = rc_item->right - rc_item->left; auto h = rc_item->bottom - rc_item->top; @@ -270,7 +272,11 @@ namespace apn::item_wave // フラグが立っている場合はテキストが見切れないように調整します。 if (hive.namecage) - x = std::max(70, x); + { + // 70は拡張編集内の定数です。 + // それにユーザーが指定できるオフセットを加えます。 + x = std::max(70 + hive.namecage_offset, x); + } // 音声アイテム以外には何もしません。 if (!(hook_manager.current_item->flag & ExEdit::Object::Flag::Sound)) diff --git a/item_wave.aua/item_cache.hpp b/item_wave.aua/item_cache.hpp index 07a9510..9ab4750 100644 --- a/item_wave.aua/item_cache.hpp +++ b/item_wave.aua/item_cache.hpp @@ -41,6 +41,47 @@ namespace apn::item_wave } } + // + // キャッシュが要求されている場合はTRUEを返します。 + // + inline static BOOL is_cache_required(ExEdit::Object* object, const std::shared_ptr& audio) + { + if (!hive.include_layers.empty()) + { + // 対象レイヤーではない場合はFALSEを返します。 + if (!hive.include_layers.contains(object->layer_set)) + return FALSE; + } + + if (!hive.exclude_layers.empty()) + { + // 除外レイヤーの場合はFALSEを返します。 + if (hive.exclude_layers.contains(object->layer_set)) + return FALSE; + } + + std::filesystem::path path(audio->file_name); + if (path.is_relative()) + path = std::filesystem::current_path() / path; + path = path.lexically_normal(); + + if (!hive.include_folder.empty()) + { + // 対象フォルダではない場合はFALSEを返します。 + if (!::StrStrIW(path.c_str(), hive.include_folder.c_str())) + return FALSE; + } + + if (!hive.exclude_folder.empty()) + { + // 除外フォルダの場合はFALSEを返します。 + if (::StrStrIW(path.c_str(), hive.exclude_folder.c_str())) + return FALSE; + } + + return TRUE; + } + // // すべてのキャッシュを消去します。 // @@ -133,6 +174,9 @@ namespace apn::item_wave auto audio = get_audio(object); if (!audio) return nullptr; + // このアイテムのキャッシュが要求されているか確認します。 + if (!is_cache_required(object, audio)) return nullptr; + // ファイルキャシュを取得します。 auto file_cache = file_cache_manager.get_cache(audio->file_name, send); if (!file_cache) return nullptr; // ファイルキャッシュが作成されるまでは何もできません。 diff --git a/item_wave.aua/item_wave.aua.rc b/item_wave.aua/item_wave.aua.rc index e94c08d786306897e8139ea19af7baee15530126..cd93c2cf4c3b7df425e482990292bdecfc699fff 100644 GIT binary patch delta 1393 zcma)6OK1~O6unKYG#Mu|P1%JXK$zQb~j#Ph8Fnv*x(%vJx5cH))jHqFWHW4Pj4cdX6J?(g(!D+~yv8 zx3-|>ynOD8h0A)5l$!#xj?}HlTJ?10Hv4$y;5-hsRRxhLY!i`g>G#a+_A z#i}m51dGbBu`=F@SJ#tCuyz@iJ2^CW{`!Fh{1Cek=lU&C73WG-#GB#%xF7I{t+HqA zHG7NiW4rcNU>rv1n1TZJR_?On+~vX-$|&_Lg`Z-2PkjvUlv524do?nEcf-lCKeMNn zevs{NG)dGED8dmKrW{2$M)wjNr}qNAmuRkL=&4L9WCh$yUQ8Qlp-JOYliD8?&GCG8 z{HVo9hHDu=dnYl|NJ{}u{I`}2Ipv>}Cvdf@&-=!00(jUZiIl9?p5K|+U4kx*^mG$V!GghzL5D$s!4OEBZjR@OW}K|R&Bdv}U6gLmAC4&)?#B3?U$-4xVCR^~N2%ExX48bfz29wDjx%4OB z<3ToFP+3|so*|eaguxMrAyybM7{DzmoIHV7gdbuHLR^$Td-6XnrOCTEkpF#0(f7z%ZGd zFJL}dLBI(b90<{Tuqq2k$N^P}f`W(d^Yjl9k8+aYCmCdPSXEBe6U-3=S!oFLH^}FP z4CV}GlM4le!HSO=tTotaaKZqtSZp$rP#9DLDB938NFg-rG+1x&*5Hr9YlCouECUyV z$pyk$P>sgWI6<;W0H(3Spv#~qzSm&#Dxn;4h{H_4{scP=Y@gBOk8Hw|Bjh)2W|6UA zWCclBPIi=y1+q*TEH*Eez0CxQxXBZg1tzHoY`&w!#JIUmL5pef1{I}ED!W(!kY|nD diff --git a/item_wave.aua/pch.h b/item_wave.aua/pch.h index bbd54ad..dff9814 100644 --- a/item_wave.aua/pch.h +++ b/item_wave.aua/pch.h @@ -1,3 +1,6 @@ #pragma once #include "common/core/include.hpp" #include "common/share/item_wave.hpp" +#include +#include +#include diff --git a/item_wave.aua/resource.h b/item_wave.aua/resource.h index 7c9689d..f9e095e 100644 --- a/item_wave.aua/resource.h +++ b/item_wave.aua/resource.h @@ -6,6 +6,8 @@ #define IDC_SCALE_STAT 1001 #define IDC_SCALE 1002 #define IDC_SCALE_SPIN 1003 +#define IDC_NAMECAGE_OFFSET_STAT 1004 +#define IDC_NAMECAGE_OFFSET 1005 #define IDC_WAVE_TYPE_STAT 1010 #define IDC_WAVE_TYPE 1011 #define IDC_UPDATE_MODE_STAT 1020 @@ -19,6 +21,16 @@ #define IDC_SHOW_TEXT 1051 #define IDC_NAMECAGE 1052 #define IDC_BEHIND 1053 +#define IDC_INCLUDE_LAYERS_STAT 1060 +#define IDC_INCLUDE_LAYERS 1061 +#define IDC_EXCLUDE_LAYERS_STAT 1062 +#define IDC_EXCLUDE_LAYERS 1063 +#define IDC_INCLUDE_FOLDER_STAT 1070 +#define IDC_INCLUDE_FOLDER 1071 +#define IDC_INCLUDE_FOLDER_DIR 1072 +#define IDC_EXCLUDE_FOLDER_STAT 1073 +#define IDC_EXCLUDE_FOLDER 1074 +#define IDC_EXCLUDE_FOLDER_DIR 1075 // Next default values for new objects // diff --git a/ultimate.auf/config_io.hpp b/ultimate.auf/config_io.hpp index 68f5f57..c853ac0 100644 --- a/ultimate.auf/config_io.hpp +++ b/ultimate.auf/config_io.hpp @@ -20,8 +20,8 @@ namespace apn hive.addins.emplace_back(std::make_unique(L"L", L"dark", L"ダークモード化", TRUE, L"", std::vector{ L"DarkenWindow.aul" })); hive.addins.emplace_back(std::make_unique(L"L", L"workspace", L"ワークスペース化", TRUE, L"", std::vector({ L"SplitWindow.aul" }))); hive.addins.emplace_back(std::make_unique(L"L", L"filer", L"ファイラ", TRUE, L"", std::vector({ L"ObjectExplorer.auf" }))); -// hive.addins.emplace_back(std::make_unique(L"L", L"audio_graph", L"音声グラフ", FALSE, L"", std::vector({ L"LevelMeter.auf" }))); - hive.addins.emplace_back(std::make_unique(L"L", L"item_wave", L"アイテム波形", FALSE, L"", std::vector({ L"NoScrollText.auf", L"ShowWaveform.auf" }))); +// hive.addins.emplace_back(std::make_unique(L"L", L"audio_graph", L"音声グラフ", TRUE, L"", std::vector({ L"LevelMeter.auf" }))); + hive.addins.emplace_back(std::make_unique(L"L", L"item_wave", L"アイテム波形", TRUE, L"", std::vector{ L"namecage.aua", L"NoScrollText.auf", L"ShowWaveform.auf" })); hive.addins.emplace_back(std::make_unique(L"M", L"filter_copy", L"フィルタコピー", TRUE, L"", std::vector({ L"CopyFilter.auf" }))); hive.addins.emplace_back(std::make_unique(L"M", L"filter_drag", L"フィルタドラッグ", TRUE, L"", std::vector({ L"DragFilter.auf" }))); @@ -38,7 +38,7 @@ namespace apn hive.addins.emplace_back(std::make_unique(L"M", L"zoom_select", L"ズーム選択", TRUE, L"", std::vector({ L"SetZoom.auf" }))); hive.addins.emplace_back(std::make_unique(L"S", L"dirty_check", L"終了確認", TRUE, L"", std::vector({ L"auls_confirmclose.auf", L"DirtyCheck.auf" }))); - hive.addins.emplace_back(std::make_unique(L"S", L"namecage", L"アイテム名常時表示", TRUE, L"", std::vector({ L"item_wave.aua", L"NoScrollText.auf", L"ShowWaveform.auf" }))); + hive.addins.emplace_back(std::make_unique(L"S", L"namecage", L"アイテム名常時表示", FALSE, L"", std::vector({ L"NoScrollText.auf", L"ShowWaveform.auf" }))); hive.addins.emplace_back(std::make_unique(L"S", L"editbox_tweaker", L"エディットボックス微調整", TRUE, L"", std::vector({ L"OptimizeEditBox.auf" }))); hive.addins.emplace_back(std::make_unique(L"S", L"exedit_tweaker", L"拡張編集微調整", FALSE, L"", std::vector({ L"ExEditTweaker.auf" }))); hive.addins.emplace_back(std::make_unique(L"S", L"dialog_position", L"ダイアログ位置調整", TRUE, L"", std::vector({ L"AdjustDialogPosition.auf" })));