diff --git a/scripts/zm/replaced/_zm_weapon_locker.gsc b/scripts/zm/replaced/_zm_weapon_locker.gsc index 3355b0c2..e3ee1c7a 100644 --- a/scripts/zm/replaced/_zm_weapon_locker.gsc +++ b/scripts/zm/replaced/_zm_weapon_locker.gsc @@ -108,4 +108,46 @@ show_current_weapon(player) stub.weaponlockerhud[num] destroy(); stub.weaponlockerhud[num] = undefined; +} + +wl_set_stored_weapondata( weapondata ) +{ + name = weapondata["name"]; + dw_name = weaponDualWieldWeaponName(name); + alt_name = weaponAltWeaponName(name); + + clip_missing = weaponClipSize(name) - weapondata["clip"]; + if (clip_missing > weapondata["stock"]) + { + clip_missing = weapondata["stock"]; + } + weapondata["clip"] += clip_missing; + weapondata["stock"] -= clip_missing; + + if (dw_name != "none") + { + clip_dualwield_missing = weaponClipSize(dw_name) - weapondata["lh_clip"]; + if (clip_dualwield_missing > weapondata["stock"]) + { + clip_dualwield_missing = weapondata["stock"]; + } + weapondata["lh_clip"] += clip_dualwield_missing; + weapondata["stock"] -= clip_dualwield_missing; + } + + if (alt_name != "none") + { + clip_alt_missing = weaponClipSize(alt_name) - weapondata["alt_clip"]; + if (clip_alt_missing > weapondata["alt_stock"]) + { + clip_alt_missing = weapondata["alt_stock"]; + } + weapondata["alt_clip"] += clip_alt_missing; + weapondata["alt_stock"] -= clip_alt_missing; + } + + if ( level.weapon_locker_online ) + self set_stored_weapondata( weapondata, level.weapon_locker_map ); + else + self.stored_weapon_data = weapondata; } \ No newline at end of file diff --git a/scripts/zm/zm_buried/zm_buried_reimagined.gsc b/scripts/zm/zm_buried/zm_buried_reimagined.gsc index 2f99eb29..55a2bc66 100644 --- a/scripts/zm/zm_buried/zm_buried_reimagined.gsc +++ b/scripts/zm/zm_buried/zm_buried_reimagined.gsc @@ -75,6 +75,7 @@ main() replaceFunc(maps\mp\zombies\_zm_banking::bank_deposit_unitrigger, scripts\zm\replaced\_zm_banking::bank_deposit_unitrigger); replaceFunc(maps\mp\zombies\_zm_banking::bank_withdraw_unitrigger, scripts\zm\replaced\_zm_banking::bank_withdraw_unitrigger); replaceFunc(maps\mp\zombies\_zm_weapon_locker::triggerweaponslockerisvalidweaponpromptupdate, scripts\zm\replaced\_zm_weapon_locker::triggerweaponslockerisvalidweaponpromptupdate); + replaceFunc(maps\mp\zombies\_zm_weapon_locker::wl_set_stored_weapondata, scripts\zm\replaced\_zm_weapon_locker::wl_set_stored_weapondata); } init() diff --git a/scripts/zm/zm_highrise/zm_highrise_reimagined.gsc b/scripts/zm/zm_highrise/zm_highrise_reimagined.gsc index d63e117b..3d4ace76 100644 --- a/scripts/zm/zm_highrise/zm_highrise_reimagined.gsc +++ b/scripts/zm/zm_highrise/zm_highrise_reimagined.gsc @@ -49,6 +49,7 @@ main() replaceFunc(maps\mp\zombies\_zm_banking::bank_deposit_unitrigger, scripts\zm\replaced\_zm_banking::bank_deposit_unitrigger); replaceFunc(maps\mp\zombies\_zm_banking::bank_withdraw_unitrigger, scripts\zm\replaced\_zm_banking::bank_withdraw_unitrigger); replaceFunc(maps\mp\zombies\_zm_weapon_locker::triggerweaponslockerisvalidweaponpromptupdate, scripts\zm\replaced\_zm_weapon_locker::triggerweaponslockerisvalidweaponpromptupdate); + replaceFunc(maps\mp\zombies\_zm_weapon_locker::wl_set_stored_weapondata, scripts\zm\replaced\_zm_weapon_locker::wl_set_stored_weapondata); door_changes(); } diff --git a/scripts/zm/zm_transit/zm_transit_reimagined.gsc b/scripts/zm/zm_transit/zm_transit_reimagined.gsc index 2c397917..34417420 100644 --- a/scripts/zm/zm_transit/zm_transit_reimagined.gsc +++ b/scripts/zm/zm_transit/zm_transit_reimagined.gsc @@ -68,6 +68,7 @@ main() replaceFunc(maps\mp\zombies\_zm_banking::bank_deposit_unitrigger, scripts\zm\replaced\_zm_banking::bank_deposit_unitrigger); replaceFunc(maps\mp\zombies\_zm_banking::bank_withdraw_unitrigger, scripts\zm\replaced\_zm_banking::bank_withdraw_unitrigger); replaceFunc(maps\mp\zombies\_zm_weapon_locker::triggerweaponslockerisvalidweaponpromptupdate, scripts\zm\replaced\_zm_weapon_locker::triggerweaponslockerisvalidweaponpromptupdate); + replaceFunc(maps\mp\zombies\_zm_weapon_locker::wl_set_stored_weapondata, scripts\zm\replaced\_zm_weapon_locker::wl_set_stored_weapondata); replaceFunc(maps\mp\zombies\_zm_zonemgr::manage_zones, ::manage_zones); grief_include_weapons();