// opfor weapons. Penguin is recreated using the Field Intensity attempt at remaking it
#include "../opfor/weapon_knife"
#include "../opfor/weapon_penguin"

// opfor nightvision
#include "../opfor/nvision"

// Modified HL shotgun to use the hlnuked kick and other goodies
#include "weapon_shotgunhl"

// HL Nuked weapons
#include "base"
#include "weapon_hlnuked_chaingun"
#include "weapon_hlnuked_devastator"
#include "weapon_hlnuked_rpg"
#include "weapon_hlnuked_handgun"

// Weapon behaviour/mode (bIsMultiplayer function)
// Like the singleplayer/multiplayer differences in vanilla HL
// True: Multiplayer
// False: Singleplayer
// THIS IS REQUIRED FOR THE weapon_clgauss TO WORK, OTHERWISE THE ENTIRE MAP SCRIPT WILL FAIL
const bool g_WeaponMode = false;
#include "weapon_clgauss"

// Replace the default hud weapon sprites
#include "replace_weapon_sprites"

// Full auto M16 just like in Duke Nukem Forever 2001
#include "../m16_fullauto"

//frankenstein's freezethrower monster script by Garompa and Four-Nines. CSO plasmagun + CSO aeolis originals by Nero and Aperture + fixes from they hunger weapon_teslagun and a lot of DeepSeek and ChatGPT
#include "csocommon"
#include "csobaseweapon"
#include "weapon_freezethrower"

void MapInit()
{	
	// Register original Opposing Force knife weapon by Outerbeast
	RegisterKnife();
	
	// Register opposing force Weapon Penguin - taken and adapten from Field Intensity
	CPenguin::Register();
	
	// Register Half life shotgun - used for duke shotty
	RegisterShotgunHL();

	// Register HL-Nuked weapons - adapted and modified to work in 5.26 and with new models and sounds
	RegisterHLNukedChaingun();
	RegisterHLNukedDevastator();
	RegisterHLNukedRpg();
	
	// Register modified HL Nuked weapons
	// Handgun -> added max clip size + manual reload and fixed autoreload
	RegisterHLNukedhandgun();
	
	// Register HL gauss from Cracklife - modified to be the Duke Nukem 1 laser pistol
	CLGAUSS::Register();
	
	// Replace default weapon sprites with custom ones
	REPLACE_WEAPON_SPRITES::SetReplacements( 
	"dn3d_r/weapons","dnf2001scope;dnf2001sniper;enfgun;expander;fists;hlnuked_640hud7;m32;mechabees;arrow;mlauncher;nade_sight;pipebomb;railgun;shrinker;silentuzi;tripbomb;wanted_640hud1;wanted_640hud3;wanted_640hud4;wanted_640hud6;weapon_boot",	"weapon_9mmAR;weapon_357;weapon_crowbar;weapon_displacer;weapon_egon;weapon_gauss;weapon_handgrenade;weapon_hornetgun;weapon_m249;weapon_pipewrench;weapon_rpg;weapon_satchel;weapon_sniperrifle;weapon_sporelauncher;weapon_tripmine;weapon_uzi;weapon_uziakimbo" );
	
	//Freezethrower weapon amalgam
	freezethrower::Register();
}