Browse Source

Merge branch 'master' of https://github.com/godotengine/godot

Juan Linietsky 9 năm trước cách đây
mục cha
commit
e47c584d77

+ 5 - 5
drivers/pnm/bitmap_loader_pnm.cpp

@@ -170,15 +170,12 @@ RES ResourceFormatPBM::load(const String &p_path,const String& p_original_path,E
 		}
 
 		DVector<uint8_t>::Read r=token.read();
-		int bitwidth = width;
-		if (bitwidth % 8)
-			bitwidth+=8-(bitwidth%8);
 			
 		for(int i=0;i<height;i++) {
 			for(int j=0;j<width;j++) {
 
 
-				char num = r[i*bitwidth+j];
+				char num = r[i*width+j];
 				bm->set_bit(Point2i(j,i),num=='0');
 			}
 
@@ -197,11 +194,14 @@ RES ResourceFormatPBM::load(const String &p_path,const String& p_original_path,E
 		}
 
 		DVector<uint8_t>::Read r=token.read();
+		int bitwidth = width;
+		if (bitwidth % 8)
+			bitwidth+=8-(bitwidth%8);
 
 		for(int i=0;i<height;i++) {
 			for(int j=0;j<width;j++) {
 
-				int ofs = width*i+j;
+				int ofs = bitwidth*i+j;
 
 				uint8_t byte = r[ofs/8];
 				bool bit = (byte>>(7-(ofs%8)))&1;

+ 23 - 10
tools/editor/editor_import_export.cpp

@@ -455,6 +455,9 @@ bool EditorExportPlatformPC::_set(const StringName& p_name, const Variant& p_val
 	} else if (n=="resources/pack_mode") {
 
 		export_mode=ExportMode(int(p_value));
+	} else if (n=="resources/bundle_dependencies_(for_optical_disc)") {
+
+		bundle=p_value;
 	} else if (n=="binary/64_bits") {
 
 		use64=p_value;
@@ -478,6 +481,9 @@ bool EditorExportPlatformPC::_get(const StringName& p_name,Variant &r_ret) const
 	} else if (n=="resources/pack_mode") {
 
 		r_ret=export_mode;
+	} else if (n=="resources/bundle_dependencies_(for_optical_disc)") {
+
+		r_ret=bundle;
 	} else if (n=="binary/64_bits") {
 
 		r_ret=use64;
@@ -492,7 +498,8 @@ void EditorExportPlatformPC::_get_property_list( List<PropertyInfo> *p_list) con
 
 	p_list->push_back( PropertyInfo( Variant::STRING, "custom_binary/debug", PROPERTY_HINT_GLOBAL_FILE,binary_extension));
 	p_list->push_back( PropertyInfo( Variant::STRING, "custom_binary/release", PROPERTY_HINT_GLOBAL_FILE,binary_extension));
-	p_list->push_back( PropertyInfo( Variant::INT, "resources/pack_mode", PROPERTY_HINT_ENUM,"Single Exec.,Exec+Pack (.pck),Copy,Bundles (Optical)"));
+	p_list->push_back( PropertyInfo( Variant::INT, "resources/pack_mode", PROPERTY_HINT_ENUM,"Pack into executable,Pack into binary file (.pck),Pack into archive file (.zip)"));
+	p_list->push_back( PropertyInfo( Variant::BOOL, "resources/bundle_dependencies_(for_optical_disc)"));
 	p_list->push_back( PropertyInfo( Variant::BOOL, "binary/64_bits"));
 }
 
@@ -1274,26 +1281,32 @@ Error EditorExportPlatformPC::export_project(const String& p_path, bool p_debug,
 		}
 	}
 
+	String dstfile = p_path.replace_first("res://","").replace("\\","/");
 	if (export_mode!=EXPORT_EXE) {
 
-		String dstfile=p_path.replace_first("res://","").replace("\\","/");
+		String dstfile_extension=export_mode==EXPORT_ZIP?".zip":".pck";
 		if (dstfile.find("/")!=-1)
-			dstfile=dstfile.get_base_dir()+"/data.pck";
+			dstfile=dstfile.get_base_dir()+"/data"+dstfile_extension;
 		else
-			dstfile="data.pck";
+			dstfile="data"+dstfile_extension;
+		if (export_mode==EXPORT_PACK) {
+
+			memdelete(dst);
 
-		memdelete(dst);
-		dst=FileAccess::open(dstfile,FileAccess::WRITE);
-		if (!dst) {
+			dst=FileAccess::open(dstfile,FileAccess::WRITE);
+			if (!dst) {
 
-			EditorNode::add_io_error("Can't write data pack to:\n "+p_path);
-			return ERR_FILE_CANT_WRITE;
+				EditorNode::add_io_error("Can't write data pack to:\n "+p_path);
+				return ERR_FILE_CANT_WRITE;
+			}
 		}
 	}
 
+
+
 	memdelete(src_exe);
 
-	Error err = save_pack(dst,export_mode==EXPORT_BUNDLES);
+	Error err = export_mode==EXPORT_ZIP?save_zip(dstfile,bundle):save_pack(dst,bundle);
 	memdelete(dst);
 	return err;
 }

+ 2 - 2
tools/editor/editor_import_export.h

@@ -175,8 +175,7 @@ public:
 	enum ExportMode {
 		EXPORT_EXE,
 		EXPORT_PACK,
-		EXPORT_COPY,
-		EXPORT_BUNDLES
+		EXPORT_ZIP
 	};
 
 
@@ -198,6 +197,7 @@ private:
 	Ref<Texture> logo;
 
 	ExportMode export_mode;
+	bool bundle;
 protected:
 
 	bool _set(const StringName& p_name, const Variant& p_value);