| 75 | } |
| 76 | }; |
| 77 | class GDREConfigSetting_BytecodeForceBytecodeRevision : public GDREConfigSetting { |
| 78 | GDSOFTCLASS(GDREConfigSetting_BytecodeForceBytecodeRevision, GDREConfigSetting); |
| 79 | |
| 80 | public: |
| 81 | GDREConfigSetting_BytecodeForceBytecodeRevision() : |
| 82 | GDREConfigSetting( |
| 83 | "Bytecode/force_bytecode_revision", |
| 84 | "Force Bytecode Revision", |
| 85 | "Forces the bytecode revision to be the specified value.", |
| 86 | 0, |
| 87 | false, |
| 88 | true) {} |
| 89 | |
| 90 | virtual bool has_special_value() const override { return true; } |
| 91 | virtual Dictionary get_list_of_possible_values() const override { |
| 92 | Dictionary ret; |
| 93 | int ver_major = 0; |
| 94 | if (GDRESettings::get_singleton() && GDRESettings::get_singleton()->is_pack_loaded()) { |
| 95 | ver_major = GDRESettings::get_singleton()->get_ver_major(); |
| 96 | } |
| 97 | int current_setting = get_value(); |
| 98 | auto versions = GDScriptDecompVersion::get_decomp_versions(true, 0); |
| 99 | ret[0] = "Auto-detect"; |
| 100 | for (const auto &version : versions) { |
| 101 | if ((ver_major > 0 && version.get_major_version() != ver_major)) { |
| 102 | if (version.commit != current_setting) { |
| 103 | continue; |
| 104 | } |
| 105 | } |
| 106 | String short_name = version.name.split("/")[0].strip_edges() + ")"; |
| 107 | ret[version.commit] = short_name; |
| 108 | } |
| 109 | return ret; |
| 110 | } |
| 111 | }; |
| 112 | |
| 113 | #if !GODOT_MONO_DECOMP_DISABLED |
| 114 | class GDREConfigSetting_CSharpForceLanguageVersion : public GDREConfigSetting { |
no outgoing calls
no test coverage detected