Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add Joint Ammo Magazines A3 #928

Merged
merged 18 commits into from
Sep 17, 2018
Merged

add Joint Ammo Magazines A3 #928

merged 18 commits into from
Sep 17, 2018

Conversation

commy2
Copy link
Contributor

@commy2 commy2 commented May 21, 2018

Add JAM.

With a PR open, even if WIP, it is more convenient to see the diffs and discuss the implementation. :~)

-close #108

@commy2 commy2 added the Feature label May 21, 2018
@commy2 commy2 added this to the 3.8 milestone May 21, 2018
@commy2 commy2 changed the title Jam add Jam May 21, 2018
@commy2 commy2 changed the title add Jam add Joint Ammo Magazines A3 May 21, 2018
* tabs to spaces, component name

* delete a file
@Drofseh
Copy link
Contributor

Drofseh commented May 21, 2018

IRL the HK417 and M14 magazines and mag wells are proprietary and cannot be used with the other rifle.
In vanilla ARMA however they use the same magazines, I assume because BI didn't want to make the extra magazine classes.

However I have concerns about other mods that end up using the CBA magwells and then all of their M14s and 417s can incorrectly interchange.

I would suggest doing an HK417 magwell as well and including the vanilla magazines in both of them as this would give mod makers the option of which class to add their own magazines to.

    class CBA_762x51_M14 {
        BI_mags[] = {
            "20Rnd_762x51_Mag"
        };
    };
    class CBA_762x51_HK417 {
        BI_mags[] = {
            "20Rnd_762x51_Mag"
        };
    };

@robalo
Copy link
Contributor

robalo commented May 21, 2018

Certainly, we'll need to add SR25 and G3 magwells also. And any other common ones.

@Drofseh
Copy link
Contributor

Drofseh commented May 21, 2018

Additionally, shouldn't everything inherit from a base magwell class so that mods can add on?
If I were to do this in my mod, it would overwrite the BI mags from CBA right?

    class CBA_762x51_M14 {
        My_Mod_Mags[] = {
            "5000Rnd_762x51_M14Mag"
        };
    };

Should be this:
CBA:

    class CBA_Magwell_Base;
    class CBA_762x51_M14 : CBA_Magwell_Base {
        BI_mags[] = {
            "20Rnd_762x51_Mag"
        };
    };

My_Cool_Mod:

    class CBA_Magwell_Base;
    class CBA_762x51_M14 : CBA_Magwell_Base {
        My_Cool_Mod_Mags[] = {
            "5000Rnd_762x51_M14Mag"
        };
    };

In Game:

    class CBA_Magwell_Base;
    class CBA_762x51_M14 : CBA_Magwell_Base {
        BI_mags[] = {
            "20Rnd_762x51_Mag"
        };
        My_Cool_Mod_Mags[] = {
            "5000Rnd_762x51_M14Mag"
        };
    };

@commy2
Copy link
Contributor Author

commy2 commented May 21, 2018

The base class is pointless if empty.

@Drofseh
Copy link
Contributor

Drofseh commented May 21, 2018

As I understand it, if CBA does this:

    class CBA_762x51_M14 {
        BI_mags[] = {
            "20Rnd_762x51_Mag"
        };
    };

And then I do this in my own mod

    class CBA_762x51_M14 {
        My_Mod_Mags[] = {
            "5000Rnd_762x51_M14Mag"
        };
    };

It will be treated as if I am creating a new CBA_762x51_M14 and completely overwrite the original CBA class. Only my My_Mod_Mags will appear in game, not BI_mags.

@commy2
Copy link
Contributor Author

commy2 commented May 21, 2018

You're wrong about that. That is not what would happen. The class would contain both entries. Base classes only have to be referenced if they exist.

@robalo
Copy link
Contributor

robalo commented May 21, 2018

A RHS compatibility addon would look somewhat like this (not a complete working example):

class CfgMagazineWells {
    class CBA_556x45_STANAG {
        RHS_mags[] = {
            "rhs_mag_30Rnd_556x45_M855_Stanag",
            "rhs_mag_30Rnd_556x45_M855_Stanag_Tracer_Red",
            "rhs_mag_30Rnd_556x45_M855_Stanag_Tracer_Green",
            "rhs_mag_30Rnd_556x45_M855_Stanag_Tracer_Yellow",
            "rhs_mag_30Rnd_556x45_M855_Stanag_Tracer_Orange",
            "rhs_mag_30Rnd_556x45_M855A1_Stanag",
            "rhs_mag_30Rnd_556x45_M855A1_Stanag_No_Tracer",
            "rhs_mag_30Rnd_556x45_M855A1_Stanag_Tracer_Red",
            "rhs_mag_30Rnd_556x45_M855A1_Stanag_Tracer_Green",
            "rhs_mag_30Rnd_556x45_M855A1_Stanag_Tracer_Yellow",
            "rhs_mag_30Rnd_556x45_M855A1_Stanag_Tracer_Orange",
            "rhs_mag_30Rnd_556x45_Mk318_Stanag",
            "rhs_mag_30Rnd_556x45_Mk262_Stanag",
            "rhs_mag_30Rnd_556x45_M200_Stanag"
        };
    };
    class CBA_762x39_AK {
        RHS_mags[] = {
            "rhs_30Rnd_762x39mm",
            "rhs_30Rnd_762x39mm_tracer",
            "rhs_30Rnd_762x39mm_89",
            "rhs_30Rnd_762x39mm_U"
        };
    };
    class CBA_545x39_AK {
        RHS_mags[] = {
            "rhs_30Rnd_545x39_AK",
            "rhs_30Rnd_545x39_AK_no_tracers",
            "rhs_30Rnd_545x39_7N6_AK",
            "rhs_30Rnd_545x39_7N10_AK",
            "rhs_30Rnd_545x39_7N22_AK",
            "rhs_30Rnd_545x39_AK_green",
            "rhs_30Rnd_545x39_7U1_AK",
            "rhs_45Rnd_545x39_AK",
            "rhs_45Rnd_545x39_7N6_AK",
            "rhs_45Rnd_545x39_7N10_AK",
            "rhs_45Rnd_545x39_7N22_AK",
            "rhs_45Rnd_545x39_AK_green",
            "rhs_45Rnd_545x39_7U1_AK"
        };
    };
    class CBA_762x54R_SVD {
        RHS_mags[] = {
            "rhs_10Rnd_762x54mmR_7N1"
        };
    };
    class CBA_RPG7 {
        RHS_rockets[] = {
            "rhs_rpg7_PG7V_mag",
            "rhs_rpg7_PG7VL_mag",
            "rhs_rpg7_PG7VR_mag",
            "rhs_rpg7_OG7V_mag",
            "rhs_rpg7_TBG7V_mag",
            "rhs_rpg7_TYPE69_airburst_mag"
        };
    };
    class CBA_9x39_VSS {
        RHS_mags[] = {
            "rhs_20rnd_9x39mm_SP5",
            "rhs_20rnd_9x39mm_SP6",
            "rhs_10rnd_9x39mm_SP5",
            "rhs_10rnd_9x39mm_SP6"
        };
    };
    class CBA_556x45_MINIMI {
        RHS_boxes[] = {
            "rhs_200rnd_556x45_M_SAW",
            "rhs_200rnd_556x45_B_SAW",
            "rhs_200rnd_556x45_T_SAW"
        };
        RHS_pouches[] = {
            "rhsusf_100Rnd_556x45_M855_soft_pouch",
            "rhsusf_200Rnd_556x45_M855_soft_pouch",
            "rhsusf_100Rnd_556x45_soft_pouch",
            "rhsusf_200Rnd_556x45_soft_pouch",
            "rhsusf_100Rnd_556x45_M200_soft_pouch"
        };
    };
    class CBA_762x51_M14 {
        RHS_mags[] = {
            "rhsusf_20Rnd_762x51_m118_special_Mag",
            "rhsusf_20Rnd_762x51_m993_Mag",
            "rhsusf_20Rnd_762x51_m62_Mag"
        };
    };
    class CBA_40mm_M203 {
        RHS_grenades[] = {
            "rhs_mag_M441_HE",
            "rhs_mag_M433_HEDP",
            "rhs_mag_M781_Practice",
            "rhs_mag_M397_HET",
            "rhs_mag_M4009",
            "rhs_mag_m576",
            "rhs_mag_M585_white",
            "rhs_mag_M661_green",
            "rhs_mag_M662_red",
            "rhs_mag_M713_red",
            "rhs_mag_M714_white",
            "rhs_mag_M715_green",
            "rhs_mag_M716_yellow"
        };
    };
    class CBA_40mm_GP {
        RHS_grenades[] = {
            "rhs_VOG25",
            "rhs_VOG25p",
            "rhs_vg40tb",
            "rhs_vg40sz",
            "rhs_vg40op_white",
            "rhs_vg40op_green",
            "rhs_vg40op_red",
            "rhs_GRD40_white",
            "rhs_GRD40_green",
            "rhs_GRD40_red",
            "rhs_VG40MD_White",
            "rhs_VG40MD_Green",
            "rhs_VG40MD_Red",
            "rhs_GDM40"
        };
    };
};

class cfgWeapons {
    class rhs_weap_m4_Base : arifle_MX_Base_F {
        magazineWell[] = {"CBA_556x45_STANAG"};
    };
    class rhs_weap_ak74m_Base_F : Rifle_Base_F {
        magazineWell[] = {"CBA_545x39_AK"};
    };
    class rhs_weap_svd : rhs_weap_ak74m {
        magazineWell[] = {"CBA_762x54R_SVD"};
    };
    class rhs_weap_akm : rhs_weap_ak74m {
        magazineWell[] = {"CBA_762x39_AK"};
    };
    class rhs_weap_rpg7 : Launcher_Base_F {
        magazineWell[] = {"CBA_RPG7"};
    };
    class rhs_weap_asval : rhs_weap_ak74m {
        magazineWell[] = {"CBA_9x39_VSS"};
    };
    class rhs_weap_saw_base : Rifle_Base_F {
        magazineWell[] = {"CBA_556x45_MINIMI", "CBA_556x45_STANAG"};
    };
    class rhs_weap_m240_base : rhs_weap_M249_base {
        magazineWell[] = {};
    };
    class rhs_weap_sr25 : rhs_weap_m14ebrri {
        magazineWell[] = {};
    };
    class rhs_weap_M320_Base_F : Pistol_Base_F {
        magazineWell[] = {"CBA_40mm_M203"};
    };
    class GP25_Base : UGL_F {
        magazineWell[] = {"CBA_40mm_GP"};
    };
    class rhs_weap_m70ab2 : rhs_weap_m70_base {
        magazineWell[] = {"CBA_762x39_AK"};
    };
    class rhs_weap_m92 : rhs_weap_m70_base {
        magazineWell[] = {"CBA_762x39_AK"};
    };
};

};
};
class CBA_556x45_MINIMI {
BI_boxes[] = {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add the 30-round STANAG mags as well?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope. Because some variants of the Minimi no longer have STANAG mag wells IRL. So when they do, just do as above: magazineWell[] = {"CBA_556x45_MINIMI", "CBA_556x45_STANAG"};

@jonpas
Copy link
Member

jonpas commented May 21, 2018

What about mag types? It's something @dedmen brought up. Some mags housing same caliber but are of different design and/or capacity might not fit.

@Drofseh
Copy link
Contributor

Drofseh commented May 22, 2018

Some mags housing same caliber but are of different design and/or capacity might not fit.

How deep down the rabbit hole do you want go? Even weapons that are nominally STANAG compliant can have problems with some magazines.
For example, PMAGs don't work properly in the HK-416/M27, or the F2000.

@jonpas
Copy link
Member

jonpas commented May 22, 2018

How deep down the rabbit hole do you want go?

I don't know and don't really care, just putting it out there because it was a concern on Slack the other day.

@robalo
Copy link
Contributor

robalo commented May 22, 2018

My first thought was splitting the "STANAG"s might be too much. But I wouldn't mind going 100% realistic about it provided some solid info.

@dedmen
Copy link
Contributor

dedmen commented May 22, 2018

In my implementation I've split stanag small/big. Because sniper rifles only take 5/10rnd mags and not all weapons support 100/150rnd mags. Then left it to the weapon class to include both magwells.
https://gist.github.com/dedmen/dc980cf8d6b4b719484e2dd8158a7de1
big/small is ofcause relative.

@robalo
Copy link
Contributor

robalo commented May 22, 2018

See, that's the thing, info on that might be hard to find or debatable. For example, why didn't you allow drum mags for HK33 in your implementation when things like this exist ? https://www.xproducts.com/product/x33-hk53-drum-magazine-for-hk33-hk53/
It might be best to avoid these issues perhaps.

@Drofseh
Copy link
Contributor

Drofseh commented May 22, 2018

My vote would be to keep it reasonably simple. If the weapon and the magazine are at least generally STANAG compliant then have them all be interchangeable. Even for things like the PMAG and the M27.

@robalo
Copy link
Contributor

robalo commented Aug 1, 2018

Sounds good. Nothing configured in 1.84. I guess they'd be doing it for 3rd party DLC.

@dedmen
Copy link
Contributor

dedmen commented Aug 1, 2018

RHS will atleast implement them. Not sure if it would be worth to wait and see how they did it.
Like adding ours to theirs won't happen. And they probably won't add ours if they already have their own implementation.

Edit:

Edit2: reyhard might push to dev branch next week. And RHS is based on the vanilla implementation.
So let's wait for it.

Alternatively I could ask PuFu if he can give us the RHS configs. As they are based on vanilla they should provide us all the info we need to implement it in a vanilla compatible manner.

@robalo
Copy link
Contributor

robalo commented Aug 1, 2018

IMO it's only a matter of naming the classes. I'd rather see RHS use CBA tags instead of CBA use RHS tags.
But if we don't push this sooner they have nothing to consider.

@dedmen
Copy link
Contributor

dedmen commented Aug 2, 2018

But if we don't push this sooner they have nothing to consider.

Their implementations are already done. They have nothing to consider no matter when we push this.
But if we push this without keeping the vanilla implementation in mind we'll have 2 competing standards out of which one is in vanilla Arma.
We can add on what vanilla is missing. But we shouldn't push duplicates.

@robalo
Copy link
Contributor

robalo commented Aug 2, 2018

RHS never cared much for vanilla compatibility, their mags didn't work in vanilla weapons nor viceversa.
Regardless of what they and BIS do, we have a broader scope to cover. Are you suggesting we build upon whatever RHS "implementation" is and then keep up with it ? Also vanilla "implementation" is just in the engine, plus VA support, they have no reason to go beyond that. If I waited for them to implement compatibleitems classes in the past, JR would've never happened,

@dedmen
Copy link
Contributor

dedmen commented Aug 2, 2018

RHS never cared much for vanilla compatibility

that was before RHS had a BI developer in their team.

Are you suggesting we build upon whatever RHS "implementation" is and then keep up with it ?

That "whatever" is the vanilla implementation that we will get in dev-branch soon:tm: and in the next DLC.
And no. I suggest we build upon the vanilla implementation not RHS. I meant it exactly as I said it before.
Just re-read #928 (comment) please.

Also vanilla "implementation" is just in the engine

No. The Vanilla CfgMagazineWells config classes are what I mean by implementation. Exactly what this PR is about.

they have no reason to go beyond that

But they are doing it already. They are even already mostly done implementing it.

If I waited for them to implement compatibleitems classes in the past, JR would've never happened,

Did a BI developer directly tell you that compatibleItems classes will be there next week? If not then that's not really comparable to this.

@robalo
Copy link
Contributor

robalo commented Aug 2, 2018

Some good 2 know infos. High hopes for an aging game. Guess we'll wait and see. Thanks !

@Blutze
Copy link
Contributor

Blutze commented Aug 3, 2018

Something didn't add up about dedmen's argumentation, and it just hit me (good ol' showerthoughts): A significant portion of the RHS weapons have no equivalent in vanilla. They are gonna have to introduce class names for Remington 700s (two different ones even), PKs, all the 9x39mm stuff, and a variety of others. For those, other mod makers will once again have to create compatibility code between RHS and the rest of the world.

Is it really so hard for them to contribute to this PR?

@dedmen
Copy link
Contributor

dedmen commented Aug 3, 2018

A significant portion of the RHS weapons have no equivalent in vanilla. They are gonna have to introduce class names for Remington 700s (two different ones even), PKs, all the 9x39mm stuff, and a variety of others. For those, other mod makers will once again have to create compatibility code between RHS and the rest of the world.

Correct. These are the things we will ALSO implement then. Sadly. RHS doesn't require CBA. But I guess they could also add their magazines to our Well's. Or we add our magazines to CBA and RHS then... Or we just ignore that RHS exists and be happy that most people will see CBA as the standard and add their mags to our's. But then we need a RHS->CBA compat that add's the RHS mags to CBA.

Actually. We don't need a RHS compat. We can just add their magazine classnames directly into CBA. There are silently ignored if they don't exist. And if RHS is loaded they are where they should be.

Waiting for answer from reyhard.

@Blutze
Copy link
Contributor

Blutze commented Aug 4, 2018

Silent native compatibility would make it easier on the end user, not having to download a bunch of extra mods. It doesn't however help at all with the development cycle issues behind compats: Every time RHS changes something, like adding a new mag or depreciating an old one, the mod offering compatibility is out of date for a while. Sure, CBA is a bit more organized and a bit more functionality/coding focussed than NIArms, but those compat mods have been missing the 0.4.3 mags for almost a year now.

In the end, there is only one acceptable way of tackling this. CBA extends the vanilla 2035 magwells into a 2018 JAM standard, everybody else implements that standard. "Everybody" including CUP, SMA, NIArms, RHS and others as peers.

@Dahlgren
Copy link
Contributor

@dedmen sadly the game throws errors/warnings for magazine declarations inside CfgMagazineWells which are not available

@dedmen
Copy link
Contributor

dedmen commented Aug 13, 2018

Here are the RHS/Vanilla magazine wells.
https://gist.github.com/dedmen/15e96189bd4c8edc148b136686275865
The naming for them looks all the same for vanilla/rhs. So I'd say we can just assume that naming scheme is vanilla.

@dedmen
Copy link
Contributor

dedmen commented Aug 13, 2018

Copy-paste of what I wrote to fuxna

One big problem that we were debating about is magazine size. For example you have a Stanag_556x45 magazineWell.
But there are everywhere from 10 to 150 round magazines. And if you only have one big Stanag group one can't take care of weapons that only take small magazines and can't incorporate the big ones.
People would have to make their own weapon specific magazineWells which then won't be compatible with other mods.
I see that problem is also not fixed in the CBA magazineWells yet. I'll get some more attention onto that

As example of that just look at https://github.com/CBATeam/CBA_A3/pull/928/files#diff-ddb5c69e174931ad1c5d4a5d93f8a28bR19
This magazineWell is basically useless for every weapon that cannot fit 150rnd drum mags for whatever reason.
Maybe we should split them like 5/10/20/30/50/100/150 round magazines?
Or maybe small/20/30/big? If you can fit a 100rnd you can probably also fit a 150rnd magazine. So we can just combine them as big
5/10 is a rather big difference though. So maybe 5/10/20/30/big ?
Ofcause we end up with a lot of mag groups. But modularity doesn't hurt us here. Modularity should be high up on the priority list.

I think for 5,56 we can probably leave out the 5/10 rnd ones. But for 7,62 5 round magazines actually become a thing.

Does anyone have anything against splitting it up like that?

We could use inheritance to have the 30rnd well inherit the 5,10 and 20rnd wells. But inheritance means people have to actively put a dependency onto CBA if they want to add ..... Wait.. Do they?
As long as people implement atleast the empty base classes that should be fine without requireAddons right?

But even then. I think inheritance is currently broken. But it's already on reyhards list.

@Blutze
Copy link
Contributor

Blutze commented Aug 13, 2018

Splitting up, yes. You need to step away from the number of rounds though.

Example 1: M24 mags shouldn't physically fit an M40 because only one of them is a "long action" R700 (as in, long enough to support .300 WinMag). You cannot merge these two, not even their 5 round mags.
Example 2: Most bullpups will support a 60 round quadstack, but a 50 round drum would be next to useless because of where it is relative to your body. The F2000 however apparently has a very deep magwell and wouldn't work with either.

Something like this would work (can't be bothered pulling up the actual class names):

class BI_F2000 : rifle_base {
    magazineWell[] = {"CBA_556_STANAG_Stick"};
};
class UK3CB_L85 : rifle_base {
    magazineWell[] = {"CBA_556_STANAG_Stick", "CBA_556_STANAG_Coffin"};
};
class HLC_Colt727 : rifle_base {
    magazineWell[] = {"CBA_556_STANAG_Stick", "CBA_556_STANAG_Coffin", "CBA_556_STANAG_Drum"};
};


class rhssaf_g36c : rifle_base {
    magazineWell[] = {"CBA_G36_Stick", "CBA_G36_Drum"};
};

That plus belts (where to my knowledge, only 7.62x51 has two different variants if you pretend everything is a loose strap) should take care of pretty much all cases.

@dedmen
Copy link
Contributor

dedmen commented Aug 14, 2018

What is a "Coffin" magazine?
I agree that's a better solution. Is there any reason why a gun would be magazine length limited too?
Like I could see some Sniper rifles that take a Stanag 7,62 magazine but obviously don't want it to take 30 round magazines.
Would we want to again split it apart and for at least the relevant calibers (7,62mm/.300/.308/.338/.50)?
Split the "Stick" ones up between 5/10/20/bigger?
Splitting up Drum/Coffin(whatever that is :D) obviously wouldn't make sense as weapons that are limited by magazine "length" can't fit these anyway.

Inheritance would come in very handy here as we could
5 {}
10 : 5 {}
20 : 10 {}
big : 20 {}
Stick: big {};

@Blutze
Copy link
Contributor

Blutze commented Aug 14, 2018

http://www.imfdb.org/images/7/7d/Avengers3_241.jpg This would be a 100 round coffin. Also known as quadstack. Difference between these and drums is width - they only clip with the weapon model, not the user.

Length is a consideration when prone on the ground and because varying follower spring pressure over the duration of a mag could cause differences in how the rounds end up in the chamber, shifting your point of impact. 20 rounds for marksman rifles and 10 (or less) rounds for sniper rifles should be small enough for the latter not not be a problem, and the former is solved by drums being relatively short (often shorter than the standard size stick) plus not really modelled in the game anyway. The only actually longer 7.62x51 mag I am aware of is the OSW FAL 30 rounder - everything else is either 20 or a drum.

@dedmen
Copy link
Contributor

dedmen commented Sep 14, 2018

As already said we need to get this in early if we want it to be accepted as a standard.
So anything against the idea of splitting standard magazineWells (per caliber, non weapon specific) up as explained above?
5,10,20,drum,stick? Where stick will probably contain most of 5,10,20 too.
Or if we want to stay away from numbers
small (5,10 round), normal (20, 30), drum, stick?

I'm sure someone has a way better idea. Speak out please.

@commy2
Copy link
Contributor Author

commy2 commented Sep 14, 2018

Just make something. People will complain, and then you can adjust. And now you can even blame them back for not participating when they had a chance to make the initial decissions.

@bux
Copy link
Contributor

bux commented Sep 14, 2018

Just make something.

👍

Shipping beats Perfection

@dedmen
Copy link
Contributor

dedmen commented Sep 14, 2018

I agree. This PR right now has all combined magazine sizes. We could already merge this and then just add size-splits later.
Though! We don't account for the vanilla mag wells that will be there with next Arma update.

@robalo
Copy link
Contributor

robalo commented Sep 14, 2018

It's good to go as far as I'm concerned, I'm no big fan of making it ultra realistic but don't mind going that way too if there's high demand and good info sources.
Wouldn't worry much about vanilla stuff either, we'll 'fix' them later.

@Drofseh
Copy link
Contributor

Drofseh commented Sep 14, 2018

My vote is to merge now.

In future, the most I would want to see a magwell split into sub groups would be
MyMagWell_Standard - 'normal' capacity or anything physically smaller (eg, for STANAG 30 round magazines or smaller.)
MyMagWell_Large_Stick - any stick, coffin, or other magazine that is physically larger than Standard (eg, for AKs the 45 round RPK magaines, for STANAG the Surefire MAG5-60.)
MyMagWell_Drum - all drum magazines

Copy link
Contributor

@dedmen dedmen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same. Let's get this in quick and add on in a seperate PR.
Don't close #108 yet

@commy2 commy2 removed the WIP label Sep 14, 2018
@commy2 commy2 added this to the 3.9 milestone Sep 14, 2018
@commy2 commy2 merged commit 5651590 into master Sep 17, 2018
@commy2 commy2 deleted the JAM branch September 17, 2018 08:49
ViperMaul added a commit that referenced this pull request Sep 19, 2018
* master:
  Add Feature Camera Player EH (#982)
  German brands for JR and JAM components (#988)
  veteran29 Polish translation updates master (#986)
  German translation, part 3 (#981)
  German translation, part 2 (#980)
  German translation, part 1 (#979)
  add Joint Ammo Magazines A3 (#928)
  CBA_fnc_getVolume not calculating volume correctly (#984)
  ProjectileTracking - Stop tracking stationary objects (#985)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Joint Ammo and Magazines (JAM)
9 participants