From 5c90a44057012694edc05e83378d96343af67a4c Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Wed, 22 Apr 2015 16:05:28 -0700 Subject: [PATCH 01/25] Required Python 3 --- tools/make.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/make.py b/tools/make.py index 3b7bf9d94e..bf50685b85 100644 --- a/tools/make.py +++ b/tools/make.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # vim: set fileencoding=utf-8 : # make.py From 1518ef8d0b627225ae4dc95c6988fcc98df80f8e Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Wed, 22 Apr 2015 16:58:29 -0700 Subject: [PATCH 02/25] Signature keys created by default. #815 --- tools/make.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/tools/make.py b/tools/make.py index bf50685b85..f7e6fe5f85 100644 --- a/tools/make.py +++ b/tools/make.py @@ -60,6 +60,7 @@ module_root = "" release_dir = "" module_root_parent = "" optionals_root = "" +key_name = "ace_preAlpha" ############################################################################### # http://akiscode.com/articles/sha-1directoryhash.shtml @@ -416,7 +417,14 @@ def cleanup_optionals(mod,pbos): def main(argv): """Build an Arma addon suite in a directory from rules in a make.cfg file.""" print_blue(("\nmake.py for Arma, modified for Advanced Combat Environment v" + __version__)) - + + global work_drive + global module_root + global release_dir + global module_root_parent + global optionals_root + global key_name + if sys.platform != "win32": print_error("Non-Windows platform (Cygwin?). Please re-run from cmd.") sys.exit(1) @@ -436,7 +444,7 @@ def main(argv): release_version = 0 # Version of release use_pboproject = True # Default to pboProject build tool make_target = "DEFAULT" # Which section in make.cfg to use for the build - new_key = False # Make a new key and use it to sign? + new_key = True # Make a new key and use it to sign? quiet = False # Suppress output from build tool? # Parse arguments @@ -524,18 +532,13 @@ See the make.cfg file for additional build options. commit_id = subprocess.check_output(["git", "rev-parse", "HEAD"]) commit_id = str(commit_id, "utf-8")[:8] + key_name = str(key_name+"-"+commit_id) except: print_error("FAILED TO DETERMINE COMMIT ID.") commit_id = "NOGIT" cfg = configparser.ConfigParser(); try: - global work_drive - global module_root - global release_dir - global module_root_parent - global optionals_root - cfg.read(os.path.join(make_root, "make.cfg")) # Project name (with @ symbol) @@ -663,7 +666,7 @@ See the make.cfg file for additional build options. print_green("\nRequested key does not exist.") ret = subprocess.call([dscreatekey, key_name]) # Created in make_root if ret == 0: - print_blue("Created: " + os.path.join(module_root, key_name + ".biprivatekey")) + print_green("Created: " + os.path.join(module_root, key_name + ".biprivatekey")) else: print_error("Failed to create key!") From a87c1deac8959f467e8a4e2d2a3df3862537d3de Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Wed, 22 Apr 2015 17:45:22 -0700 Subject: [PATCH 03/25] Removing old signature keys when a new key has been created. #815 --- tools/make.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tools/make.py b/tools/make.py index f7e6fe5f85..757d5f02d2 100644 --- a/tools/make.py +++ b/tools/make.py @@ -412,6 +412,14 @@ def cleanup_optionals(mod,pbos): except: print_error("Cleaning Optionals Failed") raise + + +def purge(dir, pattern, friendlyPattern="files"): + print_yellow("Deleting " + friendlyPattern + " files from directory: " + dir) + for f in os.listdir(dir): + if re.search(pattern, f): + os.remove(os.path.join(dir, f)) + print_yellow("Deleting file => " + f) ############################################################################### def main(argv): @@ -663,15 +671,17 @@ See the make.cfg file for additional build options. # Make the key specified from command line if necessary. if new_key: if not os.path.isfile(os.path.join(module_root, key_name + ".biprivatekey")): - print_green("\nRequested key does not exist.") + print_yellow("\nRequested key does not exist.") ret = subprocess.call([dscreatekey, key_name]) # Created in make_root if ret == 0: print_green("Created: " + os.path.join(module_root, key_name + ".biprivatekey")) + print("Removing any old signature keys...") + purge(os.path.join(module_root, release_dir, project, "Addons"), "^.*\.bisign$","*.bisign") else: print_error("Failed to create key!") try: - print_blue("Copying public key to release directory.") + print("Copying public key to release directory.") try: os.makedirs(os.path.join(module_root, release_dir, "Keys")) From 9f2d5b9c10f168085b2ee6ab7a55e5fe99704317 Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Wed, 22 Apr 2015 19:14:03 -0700 Subject: [PATCH 04/25] Check for missing keys and rebuild them. #815 --- tools/make.py | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/tools/make.py b/tools/make.py index 757d5f02d2..3fccc58e59 100644 --- a/tools/make.py +++ b/tools/make.py @@ -61,6 +61,8 @@ release_dir = "" module_root_parent = "" optionals_root = "" key_name = "ace_preAlpha" +key = "" +dssignfile = "" ############################################################################### # http://akiscode.com/articles/sha-1directoryhash.shtml @@ -420,19 +422,32 @@ def purge(dir, pattern, friendlyPattern="files"): if re.search(pattern, f): os.remove(os.path.join(dir, f)) print_yellow("Deleting file => " + f) + + +def build_signature_file(file_name): + global key + global dssignfile + print("Signing with " + key + ".") + ret = subprocess.call([dssignfile, key, file_name]) + if ret == 0: + return True + else: + return False ############################################################################### def main(argv): """Build an Arma addon suite in a directory from rules in a make.cfg file.""" print_blue(("\nmake.py for Arma, modified for Advanced Combat Environment v" + __version__)) - + global work_drive global module_root global release_dir global module_root_parent global optionals_root global key_name - + global key + global dssignfile + if sys.platform != "win32": print_error("Non-Windows platform (Cygwin?). Please re-run from cmd.") sys.exit(1) @@ -705,6 +720,7 @@ See the make.cfg file for additional build options. for module in modules: print_green("\nMaking " + module + "-"*max(1, (60-len(module)))) missing = False + sigMissing = False # Cache check if module in cache: @@ -719,8 +735,12 @@ See the make.cfg file for additional build options. # Hash the module new_sha = get_directory_hash(os.path.join(module_root, module)) - # Is the pbo file missing? + # Is the pbo or sig file missing? missing = not os.path.isfile(os.path.join(release_dir, project, "addons", "ace_{}.pbo".format(module))) + sigFile = pbo_name_prefix+module + ".pbo." + key_name + ".bisign" + print("Checking sig file => " + sigFile) + sigMissing = not os.path.isfile(os.path.join(release_dir, project, "addons", sigFile )) + if missing: print("ace_{}.pbo".format(module) + " is missing. Building...") @@ -729,6 +749,10 @@ See the make.cfg file for additional build options. if old_sha == new_sha and not missing: if not force_build: print("Module has not changed.") + if sigMissing: + if key: + print_yellow("Signature key " + sigFile + " is missing.") + build_signature_file(os.path.join(module_root, release_dir, project, "Addons", pbo_name_prefix + module + ".pbo")) # Skip everything else continue @@ -753,7 +777,7 @@ See the make.cfg file for additional build options. try: # Remove the old pbo, key, and log - old = os.path.join(module_root, release_dir, project, "Addons", module) + "*" + old = os.path.join(module_root, release_dir, project, "Addons", pbo_name_prefix+module) + "*" files = glob.glob(old) for f in files: os.remove(f) From bb676324b93a9a3c4f4777e6b63d238ace4372e6 Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Wed, 22 Apr 2015 20:09:52 -0700 Subject: [PATCH 05/25] A little clean up. --- tools/make.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/make.py b/tools/make.py index 3fccc58e59..eb2be34f2e 100644 --- a/tools/make.py +++ b/tools/make.py @@ -199,6 +199,7 @@ def find_bi_tools(work_drive): else: raise Exception("BadTools","Arma 3 Tools are not installed correctly or the P: drive needs to be created.") + def find_depbo_tools(regKey): """Use registry entries to find DePBO-based tools.""" stop = False @@ -251,6 +252,7 @@ def find_depbo_tools(regKey): #Strip any quotations from the path due to a MikeRo tool bug which leaves a trailing space in some of its registry paths. return [pboproject_path.strip('"'),rapify_path.strip('"'),makepbo_path.strip('"')] + def color(color): """Set the color. Works on Win32 and normal terminals.""" if sys.platform == "win32": @@ -339,6 +341,7 @@ def copy_important_files(source_dir,destination_dir): finally: os.chdir(originalDir) + def copy_optionals_for_building(mod,pbos): src_directories = os.listdir(optionals_root) current_dir = os.getcwd() @@ -387,7 +390,8 @@ def copy_optionals_for_building(mod,pbos): finally: os.chdir(current_dir) -def cleanup_optionals(mod,pbos): + +def cleanup_optionals(mod): print("") try: for dir_name in mod: @@ -435,6 +439,7 @@ def build_signature_file(file_name): return False ############################################################################### + def main(argv): """Build an Arma addon suite in a directory from rules in a make.cfg file.""" print_blue(("\nmake.py for Arma, modified for Advanced Combat Environment v" + __version__)) @@ -1043,6 +1048,8 @@ See the make.cfg file for additional build options. copy_important_files(module_root_parent,os.path.join(release_dir, "@ace")) cleanup_optionals(optionals_modules,optional_files) + + if __name__ == "__main__": main(sys.argv) input("Press Enter to continue...") From 4e26a8e29fe16ba501a721aabb14eb73aca2ed46 Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Thu, 23 Apr 2015 03:18:06 -0700 Subject: [PATCH 06/25] Make sure Optionals get signed too. #815 --- tools/make.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/tools/make.py b/tools/make.py index eb2be34f2e..8b5a81383c 100644 --- a/tools/make.py +++ b/tools/make.py @@ -356,10 +356,15 @@ def copy_optionals_for_building(mod,pbos): #print ("Adding the following file: " + file_name) pbos.append(file_name) pbo_path = os.path.join(release_dir, "@ace","optionals",file_name) + sigFile_name = file_name +"."+ key_name + ".bisign" + sig_path = os.path.join(release_dir, "@ace","optionals",sigFile_name) if (os.path.isfile(pbo_path)): print("Moving " + pbo_path + " for processing.") shutil.move(pbo_path, os.path.join(release_dir,"@ace","addons",file_name)) - + + if (os.path.isfile(sig_path)): + #print("Moving " + sig_path + " for processing.") + shutil.move(sig_path, os.path.join(release_dir,"@ace","addons",sigFile_name)) except: print_error("Error in moving") raise @@ -407,9 +412,17 @@ def cleanup_optionals(mod): file_name = "ace_{}.pbo".format(dir_name) src_file_path = os.path.join(release_dir, "@ace","addons",file_name) dst_file_path = os.path.join(release_dir, "@ace","optionals",file_name) + + sigFile_name = file_name +"."+ key_name + ".bisign" + src_sig_path = os.path.join(release_dir, "@ace","addons",sigFile_name) + dst_sig_path = os.path.join(release_dir, "@ace","optionals",sigFile_name) + if (os.path.isfile(src_file_path)): #print("Preserving " + file_name) os.renames(src_file_path,dst_file_path) + if (os.path.isfile(src_sig_path)): + #print("Preserving " + sigFile_name) + os.renames(src_sig_path,dst_sig_path) except FileExistsError: print_error(file_name + " already exists") continue @@ -421,11 +434,10 @@ def cleanup_optionals(mod): def purge(dir, pattern, friendlyPattern="files"): - print_yellow("Deleting " + friendlyPattern + " files from directory: " + dir) + print_green("Deleting " + friendlyPattern + " files from directory: " + dir) for f in os.listdir(dir): if re.search(pattern, f): os.remove(os.path.join(dir, f)) - print_yellow("Deleting file => " + f) def build_signature_file(file_name): @@ -735,7 +747,7 @@ See the make.cfg file for additional build options. #We always build ACE_common so we can properly show the correct version stamp in the RPT file. if module == "common": - old_sha = "" + old_sha = old_sha # Hash the module new_sha = get_directory_hash(os.path.join(module_root, module)) @@ -743,11 +755,10 @@ See the make.cfg file for additional build options. # Is the pbo or sig file missing? missing = not os.path.isfile(os.path.join(release_dir, project, "addons", "ace_{}.pbo".format(module))) sigFile = pbo_name_prefix+module + ".pbo." + key_name + ".bisign" - print("Checking sig file => " + sigFile) sigMissing = not os.path.isfile(os.path.join(release_dir, project, "addons", sigFile )) if missing: - print("ace_{}.pbo".format(module) + " is missing. Building...") + print_yellow("Missing PBO file ace_{}.pbo".format(module) + ". Building...") # Check if it needs rebuilt # print ("Hash:", new_sha) @@ -756,7 +767,7 @@ See the make.cfg file for additional build options. print("Module has not changed.") if sigMissing: if key: - print_yellow("Signature key " + sigFile + " is missing.") + print_yellow("Missing Signature key " + sigFile) build_signature_file(os.path.join(module_root, release_dir, project, "Addons", pbo_name_prefix + module + ".pbo")) # Skip everything else continue @@ -1047,7 +1058,7 @@ See the make.cfg file for additional build options. print_error("Could not copy files. Is Arma 3 running?") copy_important_files(module_root_parent,os.path.join(release_dir, "@ace")) - cleanup_optionals(optionals_modules,optional_files) + cleanup_optionals(optionals_modules) if __name__ == "__main__": From 822655835ad4872f19bb4799f124ccd8c5a43932 Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Thu, 23 Apr 2015 03:43:58 -0700 Subject: [PATCH 07/25] Cleanup #815 --- tools/make.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/make.py b/tools/make.py index 8b5a81383c..b2fc5af26c 100644 --- a/tools/make.py +++ b/tools/make.py @@ -361,7 +361,7 @@ def copy_optionals_for_building(mod,pbos): if (os.path.isfile(pbo_path)): print("Moving " + pbo_path + " for processing.") shutil.move(pbo_path, os.path.join(release_dir,"@ace","addons",file_name)) - + if (os.path.isfile(sig_path)): #print("Moving " + sig_path + " for processing.") shutil.move(sig_path, os.path.join(release_dir,"@ace","addons",sigFile_name)) @@ -412,11 +412,11 @@ def cleanup_optionals(mod): file_name = "ace_{}.pbo".format(dir_name) src_file_path = os.path.join(release_dir, "@ace","addons",file_name) dst_file_path = os.path.join(release_dir, "@ace","optionals",file_name) - + sigFile_name = file_name +"."+ key_name + ".bisign" src_sig_path = os.path.join(release_dir, "@ace","addons",sigFile_name) dst_sig_path = os.path.join(release_dir, "@ace","optionals",sigFile_name) - + if (os.path.isfile(src_file_path)): #print("Preserving " + file_name) os.renames(src_file_path,dst_file_path) @@ -747,7 +747,7 @@ See the make.cfg file for additional build options. #We always build ACE_common so we can properly show the correct version stamp in the RPT file. if module == "common": - old_sha = old_sha + old_sha = "" # Hash the module new_sha = get_directory_hash(os.path.join(module_root, module)) From fa69d899db7ccc5a35fd27bf49f90a6d6d8e6260 Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Thu, 23 Apr 2015 03:58:10 -0700 Subject: [PATCH 08/25] Too much yellow #815 --- tools/make.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/make.py b/tools/make.py index b2fc5af26c..440ab61a0d 100644 --- a/tools/make.py +++ b/tools/make.py @@ -767,7 +767,7 @@ See the make.cfg file for additional build options. print("Module has not changed.") if sigMissing: if key: - print_yellow("Missing Signature key " + sigFile) + print("Missing Signature key " + sigFile) build_signature_file(os.path.join(module_root, release_dir, project, "Addons", pbo_name_prefix + module + ".pbo")) # Skip everything else continue From 082d7543f80ac6c474d472014d984c50601aa366 Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Thu, 23 Apr 2015 09:36:23 -0700 Subject: [PATCH 09/25] The keys folder containing public keys is now properly in the release @ace folder. #816 --- tools/make.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/make.py b/tools/make.py index 440ab61a0d..ec2b5c3292 100644 --- a/tools/make.py +++ b/tools/make.py @@ -716,15 +716,15 @@ See the make.cfg file for additional build options. print("Copying public key to release directory.") try: - os.makedirs(os.path.join(module_root, release_dir, "Keys")) + os.makedirs(os.path.join(module_root, release_dir, project, "keys")) except: pass - shutil.copyfile(os.path.join(module_root, key_name + ".bikey"), os.path.join(module_root, release_dir, "Keys", key_name + ".bikey")) + shutil.copyfile(os.path.join(module_root, key_name + ".bikey"), os.path.join(module_root, release_dir, project, "keys", key_name + ".bikey")) except: - raise print_error("Could not copy key to release directory.") + raise else: print_green("\nNOTE: Using key " + os.path.join(module_root, key_name + ".biprivatekey")) From d1b6dfa5c7eb11a48cd084eeead0a671177a46c7 Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Thu, 23 Apr 2015 10:12:28 -0700 Subject: [PATCH 10/25] Private key creation folder is now P:\private_keys by default. #816 --- tools/make.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/tools/make.py b/tools/make.py index ec2b5c3292..4cb6be6dae 100644 --- a/tools/make.py +++ b/tools/make.py @@ -587,6 +587,9 @@ See the make.cfg file for additional build options. # Private key path key = cfg.get(make_target, "key", fallback=None) + # Private key creation directory + private_key_path = cfg.get(make_target, "private_key_path", fallback=os.path.join(work_drive, "private_keys")) + # Project prefix (folder path) prefix = cfg.get(make_target, "prefix", fallback="") @@ -704,9 +707,16 @@ See the make.cfg file for additional build options. if new_key: if not os.path.isfile(os.path.join(module_root, key_name + ".biprivatekey")): print_yellow("\nRequested key does not exist.") + try: + os.makedirs(private_key_path) + except: + pass + curDir = os.getcwd() + os.chdir(private_key_path) ret = subprocess.call([dscreatekey, key_name]) # Created in make_root + os.chdir(curDir) if ret == 0: - print_green("Created: " + os.path.join(module_root, key_name + ".biprivatekey")) + print_green("Created: " + os.path.join(private_key_path, key_name + ".biprivatekey")) print("Removing any old signature keys...") purge(os.path.join(module_root, release_dir, project, "Addons"), "^.*\.bisign$","*.bisign") else: @@ -720,16 +730,16 @@ See the make.cfg file for additional build options. except: pass - shutil.copyfile(os.path.join(module_root, key_name + ".bikey"), os.path.join(module_root, release_dir, project, "keys", key_name + ".bikey")) + shutil.copyfile(os.path.join(private_key_path, key_name + ".bikey"), os.path.join(module_root, release_dir, project, "keys", key_name + ".bikey")) except: print_error("Could not copy key to release directory.") raise else: - print_green("\nNOTE: Using key " + os.path.join(module_root, key_name + ".biprivatekey")) + print_green("\nNOTE: Using key " + os.path.join(private_key_path, key_name + ".biprivatekey")) - key = os.path.join(module_root, key_name + ".biprivatekey") + key = os.path.join(private_key_path, key_name + ".biprivatekey") # For each module, prep files and then build. From 1bf043f9f86289c4c54fbd50abcc6dfc5136135a Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Thu, 23 Apr 2015 10:16:28 -0700 Subject: [PATCH 11/25] Remove all old signature keys for optionals and keys folders. #815 --- tools/make.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/make.py b/tools/make.py index 4cb6be6dae..c6594b5f71 100644 --- a/tools/make.py +++ b/tools/make.py @@ -719,6 +719,8 @@ See the make.cfg file for additional build options. print_green("Created: " + os.path.join(private_key_path, key_name + ".biprivatekey")) print("Removing any old signature keys...") purge(os.path.join(module_root, release_dir, project, "Addons"), "^.*\.bisign$","*.bisign") + purge(os.path.join(module_root, release_dir, project, "optionals"), "^.*\.bisign$","*.bisign") + purge(os.path.join(module_root, release_dir, project, "keys"), "^.*\.bikey$","*.bikey") else: print_error("Failed to create key!") From 785a40387afacc8e4dbb4cbbd36eced60c3616fa Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Thu, 23 Apr 2015 10:28:02 -0700 Subject: [PATCH 12/25] Allow changing private_key creation folder from the default P:\private_keys #816 --- tools/make.cfg | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/make.cfg b/tools/make.cfg index e89568d60e..5e2d9d78da 100644 --- a/tools/make.cfg +++ b/tools/make.cfg @@ -17,6 +17,11 @@ project = @ace # Default: None # key = D:\Program Files (x86)\Bohemia Interactive\Tools\DSSignFile Tools\keys\ace_preAlpha.biprivatekey +# Path to where private keys are automatically created if the command-line parameter "key" is used +# Make sure this isn't in your public repository! +# Default: \private_keys +# private_key_path = P:\private_keys + # If set to True, the make system will attempt to autodetect addons in the # current folder by looking for directories with 'config.cpp' in them. # Default: True From c5066e24c16299db71784f0854362ea11f8b52b7 Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Thu, 23 Apr 2015 10:31:17 -0700 Subject: [PATCH 13/25] Fix undefined work_drive variable for the default private_key_path #816 --- tools/make.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/make.py b/tools/make.py index c6594b5f71..4a8836f766 100644 --- a/tools/make.py +++ b/tools/make.py @@ -584,6 +584,9 @@ See the make.cfg file for additional build options. # Project name (with @ symbol) project = cfg.get(make_target, "project", fallback="@"+os.path.basename(os.getcwd())) + # BI Tools work drive on Windows + work_drive = cfg.get(make_target, "work_drive", fallback="P:\\") + # Private key path key = cfg.get(make_target, "key", fallback=None) @@ -607,9 +610,6 @@ See the make.cfg file for additional build options. # List of directories to ignore when detecting ignore = [x.strip() for x in cfg.get(make_target, "ignore", fallback="release").split(',')] - # BI Tools work drive on Windows - work_drive = cfg.get(make_target, "work_drive", fallback="P:\\") - # Which build tool should we use? build_tool = cfg.get(make_target, "build_tool", fallback="addonbuilder").lower() From 0323e17aac3b541743bc34f34ab2ef85499a4c50 Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Thu, 23 Apr 2015 10:40:39 -0700 Subject: [PATCH 14/25] Switch to lower case folder names. --- tools/make.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/tools/make.py b/tools/make.py index 4a8836f766..fe4bc5b155 100644 --- a/tools/make.py +++ b/tools/make.py @@ -718,7 +718,7 @@ See the make.cfg file for additional build options. if ret == 0: print_green("Created: " + os.path.join(private_key_path, key_name + ".biprivatekey")) print("Removing any old signature keys...") - purge(os.path.join(module_root, release_dir, project, "Addons"), "^.*\.bisign$","*.bisign") + purge(os.path.join(module_root, release_dir, project, "addons"), "^.*\.bisign$","*.bisign") purge(os.path.join(module_root, release_dir, project, "optionals"), "^.*\.bisign$","*.bisign") purge(os.path.join(module_root, release_dir, project, "keys"), "^.*\.bikey$","*.bikey") else: @@ -780,7 +780,7 @@ See the make.cfg file for additional build options. if sigMissing: if key: print("Missing Signature key " + sigFile) - build_signature_file(os.path.join(module_root, release_dir, project, "Addons", pbo_name_prefix + module + ".pbo")) + build_signature_file(os.path.join(module_root, release_dir, project, "addons", pbo_name_prefix + module + ".pbo")) # Skip everything else continue @@ -805,13 +805,13 @@ See the make.cfg file for additional build options. try: # Remove the old pbo, key, and log - old = os.path.join(module_root, release_dir, project, "Addons", pbo_name_prefix+module) + "*" + old = os.path.join(module_root, release_dir, project, "addons", pbo_name_prefix+module) + "*" files = glob.glob(old) for f in files: os.remove(f) if pbo_name_prefix: - old = os.path.join(module_root, release_dir, project, "Addons", pbo_name_prefix+module) + "*" + old = os.path.join(module_root, release_dir, project, "addons", pbo_name_prefix+module) + "*" files = glob.glob(old) for f in files: os.remove(f) @@ -824,11 +824,11 @@ See the make.cfg file for additional build options. # Build the module into a pbo print_blue("Building: " + os.path.join(work_drive, prefix, module)) - print_blue("Destination: " + os.path.join(module_root, release_dir, project, "Addons")) + print_blue("Destination: " + os.path.join(module_root, release_dir, project, "addons")) # Make destination folder (if needed) try: - os.makedirs(os.path.join(module_root, release_dir, project, "Addons")) + os.makedirs(os.path.join(module_root, release_dir, project, "addons")) except: pass @@ -880,7 +880,7 @@ See the make.cfg file for additional build options. if os.path.isfile(os.path.join(work_drive, prefix, module, "$NOBIN$")): print_green("$NOBIN$ Found. Proceeding with non-binarizing!") - cmd = [makepboTool, "-P","-A","-L","-N","-G", os.path.join(work_drive, prefix, module),os.path.join(module_root, release_dir, project,"Addons")] + cmd = [makepboTool, "-P","-A","-L","-N","-G", os.path.join(work_drive, prefix, module),os.path.join(module_root, release_dir, project,"addons")] else: if check_external: @@ -902,7 +902,7 @@ See the make.cfg file for additional build options. # Prettyprefix rename the PBO if requested. if pbo_name_prefix: try: - os.rename(os.path.join(module_root, release_dir, project, "Addons", module+".pbo"), os.path.join(module_root, release_dir, project, "Addons", pbo_name_prefix+module+".pbo")) + os.rename(os.path.join(module_root, release_dir, project, "addons", module+".pbo"), os.path.join(module_root, release_dir, project, "addons", pbo_name_prefix+module+".pbo")) except: raise print_error("Could not rename built PBO with prefix.") @@ -910,9 +910,9 @@ See the make.cfg file for additional build options. if key: print("Signing with " + key + ".") if pbo_name_prefix: - ret = subprocess.call([dssignfile, key, os.path.join(module_root, release_dir, project, "Addons", pbo_name_prefix + module + ".pbo")]) + ret = subprocess.call([dssignfile, key, os.path.join(module_root, release_dir, project, "addons", pbo_name_prefix + module + ".pbo")]) else: - ret = subprocess.call([dssignfile, key, os.path.join(module_root, release_dir, project, "Addons", module + ".pbo")]) + ret = subprocess.call([dssignfile, key, os.path.join(module_root, release_dir, project, "addons", module + ".pbo")]) if ret == 0: build_successful = True @@ -952,7 +952,7 @@ See the make.cfg file for additional build options. # Call AddonBuilder os.chdir("P:\\") - cmd = [addonbuilder, os.path.join(work_drive, prefix, module), os.path.join(make_root, release_dir, project, "Addons"), "-clear", "-project="+work_drive] + cmd = [addonbuilder, os.path.join(work_drive, prefix, module), os.path.join(make_root, release_dir, project, "addons"), "-clear", "-project="+work_drive] if not do_binarize: cmd.append("-packonly") @@ -975,7 +975,7 @@ See the make.cfg file for additional build options. # Prettyprefix rename the PBO if requested. if pbo_name_prefix: try: - os.rename(os.path.join(make_root, release_dir, project, "Addons", module+".pbo"), os.path.join(make_root, release_dir, project, "Addons", pbo_name_prefix+module+".pbo")) + os.rename(os.path.join(make_root, release_dir, project, "addons", module+".pbo"), os.path.join(make_root, release_dir, project, "addons", pbo_name_prefix+module+".pbo")) except: raise print_error("Could not rename built PBO with prefix.") @@ -985,9 +985,9 @@ See the make.cfg file for additional build options. if key: print("Signing with " + key + ".") if pbo_name_prefix: - ret = subprocess.call([dssignfile, key, os.path.join(make_root, release_dir, project, "Addons", pbo_name_prefix + module + ".pbo")]) + ret = subprocess.call([dssignfile, key, os.path.join(make_root, release_dir, project, "addons", pbo_name_prefix + module + ".pbo")]) else: - ret = subprocess.call([dssignfile, key, os.path.join(make_root, release_dir, project, "Addons", module + ".pbo")]) + ret = subprocess.call([dssignfile, key, os.path.join(make_root, release_dir, project, "addons", module + ".pbo")]) if ret == 0: build_successful = True @@ -1036,7 +1036,7 @@ See the make.cfg file for additional build options. try: # Delete all log files - for root, dirs, files in os.walk(os.path.join(module_root, release_dir, project, "Addons")): + for root, dirs, files in os.walk(os.path.join(module_root, release_dir, project, "addons")): for currentFile in files: if currentFile.lower().endswith("log"): os.remove(os.path.join(root, currentFile)) From 8f79147323b5ac52c6704d0172b035b5ba771efb Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Thu, 23 Apr 2015 11:22:00 -0700 Subject: [PATCH 15/25] Fix for missing release folder #815 --- tools/make.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tools/make.py b/tools/make.py index fe4bc5b155..b1038771b8 100644 --- a/tools/make.py +++ b/tools/make.py @@ -686,6 +686,20 @@ See the make.cfg file for additional build options. print ("No cache found.") cache = {} + if not os.path.isdir(os.path.join(release_dir, project, "addons")): + try: + os.makedirs(os.path.join(release_dir, project, "addons")) + except: + print_error("Cannot create release directory") + raise + + if not os.path.isdir(os.path.join(release_dir, project, "keys")): + try: + os.makedirs(os.path.join(release_dir, project, "keys")) + except: + print_error("Cannot create release directory") + raise + #Temporarily copy optionals_root for building. They will be removed later. optionals_modules = [] optional_files = [] From 79269db913dc1ef3706de9198090f6055648d0bb Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Thu, 23 Apr 2015 14:35:33 -0700 Subject: [PATCH 16/25] Added a notification for the Check External References setting. --- tools/make.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/make.py b/tools/make.py index b1038771b8..beb3055194 100644 --- a/tools/make.py +++ b/tools/make.py @@ -560,6 +560,8 @@ See the make.cfg file for additional build options. else: check_external = False + print_yellow("\nCheck external references is set to " + str(check_external)) + # Get the directory the make script is in. make_root = os.path.dirname(os.path.realpath(__file__)) make_root_parent = os.path.abspath(os.path.join(os.getcwd(), os.pardir)) From 898048eb95f1534524a6d67f2038973c5be42d98 Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Thu, 23 Apr 2015 14:53:49 -0700 Subject: [PATCH 17/25] Moved "copy_important_files" call in front of make release and after building is done Moved "cleanup_optionals" call in front of make release and after building is done --- tools/make.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tools/make.py b/tools/make.py index beb3055194..597ccb314a 100644 --- a/tools/make.py +++ b/tools/make.py @@ -1046,6 +1046,9 @@ See the make.cfg file for additional build options. print_green("\nDone.") + copy_important_files(module_root_parent,os.path.join(release_dir, "@ace")) + cleanup_optionals(optionals_modules) + # Make release if make_release: print_blue("\nMaking release: " + project + "-" + release_version + ".zip") @@ -1085,10 +1088,6 @@ See the make.cfg file for additional build options. except: print_error("Could not copy files. Is Arma 3 running?") - copy_important_files(module_root_parent,os.path.join(release_dir, "@ace")) - cleanup_optionals(optionals_modules) - - if __name__ == "__main__": main(sys.argv) input("Press Enter to continue...") From e207a11851af6072226e3a654b980167835598ec Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 24 Apr 2015 19:02:29 +0200 Subject: [PATCH 18/25] fix: Cannot zero when looking through optics of static weapons and vehicle mg/gmg, fix #836 --- addons/fcs/initKeybinds.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/fcs/initKeybinds.sqf b/addons/fcs/initKeybinds.sqf index 3f1a5707a8..8e79bc8056 100644 --- a/addons/fcs/initKeybinds.sqf +++ b/addons/fcs/initKeybinds.sqf @@ -35,7 +35,7 @@ // Conditions: canInteract if !([ACE_player, vehicle ACE_player, []] call EFUNC(common,canInteractWith)) exitWith {false}; // Conditions: specific - if !(call FUNC(canUseRangefinder) || FUNC(canUseFCS)) exitWith {false}; + if !(call FUNC(canUseFCS)) exitWith {false}; // Statement [vehicle ACE_player, [ACE_player] call EFUNC(common,getTurretIndex), 50] call FUNC(adjustRange); @@ -49,7 +49,7 @@ // Conditions: canInteract if !([ACE_player, vehicle ACE_player, []] call EFUNC(common,canInteractWith)) exitWith {false}; // Conditions: specific - if !(call FUNC(canUseRangefinder) || FUNC(canUseFCS)) exitWith {false}; + if !(call FUNC(canUseFCS)) exitWith {false}; // Statement [vehicle ACE_player, [ACE_player] call EFUNC(common,getTurretIndex), -50] call FUNC(adjustRange); From 819b7af42617795cddf1d7dafeb93bbd8a11908e Mon Sep 17 00:00:00 2001 From: ulteq Date: Fri, 24 Apr 2015 19:56:11 +0200 Subject: [PATCH 19/25] Added more compatibility modules: *hlcmods_ak *hlcmods_aug *rh_acc *rh_de *rh_m4 *rh_pdf *rksl_pm_ii --- optionals/hlcmods_ak_comp/CfgWeapons.hpp | 21 +++ optionals/hlcmods_aug_comp/CfgWeapons.hpp | 51 ++++++ optionals/hlcmods_aug_comp/config.cpp | 14 ++ .../hlcmods_aug_comp/script_component.hpp | 5 + optionals/rh_acc_comp/CfgWeapons.hpp | 131 ++++++++++++++ optionals/rh_acc_comp/config.cpp | 14 ++ optionals/rh_acc_comp/script_component.hpp | 5 + optionals/rh_de_comp/CfgAmmo.hpp | 161 ++++++++++++++++++ optionals/rh_de_comp/CfgWeapons.hpp | 140 +++++++++++++++ optionals/rh_de_comp/config.cpp | 15 ++ optionals/rh_de_comp/script_component.hpp | 5 + optionals/rh_pdw_comp/CfgAmmo.hpp | 15 ++ optionals/rh_pdw_comp/CfgWeapons.hpp | 10 ++ optionals/rh_pdw_comp/config.cpp | 15 ++ optionals/rh_pdw_comp/script_component.hpp | 5 + optionals/rksl_pm_ii_comp/CfgWeapons.hpp | 33 ++++ optionals/rksl_pm_ii_comp/config.cpp | 14 ++ .../rksl_pm_ii_comp/script_component.hpp | 5 + 18 files changed, 659 insertions(+) create mode 100644 optionals/hlcmods_aug_comp/CfgWeapons.hpp create mode 100644 optionals/hlcmods_aug_comp/config.cpp create mode 100644 optionals/hlcmods_aug_comp/script_component.hpp create mode 100644 optionals/rh_acc_comp/CfgWeapons.hpp create mode 100644 optionals/rh_acc_comp/config.cpp create mode 100644 optionals/rh_acc_comp/script_component.hpp create mode 100644 optionals/rh_de_comp/CfgAmmo.hpp create mode 100644 optionals/rh_de_comp/CfgWeapons.hpp create mode 100644 optionals/rh_de_comp/config.cpp create mode 100644 optionals/rh_de_comp/script_component.hpp create mode 100644 optionals/rh_pdw_comp/CfgAmmo.hpp create mode 100644 optionals/rh_pdw_comp/CfgWeapons.hpp create mode 100644 optionals/rh_pdw_comp/config.cpp create mode 100644 optionals/rh_pdw_comp/script_component.hpp create mode 100644 optionals/rksl_pm_ii_comp/CfgWeapons.hpp create mode 100644 optionals/rksl_pm_ii_comp/config.cpp create mode 100644 optionals/rksl_pm_ii_comp/script_component.hpp diff --git a/optionals/hlcmods_ak_comp/CfgWeapons.hpp b/optionals/hlcmods_ak_comp/CfgWeapons.hpp index 51a86e42cf..390d3e6177 100644 --- a/optionals/hlcmods_ak_comp/CfgWeapons.hpp +++ b/optionals/hlcmods_ak_comp/CfgWeapons.hpp @@ -1,7 +1,9 @@ class CfgWeapons { + class optic_dms; class hlc_ak_base; class hlc_rifle_ak12; + class InventoryOpticsItem_Base_F; class hlc_rifle_ak74: hlc_ak_base { ACE_barrelTwist=7.8699999; @@ -52,4 +54,23 @@ class CfgWeapons ACE_twistDirection=0; ACE_barrelLength=16.9; }; + + class HLC_Optic_PSO1 : optic_dms { + ACE_ScopeAdjust_Vertical[] = { 0, 0 }; + ACE_ScopeAdjust_Horizontal[] = { -10, 10 }; + ACE_ScopeAdjust_Increment = 0.5; + class ItemInfo : InventoryOpticsItem_Base_F { + class OpticsModes { + class Snip { + discreteDistance[]={100, 200, 300, 400, 450, 500, 550, 600, 650, 700, 750, 800, 850, 900, 950, 1000}; + discreteDistanceInitIndex=3; + }; + }; + }; + }; + class HLC_Optic_1p29 : HLC_Optic_PSO1 { + ACE_ScopeAdjust_Vertical[] = {}; + ACE_ScopeAdjust_Horizontal[] = {}; + ACE_ScopeAdjust_Increment = 0; + }; }; \ No newline at end of file diff --git a/optionals/hlcmods_aug_comp/CfgWeapons.hpp b/optionals/hlcmods_aug_comp/CfgWeapons.hpp new file mode 100644 index 0000000000..b46cf485e1 --- /dev/null +++ b/optionals/hlcmods_aug_comp/CfgWeapons.hpp @@ -0,0 +1,51 @@ + +class CfgWeapons +{ + class Rifle_Base_F; + class hlc_aug_base; + class hlc_rifle_aug: hlc_aug_base + { + ACE_barrelTwist=9; + ACE_barrelLength=20; + }; + class hlc_rifle_auga1carb: hlc_rifle_aug + { + ACE_barrelTwist=9; + ACE_barrelLength=16; + }; + class hlc_rifle_aughbar: hlc_rifle_aug + { + ACE_barrelTwist=9; + ACE_barrelLength=24; + }; + class hlc_rifle_augpara: hlc_rifle_aug + { + ACE_barrelTwist=9; + ACE_barrelLength=16.5; + }; + class hlc_rifle_auga2: hlc_rifle_aug + { + ACE_barrelTwist=9; + ACE_barrelLength=20; + }; + class hlc_rifle_auga2para: hlc_rifle_auga2 + { + ACE_barrelTwist=9; + ACE_barrelLength=16.5; + }; + class hlc_rifle_auga2carb: hlc_rifle_auga2 + { + ACE_barrelTwist=9; + ACE_barrelLength=18; + }; + class hlc_rifle_auga2lsw: hlc_rifle_aughbar + { + ACE_barrelTwist=9; + ACE_barrelLength=24; + }; + class hlc_rifle_auga3: hlc_rifle_aug + { + ACE_barrelTwist=9; + ACE_barrelLength=18; + }; +}; \ No newline at end of file diff --git a/optionals/hlcmods_aug_comp/config.cpp b/optionals/hlcmods_aug_comp/config.cpp new file mode 100644 index 0000000000..06192a6ffd --- /dev/null +++ b/optionals/hlcmods_aug_comp/config.cpp @@ -0,0 +1,14 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"hlcweapons_AUG"}; + author[]={"Ruthberg"}; + VERSION_CONFIG; + }; +}; + +#include "CfgWeapons.hpp" diff --git a/optionals/hlcmods_aug_comp/script_component.hpp b/optionals/hlcmods_aug_comp/script_component.hpp new file mode 100644 index 0000000000..d5a6712b6b --- /dev/null +++ b/optionals/hlcmods_aug_comp/script_component.hpp @@ -0,0 +1,5 @@ +#define COMPONENT hlcweapons_AUG_comp + +#include "\z\ace\addons\main\script_mod.hpp" + +#include "\z\ace\addons\main\script_macros.hpp" diff --git a/optionals/rh_acc_comp/CfgWeapons.hpp b/optionals/rh_acc_comp/CfgWeapons.hpp new file mode 100644 index 0000000000..4dda8ffbe0 --- /dev/null +++ b/optionals/rh_acc_comp/CfgWeapons.hpp @@ -0,0 +1,131 @@ + +class CfgWeapons { + class ItemCore; + class InventoryOpticsItem_Base_F; + + class RH_accupoint : ItemCore { + ACE_ScopeAdjust_Vertical[] = { -4, 30 }; + ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; + ACE_ScopeAdjust_Increment = 0.1; + class ItemInfo : InventoryOpticsItem_Base_F { + class OpticsModes { + class Accupoint { + discreteDistance[] = { 100 }; + discreteDistanceInitIndex = 0; + }; + }; + }; + }; + + class RH_m3lr : ItemCore { + ACE_ScopeAdjust_Vertical[] = { -4, 30 }; + ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; + ACE_ScopeAdjust_Increment = 0.1; + class ItemInfo : InventoryOpticsItem_Base_F { + class OpticsModes { + class m3lr { + discreteDistance[] = { 100 }; + discreteDistanceInitIndex = 0; + }; + }; + }; + }; + + class RH_leu_mk4 : ItemCore { + ACE_ScopeAdjust_Vertical[] = { -4, 30 }; + ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; + ACE_ScopeAdjust_Increment = 0.1; + class ItemInfo : InventoryOpticsItem_Base_F { + class OpticsModes { + class mk4 { + discreteDistance[] = { 100 }; + discreteDistanceInitIndex = 0; + }; + }; + }; + }; + + class RH_c79 : ItemCore { + ACE_ScopeAdjust_Vertical[] = { -4, 30 }; + ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; + ACE_ScopeAdjust_Increment = 0.1; + class ItemInfo : InventoryOpticsItem_Base_F { + class OpticsModes { + class c79scope { + discreteDistance[] = { 100 }; + discreteDistanceInitIndex = 0; + }; + }; + }; + }; + + class RH_c79_2d : ItemCore { + ACE_ScopeAdjust_Vertical[] = { -4, 30 }; + ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; + ACE_ScopeAdjust_Increment = 0.1; + class ItemInfo : InventoryOpticsItem_Base_F { + class OpticsModes { + class c79scope { + discreteDistance[] = { 100 }; + discreteDistanceInitIndex = 0; + }; + }; + }; + }; + + class RH_anpvs10 : ItemCore { + ACE_ScopeAdjust_Vertical[] = { -4, 30 }; + ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; + ACE_ScopeAdjust_Increment = 0.1; + class ItemInfo : InventoryOpticsItem_Base_F { + class OpticsModes { + class pvs10 { + discreteDistance[] = { 100 }; + discreteDistanceInitIndex = 0; + }; + }; + }; + }; + + class RH_pas13cm : ItemCore { + ACE_ScopeAdjust_Vertical[] = { -4, 30 }; + ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; + ACE_ScopeAdjust_Increment = 0.1; + class ItemInfo : InventoryOpticsItem_Base_F { + class OpticsModes { + class MTWS { + discreteDistance[] = { 100 }; + discreteDistanceInitIndex = 0; + }; + }; + }; + }; + + class RH_pas13cmg : ItemCore { + ACE_ScopeAdjust_Vertical[] = { -4, 30 }; + ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; + ACE_ScopeAdjust_Increment = 0.1; + class ItemInfo : InventoryOpticsItem_Base_F { + class OpticsModes { + class MTWSmg { + discreteDistance[] = { 100 }; + discreteDistanceInitIndex = 0; + }; + }; + }; + }; + + class RH_pas13ch : ItemCore { + ACE_ScopeAdjust_Vertical[] = { -4, 30 }; + ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; + ACE_ScopeAdjust_Increment = 0.1; + class ItemInfo : InventoryOpticsItem_Base_F { + class OpticsModes { + class HTWS { + discreteDistance[] = { 100 }; + discreteDistanceInitIndex = 0; + }; + }; + }; + }; +}; diff --git a/optionals/rh_acc_comp/config.cpp b/optionals/rh_acc_comp/config.cpp new file mode 100644 index 0000000000..9f563bd157 --- /dev/null +++ b/optionals/rh_acc_comp/config.cpp @@ -0,0 +1,14 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"RH_acc"}; + author[]={"Ruthberg"}; + VERSION_CONFIG; + }; +}; + +#include "CfgWeapons.hpp" diff --git a/optionals/rh_acc_comp/script_component.hpp b/optionals/rh_acc_comp/script_component.hpp new file mode 100644 index 0000000000..4b36a38ce0 --- /dev/null +++ b/optionals/rh_acc_comp/script_component.hpp @@ -0,0 +1,5 @@ +#define COMPONENT RH_acc_comp + +#include "\z\ace\addons\main\script_mod.hpp" + +#include "\z\ace\addons\main\script_macros.hpp" diff --git a/optionals/rh_de_comp/CfgAmmo.hpp b/optionals/rh_de_comp/CfgAmmo.hpp new file mode 100644 index 0000000000..b66b55f530 --- /dev/null +++ b/optionals/rh_de_comp/CfgAmmo.hpp @@ -0,0 +1,161 @@ + +class CfgAmmo +{ + class BulletBase; + class RH_50_AE_Ball: BulletBase + { + ACE_caliber=0.5; + ACE_bulletLength=1.110; + ACE_bulletMass=325; + ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + ACE_ballisticCoefficients[]={0.228}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={360, 398, 420}; + ACE_barrelLengths[]={4, 6, 9}; + }; + class RH_454_Casull: BulletBase + { + ACE_caliber=0.452; + ACE_bulletLength=0.895; + ACE_bulletMass=325; + ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + ACE_ballisticCoefficients[]={0.171}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={450, 490, 500}; + ACE_barrelLengths[]={4, 7.5, 9}; + }; + class RH_32ACP: BulletBase + { + ACE_caliber=0.3125; + ACE_bulletLength=0.610; + ACE_bulletMass=65; + ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + ACE_ballisticCoefficients[]={0.118}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={282, 300, 320}; + ACE_barrelLengths[]={4, 5, 9}; + }; + class RH_45ACP: BulletBase + { + ACE_caliber=0.452; + ACE_bulletLength=0.68; + ACE_bulletMass=230; + ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + ACE_ballisticCoefficients[]={0.195}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={230, 250, 285}; + ACE_barrelLengths[]={4, 5, 9}; + }; + class RH_B_40SW: BulletBase + { + ACE_caliber=0.4; + ACE_bulletLength=0.447; + ACE_bulletMass=135; + ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + ACE_ballisticCoefficients[]={0.105, 0.115, 0.120, 0.105}; + ACE_velocityBoundaries[]={365, 305, 259}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={360, 380, 400}; + ACE_barrelLengths[]={4, 6, 9}; + }; + class RH_44mag_ball: BulletBase + { + ACE_caliber=0.429; + ACE_bulletLength=0.804; + ACE_bulletMass=200; + ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + ACE_ballisticCoefficients[]={0.172}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={360, 390, 420}; + ACE_barrelLengths[]={4, 7.5, 9}; + }; + class RH_357mag_ball: BulletBase + { + ACE_caliber=0.357; + ACE_bulletLength=0.541; + ACE_bulletMass=125; + ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + ACE_ballisticCoefficients[]={0.148}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={490, 510, 535}; + ACE_barrelLengths[]={4, 6, 9}; + }; + class RH_762x25: BulletBase + { + ACE_caliber=0.310; + ACE_bulletLength=0.5455; + ACE_bulletMass=86; + ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + ACE_ballisticCoefficients[]={0.17}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={360, 380, 400}; + ACE_barrelLengths[]={4, 6, 9}; + }; + class RH_9x18_Ball: BulletBase + { + ACE_caliber=0.365; + ACE_bulletLength=0.610; + ACE_bulletMass=92.6; + ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + ACE_ballisticCoefficients[]={0.125}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={298, 330, 350}; + ACE_barrelLengths[]={3.8, 5, 9}; + }; + class RH_B_9x19_Ball: BulletBase + { + ACE_caliber=0.355; + ACE_bulletLength=0.610; + ACE_bulletMass=124; + ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + ACE_ballisticCoefficients[]={0.165}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={340, 370, 400}; + ACE_barrelLengths[]={4, 5, 9}; + }; + class RH_B_22LR_SD: BulletBase + { + ACE_caliber=0.223; + ACE_bulletLength=0.45; + ACE_bulletMass=38; + ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + ACE_ballisticCoefficients[]={0.111}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={330, 340, 360}; + ACE_barrelLengths[]={4, 6, 9}; + }; + class RH_57x28mm: BulletBase + { + ACE_caliber=0.224; + ACE_bulletLength=0.495; + ACE_bulletMass=28; + ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619}; + ACE_ballisticCoefficients[]={0.144}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={550, 625, 720}; + ACE_barrelLengths[]={4, 6, 10.35}; + }; +}; \ No newline at end of file diff --git a/optionals/rh_de_comp/CfgWeapons.hpp b/optionals/rh_de_comp/CfgWeapons.hpp new file mode 100644 index 0000000000..8fdff293c9 --- /dev/null +++ b/optionals/rh_de_comp/CfgWeapons.hpp @@ -0,0 +1,140 @@ +class CfgWeapons +{ + class Pistol_Base_F; + class RH_Pistol_Base_F; + class RH_deagle: RH_Pistol_Base_F + { + ACE_barrelTwist=19; + ACE_barrelLength=6; + }; + class RH_mateba: Pistol_Base_F + { + ACE_barrelTwist=14; + ACE_barrelLength=6; + }; + class RH_mp412: Pistol_Base_F + { + ACE_barrelTwist=10; + ACE_barrelLength=6; + }; + class RH_python: Pistol_Base_F + { + ACE_barrelTwist=14; + ACE_barrelLength=6; + }; + class RH_bull: RH_python + { + ACE_barrelTwist=24; + ACE_barrelLength=6.5; + }; + class RH_ttracker: Pistol_Base_F + { + ACE_barrelTwist=12; + ACE_barrelLength=4; + }; + class RH_cz75: RH_Pistol_Base_F + { + ACE_barrelTwist=9.7; + ACE_barrelLength=4.7; + }; + class RH_p226: RH_Pistol_Base_F + { + ACE_barrelTwist=9.8; + ACE_barrelLength=4.4; + }; + class RH_sw659: RH_Pistol_Base_F + { + ACE_barrelTwist=9.8; + ACE_barrelLength=7.44; + }; + class RH_usp: RH_Pistol_Base_F + { + ACE_barrelTwist=16; + ACE_barrelLength=4.41; + }; + class RH_uspm: RH_Pistol_Base_F + { + ACE_barrelTwist=16; + ACE_barrelLength=6; + }; + class RH_kimber: RH_Pistol_Base_F + { + ACE_barrelTwist=16; + ACE_barrelLength=5; + }; + class RH_m1911: RH_Pistol_Base_F + { + ACE_barrelTwist=16; + ACE_barrelLength=5; + }; + class RH_tt33: RH_Pistol_Base_F + { + ACE_barrelTwist=9.45; + ACE_barrelLength=4.6; + }; + class RH_mak: RH_Pistol_Base_F + { + ACE_barrelTwist=9.45; + ACE_barrelLength=3.68; + }; + class RH_mk2: RH_Pistol_Base_F + { + ACE_barrelTwist=16; + ACE_barrelLength=4; + }; + class RH_m9: RH_Pistol_Base_F + { + ACE_barrelTwist=9.8; + ACE_barrelLength=4.9; + }; + class RH_g18: RH_Pistol_Base_F + { + ACE_barrelTwist=9.8; + ACE_barrelLength=4.49; + }; + class RH_g17: RH_Pistol_Base_F + { + ACE_barrelTwist=9.8; + ACE_barrelLength=4.49; + }; + class RH_g19: RH_Pistol_Base_F + { + ACE_barrelTwist=9.8; + ACE_barrelLength=4; + }; + class RH_gsh18: RH_Pistol_Base_F + { + ACE_barrelTwist=9.8; + ACE_barrelLength=4.1; + }; + class RH_fnp45: RH_Pistol_Base_F + { + ACE_barrelTwist=16; + ACE_barrelLength=4.5; + }; + class RH_fn57: RH_fnp45 + { + ACE_barrelTwist=9.1; + ACE_barrelLength=4.8; + }; + class RH_vp70: RH_Pistol_Base_F + { + ACE_barrelTwist=9.8; + ACE_barrelLength=4.6; + }; + class RH_vz61: RH_Pistol_Base_F + { + ACE_barrelTwist=16; + ACE_barrelLength=4.5; + }; + class RH_tec9: RH_Pistol_Base_F + { + ACE_barrelTwist=9.8; + ACE_barrelLength=5; + }; + class RH_muzi: RH_Pistol_Base_F + { + ACE_barrelTwist=9.8; + ACE_barrelLength=5; + }; +}; \ No newline at end of file diff --git a/optionals/rh_de_comp/config.cpp b/optionals/rh_de_comp/config.cpp new file mode 100644 index 0000000000..3d82eab05a --- /dev/null +++ b/optionals/rh_de_comp/config.cpp @@ -0,0 +1,15 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"RH_de_cfg"}; + author[]={"Ruthberg"}; + VERSION_CONFIG; + }; +}; + +#include "CfgAmmo.hpp" +#include "CfgWeapons.hpp" diff --git a/optionals/rh_de_comp/script_component.hpp b/optionals/rh_de_comp/script_component.hpp new file mode 100644 index 0000000000..07ed06ae3f --- /dev/null +++ b/optionals/rh_de_comp/script_component.hpp @@ -0,0 +1,5 @@ +#define COMPONENT RH_de_cfg_comp + +#include "\z\ace\addons\main\script_mod.hpp" + +#include "\z\ace\addons\main\script_macros.hpp" diff --git a/optionals/rh_pdw_comp/CfgAmmo.hpp b/optionals/rh_pdw_comp/CfgAmmo.hpp new file mode 100644 index 0000000000..706344ff8c --- /dev/null +++ b/optionals/rh_pdw_comp/CfgAmmo.hpp @@ -0,0 +1,15 @@ + +class BulletBase; +class RH_B_6x35: BulletBase +{ + ACE_caliber=0.224; + ACE_bulletLength=0.445; + ACE_bulletMass=65; + ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ballisticCoefficients[]={0.26}; + ACE_velocityBoundaries[]={}; + ACE_standardAtmosphere="ASM"; + ACE_dragModel=1; + ACE_muzzleVelocities[]={730, 750, 760}; + ACE_barrelLengths[]={8, 10, 12}; +}; \ No newline at end of file diff --git a/optionals/rh_pdw_comp/CfgWeapons.hpp b/optionals/rh_pdw_comp/CfgWeapons.hpp new file mode 100644 index 0000000000..b009a202ce --- /dev/null +++ b/optionals/rh_pdw_comp/CfgWeapons.hpp @@ -0,0 +1,10 @@ + +class CfgWeapons +{ + class Rifle_Base_F; + class RH_PDW: Rifle_Base_F + { + ACE_barrelTwist=7; + ACE_barrelLength=10; + }; +}; diff --git a/optionals/rh_pdw_comp/config.cpp b/optionals/rh_pdw_comp/config.cpp new file mode 100644 index 0000000000..4aed0e6241 --- /dev/null +++ b/optionals/rh_pdw_comp/config.cpp @@ -0,0 +1,15 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"RH_PDW"}; + author[]={"Ruthberg"}; + VERSION_CONFIG; + }; +}; + +#include "CfgAmmo.hpp" +#include "CfgWeapons.hpp" diff --git a/optionals/rh_pdw_comp/script_component.hpp b/optionals/rh_pdw_comp/script_component.hpp new file mode 100644 index 0000000000..67c4617e06 --- /dev/null +++ b/optionals/rh_pdw_comp/script_component.hpp @@ -0,0 +1,5 @@ +#define COMPONENT RH_PDW_comp + +#include "\z\ace\addons\main\script_mod.hpp" + +#include "\z\ace\addons\main\script_macros.hpp" diff --git a/optionals/rksl_pm_ii_comp/CfgWeapons.hpp b/optionals/rksl_pm_ii_comp/CfgWeapons.hpp new file mode 100644 index 0000000000..621dd98b71 --- /dev/null +++ b/optionals/rksl_pm_ii_comp/CfgWeapons.hpp @@ -0,0 +1,33 @@ + +class CfgWeapons { + class ItemCore; + class InventoryOpticsItem_Base_F; + + class RKSL_optic_PMII_312 : ItemCore { + ACE_ScopeAdjust_Vertical[] = { -4, 30 }; + ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; + ACE_ScopeAdjust_Increment = 0.1; + class ItemInfo : InventoryOpticsItem_Base_F { + class OpticsModes { + class Snip { + discreteDistance[] = { 100 }; + discreteDistanceInitIndex = 0; + }; + }; + }; + }; + + class RKSL_optic_PMII_312_sunshade : ItemCore { + ACE_ScopeAdjust_Vertical[] = { -4, 30 }; + ACE_ScopeAdjust_Horizontal[] = { -6, 6 }; + ACE_ScopeAdjust_Increment = 0.1; + class ItemInfo : InventoryOpticsItem_Base_F { + class OpticsModes { + class Snip { + discreteDistance[] = { 100 }; + discreteDistanceInitIndex = 0; + }; + }; + }; + }; +}; diff --git a/optionals/rksl_pm_ii_comp/config.cpp b/optionals/rksl_pm_ii_comp/config.cpp new file mode 100644 index 0000000000..c3ed720f8b --- /dev/null +++ b/optionals/rksl_pm_ii_comp/config.cpp @@ -0,0 +1,14 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"RKSL_PMII"}; + author[]={"Ruthberg"}; + VERSION_CONFIG; + }; +}; + +#include "CfgWeapons.hpp" diff --git a/optionals/rksl_pm_ii_comp/script_component.hpp b/optionals/rksl_pm_ii_comp/script_component.hpp new file mode 100644 index 0000000000..a98639b0e8 --- /dev/null +++ b/optionals/rksl_pm_ii_comp/script_component.hpp @@ -0,0 +1,5 @@ +#define COMPONENT RKSL_PMII_comp + +#include "\z\ace\addons\main\script_mod.hpp" + +#include "\z\ace\addons\main\script_macros.hpp" From af6f9f5a8c88a901d6a3f78938c8bb850853cac5 Mon Sep 17 00:00:00 2001 From: ulteq Date: Fri, 24 Apr 2015 19:56:36 +0200 Subject: [PATCH 20/25] Removed unnecessary required addon --- optionals/rh_m4_comp/config.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/optionals/rh_m4_comp/config.cpp b/optionals/rh_m4_comp/config.cpp index 937097354f..9c28be4f89 100644 --- a/optionals/rh_m4_comp/config.cpp +++ b/optionals/rh_m4_comp/config.cpp @@ -5,7 +5,7 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"asdg_jointrails","RH_m4_cfg"}; + requiredAddons[] = {"RH_m4_cfg"}; author[]={"Ruthberg"}; VERSION_CONFIG; }; From 9f2196ffcfc341378ab194d2ae10aa87d2f3161f Mon Sep 17 00:00:00 2001 From: ulteq Date: Fri, 24 Apr 2015 19:56:51 +0200 Subject: [PATCH 21/25] Spaces --- extras/CfgWeaponsReference.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extras/CfgWeaponsReference.hpp b/extras/CfgWeaponsReference.hpp index 77ce494e39..4821d53813 100644 --- a/extras/CfgWeaponsReference.hpp +++ b/extras/CfgWeaponsReference.hpp @@ -294,7 +294,7 @@ class CfgWeapons class RH_gsh18 : Pistol_Base_F { ACE_barrelTwist=9.8; - ACE_barrelLength=4.1; + ACE_barrelLength=4.1; }; class RH_mateba : Pistol_Base_F { @@ -329,7 +329,7 @@ class CfgWeapons class RH_fn57 : Pistol_Base_F { ACE_barrelTwist=9.1; - ACE_barrelLength=4.8; + ACE_barrelLength=4.8; }; class RH_vp70 : Pistol_Base_F { From 9e33b7a32e3beb589cbe0262ac1366ba84abee4a Mon Sep 17 00:00:00 2001 From: ulteq Date: Fri, 24 Apr 2015 20:00:35 +0200 Subject: [PATCH 22/25] Renamed all compatibility module to follow the new naming scheme: *compat_xxx --- optionals/{asdg_comp => compat_asdg}/config.cpp | 0 optionals/{asdg_comp => compat_asdg}/script_component.hpp | 0 optionals/{hlc_ar15_comp => compat_hlc_ar15}/CfgWeapons.hpp | 0 optionals/{hlc_ar15_comp => compat_hlc_ar15}/config.cpp | 0 optionals/{hlc_ar15_comp => compat_hlc_ar15}/script_component.hpp | 0 optionals/{hlc_wp_mp5_comp => compat_hlc_wp_mp5}/CfgWeapons.hpp | 0 optionals/{hlc_wp_mp5_comp => compat_hlc_wp_mp5}/config.cpp | 0 .../{hlc_wp_mp5_comp => compat_hlc_wp_mp5}/script_component.hpp | 0 optionals/{hlcmods_ak_comp => compat_hlcmods_ak}/CfgWeapons.hpp | 0 optionals/{hlcmods_ak_comp => compat_hlcmods_ak}/config.cpp | 0 .../{hlcmods_ak_comp => compat_hlcmods_ak}/script_component.hpp | 0 optionals/{hlcmods_aug_comp => compat_hlcmods_aug}/CfgWeapons.hpp | 0 optionals/{hlcmods_aug_comp => compat_hlcmods_aug}/config.cpp | 0 .../{hlcmods_aug_comp => compat_hlcmods_aug}/script_component.hpp | 0 optionals/{hlcmods_core_comp => compat_hlcmods_core}/CfgAmmo.hpp | 0 optionals/{hlcmods_core_comp => compat_hlcmods_core}/config.cpp | 0 .../script_component.hpp | 0 optionals/{hlcmods_fal_comp => compat_hlcmods_fal}/CfgWeapons.hpp | 0 optionals/{hlcmods_fal_comp => compat_hlcmods_fal}/config.cpp | 0 .../{hlcmods_fal_comp => compat_hlcmods_fal}/script_component.hpp | 0 optionals/{hlcmods_g3_comp => compat_hlcmods_g3}/CfgWeapons.hpp | 0 optionals/{hlcmods_g3_comp => compat_hlcmods_g3}/config.cpp | 0 .../{hlcmods_g3_comp => compat_hlcmods_g3}/script_component.hpp | 0 optionals/{hlcmods_m14_comp => compat_hlcmods_m14}/CfgWeapons.hpp | 0 optionals/{hlcmods_m14_comp => compat_hlcmods_m14}/config.cpp | 0 .../{hlcmods_m14_comp => compat_hlcmods_m14}/script_component.hpp | 0 .../{hlcmods_m60e4_comp => compat_hlcmods_m60e4}/CfgWeapons.hpp | 0 optionals/{hlcmods_m60e4_comp => compat_hlcmods_m60e4}/config.cpp | 0 .../script_component.hpp | 0 optionals/{rh_acc_comp => compat_rh_acc}/CfgWeapons.hpp | 0 optionals/{rh_acc_comp => compat_rh_acc}/config.cpp | 0 optionals/{rh_acc_comp => compat_rh_acc}/script_component.hpp | 0 optionals/{rh_de_comp => compat_rh_de}/CfgAmmo.hpp | 0 optionals/{rh_de_comp => compat_rh_de}/CfgWeapons.hpp | 0 optionals/{rh_de_comp => compat_rh_de}/config.cpp | 0 optionals/{rh_de_comp => compat_rh_de}/script_component.hpp | 0 optionals/{rh_m4_comp => compat_rh_m4}/CfgAmmo.hpp | 0 optionals/{rh_m4_comp => compat_rh_m4}/CfgWeapons.hpp | 0 optionals/{rh_m4_comp => compat_rh_m4}/config.cpp | 0 optionals/{rh_m4_comp => compat_rh_m4}/script_component.hpp | 0 optionals/{rh_pdw_comp => compat_rh_pdw}/CfgAmmo.hpp | 0 optionals/{rh_pdw_comp => compat_rh_pdw}/CfgWeapons.hpp | 0 optionals/{rh_pdw_comp => compat_rh_pdw}/config.cpp | 0 optionals/{rh_pdw_comp => compat_rh_pdw}/script_component.hpp | 0 optionals/{rksl_pm_ii_comp => compat_rksl_pm_ii}/CfgWeapons.hpp | 0 optionals/{rksl_pm_ii_comp => compat_rksl_pm_ii}/config.cpp | 0 .../{rksl_pm_ii_comp => compat_rksl_pm_ii}/script_component.hpp | 0 47 files changed, 0 insertions(+), 0 deletions(-) rename optionals/{asdg_comp => compat_asdg}/config.cpp (100%) rename optionals/{asdg_comp => compat_asdg}/script_component.hpp (100%) rename optionals/{hlc_ar15_comp => compat_hlc_ar15}/CfgWeapons.hpp (100%) rename optionals/{hlc_ar15_comp => compat_hlc_ar15}/config.cpp (100%) rename optionals/{hlc_ar15_comp => compat_hlc_ar15}/script_component.hpp (100%) rename optionals/{hlc_wp_mp5_comp => compat_hlc_wp_mp5}/CfgWeapons.hpp (100%) rename optionals/{hlc_wp_mp5_comp => compat_hlc_wp_mp5}/config.cpp (100%) rename optionals/{hlc_wp_mp5_comp => compat_hlc_wp_mp5}/script_component.hpp (100%) rename optionals/{hlcmods_ak_comp => compat_hlcmods_ak}/CfgWeapons.hpp (100%) rename optionals/{hlcmods_ak_comp => compat_hlcmods_ak}/config.cpp (100%) rename optionals/{hlcmods_ak_comp => compat_hlcmods_ak}/script_component.hpp (100%) rename optionals/{hlcmods_aug_comp => compat_hlcmods_aug}/CfgWeapons.hpp (100%) rename optionals/{hlcmods_aug_comp => compat_hlcmods_aug}/config.cpp (100%) rename optionals/{hlcmods_aug_comp => compat_hlcmods_aug}/script_component.hpp (100%) rename optionals/{hlcmods_core_comp => compat_hlcmods_core}/CfgAmmo.hpp (100%) rename optionals/{hlcmods_core_comp => compat_hlcmods_core}/config.cpp (100%) rename optionals/{hlcmods_core_comp => compat_hlcmods_core}/script_component.hpp (100%) rename optionals/{hlcmods_fal_comp => compat_hlcmods_fal}/CfgWeapons.hpp (100%) rename optionals/{hlcmods_fal_comp => compat_hlcmods_fal}/config.cpp (100%) rename optionals/{hlcmods_fal_comp => compat_hlcmods_fal}/script_component.hpp (100%) rename optionals/{hlcmods_g3_comp => compat_hlcmods_g3}/CfgWeapons.hpp (100%) rename optionals/{hlcmods_g3_comp => compat_hlcmods_g3}/config.cpp (100%) rename optionals/{hlcmods_g3_comp => compat_hlcmods_g3}/script_component.hpp (100%) rename optionals/{hlcmods_m14_comp => compat_hlcmods_m14}/CfgWeapons.hpp (100%) rename optionals/{hlcmods_m14_comp => compat_hlcmods_m14}/config.cpp (100%) rename optionals/{hlcmods_m14_comp => compat_hlcmods_m14}/script_component.hpp (100%) rename optionals/{hlcmods_m60e4_comp => compat_hlcmods_m60e4}/CfgWeapons.hpp (100%) rename optionals/{hlcmods_m60e4_comp => compat_hlcmods_m60e4}/config.cpp (100%) rename optionals/{hlcmods_m60e4_comp => compat_hlcmods_m60e4}/script_component.hpp (100%) rename optionals/{rh_acc_comp => compat_rh_acc}/CfgWeapons.hpp (100%) rename optionals/{rh_acc_comp => compat_rh_acc}/config.cpp (100%) rename optionals/{rh_acc_comp => compat_rh_acc}/script_component.hpp (100%) rename optionals/{rh_de_comp => compat_rh_de}/CfgAmmo.hpp (100%) rename optionals/{rh_de_comp => compat_rh_de}/CfgWeapons.hpp (100%) rename optionals/{rh_de_comp => compat_rh_de}/config.cpp (100%) rename optionals/{rh_de_comp => compat_rh_de}/script_component.hpp (100%) rename optionals/{rh_m4_comp => compat_rh_m4}/CfgAmmo.hpp (100%) rename optionals/{rh_m4_comp => compat_rh_m4}/CfgWeapons.hpp (100%) rename optionals/{rh_m4_comp => compat_rh_m4}/config.cpp (100%) rename optionals/{rh_m4_comp => compat_rh_m4}/script_component.hpp (100%) rename optionals/{rh_pdw_comp => compat_rh_pdw}/CfgAmmo.hpp (100%) rename optionals/{rh_pdw_comp => compat_rh_pdw}/CfgWeapons.hpp (100%) rename optionals/{rh_pdw_comp => compat_rh_pdw}/config.cpp (100%) rename optionals/{rh_pdw_comp => compat_rh_pdw}/script_component.hpp (100%) rename optionals/{rksl_pm_ii_comp => compat_rksl_pm_ii}/CfgWeapons.hpp (100%) rename optionals/{rksl_pm_ii_comp => compat_rksl_pm_ii}/config.cpp (100%) rename optionals/{rksl_pm_ii_comp => compat_rksl_pm_ii}/script_component.hpp (100%) diff --git a/optionals/asdg_comp/config.cpp b/optionals/compat_asdg/config.cpp similarity index 100% rename from optionals/asdg_comp/config.cpp rename to optionals/compat_asdg/config.cpp diff --git a/optionals/asdg_comp/script_component.hpp b/optionals/compat_asdg/script_component.hpp similarity index 100% rename from optionals/asdg_comp/script_component.hpp rename to optionals/compat_asdg/script_component.hpp diff --git a/optionals/hlc_ar15_comp/CfgWeapons.hpp b/optionals/compat_hlc_ar15/CfgWeapons.hpp similarity index 100% rename from optionals/hlc_ar15_comp/CfgWeapons.hpp rename to optionals/compat_hlc_ar15/CfgWeapons.hpp diff --git a/optionals/hlc_ar15_comp/config.cpp b/optionals/compat_hlc_ar15/config.cpp similarity index 100% rename from optionals/hlc_ar15_comp/config.cpp rename to optionals/compat_hlc_ar15/config.cpp diff --git a/optionals/hlc_ar15_comp/script_component.hpp b/optionals/compat_hlc_ar15/script_component.hpp similarity index 100% rename from optionals/hlc_ar15_comp/script_component.hpp rename to optionals/compat_hlc_ar15/script_component.hpp diff --git a/optionals/hlc_wp_mp5_comp/CfgWeapons.hpp b/optionals/compat_hlc_wp_mp5/CfgWeapons.hpp similarity index 100% rename from optionals/hlc_wp_mp5_comp/CfgWeapons.hpp rename to optionals/compat_hlc_wp_mp5/CfgWeapons.hpp diff --git a/optionals/hlc_wp_mp5_comp/config.cpp b/optionals/compat_hlc_wp_mp5/config.cpp similarity index 100% rename from optionals/hlc_wp_mp5_comp/config.cpp rename to optionals/compat_hlc_wp_mp5/config.cpp diff --git a/optionals/hlc_wp_mp5_comp/script_component.hpp b/optionals/compat_hlc_wp_mp5/script_component.hpp similarity index 100% rename from optionals/hlc_wp_mp5_comp/script_component.hpp rename to optionals/compat_hlc_wp_mp5/script_component.hpp diff --git a/optionals/hlcmods_ak_comp/CfgWeapons.hpp b/optionals/compat_hlcmods_ak/CfgWeapons.hpp similarity index 100% rename from optionals/hlcmods_ak_comp/CfgWeapons.hpp rename to optionals/compat_hlcmods_ak/CfgWeapons.hpp diff --git a/optionals/hlcmods_ak_comp/config.cpp b/optionals/compat_hlcmods_ak/config.cpp similarity index 100% rename from optionals/hlcmods_ak_comp/config.cpp rename to optionals/compat_hlcmods_ak/config.cpp diff --git a/optionals/hlcmods_ak_comp/script_component.hpp b/optionals/compat_hlcmods_ak/script_component.hpp similarity index 100% rename from optionals/hlcmods_ak_comp/script_component.hpp rename to optionals/compat_hlcmods_ak/script_component.hpp diff --git a/optionals/hlcmods_aug_comp/CfgWeapons.hpp b/optionals/compat_hlcmods_aug/CfgWeapons.hpp similarity index 100% rename from optionals/hlcmods_aug_comp/CfgWeapons.hpp rename to optionals/compat_hlcmods_aug/CfgWeapons.hpp diff --git a/optionals/hlcmods_aug_comp/config.cpp b/optionals/compat_hlcmods_aug/config.cpp similarity index 100% rename from optionals/hlcmods_aug_comp/config.cpp rename to optionals/compat_hlcmods_aug/config.cpp diff --git a/optionals/hlcmods_aug_comp/script_component.hpp b/optionals/compat_hlcmods_aug/script_component.hpp similarity index 100% rename from optionals/hlcmods_aug_comp/script_component.hpp rename to optionals/compat_hlcmods_aug/script_component.hpp diff --git a/optionals/hlcmods_core_comp/CfgAmmo.hpp b/optionals/compat_hlcmods_core/CfgAmmo.hpp similarity index 100% rename from optionals/hlcmods_core_comp/CfgAmmo.hpp rename to optionals/compat_hlcmods_core/CfgAmmo.hpp diff --git a/optionals/hlcmods_core_comp/config.cpp b/optionals/compat_hlcmods_core/config.cpp similarity index 100% rename from optionals/hlcmods_core_comp/config.cpp rename to optionals/compat_hlcmods_core/config.cpp diff --git a/optionals/hlcmods_core_comp/script_component.hpp b/optionals/compat_hlcmods_core/script_component.hpp similarity index 100% rename from optionals/hlcmods_core_comp/script_component.hpp rename to optionals/compat_hlcmods_core/script_component.hpp diff --git a/optionals/hlcmods_fal_comp/CfgWeapons.hpp b/optionals/compat_hlcmods_fal/CfgWeapons.hpp similarity index 100% rename from optionals/hlcmods_fal_comp/CfgWeapons.hpp rename to optionals/compat_hlcmods_fal/CfgWeapons.hpp diff --git a/optionals/hlcmods_fal_comp/config.cpp b/optionals/compat_hlcmods_fal/config.cpp similarity index 100% rename from optionals/hlcmods_fal_comp/config.cpp rename to optionals/compat_hlcmods_fal/config.cpp diff --git a/optionals/hlcmods_fal_comp/script_component.hpp b/optionals/compat_hlcmods_fal/script_component.hpp similarity index 100% rename from optionals/hlcmods_fal_comp/script_component.hpp rename to optionals/compat_hlcmods_fal/script_component.hpp diff --git a/optionals/hlcmods_g3_comp/CfgWeapons.hpp b/optionals/compat_hlcmods_g3/CfgWeapons.hpp similarity index 100% rename from optionals/hlcmods_g3_comp/CfgWeapons.hpp rename to optionals/compat_hlcmods_g3/CfgWeapons.hpp diff --git a/optionals/hlcmods_g3_comp/config.cpp b/optionals/compat_hlcmods_g3/config.cpp similarity index 100% rename from optionals/hlcmods_g3_comp/config.cpp rename to optionals/compat_hlcmods_g3/config.cpp diff --git a/optionals/hlcmods_g3_comp/script_component.hpp b/optionals/compat_hlcmods_g3/script_component.hpp similarity index 100% rename from optionals/hlcmods_g3_comp/script_component.hpp rename to optionals/compat_hlcmods_g3/script_component.hpp diff --git a/optionals/hlcmods_m14_comp/CfgWeapons.hpp b/optionals/compat_hlcmods_m14/CfgWeapons.hpp similarity index 100% rename from optionals/hlcmods_m14_comp/CfgWeapons.hpp rename to optionals/compat_hlcmods_m14/CfgWeapons.hpp diff --git a/optionals/hlcmods_m14_comp/config.cpp b/optionals/compat_hlcmods_m14/config.cpp similarity index 100% rename from optionals/hlcmods_m14_comp/config.cpp rename to optionals/compat_hlcmods_m14/config.cpp diff --git a/optionals/hlcmods_m14_comp/script_component.hpp b/optionals/compat_hlcmods_m14/script_component.hpp similarity index 100% rename from optionals/hlcmods_m14_comp/script_component.hpp rename to optionals/compat_hlcmods_m14/script_component.hpp diff --git a/optionals/hlcmods_m60e4_comp/CfgWeapons.hpp b/optionals/compat_hlcmods_m60e4/CfgWeapons.hpp similarity index 100% rename from optionals/hlcmods_m60e4_comp/CfgWeapons.hpp rename to optionals/compat_hlcmods_m60e4/CfgWeapons.hpp diff --git a/optionals/hlcmods_m60e4_comp/config.cpp b/optionals/compat_hlcmods_m60e4/config.cpp similarity index 100% rename from optionals/hlcmods_m60e4_comp/config.cpp rename to optionals/compat_hlcmods_m60e4/config.cpp diff --git a/optionals/hlcmods_m60e4_comp/script_component.hpp b/optionals/compat_hlcmods_m60e4/script_component.hpp similarity index 100% rename from optionals/hlcmods_m60e4_comp/script_component.hpp rename to optionals/compat_hlcmods_m60e4/script_component.hpp diff --git a/optionals/rh_acc_comp/CfgWeapons.hpp b/optionals/compat_rh_acc/CfgWeapons.hpp similarity index 100% rename from optionals/rh_acc_comp/CfgWeapons.hpp rename to optionals/compat_rh_acc/CfgWeapons.hpp diff --git a/optionals/rh_acc_comp/config.cpp b/optionals/compat_rh_acc/config.cpp similarity index 100% rename from optionals/rh_acc_comp/config.cpp rename to optionals/compat_rh_acc/config.cpp diff --git a/optionals/rh_acc_comp/script_component.hpp b/optionals/compat_rh_acc/script_component.hpp similarity index 100% rename from optionals/rh_acc_comp/script_component.hpp rename to optionals/compat_rh_acc/script_component.hpp diff --git a/optionals/rh_de_comp/CfgAmmo.hpp b/optionals/compat_rh_de/CfgAmmo.hpp similarity index 100% rename from optionals/rh_de_comp/CfgAmmo.hpp rename to optionals/compat_rh_de/CfgAmmo.hpp diff --git a/optionals/rh_de_comp/CfgWeapons.hpp b/optionals/compat_rh_de/CfgWeapons.hpp similarity index 100% rename from optionals/rh_de_comp/CfgWeapons.hpp rename to optionals/compat_rh_de/CfgWeapons.hpp diff --git a/optionals/rh_de_comp/config.cpp b/optionals/compat_rh_de/config.cpp similarity index 100% rename from optionals/rh_de_comp/config.cpp rename to optionals/compat_rh_de/config.cpp diff --git a/optionals/rh_de_comp/script_component.hpp b/optionals/compat_rh_de/script_component.hpp similarity index 100% rename from optionals/rh_de_comp/script_component.hpp rename to optionals/compat_rh_de/script_component.hpp diff --git a/optionals/rh_m4_comp/CfgAmmo.hpp b/optionals/compat_rh_m4/CfgAmmo.hpp similarity index 100% rename from optionals/rh_m4_comp/CfgAmmo.hpp rename to optionals/compat_rh_m4/CfgAmmo.hpp diff --git a/optionals/rh_m4_comp/CfgWeapons.hpp b/optionals/compat_rh_m4/CfgWeapons.hpp similarity index 100% rename from optionals/rh_m4_comp/CfgWeapons.hpp rename to optionals/compat_rh_m4/CfgWeapons.hpp diff --git a/optionals/rh_m4_comp/config.cpp b/optionals/compat_rh_m4/config.cpp similarity index 100% rename from optionals/rh_m4_comp/config.cpp rename to optionals/compat_rh_m4/config.cpp diff --git a/optionals/rh_m4_comp/script_component.hpp b/optionals/compat_rh_m4/script_component.hpp similarity index 100% rename from optionals/rh_m4_comp/script_component.hpp rename to optionals/compat_rh_m4/script_component.hpp diff --git a/optionals/rh_pdw_comp/CfgAmmo.hpp b/optionals/compat_rh_pdw/CfgAmmo.hpp similarity index 100% rename from optionals/rh_pdw_comp/CfgAmmo.hpp rename to optionals/compat_rh_pdw/CfgAmmo.hpp diff --git a/optionals/rh_pdw_comp/CfgWeapons.hpp b/optionals/compat_rh_pdw/CfgWeapons.hpp similarity index 100% rename from optionals/rh_pdw_comp/CfgWeapons.hpp rename to optionals/compat_rh_pdw/CfgWeapons.hpp diff --git a/optionals/rh_pdw_comp/config.cpp b/optionals/compat_rh_pdw/config.cpp similarity index 100% rename from optionals/rh_pdw_comp/config.cpp rename to optionals/compat_rh_pdw/config.cpp diff --git a/optionals/rh_pdw_comp/script_component.hpp b/optionals/compat_rh_pdw/script_component.hpp similarity index 100% rename from optionals/rh_pdw_comp/script_component.hpp rename to optionals/compat_rh_pdw/script_component.hpp diff --git a/optionals/rksl_pm_ii_comp/CfgWeapons.hpp b/optionals/compat_rksl_pm_ii/CfgWeapons.hpp similarity index 100% rename from optionals/rksl_pm_ii_comp/CfgWeapons.hpp rename to optionals/compat_rksl_pm_ii/CfgWeapons.hpp diff --git a/optionals/rksl_pm_ii_comp/config.cpp b/optionals/compat_rksl_pm_ii/config.cpp similarity index 100% rename from optionals/rksl_pm_ii_comp/config.cpp rename to optionals/compat_rksl_pm_ii/config.cpp diff --git a/optionals/rksl_pm_ii_comp/script_component.hpp b/optionals/compat_rksl_pm_ii/script_component.hpp similarity index 100% rename from optionals/rksl_pm_ii_comp/script_component.hpp rename to optionals/compat_rksl_pm_ii/script_component.hpp From 7dc8a08b895f8a3b777c97b34b6b61abb0b3e991 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Fri, 24 Apr 2015 20:03:04 +0200 Subject: [PATCH 23/25] Replaced _currentshooter by _this Fixes script error `Error Undefined variable in expression: _currentshooter` --- addons/javelin/functions/fnc_onOpticDraw.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/javelin/functions/fnc_onOpticDraw.sqf b/addons/javelin/functions/fnc_onOpticDraw.sqf index 6da8353126..8fa96c036a 100644 --- a/addons/javelin/functions/fnc_onOpticDraw.sqf +++ b/addons/javelin/functions/fnc_onOpticDraw.sqf @@ -130,7 +130,7 @@ FUNC(disableFire) = { if(_firedEH < 0 && difficulty > 0) then { _firedEH = [ACE_player, "DefaultAction", {true}, { - _canFire = _currentShooter getVariable["ace_missileguidance_target", nil]; + _canFire = _this getVariable["ace_missileguidance_target", nil]; if(!isNil "_canFire") exitWith { false }; true }] call EFUNC(common,addActionEventHandler); @@ -289,4 +289,4 @@ _args set[3, _lockTime]; _args set[4, _soundTime]; _args set[6, _fireDisabledEH]; -uiNamespace setVariable[QGVAR(arguments), _args ]; \ No newline at end of file +uiNamespace setVariable[QGVAR(arguments), _args ]; From aa0b1ecba001f71e953083a5adce063769dfacd7 Mon Sep 17 00:00:00 2001 From: Grzegorz Date: Fri, 24 Apr 2015 21:35:20 +0200 Subject: [PATCH 24/25] PL translation fix --- addons/realisticnames/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 341b2a383f..69b568dbca 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -519,7 +519,7 @@ Punisher (GMG) Punisher (GMW) Punisher (GMG) - Punisher (CKM) + Punisher (GMG) Punisher (granátomet) Punisher (GMG) Kаратель (Гранатомет) From 8e62a0bf8fd0d3518fd3a2d31fe7af63dba57d02 Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Fri, 24 Apr 2015 13:25:40 -0700 Subject: [PATCH 25/25] Fixed: make.py looking for private key in the wrong area --- tools/make.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/make.py b/tools/make.py index 597ccb314a..c7dfd2e4fb 100644 --- a/tools/make.py +++ b/tools/make.py @@ -721,7 +721,7 @@ See the make.cfg file for additional build options. # Make the key specified from command line if necessary. if new_key: - if not os.path.isfile(os.path.join(module_root, key_name + ".biprivatekey")): + if not os.path.isfile(os.path.join(private_key_path, key_name + ".biprivatekey")): print_yellow("\nRequested key does not exist.") try: os.makedirs(private_key_path)