Skip to content

Commit

Permalink
Start with weapons loaded
Browse files Browse the repository at this point in the history
  • Loading branch information
gitMarky committed Nov 17, 2018
1 parent c35b4dc commit 774c826
Show file tree
Hide file tree
Showing 10 changed files with 49 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ public func Initialize()
ClearFiremodes();
AddFiremode(FiremodeMissiles_TechniqueOptical());
AddFiremode(FiremodeMissiles_TechniqueUnguided());

StartLoaded();
}

func Definition(id weapon)
Expand Down
14 changes: 14 additions & 0 deletions ModernCombat.ocd/Items.ocd/Weapons.ocd/AssaultRifle.ocd/Script.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public func Initialize()
AddFiremode(FiremodeGrenades_Cluster());
AddFiremode(FiremodeGrenades_Smoke());

StartLoaded();
}

func Definition(id weapon)
Expand Down Expand Up @@ -203,6 +204,19 @@ local ReloadStateMap =
Magazine_LoadAmmoChamber = { Delay = 15, EndCall = "PlaySoundChamberBullet", },
};


public func AmmoChamberCapacity(id ammo)
{
if (ammo == CMC_Ammo_Bullets)
{
return 1;
}
else
{
return 0;
}
}

/* --- Effects --- */

func OnFireProjectile(object user, object projectile, proplist firemode)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ public func Initialize()
AddFiremode(FiremodeGrenades_Explosive());
AddFiremode(FiremodeGrenades_Cluster());
AddFiremode(FiremodeGrenades_Smoke());

StartLoaded();
}

func Definition(id weapon)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ public func Initialize()
ClearFiremodes();
AddFiremode(FiremodeBullets_TechniqueAuto());
AddFiremode(FiremodeBullets_TechniqueBurst());

StartLoaded();
}

func Definition(id weapon)
Expand Down
2 changes: 2 additions & 0 deletions ModernCombat.ocd/Items.ocd/Weapons.ocd/Pistol.ocd/Script.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ public func Initialize()
ClearFiremodes();
AddFiremode(FiremodeBullets_TechniqueSingle());
AddFiremode(FiremodeBullets_TechniqueTracerDart());

StartLoaded();
}

func Definition(id def)
Expand Down
2 changes: 2 additions & 0 deletions ModernCombat.ocd/Items.ocd/Weapons.ocd/Revolver.ocd/Script.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ public func Initialize()
// Fire mode list
ClearFiremodes();
AddFiremode(FiremodeBullets_TechniqueSingle());

StartLoaded();
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ public func Initialize()
ClearFiremodes();
AddFiremode(FiremodeMissiles_TechniqueOptical());
AddFiremode(FiremodeMissiles_TechniqueUnguided());

StartLoaded();
}

func Definition(id weapon)
Expand Down
2 changes: 2 additions & 0 deletions ModernCombat.ocd/Items.ocd/Weapons.ocd/Shotgun.ocd/Script.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ public func Initialize()
// Fire mode list
ClearFiremodes();
AddFiremode(FiremodeBullets_TechniqueSpreadshot());

StartLoaded();
}

func Definition(id weapon)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ public func Initialize()
AddFiremode(FiremodeBullets_TechniqueAuto());
AddFiremode(FiremodeBullets_TechniqueBurst());
AddFiremode(FiremodeBullets_TechniqueSingle());

StartLoaded();
}

func Definition(id weapon)
Expand Down
19 changes: 19 additions & 0 deletions ModernCombat.ocd/Libraries.ocd/Firearm.ocd/Script.c
Original file line number Diff line number Diff line change
Expand Up @@ -913,3 +913,22 @@ func IsUserReadyToReload(object user)
{
return user->HasActionProcedure(false);
}

func StartLoaded()
{
var ammo_types = [];
for (var firemode in GetFiremodes())
{
// Do it only once per ammo type
var type = firemode->GetAmmoID();
var amount = firemode->GetAmmoAmount();
if (!IsValueInArray(ammo_types, type))
{
// Loaded
SetAmmo(type, amount);
// Bullet is chambered (library call already checks whether it is necessary, etc.)
this->~AmmoChamberInsert(type);
PushBack(ammo_types, type);
}
}
}

0 comments on commit 774c826

Please sign in to comment.