diff options
Diffstat (limited to 'tools/pe_bliss/pe_bliss_godot.cpp')
-rw-r--r-- | tools/pe_bliss/pe_bliss_godot.cpp | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/tools/pe_bliss/pe_bliss_godot.cpp b/tools/pe_bliss/pe_bliss_godot.cpp deleted file mode 100644 index 8297aa1045..0000000000 --- a/tools/pe_bliss/pe_bliss_godot.cpp +++ /dev/null @@ -1,118 +0,0 @@ -#include "pe_bliss/pe_bliss.h" -#include "pe_bliss/pe_bliss_resources.h" -#include "core/ustring.h" -#include "core/dvector.h" -#include "os/file_access.h" - -using namespace pe_bliss; - -String pe_bliss_add_resrc(const char* p_path, int version_major, int version_minor, - String& company_name, String& file_description, - String& legal_copyright, String& version_text, - String& product_name, String& godot_version, - DVector<uint8_t>& icon_content) { - try - { - pe_base image(pe_factory::create_pe(p_path)); - - const section_list& pe_sections = image.get_image_sections(); - uint32_t end_of_pe = 0; - FileAccess *dst; - DVector<uint8_t> overlay_data; - if(image.has_overlay()) - { - end_of_pe = pe_sections.back().get_pointer_to_raw_data() + pe_sections.back().get_size_of_raw_data(); - dst=FileAccess::open(p_path,FileAccess::READ); - if (dst) { - overlay_data.resize(dst->get_len()-end_of_pe); - dst->seek(end_of_pe); - DVector<uint8_t>::Write overlay_data_write = overlay_data.write(); - dst->get_buffer(overlay_data_write.ptr(),overlay_data.size()); - dst->close(); - memdelete(dst); - } - } - resource_directory root; - if(image.has_resources()) - { - root = resource_directory(get_resources(image)); - } - pe_resource_manager res(root); - if(image.has_resources()) - { - if(icon_content.size()) { - if(res.resource_exists(pe_resource_viewer::resource_icon)) - { - res.remove_resource_type(pe_resource_viewer::resource_icon); - } - if(res.resource_exists(pe_resource_viewer::resource_icon_group)) - { - res.remove_resource_type(pe_resource_viewer::resource_icon_group); - } - } - if(res.resource_exists(pe_resource_viewer::resource_version)) - { - res.remove_resource_type(pe_resource_viewer::resource_version); - } - } - file_version_info file_info; - file_info.set_file_os(file_version_info::file_os_nt_win32); - file_info.set_file_type(file_version_info::file_type_application); - unsigned int ver = version_major << 16; - ver = ver + version_minor; - file_info.set_file_version_ms(ver); - file_info.set_file_version_ls(0x00000000); - file_info.set_product_version_ms(ver); - file_info.set_product_version_ls(0x00000000); - lang_string_values_map strings; - translation_values_map translations; - version_info_editor version(strings, translations); - version.add_translation(version_info_editor::default_language_translation); - version.set_company_name(company_name.c_str()); - version.set_file_description(file_description.c_str()); - if (!product_name.empty()) { - version.set_internal_name((product_name+String(".exe")).c_str()); - version.set_original_filename((product_name+String(".exe")).c_str()); - version.set_product_name(product_name.c_str()); - } - version.set_legal_copyright(legal_copyright.c_str()); - version.set_product_version(version_text.c_str()); - if(!godot_version.empty()) version.set_property(L"Godot Engine Version", godot_version.c_str() ); - resource_version_info_writer(res).set_version_info(file_info, strings, translations, 1033, 1200); - if(icon_content.size()) { - std::string icon; - icon.resize(icon_content.size()); - for(int i=0; i<icon_content.size(); i++) - { - icon[i] = icon_content[i]; - } - resource_cursor_icon_writer(res).add_icon(icon, L"MAIN_ICON", 1033); - } - if(image.has_resources()) - { - rebuild_resources(image, root, image.section_from_directory(pe_win::image_directory_entry_resource)); - } else { - section new_resources; - new_resources.get_raw_data().resize(1); - new_resources.set_name(".rsrc"); - new_resources.readable(true); - section& attached_section = image.add_section(new_resources); - rebuild_resources(image, root, attached_section); - } - rebuild_pe(image, p_path); - if(image.has_overlay() && end_of_pe) { - dst=FileAccess::open(p_path,FileAccess::READ_WRITE); - if (dst) { - dst->seek_end(); - DVector<uint8_t>::Read overlay_data_read = overlay_data.read(); - dst->store_buffer(overlay_data_read.ptr(),overlay_data.size()); - dst->close(); - memdelete(dst); - } - } - return String(); - } catch(const pe_exception& e) { - String ret("Error In Add rsrc Section : "); - return ret + String(e.what()); - } -} |