-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #25 from 10Dozen/v2.7.2
V2.7.2
- Loading branch information
Showing
52 changed files
with
1,195 additions
and
704 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
// --- Causes | ||
#define CAUSE_FEED_FAILURE "feed_failure" | ||
#define CAUSE_CHAMBER_FAILURE "chamber_failure" | ||
#define CAUSE_DUD "dud" | ||
#define CAUSE_EXTRACTION_FAILURE "fail_to_extract" | ||
#define CAUSE_EJECTION_FAILURE "fail_to_eject" | ||
|
||
// --- States | ||
#define STATE_BOLT_CLOSED "bolt_closed" | ||
#define STATE_BOLT_NOT_CLOSED "bolt_not_closed" | ||
#define STATE_BOLT_OPENED "bolt_opened" | ||
|
||
#define STATE_CHAMBER_EMPTY "chamber_empty" | ||
#define STATE_CHAMBER_READY "chamber_ready" | ||
#define STATE_CHAMBER_STUCK "chamber_stuck" | ||
#define STATE_CHAMBER_DOUBLE_FED "chamber_double_fed" // Not used | ||
#define STATE_CHAMBER_NOT_EXTRACTABLE "chamber_not_extracted" | ||
|
||
#define STATE_CASE_EJECTED "case_ejected" | ||
#define STATE_CASE_NOT_EJECTED "case_not_ejected" | ||
|
||
#define STATE_MAG_ATTACHED "mag_attached" | ||
#define STATE_MAG_DETACHED "mag_detached" | ||
|
||
// --- Actions | ||
#define ACTION_PULL_BOLT "pull_bolt" | ||
#define ACTION_OPEN_BOLT "open_bolt" | ||
#define ACTION_CLEAR_CHAMBER "clear_chamber" | ||
#define ACTION_REMOVE_CASE "remove_case" | ||
#define ACTION_DETACH_MAG "detach_mag" | ||
#define ACTION_ATTACH_MAG "attach_mag" | ||
#define ACTION_INSPECT "inspect" | ||
|
||
|
||
// --- Compares | ||
|
||
#define CHECK_BOLT_OPENED(X) (X isEqualTo STATE_BOLT_OPENED) | ||
#define CHECK_BOLT_CLOSED(X) (X isEqualTo STATE_BOLT_CLOSED) | ||
|
||
#define CHECK_CHAMBER_READY(X) (X isEqualTo STATE_CHAMBER_READY) | ||
#define CHECK_CHAMBER_EMPTY(X) (X isEqualTo STATE_CHAMBER_EMPTY) | ||
#define CHECK_CHAMBER_STUCK(X) (X isEqualTo STATE_CHAMBER_STUCK) | ||
#define CHECK_CHAMBER_DOUBLE_FED(X) (X isEqualTo STATE_CHAMBER_DOUBLE_FED) | ||
#define CHECK_CHAMBER_NOT_EXTRACTED(X) (X isEqualTo STATE_CHAMBER_NOT_EXTRACTABLE) | ||
|
||
#define CHECK_CASE_EJECTED(X) (X isEqualTo STATE_CASE_EJECTED) | ||
|
||
#define CHECK_MAG_ATTACHED(X) (X isEqualTo STATE_MAG_ATTACHED) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,89 +1,97 @@ | ||
#include "macro.hpp" | ||
#include "Enums.hpp" | ||
|
||
// Causes list in format: [ @ID, [@BoltState, @ChamberState, @CaseState, @MagState] ] | ||
GVAR(Causes) = [ | ||
[ | ||
/* "Неподача патрона" */ | ||
/* To fix: "pull_bolt" */ | ||
"feed_failure" | ||
,["bolt_closed","chamber_empty","case_ejected","mag_attached"] | ||
/* To fix: ACTION_PULL_BOLT */ | ||
CAUSE_FEED_FAILURE | ||
,[STATE_BOLT_CLOSED, STATE_CHAMBER_EMPTY, STATE_CASE_EJECTED, STATE_MAG_ATTACHED] | ||
] | ||
,[ | ||
/* "Утыкание патрона" */ | ||
/* To fix: "open_bolt","detach_mag","clear_chamber" */ | ||
"feed_failure_2" | ||
,["bolt_not_closed","chamber_stucked","case_ejected","mag_attached"] | ||
/* To fix: ACTION_OPEN_BOLT, ACTION_DETACH_MAG, ACTION_CLEAR_CHAMBER */ | ||
CAUSE_CHAMBER_FAILURE | ||
,[STATE_BOLT_NOT_CLOSED, STATE_CHAMBER_STUCK, STATE_CASE_EJECTED, STATE_MAG_ATTACHED] | ||
|
||
] | ||
,[ | ||
/* "Осечка" */ | ||
/* To fix: "pull_bolt" */ | ||
"dud" | ||
,["bolt_closed","chamber_ready","case_ejected","mag_attached"] | ||
/* To fix: ACTION_PULL_BOLT */ | ||
CAUSE_DUD | ||
,[STATE_BOLT_CLOSED, STATE_CHAMBER_READY, STATE_CASE_EJECTED, STATE_MAG_ATTACHED] | ||
] | ||
,[ | ||
/* "Неизвлечение гильзы" */ | ||
/* To fix: "open_bolt","detach_mag","remove_case","clear_chamber" */ | ||
"fail_to_extract" | ||
,["bolt_not_closed","chamber_not_extracted","case_not_ejected","mag_attached"] | ||
/* To fix: ACTION_OPEN_BOLT, ACTION_DETACH_MAG, ACTION_CLEAR_CHAMBER */ | ||
CAUSE_EXTRACTION_FAILURE | ||
,[STATE_BOLT_NOT_CLOSED, STATE_CHAMBER_NOT_EXTRACTABLE, STATE_CASE_EJECTED, STATE_MAG_ATTACHED] | ||
] | ||
,[ | ||
/* "Прихват гильзы" */ | ||
/* To fix: "open_bolt","remove_case" */ | ||
"fail_to_eject" | ||
,["bolt_not_closed","chamber_empty","case_not_ejected","mag_attached"] | ||
/* To fix: ACTION_OPEN_BOLT, ACTION_REMOVE_CASE */ | ||
CAUSE_EJECTION_FAILURE | ||
,[STATE_BOLT_NOT_CLOSED, STATE_CHAMBER_EMPTY, STATE_CASE_NOT_EJECTED, STATE_MAG_ATTACHED] | ||
] | ||
]; | ||
|
||
// , [ | ||
// /* Затяжной выстрел */ | ||
// /* To fix: "pull_bolt" */ | ||
// /* To fix: ACTION_PULL_BOLT */ | ||
// "hang_fire" | ||
// , ["bolt_closed","chamber_ready","case_ejected","mag_attached"] | ||
// , [STATE_BOLT_CLOSED,STATE_CHAMBER_READY,STATE_CASE_EJECTED,STATE_MAG_ATTACHED] | ||
// ] | ||
// , [ | ||
// /* Неконтролируемый автоматический огонь */ | ||
// /* To fix: "detach_mag" or reload */ | ||
// /* To fix: ACTION_DETACH_MAG or reload */ | ||
// "unmanned_fire" | ||
// , ["bolt_closed","chamber_ready","case_ejected","mag_attached"] | ||
// , [STATE_BOLT_CLOSED,STATE_CHAMBER_READY,STATE_CASE_EJECTED,STATE_MAG_ATTACHED] | ||
// ] | ||
|
||
|
||
// Weapon States; In format [@ID, @DisplayName] | ||
GVAR(States) = [ | ||
["bolt_closed" ,localize "STR_EJAM_State_BoltClosed"] | ||
,["bolt_not_closed" ,localize "STR_EJAM_State_BoltNotClosed"] | ||
,["bolt_opened" ,localize "STR_EJAM_State_BoltOpened"] | ||
,["chamber_empty" ,localize "STR_EJAM_State_ChamberEmpty"] | ||
,["chamber_ready" ,localize "STR_EJAM_State_ChamberReady"] | ||
,["chamber_stucked" ,localize "STR_EJAM_State_ChamberStucked"] | ||
,["chamber_not_extracted" ,localize "STR_EJAM_State_ChamberNotExtracted"] | ||
,["case_not_ejected" ,localize "STR_EJAM_State_ChamberNotEjected"] | ||
,["case_ejected" ,localize "STR_EJAM_State_CaseEjected"] | ||
,["mag_attached" ,localize "STR_EJAM_State_MagAttached"] | ||
,["mag_detached" ,localize "STR_EJAM_State_MagDetached"] | ||
[STATE_BOLT_CLOSED, LSTR(State_BoltClosed)], | ||
[STATE_BOLT_NOT_CLOSED, LSTR(State_BoltNotClosed)], | ||
[STATE_BOLT_OPENED, LSTR(State_BoltOpened)], | ||
[STATE_CHAMBER_EMPTY, LSTR(State_ChamberEmpty)], | ||
[STATE_CHAMBER_READY, LSTR(State_ChamberReady)], | ||
[STATE_CHAMBER_STUCK, LSTR(State_ChamberStucked)], | ||
[STATE_CHAMBER_NOT_EXTRACTABLE, LSTR(State_ChamberNotExtracted)], | ||
[STATE_CASE_EJECTED, LSTR(State_CaseEjected)], | ||
[STATE_CASE_NOT_EJECTED, LSTR(State_ChamberNotEjected)], | ||
[STATE_MAG_ATTACHED, LSTR(State_MagAttached)], | ||
[STATE_MAG_DETACHED, LSTR(State_MagDetached)] | ||
]; | ||
|
||
// Actions; In format [@ID, @DisplayName, @ProgressBarDisplayText, @TimeSpent] | ||
GVAR(FixActions) = [ | ||
["pull_bolt" ,localize "STR_EJAM_Action_PullBolt" , localize "STR_EJAM_Action_PullBolt_Process" , 0.5] | ||
,["open_bolt" ,localize "STR_EJAM_Action_OpenBolt" , localize "STR_EJAM_Action_OpenBolt_Process" , 0.5] | ||
,["clear_chamber" ,localize "STR_EJAM_Action_ClearChamber" , localize "STR_EJAM_Action_ClearChamber_Process" , 3] | ||
,["remove_case" ,localize "STR_EJAM_Action_RemoveCase" , localize "STR_EJAM_Action_RemoveCase_Process" , 1.5] | ||
,["detach_mag" ,localize "STR_EJAM_Action_MagDetach" , localize "STR_EJAM_Action_MagDetach_Process" , 0.3] | ||
,["attach_mag" ,localize "STR_EJAM_Action_MagAttach" , localize "STR_EJAM_Action_MagAttach_Process" , 0.75] | ||
,["inspect" ,localize "STR_EJAM_Action_Inspect" , localize "STR_EJAM_Action_Inspect_Process" , 0.5] | ||
[ACTION_PULL_BOLT, | ||
LSTR(Action_PullBolt), LSTR(Action_PullBolt_Process), 0.5], | ||
[ACTION_OPEN_BOLT, | ||
LSTR(Action_OpenBolt), LSTR(Action_OpenBolt_Process), 0.5], | ||
[ACTION_CLEAR_CHAMBER, | ||
LSTR(Action_ClearChamber), LSTR(Action_ClearChamber_Process), 3], | ||
[ACTION_REMOVE_CASE, | ||
LSTR(Action_RemoveCase), LSTR(Action_RemoveCase_Process), 1.5], | ||
[ACTION_DETACH_MAG, | ||
LSTR(Action_MagDetach), LSTR(Action_MagDetach_Process), 0.3], | ||
[ACTION_ATTACH_MAG, | ||
LSTR(Action_MagAttach), LSTR(Action_MagAttach_Process), 0.75], | ||
[ACTION_INSPECT, | ||
LSTR(Action_Inspect), LSTR(Action_Inspect_Process), 0.5] | ||
]; | ||
|
||
GVAR(Defaults) = [ | ||
"bolt_closed" | ||
, "chamber_ready" | ||
, "case_ejected" | ||
, "mag_attached" | ||
STATE_BOLT_CLOSED | ||
, STATE_CHAMBER_READY | ||
, STATE_CASE_EJECTED | ||
, STATE_MAG_ATTACHED | ||
]; | ||
|
||
GVAR(Mapping) = [ | ||
[ | ||
"arifle_MX_F", 0.05, 45, 10, 45, 0, 0 | ||
"arifle_MX_F", 0.01, 45, 10, 45, 0, 0 | ||
] | ||
]; | ||
]; |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
#include "macro.hpp" | ||
|
||
// Init for script | ||
#ifdef _SCRIPT_MACRO | ||
call compile preprocessFileLineNumbers format ["%1\PreInit.sqf", PATH]; | ||
#endif | ||
|
||
// Exit at dedicated or headless client | ||
if (!hasInterface) exitWith {}; | ||
|
||
GVAR(ClassFamiliesCache) = call CBA_fnc_createNamespace; | ||
GVAR(ConfigData) = call CBA_fnc_createNamespace; | ||
|
||
[{ time > 0 && !isNull player && local player },{ | ||
// Run EJAM's FiredEH if ACE Overheating disabled OR EJAM Jam chance forced | ||
if (!(missionNamespace getVariable ["ace_overheating_enabled",false]) || GVAR(ForceOverallChance)) then { | ||
GVAR(FiredEH) = player addEventHandler ["Fired", { | ||
[] call FUNC(firedEH) | ||
}]; | ||
}; | ||
|
||
// Reload EH to handle magazine state & pull bolt on reload | ||
GVAR(ReloadedEH) = player addEventHandler ["Reloaded", { | ||
[] call FUNC(reloadedEH) | ||
}]; | ||
|
||
// Respawn EH to drop jammed state | ||
GVAR(RespawnEH) = player addEventHandler ["Respawn", { | ||
[] call FUNC(initPlayer); | ||
}]; | ||
|
||
// Handle ACE Overheating if enabled | ||
if (missionNamespace getVariable ["ace_overheating_enabled",false]) then { | ||
// Wait ACE init | ||
[{!isNil "ace_overheating_cacheWeaponData" && !isNil "ace_overheating_cacheSilencerData"},{ | ||
// Save actual Unjam chance (to use for sidearms) | ||
GVAR(ACEUnjamFailChance) = ace_overheating_unJamFailChance; | ||
|
||
// Update ACE Overheating data with custom mapping | ||
[] call FUNC(processMappingData); | ||
// Run ACE Jammed handler if ACE Overheating enabled | ||
GVAR(ACE_Jammed_EH) = ["ace_weaponJammed", { | ||
if (_this select 1 != primaryWeapon player) exitWith {}; | ||
[false] call FUNC(setJammed); | ||
}] call CBA_fnc_addEventHandler; | ||
}] call CBA_fnc_waitUntilAndExecute; | ||
}; | ||
|
||
[] call FUNC(initPlayer); | ||
|
||
// Add ACE Self-Interecation action if ACE Interaction is running | ||
if (!isNil "ace_interact_menu_fnc_createAction") then { | ||
[] call FUNC(addACEAction); | ||
}; | ||
|
||
// CBA inventory action | ||
[ | ||
"#All","RIFLE", | ||
LSTR(Action_Inspect), | ||
[],"",{ true }, | ||
{ [] call FUNC(inspectWeapon); } | ||
] call CBA_fnc_addItemContextMenuOption; | ||
}] call CBA_fnc_waitUntilAndExecute; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#include "macro.hpp" | ||
|
||
#include "XEH_PREP.hpp" | ||
|
||
call compile preprocessFileLineNumbers format ["%1\Enums.sqf", PATH]; | ||
call compile preprocessFileLineNumbers format ["%1\Settings.sqf", PATH]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
#include "macro.hpp" | ||
|
||
#include "XEH_PREP.hpp" |
Oops, something went wrong.