Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
The **Mission Maker Framework** is a modular mission making addon based on the [Olsen Framework](https://github.com/dklollol/Olsen-Framework-Arma-3) designed to help create high quality Arma 3 scenarios utilizing the in game editor and removing the requirement for mission makers to deal with manual editing of script setting files by implementing editor menus and settings for tailoring the mission. Originally designed for [United Operations](http://unitedoperations.net/).
The **Mission Maker Framework** is a modular mission making addon based on the [Olsen Framework](https://github.com/dklollol/Olsen-Framework-Arma-3) designed to help create high quality Arma 3 scenarios utilizing the in game editor and removing the requirement for mission makers to deal with manual editing of script setting files by implementing editor menus and settings for tailoring the mission. Originally designed for [Global Conflicts](https://globalconflicts.net/).

To learn more about the framework, visit [our wiki]().
To learn more about the framework, visit [our wiki](https://github.com/PiZZAD0X/MMFW/wiki/Intro:--What-is-the-MMFW%3F).

For information on how to make a mission using the framework read [this guide]().
For information on how to make a mission using the framework read [this guide](https://github.com/PiZZAD0X/MMFW/wiki/Intro:-How-the-MMFW-works).

To view bugs or requested features, view the [issues](https://github.com/PiZZAD0X/MMFW/issues). If you want to report a bug and do not see your issue listed, you can open a [bug report](https://github.com/PiZZAD0X/MMFW/issues/new?assignees=&labels=&template=bug_report.md&title=). If you want to request a feature not listed you can do so using the [feature request](https://github.com/PiZZAD0X/MMFW/issues/new?assignees=&labels=&template=feature_request.md&title=).

You can aid in development of this project by [contributing]()

## Build Instructions
1. [Read this article](https://github.com/PiZZAD0X/MMFW/wiki/Contributing:-Getting-Started) and follow setup instructions
2. Either run a build by navigating to the:
* `Project's root directory\` and run `./hemtt.exe build --release` or;
* `Project's root directory\scripts` and run `python build.py` (this is a helper Python build script)

### Thanks

- [KoffeinFlummi](https://github.com/KoffeinFlummi) for [armake2](https://github.com/KoffeinFlummi/armake2)
Expand Down
2 changes: 1 addition & 1 deletion addons/aidrivers/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"Olsen","PiZZADOX","Sacher"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/antind/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"Olsen","PiZZADOX","Sacher"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/aolimit/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"Olsen","PiZZADOX","Sacher"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/autotrack/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"Olsen","PiZZADOX","Sacher"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/briefing/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"Olsen","PiZZADOX","Sacher"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/capturezone/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"Olsen","PiZZADOX","Sacher"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/core/cfg3den/Respawn/MainRespawn.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class EGVAR(Respawn,Category) {
control = "CheckBox";
expression = SCENARIO_EXPRESSION;
defaultValue = "(false)";
}
};
class EGVAR(Respawn,SpawnPosRespawn) {
property = QEGVAR(Respawn,KillCam);
displayName = "SpawnPos Respawn";
Expand Down
2 changes: 1 addition & 1 deletion addons/core/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main"};
authors[] = {"Olsen","PiZZADOX","Sacher","TheMagnetar","TrainDoc","TinfoilHate"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
12 changes: 6 additions & 6 deletions addons/core/functions/fnc_RespawnQueueInit.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ EGVAR(Respawn,RespawnLocations_Civ) = [];
[_idPFH] call CBA_fnc_removePerFrameHandler;
};
[
["BLUFOR", EGVAR(Respawn,RespawnLocations_BLUFOR)],
["OPFOR", EGVAR(Respawn,RespawnLocations_Opfor)],
["INDFOR", EGVAR(Respawn,RespawnLocations_Indfor)],
["CIVILIAN", EGVAR(Respawn,RespawnLocations_Civ)]
["BLUFOR", EGVAR(Respawn,RespawnLocations_BLUFOR), QEGVAR(Respawn,RespawnLocations_BLUFOR)],
["OPFOR", EGVAR(Respawn,RespawnLocations_Opfor), QEGVAR(Respawn,RespawnLocations_Opfor)],
["INDFOR", EGVAR(Respawn,RespawnLocations_Indfor), QEGVAR(Respawn,RespawnLocations_Indfor)],
["CIVILIAN", EGVAR(Respawn,RespawnLocations_Civ), QEGVAR(Respawn,RespawnLocations_Civ)]
] apply {
_x params ["_teamVar", "_array"];
_x params ["_teamVar", "_array", "_qEGVar"];
private _eligibleRespawnLocations = [_teamVar] call FUNC(getRespawnLocations);
missionNamespace setVariable [_array, _eligibleRespawnLocations];
missionNamespace setVariable [_qEGVar, _eligibleRespawnLocations];
};
}, 5, []] call CBA_fnc_addPerFrameHandler;

Expand Down
2 changes: 1 addition & 1 deletion addons/covermap/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"Olsen","PiZZADOX","Sacher"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/gear/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class CfgPatches {
};
authors[] = {"Olsen","PiZZADOX","Sacher"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/hostage/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"Olsen","PiZZADOX","Sacher"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/markercontrol/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"Olsen","PiZZADOX"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/objectsettings/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"PiZZADOX"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/safestart/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"Olsen","PiZZADOX","Sacher"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/selfactions/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"Olsen","PiZZADOX","Sacher"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/setuptimer/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"Olsen","PiZZADOX","Sacher"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/shotcount/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"Olsen","PiZZADOX","Sacher"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/startinparachute/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"Olsen","PiZZADOX"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/starttext/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"Olsen","PiZZADOX","Sacher"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
2 changes: 1 addition & 1 deletion addons/teamcolour/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CfgPatches {
requiredAddons[] = {"MMFW_main","MMFW_core"};
authors[] = {"Olsen","PiZZADOX"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
3 changes: 2 additions & 1 deletion hemtt.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
"files": [
"mod.cpp"
],
"exclude": [],
"sigversion": 3
}
}
2 changes: 1 addition & 1 deletion optionals/acre/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class CfgPatches {
};
authors[] = {"Olsen","PiZZADOX","Sacher"};
author = "MMFW Team";
authorUrl = "https://github.com/unitedoperations";
authorUrl = "https://github.com/Global-Conflicts-ArmA";
VERSION_CONFIG;
};
};
Expand Down
89 changes: 89 additions & 0 deletions scripts/build.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
"""Mission Maker Framework Python Build Script

Author: Edward McKnight (EM-Creations.co.uk)
Requires: Python 3.8

This script provides a more friendly interface to interact with the hemtt build
tool for this ArmA 3 addon.

At the moment this tool only supports building in a Windows OS and requires that
the hemtt.exe file is located in the project's root directory.
"""

import argparse, subprocess
from pathlib import Path

arg_parser = argparse.ArgumentParser(description="Mission Maker Framework Python Build Script")
arg_parser.add_argument("-v", "--verbose", help="Verbose output", action="store_true")
arg_parser.add_argument("-s", "--silent", help="Silent / faster run", action="store_true")
args = arg_parser.parse_args()

version_file_location = "..\VERSION"
hemtt_file_location = "..\hemtt.exe"

hemtt_build_command = [hemtt_file_location, "build", "--release"]
hemtt_clean_force_command = [hemtt_file_location, "clean", "--force"]

error_release_already_exists = "Release already exists"
output_cleaned = "all releases"

def run_hemtt_build_command():
process = subprocess.Popen(hemtt_build_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
allOutput = ""
allErrors = ""

while True:
output = process.stdout.readline()
errors = process.stderr.readline()
if process.poll() is not None and output == b'':
break
if not args.silent:
if output:
output = output.decode("utf-8").strip()
allOutput = allOutput + output
print(output)
if errors:
errors = errors.decode("utf-8").strip()
allErrors = allErrors + errors
print(errors)

return (allOutput, allErrors)

if not args.silent:
print("""
_ _ _ _ ____ _ _ _ ___ _ _ _ _ ___ ____ ____ ____ _ ___ ___
|\/| |\/| |___ | | | |__] | | | | | \ [__ | |__/ | |__] |
| | | | | |_|_| |__] |__| | |___ |__/ ___] |___ | \ | | |

""");

if not args.silent:
if args.verbose:
print("Fetching version from '" + version_file_location + "'..")

if Path(version_file_location).is_file():
with open(version_file_location, 'r') as file:
versionData = file.read().rstrip()

print("Version: " + versionData)

if args.verbose:
print("Checking hemtt exe exists at '" + hemtt_file_location + "'..")

if not Path(hemtt_file_location).is_file():
print("Hemtt exe not found, exiting..")
exit()

hemtt_build_output = run_hemtt_build_command()

if error_release_already_exists in hemtt_build_output[1]:
if args.verbose:
print("Failed the initial build, cleaning and trying again..")

hemtt_build_output = subprocess.run(hemtt_clean_force_command, capture_output=True, text=True)

if output_cleaned in hemtt_build_output.stdout:
if args.verbose:
print("Clean succeeded, trying to build again..")

run_hemtt_build_command()