From f2c1d92fba27637be0330be4edd515f7d9c37787 Mon Sep 17 00:00:00 2001 From: Marco Cawthorne Date: Fri, 26 Jul 2024 20:45:12 -0700 Subject: [PATCH] Rebase against Nuclide, stub weapons --- PROJECT | 1 + README.md | 2 +- radiant.game | 26 ++ radiant.xml | 76 ++++ src/client/Makefile | 4 +- src/client/cmds.qc | 28 +- src/client/defs.h | 7 +- src/client/draw.qc | 2 +- src/client/entities.qc | 3 + src/client/hud_ammonotify.qc | 12 +- src/client/hud_itemnotify.qc | 2 +- src/client/init.qc | 3 + src/client/vgui_changeclass.qc | 2 +- src/client/vgui_chooseteam.qc | 2 +- src/server/Makefile | 4 +- src/server/client.qc | 2 +- src/server/dispenser.qc | 72 ++-- src/server/func_nobuild.qc | 2 +- src/server/func_nogrenades.qc | 2 +- src/server/gamerules.qc | 52 +-- src/server/info_areadef.qc | 4 +- src/server/info_tfgoal.qc | 36 +- src/server/item_armor.qc | 12 +- src/server/item_healthkit.qc | 4 +- src/server/item_tfgoal.qc | 16 +- src/server/nades.qc | 46 +- src/server/progs.src | 14 - src/server/sentry.qc | 15 +- src/server/server.qc | 6 +- src/server/spawn.qc | 7 +- src/server/teleporter.qc | 22 +- src/shared/include.src | 33 +- src/shared/player.qc | 441 +++++++------------- src/shared/pmove.qc | 6 +- src/shared/w_asscan.qc | 4 +- src/shared/w_autorifle.qc | 4 +- src/shared/w_crowbar.qc | 4 +- src/shared/w_dbs.qc | 4 +- src/shared/w_flamer.qc | 2 +- src/shared/w_glauncher.qc | 4 +- src/shared/w_grapple.qc | 2 +- src/shared/w_incendiary.qc | 4 +- src/shared/w_knife.qc | 4 +- src/shared/w_medkit.qc | 4 +- src/shared/w_nailgun.qc | 4 +- src/shared/w_pipebomb.qc | 4 +- src/shared/w_railgun.qc | 4 +- src/shared/w_rpg.qc | 4 +- src/shared/w_sbs.qc | 4 +- src/shared/w_sniper.qc | 12 +- src/shared/w_supernail.qc | 4 +- src/shared/w_tranquil.qc | 4 +- src/shared/w_umbrella.qc | 4 +- src/shared/w_wrench.qc | 4 +- zpak001.pk3dir/PAK_NAME | 1 + zpak001.pk3dir/def/ammo.def | 30 ++ zpak001.pk3dir/def/items.def | 8 + zpak001.pk3dir/def/player.def | 4 + zpak001.pk3dir/def/weapons.def | 18 + zpak001.pk3dir/def/weapons/ac.def | 43 ++ zpak001.pk3dir/def/weapons/autorifle.def | 43 ++ zpak001.pk3dir/def/weapons/axe.def | 43 ++ zpak001.pk3dir/def/weapons/flamethrower.def | 43 ++ zpak001.pk3dir/def/weapons/gl.def | 43 ++ zpak001.pk3dir/def/weapons/ic.def | 43 ++ zpak001.pk3dir/def/weapons/knife.def | 43 ++ zpak001.pk3dir/def/weapons/medikit.def | 43 ++ zpak001.pk3dir/def/weapons/ng.def | 43 ++ zpak001.pk3dir/def/weapons/pl.def | 43 ++ zpak001.pk3dir/def/weapons/railgun.def | 43 ++ zpak001.pk3dir/def/weapons/rpg.def | 43 ++ zpak001.pk3dir/def/weapons/shotgun.def | 43 ++ zpak001.pk3dir/def/weapons/sniperrifle.def | 43 ++ zpak001.pk3dir/def/weapons/spanner.def | 43 ++ zpak001.pk3dir/def/weapons/superng.def | 43 ++ zpak001.pk3dir/def/weapons/supershotgun.def | 43 ++ zpak001.pk3dir/def/weapons/tranq.def | 43 ++ 77 files changed, 1334 insertions(+), 551 deletions(-) create mode 100644 PROJECT create mode 100644 radiant.game create mode 100644 radiant.xml create mode 100644 zpak001.pk3dir/PAK_NAME create mode 100644 zpak001.pk3dir/def/ammo.def create mode 100644 zpak001.pk3dir/def/items.def create mode 100644 zpak001.pk3dir/def/player.def create mode 100644 zpak001.pk3dir/def/weapons.def create mode 100644 zpak001.pk3dir/def/weapons/ac.def create mode 100644 zpak001.pk3dir/def/weapons/autorifle.def create mode 100644 zpak001.pk3dir/def/weapons/axe.def create mode 100644 zpak001.pk3dir/def/weapons/flamethrower.def create mode 100644 zpak001.pk3dir/def/weapons/gl.def create mode 100644 zpak001.pk3dir/def/weapons/ic.def create mode 100644 zpak001.pk3dir/def/weapons/knife.def create mode 100644 zpak001.pk3dir/def/weapons/medikit.def create mode 100644 zpak001.pk3dir/def/weapons/ng.def create mode 100644 zpak001.pk3dir/def/weapons/pl.def create mode 100644 zpak001.pk3dir/def/weapons/railgun.def create mode 100644 zpak001.pk3dir/def/weapons/rpg.def create mode 100644 zpak001.pk3dir/def/weapons/shotgun.def create mode 100644 zpak001.pk3dir/def/weapons/sniperrifle.def create mode 100644 zpak001.pk3dir/def/weapons/spanner.def create mode 100644 zpak001.pk3dir/def/weapons/superng.def create mode 100644 zpak001.pk3dir/def/weapons/supershotgun.def create mode 100644 zpak001.pk3dir/def/weapons/tranq.def diff --git a/PROJECT b/PROJECT new file mode 100644 index 0000000..ae47d31 --- /dev/null +++ b/PROJECT @@ -0,0 +1 @@ +TeamContest \ No newline at end of file diff --git a/README.md b/README.md index 299b36b..99bca50 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# FreeTFC +# Team Contest (FreeTFC) Clean-room reimplementation of Team Fortress Classic in QuakeC. ![Preview 1](img/preview1.jpg) diff --git a/radiant.game b/radiant.game new file mode 100644 index 0000000..a3bb8b1 --- /dev/null +++ b/radiant.game @@ -0,0 +1,26 @@ + + diff --git a/radiant.xml b/radiant.xml new file mode 100644 index 0000000..84fafec --- /dev/null +++ b/radiant.xml @@ -0,0 +1,76 @@ + + + + "hlcsg" + "hlbsp" + "hlvis" + "hlrad" + + qbsp -hlbsp -basedir "[EnginePath]" -gamedir "[GameName]" -path "[UserEnginePath]" + qvis -basedir "[EnginePath]" -gamedir "[GameName]" -path "[UserEnginePath]" + qlight -basedir "[EnginePath]" -gamedir "[GameName]" -path "[UserEnginePath]" + + + [csg] "[MapFile]" + [bsp] "[MapFile]" + [vis] -full "[MapFile]" + [light] -extra "[MapFile]" + + + [csg] "[MapFile]" + [bsp] "[MapFile]" + [vis] "[MapFile]" + [light] "[MapFile]" + + + [csg] "[MapFile]" + [bsp] "[MapFile]" + [vis] -fast "[MapFile]" + [light] -fast "[MapFile]" + + + [csg] "[MapFile]" + [bsp] "[MapFile]" + [vis] -fast "[MapFile]" + + + [csg] "[MapFile]" + [bsp] "[MapFile]" + + + [csg] -onlyents "[MapFile]" + [bsp]"[MapFile]" + + + + + [qbsp] "[MapFile]" + [qvis] "[MapFile]" + [qlight] -extra "[MapFile]" + + + [qbsp] "[MapFile]" + [qvis] "[MapFile]" + [qlight] "[MapFile]" + + + [qbsp] "[MapFile]" + [qvis] -fast "[MapFile]" + [qlight] -fast "[MapFile]" + + + [qbsp] "[MapFile]" + [qvis] -fast "[MapFile]" + + + [qbsp] "[MapFile]" + + + [qbsp] -onlyents "[MapFile]" + + + diff --git a/src/client/Makefile b/src/client/Makefile index 627019a..2fe44a4 100644 --- a/src/client/Makefile +++ b/src/client/Makefile @@ -1,4 +1,4 @@ -CC=fteqcc +QCC=fteqcc all: - $(CC) progs.src + $(QCC) progs.src diff --git a/src/client/cmds.qc b/src/client/cmds.qc index 20c973f..acdfa8d 100644 --- a/src/client/cmds.qc +++ b/src/client/cmds.qc @@ -16,9 +16,12 @@ void VGUI_ChooseClass(void); -int +bool ClientGame_ConsoleCommand(void) { + int s = (int)getproperty(VF_ACTIVESEAT); + pSeatTFC = &g_seats_tfc[s]; + switch(argv(0)) { case "build": sendevent("TFCBuild", "i", stoi(argv(1))); @@ -34,21 +37,30 @@ ClientGame_ConsoleCommand(void) case "changeteam": VGUI_ChooseTeam(); break; - case "+gren1": - pSeat->m_iInputExtra1 = TRUE; + pSeatTFC->m_bInputGren1 = true; break; case "-gren1": - pSeat->m_iInputExtra1 = FALSE; + pSeatTFC->m_bInputGren1 = false; break; case "+gren2": - pSeat->m_iInputExtra2 = TRUE; + pSeatTFC->m_bInputGren2 = true; break; case "-gren2": - pSeat->m_iInputExtra2 = FALSE; + pSeatTFC->m_bInputGren2 = false; + break; + /* stubbed out, so they won't get forwarded to Nuclide */ + case "goprone": + case "gocrouch": + case "+prone": + case "-prone": + case "+gostand": + case "-gostand": + case "+sprint": + case "-sprint": break; default: - return (0); + return (false); } - return (1); + return (true); } diff --git a/src/client/defs.h b/src/client/defs.h index 5106619..e8b5f19 100644 --- a/src/client/defs.h +++ b/src/client/defs.h @@ -28,5 +28,10 @@ var string g_tfchud7_spr; var int MUZZLE_ROUND; +void TFCHallucination_Insert(vector, vector); -void TFCHallucination_Insert(vector, vector); \ No newline at end of file +struct +{ + bool m_bInputGren1; + bool m_bInputGren2; +} g_seats_tfc[4], *pSeatTFC; \ No newline at end of file diff --git a/src/client/draw.qc b/src/client/draw.qc index 07fcd19..1a8dca8 100644 --- a/src/client/draw.qc +++ b/src/client/draw.qc @@ -42,7 +42,7 @@ ClientGame_PreDraw(void) void ClientGame_PostDraw(void) { - player pl = (player)pSeat->m_ePlayer; + TFPlayer pl = (TFPlayer)pSeat->m_ePlayer; if (serverkeyfloat("areadefs") == 1) { string strArea = getplayerkeyvalue(player_localnum, "*areadef"); diff --git a/src/client/entities.qc b/src/client/entities.qc index 8d3cda0..ef59d5b 100644 --- a/src/client/entities.qc +++ b/src/client/entities.qc @@ -18,6 +18,9 @@ int ClientGame_EntityUpdate(float id, float new) { switch (id) { + case ENT_PLAYER: + NSENTITY_READENTITY(TFPlayer, new) + break; default: return (0); } diff --git a/src/client/hud_ammonotify.qc b/src/client/hud_ammonotify.qc index 8871d8e..11ca3a5 100644 --- a/src/client/hud_ammonotify.qc +++ b/src/client/hud_ammonotify.qc @@ -76,10 +76,10 @@ HUD_AmmoNotify_Insert(int type, int count) /* called whenever we should check for pickup updates */ void -HUD_AmmoNotify_Check(player pl) +HUD_AmmoNotify_Check(NSClientPlayer pl) { - HUD_AmmoNotify_Insert(0, pl.m_iAmmoRockets - pl.m_iAmmoRockets_net); - HUD_AmmoNotify_Insert(1, pl.m_iAmmoNails - pl.m_iAmmoNails_net); - HUD_AmmoNotify_Insert(2, pl.m_iAmmoCells - pl.m_iAmmoCells_net); - HUD_AmmoNotify_Insert(3, pl.m_iAmmoShells - pl.m_iAmmoShells_net); -} \ No newline at end of file + HUD_AmmoNotify_Insert(0, pl.m_iAmmoTypes[1] - pl.m_iAmmoTypes_net[1]); + HUD_AmmoNotify_Insert(1, pl.m_iAmmoTypes[2] - pl.m_iAmmoTypes_net[2]); + HUD_AmmoNotify_Insert(2, pl.m_iAmmoTypes[3] - pl.m_iAmmoTypes_net[3]); + HUD_AmmoNotify_Insert(3, pl.m_iAmmoTypes[4] - pl.m_iAmmoTypes_net[4]); +} diff --git a/src/client/hud_itemnotify.qc b/src/client/hud_itemnotify.qc index caca03a..aa38106 100644 --- a/src/client/hud_itemnotify.qc +++ b/src/client/hud_itemnotify.qc @@ -76,7 +76,7 @@ HUD_ItemNotify_Insert(int type, int count) /* called whenever we should check for pickup updates */ void -HUD_ItemNotify_Check(player pl) +HUD_ItemNotify_Check(NSClientPlayer pl) { int healthdiff = bound(0, pl.health - pl.health_net, 100); int armordiff = bound(0, pl.armor - pl.armor_net, 100); diff --git a/src/client/init.qc b/src/client/init.qc index 5734f47..e930895 100644 --- a/src/client/init.qc +++ b/src/client/init.qc @@ -35,6 +35,8 @@ ClientGame_Init(float apilevel, string enginename, float engineversion) registercommand("chooseteam"); registercommand("changeteam"); Obituary_Init(); + + pSeatTFC = &g_seats_tfc[0]; } void VGUI_ChooseTeam(void); @@ -67,4 +69,5 @@ ClientGame_RendererRestart(string rstr) MUZZLE_SMALL = (int)getmodelindex("sprites/muzzleflash2.spr"); MUZZLE_WEIRD = (int)getmodelindex("sprites/muzzleflash3.spr"); MUZZLE_ROUND = (int)getmodelindex("sprites/muzzleflash.spr"); + HLSprite_Init(); } diff --git a/src/client/vgui_changeclass.qc b/src/client/vgui_changeclass.qc index aca5990..0f6fdf0 100644 --- a/src/client/vgui_changeclass.qc +++ b/src/client/vgui_changeclass.qc @@ -228,5 +228,5 @@ VGUI_ChooseClass(void) } winClassSelection.Show(); - winClassSelection.SetPos((video_res / 2) - (winClassSelection.GetSize() / 2)); + winClassSelection.SetPos((g_vidsize / 2) - (winClassSelection.GetSize() / 2)); } \ No newline at end of file diff --git a/src/client/vgui_chooseteam.qc b/src/client/vgui_chooseteam.qc index ec6fd61..0ba9ecf 100644 --- a/src/client/vgui_chooseteam.qc +++ b/src/client/vgui_chooseteam.qc @@ -155,5 +155,5 @@ VGUI_ChooseTeam(void) } winChooseTeam.Show(); - winChooseTeam.SetPos((video_res / 2) - (winChooseTeam.GetSize() / 2)); + winChooseTeam.SetPos((g_vidsize / 2) - (winChooseTeam.GetSize() / 2)); } diff --git a/src/server/Makefile b/src/server/Makefile index 627019a..2fe44a4 100644 --- a/src/server/Makefile +++ b/src/server/Makefile @@ -1,4 +1,4 @@ -CC=fteqcc +QCC=fteqcc all: - $(CC) progs.src + $(QCC) progs.src diff --git a/src/server/client.qc b/src/server/client.qc index 4b1082a..e73cc2c 100644 --- a/src/server/client.qc +++ b/src/server/client.qc @@ -18,7 +18,7 @@ void Game_RunClientCommand(void) { - player pl = (player)self; + TFPlayer pl = (TFPlayer)self; /* clear map triggers */ pl.gflags &= ~GF_NOBUILDZONE; diff --git a/src/server/dispenser.qc b/src/server/dispenser.qc index 656f001..57b9de7 100644 --- a/src/server/dispenser.qc +++ b/src/server/dispenser.qc @@ -28,28 +28,28 @@ TFCDispenser:NSSurfacePropEntity int m_iRockets; int m_iCells; int m_iArmor; - - void(void) TFCDispenser; - virtual void(player) Place; - virtual void(void) FinishPlacing; + void TFCDispenser(void); - virtual void(entity) Touch; + virtual void Place(TFPlayer); + virtual void FinishPlacing(void); - virtual void(void) Replenish; - virtual void(void) ClampValues; + virtual void Touch(entity); - virtual int(void) GrabShells; - virtual int(void) GrabNails; - virtual int(void) GrabRockets; - virtual int(void) GrabCells; - virtual int(void) GrabArmor; + virtual void Replenish(void); + virtual void ClampValues(void); - virtual void(void) Death; + virtual int GrabShells(void); + virtual int GrabNails(void); + virtual int GrabRockets(void); + virtual int GrabCells(void); + virtual int GrabArmor(void); + + virtual void Death(entity, entity, int, vector, int); }; void -TFCDispenser::Death(void) +TFCDispenser::Death(entity inflictor, entity attacker, int damage, vector dir, int location) { env_message_single(real_owner, "#Dispenser_destroyed"); pointparticles(particleeffectnum("fx_explosion.main"), origin, [0,0,0], 1); @@ -171,19 +171,23 @@ TFCDispenser::Touch(entity eToucher) if (m_flNextDispense > time) return; - player pl = (player)eToucher; + TFPlayer pl = (TFPlayer)eToucher; + int rocketType = ammoNumForName("ammo_rockets"); + int nailType = ammoNumForName("ammo_nails"); + int cellType = ammoNumForName("ammo_cells"); + int shellType = ammoNumForName("ammo_shells"); int r, n, c, s, a, sum; r = n = c = s = a = sum = 0; /* only subtract what if we need anything */ - if (pl.m_iAmmoRockets < pl.m_iMaxRockets) + if (pl.GetReserveAmmo(rocketType) < pl.m_iMaxRockets) r = GrabRockets(); - if (pl.m_iAmmoNails < pl.m_iMaxNails) + if (pl.GetReserveAmmo(nailType) < pl.m_iMaxNails) n = GrabNails(); - if (pl.m_iAmmoCells < pl.m_iMaxCells) + if (pl.GetReserveAmmo(cellType) < pl.m_iMaxCells) c = GrabCells(); - if (pl.m_iAmmoShells < pl.m_iMaxShells) + if (pl.GetReserveAmmo(shellType) < pl.m_iMaxShells) s = GrabShells(); if (pl.armor < pl.m_iMaxArmor) a = GrabArmor(); @@ -198,21 +202,12 @@ TFCDispenser::Touch(entity eToucher) sound(this, CHAN_ITEM, "weapons/scock1.wav", 1.0, ATTN_NORM); /* add whatever it is we can get */ - pl.m_iAmmoRockets += r; - pl.m_iAmmoNails += n; - pl.m_iAmmoCells += c; - pl.m_iAmmoShells += s; + pl.GiveAmmo(rocketType, r); + pl.GiveAmmo(nailType, n); + pl.GiveAmmo(cellType, c); + pl.GiveAmmo(shellType, s); pl.armor += a; - /* clamp player values */ - if (pl.m_iAmmoRockets > pl.m_iMaxRockets) - pl.m_iAmmoRockets = pl.m_iMaxRockets; - if (pl.m_iAmmoNails > pl.m_iMaxNails) - pl.m_iAmmoNails = pl.m_iMaxNails; - if (pl.m_iAmmoCells > pl.m_iMaxCells) - pl.m_iAmmoCells = pl.m_iMaxCells; - if (pl.m_iAmmoShells > pl.m_iMaxShells) - pl.m_iAmmoShells = pl.m_iMaxShells; if (pl.armor > pl.m_iMaxArmor) pl.armor = pl. m_iMaxArmor; @@ -220,7 +215,7 @@ TFCDispenser::Touch(entity eToucher) } void -TFCDispenser::Place(player pl) +TFCDispenser::Place(TFPlayer pl) { vector newAngles = pl.GetAngles(); newAngles[0] = newAngles[2] = 0; @@ -260,14 +255,15 @@ TFCDispenser::TFCDispenser(void) void TFCDispenser_Build(void) { - player pl = (player)self; + TFPlayer pl = (TFPlayer)self; + int cellType = ammoNumForName("ammo_cells"); /* only engineers can do this */ if (pl.classtype != CLASS_ENGINEER) return; - /* it costs */ - if (pl.m_iAmmoCells < TFC_DISPENSER_COST) { + /* it costs cells to build these things */ + if (pl.UseAmmo(cellType, TFC_DISPENSER_COST) == false) { env_message_single(pl, "#Build_nometal"); return; } @@ -283,8 +279,6 @@ TFCDispenser_Build(void) return; } - pl.m_iAmmoCells -= TFC_DISPENSER_COST; - /* deploy */ TFCDispenser dispenser = spawn(TFCDispenser); dispenser.Place(pl); @@ -293,5 +287,5 @@ TFCDispenser_Build(void) void TFCDispenser_Dismantle(void) { - TFC_DetonateTypeForPlayer((player)self, "TFCDispenser"); + TFC_DetonateTypeForPlayer((TFPlayer)self, "TFCDispenser"); } diff --git a/src/server/func_nobuild.qc b/src/server/func_nobuild.qc index ab604bc..32bea00 100644 --- a/src/server/func_nobuild.qc +++ b/src/server/func_nobuild.qc @@ -36,7 +36,7 @@ func_nobuild:NSBrushTrigger void func_nobuild::Touch(entity eToucher) { - player pl = (player)eToucher; + TFPlayer pl = (TFPlayer)eToucher; if (!(eToucher.flags & FL_CLIENT)) return; diff --git a/src/server/func_nogrenades.qc b/src/server/func_nogrenades.qc index b34be37..5a7bb7f 100644 --- a/src/server/func_nogrenades.qc +++ b/src/server/func_nogrenades.qc @@ -36,7 +36,7 @@ func_nogrenades:NSBrushTrigger void func_nogrenades::Touch(entity eToucher) { - player pl = (player)eToucher; + TFPlayer pl = (TFPlayer)eToucher; if (!(eToucher.flags & FL_CLIENT)) return; diff --git a/src/server/gamerules.qc b/src/server/gamerules.qc index 6fc0ae8..49a4324 100644 --- a/src/server/gamerules.qc +++ b/src/server/gamerules.qc @@ -125,7 +125,7 @@ TFCGameRules_PlayerRespawn(void) void TFCGameRules::PlayerDeath(NSClientPlayer pp) { - player pl = (player)pp; + TFPlayer pl = (TFPlayer)pp; DropGoalItem(pp); pl.SetSolid(SOLID_NOT); @@ -140,14 +140,12 @@ TFCGameRules::PlayerDeath(NSClientPlayer pp) void TFCGameRules::PlayerKill(NSClientPlayer pp) { - player pl = (player)pp; - Damage_Apply(pl, pl, pl.health, WEAPON_NONE, DMG_SKIP_ARMOR); } void TFCGameRules::PlayerRespawn(NSClientPlayer pp) { - player pl = (player)pp; + TFPlayer pl = (TFPlayer)pp; pl.MakeClass(pl.classtype); pl.SpawnIntoGame(); } @@ -155,7 +153,7 @@ TFCGameRules::PlayerRespawn(NSClientPlayer pp) void TFCGameRules::PlayerSpawn(NSClientPlayer pp) { - player pl = (player)pp; + TFPlayer pl = (TFPlayer)pp; pl.MakeTempSpectator(); /* replace this with a non-spectator ghost */ Spawn_ObserverCam(pl); } @@ -164,31 +162,6 @@ bool TFCGameRules::ImpulseCommand(NSClient bp, float num) { switch (num) { - case 101: - player pl = (player)bp; - if (cvar("sv_cheats") > 0) { - Weapons_AddItem(pl, WEAPON_CROWBAR, -1); - Weapons_AddItem(pl, WEAPON_MEDKIT, -1); - Weapons_AddItem(pl, WEAPON_KNIFE, -1); - Weapons_AddItem(pl, WEAPON_WRENCH, -1); - Weapons_AddItem(pl, WEAPON_UMBRELLA, -1); - Weapons_AddItem(pl, WEAPON_SBS, -1); - Weapons_AddItem(pl, WEAPON_SNIPER, -1); - Weapons_AddItem(pl, WEAPON_TRANQUIL, -1); - Weapons_AddItem(pl, WEAPON_RAILGUN, -1); - Weapons_AddItem(pl, WEAPON_AUTORIFLE, -1); - Weapons_AddItem(pl, WEAPON_DBS, -1); - Weapons_AddItem(pl, WEAPON_NAILGUN, -1); - Weapons_AddItem(pl, WEAPON_GLAUNCHER, -1); - Weapons_AddItem(pl, WEAPON_SUPERNAIL, -1); - Weapons_AddItem(pl, WEAPON_FLAMER, -1); - Weapons_AddItem(pl, WEAPON_RPG, -1); - Weapons_AddItem(pl, WEAPON_PIPEBOMB, -1); - Weapons_AddItem(pl, WEAPON_ASSCAN, -1); - Weapons_AddItem(pl, WEAPON_INCENDIARY, -1); - Weapons_AddItem(pl, WEAPON_GRAPPLE, -1); - } - break; default: return super::ImpulseCommand(bp, num); } @@ -201,6 +174,25 @@ TFCGameRules::InitPostEnts(void) { super::InitPostEnts(); + EntityDef_Precache("tf_weapon_ac"); + EntityDef_Precache("tf_weapon_autorifle"); + EntityDef_Precache("tf_weapon_axe"); + EntityDef_Precache("tf_weapon_flamethrower"); + EntityDef_Precache("tf_weapon_gl"); + EntityDef_Precache("tf_weapon_ic"); + EntityDef_Precache("tf_weapon_knife"); + EntityDef_Precache("tf_weapon_medikit"); + EntityDef_Precache("tf_weapon_ng"); + EntityDef_Precache("tf_weapon_pl"); + EntityDef_Precache("tf_weapon_railgun"); + EntityDef_Precache("tf_weapon_rpg"); + EntityDef_Precache("tf_weapon_shotgun"); + EntityDef_Precache("tf_weapon_sniperrifle"); + EntityDef_Precache("tf_weapon_spanner"); + EntityDef_Precache("tf_weapon_superng"); + EntityDef_Precache("tf_weapon_supershotgun"); + EntityDef_Precache("tf_weapon_tranq"); + /* rename the team spawns. */ info_player_teamspawn::RenameTeamSpawns(); info_tfdetect::Setup(); diff --git a/src/server/info_areadef.qc b/src/server/info_areadef.qc index 52d0dc2..9db7535 100644 --- a/src/server/info_areadef.qc +++ b/src/server/info_areadef.qc @@ -75,10 +75,10 @@ info_areadef::SpawnKey(string strKey, string strValue) void info_areadef::Respawn(void) { + super::Respawn(); + /* set up our volume */ SetSolid(SOLID_TRIGGER); - SetMovetype(MOVETYPE_NONE); - SetOrigin(GetSpawnOrigin()); SetSize(m_vecMins, m_vecMaxs); } diff --git a/src/server/info_tfgoal.qc b/src/server/info_tfgoal.qc index 0da3aae..0ae78f8 100644 --- a/src/server/info_tfgoal.qc +++ b/src/server/info_tfgoal.qc @@ -71,7 +71,7 @@ class info_tfgoal:NSRenderableEntity tfgoal_activation m_tfgActivation; tfgoal_effects m_tfgEffects; tfgoal_result m_tfgResult; - player m_Activator; + TFPlayer m_Activator; float m_dMustCarry; /* player must carry item of this ID */ float m_dRespawn; /* respawn after num seconds on TFRESULT_REMOVE */ @@ -130,11 +130,17 @@ void info_tfgoal::Touch(entity eToucher) { item_tfgoal findme = __NULL__; + int rocketType = ammoNumForName("ammo_rockets"); + int nailType = ammoNumForName("ammo_nails"); + int cellType = ammoNumForName("ammo_cells"); + int shellType = ammoNumForName("ammo_shells"); + int medikitType = ammoNumForName("ammo_medkit"); + int detpackType = ammoNumForName("ammo_detpack"); if (eToucher.classname != "player") { return; } - player pl = (player)eToucher; + TFPlayer pl = (TFPlayer)eToucher; /* check for state */ if (m_tfgState != TFGOAL_INACTIVE) { @@ -179,7 +185,7 @@ info_tfgoal::Touch(entity eToucher) /* mark as removed on the player end, too. */ pl.g_items &= ~ITEM_GOALITEM; - pl.flags &= ~FL_GOALITEM; + pl.RemoveVFlags(VFL_GOALITEM); forceinfokey(pl, "*goalitem_t", ""); } @@ -189,20 +195,16 @@ info_tfgoal::Touch(entity eToucher) /* here we increase/decrease funstuff */ pl.health += m_iHealth; pl.armor += m_iArmor; - pl.m_iAmmoShells += m_iShells; - pl.m_iAmmoNails += m_iNails; - pl.m_iAmmoCells += m_iCells; - pl.m_iAmmoRockets += m_iRockets; - pl.m_iAmmoMedikit += m_iMedikit; - pl.m_iAmmoDetpack += m_iDetpack; + pl.GiveAmmo(rocketType, m_iRockets); + pl.GiveAmmo(nailType, m_iNails); + pl.GiveAmmo(cellType, m_iCells); + pl.GiveAmmo(shellType, m_iShells); + pl.GiveAmmo(medikitType, m_iMedikit); + pl.GiveAmmo(detpackType, m_iDetpack); /* clamp */ pl.health = bound(0, pl.health, pl.m_iMaxHealth); pl.armor = bound(0, pl.armor, pl.m_iMaxArmor); - pl.m_iAmmoShells = bound(0, pl.m_iAmmoShells, pl.m_iMaxShells); - pl.m_iAmmoNails = bound(0, pl.m_iAmmoNails, pl.m_iMaxNails); - pl.m_iAmmoCells = bound(0, pl.m_iAmmoCells, pl.m_iMaxCells); - pl.m_iAmmoRockets = bound(0, pl.m_iAmmoRockets, pl.m_iMaxRockets); pl.frags += frags; @@ -284,9 +286,9 @@ info_tfgoal::Respawn(void) { SetSolid(SOLID_TRIGGER); SetMovetype(MOVETYPE_NONE); - SetModel(GetSpawnModel()); + SetModel(GetSpawnString("model")); SetSize(VEC_HULL_MIN, VEC_HULL_MAX); - SetOrigin(GetSpawnOrigin()); + SetOrigin(GetSpawnVector("origin")); team = m_iTeamUses; if (frags > 0) @@ -448,8 +450,8 @@ i_t_g::Respawn(void) { SetSolid(SOLID_BSPTRIGGER); SetMovetype(MOVETYPE_NONE); - SetModel(GetSpawnModel()); - SetOrigin(GetSpawnOrigin()); + SetModel(GetSpawnString("model")); + SetOrigin(GetSpawnVector("origin")); Hide(); team = m_iTeamUses; diff --git a/src/server/item_armor.qc b/src/server/item_armor.qc index 7ff6e49..79c829c 100644 --- a/src/server/item_armor.qc +++ b/src/server/item_armor.qc @@ -65,10 +65,10 @@ TFCArmor::Spawned(void) void TFCArmor::Respawn(void) { - SetModel(GetSpawnModel()); + SetModel(GetSpawnString("model")); SetSize([-16,-16,0], [16,16,56]); SetSolid(SOLID_TRIGGER); - SetOrigin(GetSpawnOrigin()); + SetOrigin(GetSpawnVector("origin")); DropToFloor(); botinfo = BOTINFO_ARMOR; } @@ -79,7 +79,9 @@ TFCArmor::Touch(entity eToucher) if (eToucher.classname != "player") { return; } - player pl = (player)eToucher; + + TFPlayer pl = (TFPlayer)eToucher; + int cellType = ammoNumForName("ammo_cells"); /* check for team eligibility */ if (m_iTeamUses) @@ -87,7 +89,7 @@ TFCArmor::Touch(entity eToucher) return; /* if we can't add anything, don't bother */ - if (pl.armor >= pl.m_iMaxArmor && pl.m_iAmmoCells >= pl.m_iMaxCells) + if (pl.armor >= pl.m_iMaxArmor && pl.GetReserveAmmo(cellType) >= pl.m_iMaxCells) return; int ap; @@ -106,7 +108,7 @@ TFCArmor::Touch(entity eToucher) /* give the remaining as metal... engineers only!*/ if (pl.classtype == CLASS_ENGINEER) { - pl. m_iAmmoCells = bound(0, pl.m_iAmmoCells + (tp - ap), pl.m_iMaxCells); + pl.GiveAmmo(cellType, (tp - ap)); } } diff --git a/src/server/item_healthkit.qc b/src/server/item_healthkit.qc index 03ef8d0..65d5f95 100644 --- a/src/server/item_healthkit.qc +++ b/src/server/item_healthkit.qc @@ -47,7 +47,7 @@ item_healthkit::Touch(entity eToucher) if (eToucher.classname != "player") { return; } - player pl = (player)eToucher; + TFPlayer pl = (TFPlayer)eToucher; /* check for team eligibility */ if (m_iTeamUses) @@ -88,7 +88,7 @@ item_healthkit::Respawn(void) SetModel("models/w_medkit.mdl"); SetSize([-16,-16,0], [16,16,56]); SetSolid(SOLID_TRIGGER); - SetOrigin(GetSpawnOrigin()); + SetOrigin(GetSpawnVector("origin")); DropToFloor(); botinfo = BOTINFO_HEALTH; } diff --git a/src/server/item_tfgoal.qc b/src/server/item_tfgoal.qc index 6f9b31a..5a497b8 100644 --- a/src/server/item_tfgoal.qc +++ b/src/server/item_tfgoal.qc @@ -54,8 +54,8 @@ Duplicate keys: typedef enum { - GISTATUS_HOME, - GISTATUS_DROPPED + GISTATUS_HOME, /*<< The item is at its home base. */ + GISTATUS_DROPPED /*<< The item is at neither on a player, nor at its base. */ } goalitem_status_e; class item_tfgoal:NSRenderableEntity @@ -66,7 +66,7 @@ class item_tfgoal:NSRenderableEntity int m_iTeamOwner; string m_strSound; - player m_eActivator; + TFPlayer m_eActivator; goalitem_status_e m_status; @@ -102,7 +102,7 @@ class item_tfgoal:NSRenderableEntity void item_tfgoal::DropReturnable(NSClientPlayer pp) { - player pl = (player)pp; + TFPlayer pl = (TFPlayer)pp; /* make it available again, put it exactly where we died */ Respawn(); @@ -137,7 +137,7 @@ item_tfgoal::Touch(entity eToucher) return; } - player pl = (player)eToucher; + TFPlayer pl = (TFPlayer)eToucher; /* not in standard TFC, make cvar? */ #if 0 @@ -158,7 +158,7 @@ item_tfgoal::Touch(entity eToucher) Disappear(); pl.g_items |= ITEM_GOALITEM; - pl.flags |= FL_GOALITEM; + pl.AddVFlags(VFL_GOALITEM); forceinfokey(pl, "*goalitem_t", itos(m_iTeamOwner)); m_eActivator = pl; @@ -214,10 +214,10 @@ item_tfgoal::Touch(entity eToucher) void item_tfgoal::Respawn(void) { - SetModel(GetSpawnModel()); + SetModel(GetSpawnString("model")); SetSize(VEC_HULL_MIN, VEC_HULL_MAX); SetSolid(SOLID_TRIGGER); - SetOrigin(GetSpawnOrigin()); + SetOrigin(GetSpawnVector("origin")); m_eActivator = __NULL__; ReleaseThink(); m_status = GISTATUS_HOME; diff --git a/src/server/nades.qc b/src/server/nades.qc index 1a0b345..e927b81 100644 --- a/src/server/nades.qc +++ b/src/server/nades.qc @@ -1,6 +1,7 @@ void -TFCNade_ThrowCaltrop(player pl) +TFCNade_ThrowCaltrop(TFPlayer pl) { +#if 0 vector vecNadeVelocity; static void TFCNade_ThrowHandGrenade_Touch(void) { @@ -34,11 +35,13 @@ TFCNade_ThrowCaltrop(player pl) eNade.touch = TFCNade_ThrowHandGrenade_Touch; } +#endif } void -TFCNade_ThrowHandGrenade(player pl) +TFCNade_ThrowHandGrenade(TFPlayer pl) { +#if 0 vector vecNadeVelocity; float flTimer; @@ -74,11 +77,13 @@ TFCNade_ThrowHandGrenade(player pl) eNade.touch = TFCNade_ThrowHandGrenade_Touch; eNade.ScheduleThink(TFCNade_ThrowHandGrenade_Explode, flTimer); +#endif } void -TFCNade_ThrowConcussion(player pl) +TFCNade_ThrowConcussion(TFPlayer pl) { +#if 0 vector vecNadeVelocity; float flTimer; @@ -90,7 +95,7 @@ TFCNade_ThrowConcussion(player pl) } static void TFCNade_ThrowConcussion_Explode(void) { - for (player f = world; (f = (player)find(f, ::classname, "player"));) { + for (TFPlayer f = world; (f = (TFPlayer)find(f, ::classname, "player"));) { float dist = vlen(f.origin - self.origin); if (dist < 256) { @@ -144,11 +149,13 @@ TFCNade_ThrowConcussion(player pl) eNade.touch = TFCNade_ThrowConcussion_Touch; eNade.ScheduleThink(TFCNade_ThrowConcussion_Explode, flTimer); +#endif } void -TFCNade_ThrowNail(player pl) +TFCNade_ThrowNail(TFPlayer pl) { +#if 0 vector vecNadeVelocity; float flTimer; @@ -235,11 +242,13 @@ TFCNade_ThrowNail(player pl) eNade.touch = TFCNade_ThrowNail_Touch; eNade.ScheduleThink(TFCNade_ThrowNail_Deploy, flTimer); +#endif } void TFCNade_ThrowMIRVBomblet(NSEntity bomb) { +#if 0 vector vecNadeVelocity; static void TFCNade_ThrowMIRVBomblet_Touch(void) { @@ -256,7 +265,7 @@ TFCNade_ThrowMIRVBomblet(NSEntity bomb) NSEntity::Destroy(); } - player pl = (player)bomb.owner; + TFPlayer pl = (TFPlayer)bomb.owner; makevectors([0, random() * 360, 0]); vecNadeVelocity = v_forward * 100 + v_up * 350 + crandom() * v_right * 10 + crandom() * v_up * 10; @@ -275,11 +284,13 @@ TFCNade_ThrowMIRVBomblet(NSEntity bomb) eNade.touch = TFCNade_ThrowMIRVBomblet_Touch; eNade.ScheduleThink(TFCNade_ThrowMIRVBomblet_Explode, 1.5f + random()); +#endif } void -TFCNade_ThrowMIRV(player pl) +TFCNade_ThrowMIRV(TFPlayer pl) { +#if 0 vector vecNadeVelocity; float flTimer; @@ -319,11 +330,13 @@ TFCNade_ThrowMIRV(player pl) eNade.SetSkin(1); eNade.ScheduleThink(TFCNade_ThrowMIRV_Explode, flTimer); eNade.touch = TFCNade_ThrowMIRV_Touch; +#endif } void -TFCNade_ThrowNapalm(player pl) +TFCNade_ThrowNapalm(TFPlayer pl) { +#if 0 vector vecNadeVelocity; float flTimer; @@ -354,11 +367,13 @@ TFCNade_ThrowNapalm(player pl) eNade.touch = TFCNade_ThrowConcussion_Touch; eNade.ScheduleThink(TFCNade_ThrowConcussion_Explode, flTimer); +#endif } void -TFCNade_ThrowHallucination(player pl) +TFCNade_ThrowHallucination(TFPlayer pl) { +#if 0 vector vecNadeVelocity; float flTimer; @@ -370,7 +385,7 @@ TFCNade_ThrowHallucination(player pl) } static void TFCNade_ThrowConcussion_Explode(void) { - for (player f = world; (f = (player)find(f, ::classname, "player"));) { + for (TFPlayer f = world; (f = (TFPlayer)find(f, ::classname, "player"));) { float dist = vlen(f.origin - self.origin); if (dist < 192) { @@ -396,11 +411,13 @@ TFCNade_ThrowHallucination(player pl) eNade.touch = TFCNade_ThrowConcussion_Touch; eNade.ScheduleThink(TFCNade_ThrowConcussion_Explode, flTimer); +#endif } void -TFCNade_ThrowEMP(player pl) +TFCNade_ThrowEMP(TFPlayer pl) { +#if 0 vector vecNadeVelocity; float flTimer; @@ -431,10 +448,11 @@ TFCNade_ThrowEMP(player pl) eNade.touch = TFCNade_ThrowEMP_Touch; eNade.ScheduleThink(TFCNade_ThrowEMP_Explode, flTimer); +#endif } void -TFCNade_ThrowSecondary(player pl) +TFCNade_ThrowSecondary(TFPlayer pl) { switch (pl.classtype) { case CLASS_SCOUT: @@ -464,10 +482,10 @@ TFCNade_ThrowSecondary(player pl) } void -TFCNade_SelfExplode(player pl) +TFCNade_SelfExplode(TFPlayer pl) { float dmg = 100; pointparticles(particleeffectnum("fx_explosion.main"), pl.origin, [0,0,0], 1); - Damage_Radius(pl.origin, pl, dmg, dmg * 2.5f, TRUE, WEAPON_GLAUNCHER); + //Damage_Radius(pl.origin, pl, dmg, dmg * 2.5f, TRUE, WEAPON_GLAUNCHER); sound(pl, CHAN_WEAPON, sprintf("weapons/explode%d.wav", floor(random() * 2) + 3), 1, ATTN_NORM); } \ No newline at end of file diff --git a/src/server/progs.src b/src/server/progs.src index 4618bad..f349d14 100644 --- a/src/server/progs.src +++ b/src/server/progs.src @@ -12,28 +12,19 @@ ../../../src/shared/defs.h ../../../src/server/defs.h ../../../src/botlib/botinfo.h - ../../../src/gs-entbase/server.src ../../../src/gs-entbase/shared.src - defs.h - ../shared/include.src - ../../../valve/src/server/player.qc - dispenser.qc sentry.qc teleporter.qc - func_nobuild.qc func_nogrenades.qc - vox.qc -../../../valve/src/server/items.qc ../../../src/botlib/include.src bot.qc - info_player_teamspawn.qc item_tfgoal.qc info_tfgoal.qc @@ -42,16 +33,11 @@ info_tfdetect.qc item_armor.qc item_healthkit.qc nades.qc - gamerules.qc client.qc server.qc -../../../valve/src/server/damage.qc ../../../valve/src/server/flashlight.qc -../../../valve/src/server/modelevent.qc - spawn.qc - ../../../src/server/include.src ../../../src/shared/include.src #endlist diff --git a/src/server/sentry.qc b/src/server/sentry.qc index 426d04d..18396bb 100644 --- a/src/server/sentry.qc +++ b/src/server/sentry.qc @@ -64,13 +64,13 @@ TFCSentry::Think(void) else { makevectors([0, angles[1], 0]); m_flWantAngle = dotproduct((origin - t.origin), v_right); - m_flCurrAngle = Math_Lerp(m_flCurrAngle, m_flWantAngle, 0.25f); + m_flCurrAngle = lerpAngle(m_flCurrAngle, m_flWantAngle, 0.25f); m_eHead.SetBoneControl1(m_flCurrAngle); print(sprintf("head: %f; want: %f\n", m_flCurrAngle, m_flWantAngle)); /* fire bullets */ input_angles = v_angle = vectoangles(origin - t.origin); - TraceAttack_FireBullets(1, origin, 5, [0.025,0.025], WEAPON_NONE); + //TraceAttack_FireBullets(1, origin, 5, [0.025,0.025], WEAPON_NONE); } } } @@ -134,14 +134,15 @@ TFCSentry::TFCSentry(void) void TFCSentry_Build(void) { - player pl = (player)self; + TFPlayer pl = (TFPlayer)self; + int cellType = ammoNumForName("ammo_cells"); /* only engineers can do this */ if (pl.classtype != CLASS_ENGINEER) return; - /* it costs */ - if (pl.m_iAmmoCells < TFC_SENTRY_COST) { + /* it costs cells to build these things */ + if (pl.UseAmmo(cellType, TFC_SENTRY_COST) == false) { env_message_single(pl, "#Build_nometal"); return; } @@ -157,8 +158,6 @@ TFCSentry_Build(void) return; } - pl.m_iAmmoCells -= TFC_SENTRY_COST; - /* deploy */ TFCSentry sentry = spawn(TFCSentry); sentry.Place(pl); @@ -167,5 +166,5 @@ TFCSentry_Build(void) void TFCSentry_Dismantle(void) { - TFC_DetonateTypeForPlayer((player)self, "TFCSentry"); + TFC_DetonateTypeForPlayer((TFPlayer)self, "TFCSentry"); } diff --git a/src/server/server.qc b/src/server/server.qc index 684191d..c75708e 100644 --- a/src/server/server.qc +++ b/src/server/server.qc @@ -42,19 +42,19 @@ Game_Worldspawn(void) precache_model("models/sentry3.mdl"); precache_model("models/player.mdl"); precache_model("models/w_weaponbox.mdl"); - Weapons_Init(); + Player_Precache(); FX_Corpse_Init(); } -void weaponbox_spawn(player pl) +void weaponbox_spawn(TFPlayer pl) { } void CSEv_TFCBuild_i(int type) { - player pl = (player)self; + TFPlayer pl = (TFPlayer)self; if (pl.gflags & GF_NOBUILDZONE) { env_message_single(pl, "#Build_nobuild"); diff --git a/src/server/spawn.qc b/src/server/spawn.qc index ea5a518..2cfdda3 100644 --- a/src/server/spawn.qc +++ b/src/server/spawn.qc @@ -50,7 +50,7 @@ TFCTeamJoin_SmallestTeam(int blue, int red, int yellow, int green) void CSEv_TeamJoin_f(float f) { - player pl = (player)self; + TFPlayer pl = (TFPlayer)self; /* random... */ if (f == 0) { @@ -119,8 +119,7 @@ CSEv_TeamJoin_f(float f) void CSEv_ClassJoin_f(float f) { - - player pl = (player)self; + TFPlayer pl = (TFPlayer)self; /* choose a random class. */ if (f == 0) { @@ -138,7 +137,7 @@ CSEv_ClassJoin_f(float f) } if (self.classname != "player") { - spawnfunc_player(); + spawnfunc_TFPlayer(); } /* invalid */ diff --git a/src/server/teleporter.qc b/src/server/teleporter.qc index f789a5e..0465dd7 100644 --- a/src/server/teleporter.qc +++ b/src/server/teleporter.qc @@ -24,7 +24,7 @@ TFCTeleporter:NSSurfacePropEntity void(void) TFCTeleporter; - virtual void(player) Place; + virtual void(TFPlayer) Place; virtual void(void) FinishPlacing; virtual void(entity) Touch; }; @@ -68,7 +68,7 @@ TFCTeleporter::Touch(entity eToucher) } void -TFCTeleporter::Place(player pl) +TFCTeleporter::Place(TFPlayer pl) { SetAngles(pl.GetAngles()); @@ -128,14 +128,15 @@ TFCTeleporterExit::TFCTeleporterExit(void) void TFCTeleporter_Build(void) { - player pl = (player)self; + TFPlayer pl = (TFPlayer)self; + int cellType = ammoNumForName("ammo_cells"); /* only engineers can do this */ if (pl.classtype != CLASS_ENGINEER) return; /* it costs */ - if (pl.m_iAmmoCells < TFC_TELEPORTER_COST) { + if (pl.UseAmmo(cellType, TFC_TELEPORTER_COST) == false) { env_message_single(pl, "#Build_nometal"); return; } @@ -151,8 +152,6 @@ TFCTeleporter_Build(void) return; } - pl.m_iAmmoCells -= TFC_TELEPORTER_COST; - /* deploy */ TFCTeleporter start = spawn(TFCTeleporter); start.Place(pl); @@ -161,14 +160,15 @@ TFCTeleporter_Build(void) void TFCTeleporterExit_Build(void) { - player pl = (player)self; + TFPlayer pl = (TFPlayer)self; + int cellType = ammoNumForName("ammo_cells"); /* only engineers can do this */ if (pl.classtype != CLASS_ENGINEER) return; /* it costs */ - if (pl.m_iAmmoCells < TFC_TELEPORTER_COST) { + if (pl.UseAmmo(cellType, TFC_TELEPORTER_COST) == false) { env_message_single(pl, "#Build_nometal"); return; } @@ -184,8 +184,6 @@ TFCTeleporterExit_Build(void) return; } - pl.m_iAmmoCells -= TFC_TELEPORTER_COST; - /* deploy */ TFCTeleporterExit end = spawn(TFCTeleporterExit); end.Place(pl); @@ -194,10 +192,10 @@ TFCTeleporterExit_Build(void) void TFCTeleporter_Dismantle(void) { - TFC_DetonateTypeForPlayer((player)self, "TFCTeleporter"); + TFC_DetonateTypeForPlayer((TFPlayer)self, "TFCTeleporter"); } void TFCTeleporterExit_Dismantle(void) { - TFC_DetonateTypeForPlayer((player)self, "TFCTeleporterExit"); + TFC_DetonateTypeForPlayer((TFPlayer)self, "TFCTeleporterExit"); } diff --git a/src/shared/include.src b/src/shared/include.src index c12162a..35df0ef 100644 --- a/src/shared/include.src +++ b/src/shared/include.src @@ -5,42 +5,15 @@ weapons.h flags.h events.h +../../../valve/src/shared/player.qc player.qc -../../../valve/src/shared/weapon_common.h ../../../valve/src/shared/animations.h animations_tfc.h ../../../valve/src/shared/animations.qc +../../../valve/src/shared/pmove.qc pmove.qc ../../../valve/src/shared/fx_blood.qc ../../../valve/src/shared/fx_corpse.qc - -weapon_basesemi.qc -weapon_basemelee.qc -weapon_baseshotgun.qc -weapon_baseprojectile.qc -weapon_baseautomatic.qc - -w_asscan.qc -w_autorifle.qc -w_crowbar.qc -w_dbs.qc -w_flamer.qc -w_glauncher.qc -w_grapple.qc -w_incendiary.qc -w_knife.qc -w_medkit.qc -w_nailgun.qc -w_pipebomb.qc -w_railgun.qc -w_rpg.qc -w_sbs.qc -w_sniper.qc -w_supernail.qc -w_tranquil.qc -w_umbrella.qc -w_wrench.qc -weapons.qc -../../../valve/src/shared/weapon_common.qc +../../../valve/src/shared/HLWeapon.qc #endlist diff --git a/src/shared/player.qc b/src/shared/player.qc index 2ee2072..cdbb290 100644 --- a/src/shared/player.qc +++ b/src/shared/player.qc @@ -14,23 +14,11 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include "../../../valve/src/shared/skeleton.h" - -/* all potential SendFlags bits we can possibly send */ -enumflags +class TFPlayer:HLPlayer { - PLAYER_TOPFRAME = PLAYER_CUSTOMFIELDSTART, - PLAYER_BOTTOMFRAME, - PLAYER_AMMO1, - PLAYER_AMMO2, - PLAYER_AMMO3, - PLAYER_UNUSED5, - PLAYER_UNUSED6, - PLAYER_UNUSED7 -}; -class player:NSClientPlayer -{ + void TFPlayer(void); + /* class info */ PREDICTED_INT(classtype) @@ -41,26 +29,14 @@ class player:NSClientPlayer PREDICTED_INT(anim_bottom) PREDICTED_FLOAT(anim_bottom_time) - /* ammo 1 */ - PREDICTED_INT(mag_sbs) - PREDICTED_INT(mag_dbs) - PREDICTED_INT(mag_rpg) - PREDICTED_INT(mag_glauncher) - - /* ammo 2 */ - PREDICTED_INT(m_iAmmoRockets) - PREDICTED_INT(m_iAmmoNails) - PREDICTED_INT(m_iAmmoCells) - PREDICTED_INT(m_iAmmoShells) - PREDICTED_INT(m_iAmmoDetpack) - PREDICTED_INT(m_iAmmoMedikit) - - /* ammo 3 */ - PREDICTED_INT(mode_tempstate) - PREDICTED_FLOAT(m_flIdleScale) PREDICTED_FLOAT(m_flHallucination) + virtual bool CanSprint(void); + virtual bool CanCrouch(void); + virtual bool CanProne(void); + virtual bool CanLean(void); + virtual void Physics_Jump(void); virtual float Physics_MaxSpeed(void); @@ -76,8 +52,7 @@ class player:NSClientPlayer virtual void ReceiveEntity(float,float); virtual void PredictPreFrame(void); virtual void PredictPostFrame(void); - virtual void UpdateAliveCam(void); - virtual void UpdatePlayerAttachments(bool); + virtual void ClientInputFrame(void); float m_flNextHallucination; @@ -107,11 +82,14 @@ class player:NSClientPlayer #endif }; -void Animation_PlayerUpdate(player); -void Animation_TimerUpdate(player, float); +void +TFPlayer::TFPlayer(void) +{ + classname = "player"; +} void -player::UpdatePlayerAnimation(float timelength) +TFPlayer::UpdatePlayerAnimation(float timelength) { /* calculate our skeletal progression */ Animation_PlayerUpdate(this); @@ -119,22 +97,46 @@ player::UpdatePlayerAnimation(float timelength) Animation_TimerUpdate(this, timelength); } +/* we invalidate the next two so we can use their input_ bits, INPUT_SPRINT & PRONE */ +bool +TFPlayer::CanSprint(void) +{ + return false; +} +bool +TFPlayer::CanProne(void) +{ + return false; +} + +bool +TFPlayer::CanCrouch(void) +{ + return true; +} + +bool +TFPlayer::CanLean(void) +{ + return false; +} + #ifdef SERVER -void TFCNade_ThrowCaltrop(player); -void TFCNade_ThrowHandGrenade(player); -void TFCNade_ThrowSecondary(player); -void TFCNade_SelfExplode(player); +void TFCNade_ThrowCaltrop(TFPlayer); +void TFCNade_ThrowHandGrenade(TFPlayer); +void TFCNade_ThrowSecondary(TFPlayer); +void TFCNade_SelfExplode(TFPlayer); void -player::TFC_FragSelf(void) +TFPlayer::TFC_FragSelf(void) { print("Primary exploded in your hand!\n"); TFCNade_SelfExplode(this); } void -player::TFC_ThrowSecondary(void) +TFPlayer::TFC_ThrowSecondary(void) { print("Secondary exploded in your hand!\n"); TFCNade_ThrowSecondary(this); @@ -142,7 +144,7 @@ player::TFC_ThrowSecondary(void) #endif void -player::TFC_CookGren1(void) +TFPlayer::TFC_CookGren1(void) { /* we're already cooking it */ if (gflags & GF_GREN1COOK) @@ -166,7 +168,7 @@ player::TFC_CookGren1(void) } void -player::TFC_ReleaseGren1(void) +TFPlayer::TFC_ReleaseGren1(void) { if (!(gflags & GF_GREN1COOK)) return; @@ -188,7 +190,7 @@ player::TFC_ReleaseGren1(void) } void -player::TFC_CookGren2(void) +TFPlayer::TFC_CookGren2(void) { if (gflags & GF_GREN2COOK) return; @@ -206,7 +208,7 @@ player::TFC_CookGren2(void) } void -player::TFC_ReleaseGren2(void) +TFPlayer::TFC_ReleaseGren2(void) { if (!(gflags & GF_GREN2COOK)) return; @@ -220,16 +222,16 @@ player::TFC_ReleaseGren2(void) } void -player::ProcessInput(void) +TFPlayer::ProcessInput(void) { super::ProcessInput(); - if (input_buttons & INPUT_BUTTON6) + if (input_buttons & INPUT_SPRINT) TFC_CookGren1(); else TFC_ReleaseGren1(); - if (input_buttons & INPUT_BUTTON7) + if (input_buttons & INPUT_PRONE) TFC_CookGren2(); else TFC_ReleaseGren2(); @@ -237,96 +239,8 @@ player::ProcessInput(void) #ifdef CLIENT -.string oldmodel; -string Weapons_GetPlayermodel(player, int); - void -player::UpdatePlayerAttachments(bool visible) -{ - /* draw the flashlight */ - if (gflags & GF_FLASHLIGHT) { - vector src; - vector ang; - - if (entnum != player_localentnum) { - src = origin + view_ofs; - ang = v_angle; - } else { - src = pSeat->m_vecPredictedOrigin + [0,0,-8]; - ang = view_angles; - } - - makevectors(ang); - traceline(src, src + (v_forward * 8096), MOVE_NORMAL, this); - - if (serverkeyfloat("*bspversion") == BSPVER_HL) { - dynamiclight_add(trace_endpos + (v_forward * -2), 128, [1,1,1]); - } else { - float p = dynamiclight_add(src, 512, [1,1,1], 0, "textures/flashlight"); - dynamiclight_set(p, LFIELD_ANGLES, ang); - dynamiclight_set(p, LFIELD_FLAGS, 3); - } - } - - /* FIXME: this needs to be incorporated and simplified, now that we can handle it all in-class */ - if (!visible) - return; - - /* what's the current weapon model supposed to be anyway? */ - p_model.oldmodel = Weapons_GetPlayermodel(this, activeweapon); - - /* we changed weapons, update skeletonindex */ - if (p_model.model != p_model.oldmodel) { - /* free memory */ - if (p_model.skeletonindex) - skel_delete(p_model.skeletonindex); - - /* set the new model and mark us updated */ - setmodel(p_model, p_model.oldmodel); - p_model.model = p_model.oldmodel; - - /* set the new skeletonindex */ - p_model.skeletonindex = skel_create(p_model.modelindex); - - /* hack this thing in here FIXME: this should be done when popping in/out of a pvs */ - if (autocvar(cl_himodels, 1, "Use high-quality thisayer models over lower-definition ones")) - setcustomskin(this, "", "geomset 0 2\n"); - else - setcustomskin(this, "", "geomset 0 1\n"); - } - - /* follow thisayer at all times */ - setorigin(p_model, origin); - p_model.angles = angles; - skel_build(p_model.skeletonindex, p_model, p_model.modelindex,0, 0, -1); - - /* we have to loop through all valid bones of the weapon model and match them - * to the thisayer one */ - for (float i = 0; i < g_pbones.length; i++) { - vector bpos; - float pbone = gettagindex(this, g_pbones[i]); - float wbone = gettagindex(p_model, g_pbones[i]); - - /* if the bone doesn't ignore in either skeletal mesh, ignore */ - if (wbone <= 0 || pbone <= 0) - continue; - - bpos = gettaginfo(this, pbone); - - /* the most expensive bit */ - skel_set_bone_world(p_model, wbone, bpos, v_forward, v_right, v_up); - } -} - -void Weapons_AmmoUpdate(entity); -void HUD_AmmoNotify_Check(player pl); -void HUD_ItemNotify_Check(player pl); -void Camera_RunPosBob(vector angles, __inout vector camera_pos); -void Camera_StrafeRoll(__inout vector camera_angle); -void Shake_Update(NSClientPlayer); - -void -player::UpdateAliveCam(void) +TFPlayer::UpdateAliveCam(void) { vector cam_pos = GetEyePos(); Camera_RunPosBob(view_angles, cam_pos); @@ -361,16 +275,30 @@ player::UpdateAliveCam(void) g_view.AddPunchAngle(punchangle); } +void +TFPlayer::ClientInputFrame(void) +{ + super::ClientInputFrame(); + + /* we need to make sure those aren't actually handled by the server */ + if (pSeatTFC->m_bInputGren1 == true) { + input_buttons |= INPUT_PRONE; + } + if (pSeatTFC->m_bInputGren2 == true) { + input_buttons |= INPUT_SPRINT; + } +} + /* ================= player::ReceiveEntity ================= */ void -player::ReceiveEntity(float new, float flChanged) +TFPlayer::ReceiveEntity(float new, float flChanged) { /* the generic client attributes */ - super::ReceiveEntity(new, flChanged); + NSClientPlayer::ReceiveEntity(new, flChanged); /* animation */ READENTITY_BYTE(anim_top, PLAYER_TOPFRAME) @@ -379,22 +307,9 @@ player::ReceiveEntity(float new, float flChanged) READENTITY_BYTE(anim_bottom, PLAYER_BOTTOMFRAME) READENTITY_FLOAT(anim_bottom_time, PLAYER_BOTTOMFRAME) - READENTITY_BYTE(mag_sbs, PLAYER_AMMO1) - READENTITY_BYTE(mag_dbs, PLAYER_AMMO1) - READENTITY_BYTE(mag_rpg, PLAYER_AMMO1) - READENTITY_BYTE(mag_glauncher, PLAYER_AMMO1) - - READENTITY_BYTE(m_iAmmoRockets, PLAYER_AMMO2) - READENTITY_BYTE(m_iAmmoNails, PLAYER_AMMO2) - READENTITY_BYTE(m_iAmmoCells, PLAYER_AMMO2) - READENTITY_BYTE(m_iAmmoShells, PLAYER_AMMO2) - READENTITY_BYTE(m_iAmmoDetpack, PLAYER_AMMO2) - READENTITY_BYTE(m_iAmmoMedikit, PLAYER_AMMO2) - - READENTITY_BYTE(mode_tempstate, PLAYER_AMMO3) - READENTITY_BYTE(classtype, PLAYER_AMMO3) - READENTITY_FLOAT(m_flIdleScale, PLAYER_AMMO3) - READENTITY_FLOAT(m_flHallucination, PLAYER_AMMO3) + READENTITY_BYTE(classtype, PLAYER_AMMOTYPES) + READENTITY_FLOAT(m_flIdleScale, PLAYER_AMMOTYPES) + READENTITY_FLOAT(m_flHallucination, PLAYER_AMMOTYPES) setorigin(this, origin); @@ -407,17 +322,19 @@ player::ReceiveEntity(float new, float flChanged) if (flChanged == UPDATE_ALL) PredictPreFrame(); - if (flChanged & PLAYER_AMMO1 || flChanged & PLAYER_AMMO2 || flChanged & PLAYER_AMMO3) { - Weapons_AmmoUpdate(this); + if (flChanged & PLAYER_AMMOTYPES) { + //Weapons_AmmoUpdate(this); HUD_AmmoNotify_Check(this); } - if (flChanged & PLAYER_ITEMS || flChanged & PLAYER_HEALTH) + if (flChanged & PLAYER_ITEMS || flChanged & PLAYER_HEALTH) { HUD_ItemNotify_Check(this); + } if (m_flHallucination > 0.0) { - if (m_flNextHallucination > time) + if (m_flNextHallucination > time) { return; + } TFCHallucination_Insert(origin, v_angle); m_flNextHallucination = time + 0.25f + random(0.25,0.75); @@ -433,7 +350,7 @@ so we can roll them back later. ================= */ void -player::PredictPreFrame(void) +TFPlayer::PredictPreFrame(void) { /* the generic client attributes */ NSClientPlayer::PredictPreFrame(); @@ -443,20 +360,6 @@ player::PredictPreFrame(void) SAVE_STATE(anim_top_time) SAVE_STATE(anim_bottom) SAVE_STATE(anim_bottom_time) - - SAVE_STATE(mag_sbs) - SAVE_STATE(mag_dbs) - SAVE_STATE(mag_rpg) - SAVE_STATE(mag_glauncher) - - SAVE_STATE(m_iAmmoRockets) - SAVE_STATE(m_iAmmoNails) - SAVE_STATE(m_iAmmoCells) - SAVE_STATE(m_iAmmoShells) - SAVE_STATE(m_iAmmoDetpack) - SAVE_STATE(m_iAmmoMedikit) - - SAVE_STATE(mode_tempstate) SAVE_STATE(classtype) SAVE_STATE(m_flIdleScale) SAVE_STATE(m_flHallucination) @@ -470,7 +373,7 @@ Where we roll back our values to the ones last sent/verified by the server. ================= */ void -player::PredictPostFrame(void) +TFPlayer::PredictPostFrame(void) { /* the generic client attributes */ NSClientPlayer::PredictPostFrame(); @@ -480,20 +383,6 @@ player::PredictPostFrame(void) ROLL_BACK(anim_top_time) ROLL_BACK(anim_bottom) ROLL_BACK(anim_bottom_time) - - ROLL_BACK(mag_sbs) - ROLL_BACK(mag_dbs) - ROLL_BACK(mag_rpg) - ROLL_BACK(mag_glauncher) - - ROLL_BACK(m_iAmmoRockets) - ROLL_BACK(m_iAmmoNails) - ROLL_BACK(m_iAmmoCells) - ROLL_BACK(m_iAmmoShells) - ROLL_BACK(m_iAmmoDetpack) - ROLL_BACK(m_iAmmoMedikit) - - ROLL_BACK(mode_tempstate) ROLL_BACK(classtype) ROLL_BACK(m_flIdleScale) ROLL_BACK(m_flHallucination) @@ -501,7 +390,7 @@ player::PredictPostFrame(void) #else void -player::ServerInputFrame(void) +TFPlayer::ServerInputFrame(void) { super::ServerInputFrame(); gflags &= ~GF_NOBUILDZONE; @@ -515,7 +404,7 @@ player::ServerInputFrame(void) } void -player::EvaluateEntity(void) +TFPlayer::EvaluateEntity(void) { /* the generic client attributes */ NSClientPlayer::EvaluateEntity(); @@ -527,26 +416,13 @@ player::EvaluateEntity(void) EVALUATE_FIELD(anim_bottom, PLAYER_BOTTOMFRAME) EVALUATE_FIELD(anim_bottom_time, PLAYER_BOTTOMFRAME) - EVALUATE_FIELD(mag_sbs, PLAYER_AMMO1) - EVALUATE_FIELD(mag_dbs, PLAYER_AMMO1) - EVALUATE_FIELD(mag_rpg, PLAYER_AMMO1) - EVALUATE_FIELD(mag_glauncher, PLAYER_AMMO1) - - EVALUATE_FIELD(m_iAmmoRockets, PLAYER_AMMO2) - EVALUATE_FIELD(m_iAmmoNails, PLAYER_AMMO2) - EVALUATE_FIELD(m_iAmmoCells, PLAYER_AMMO2) - EVALUATE_FIELD(m_iAmmoShells, PLAYER_AMMO2) - EVALUATE_FIELD(m_iAmmoDetpack, PLAYER_AMMO2) - EVALUATE_FIELD(m_iAmmoMedikit, PLAYER_AMMO2) - - EVALUATE_FIELD(mode_tempstate, PLAYER_AMMO3) - EVALUATE_FIELD(classtype, PLAYER_AMMO3) - EVALUATE_FIELD(m_flIdleScale, PLAYER_AMMO3) - EVALUATE_FIELD(m_flHallucination, PLAYER_AMMO3) + EVALUATE_FIELD(classtype, PLAYER_AMMOTYPES) + EVALUATE_FIELD(m_flIdleScale, PLAYER_AMMOTYPES) + EVALUATE_FIELD(m_flHallucination, PLAYER_AMMOTYPES) } void -player::SpawnIntoGame(void) +TFPlayer::SpawnIntoGame(void) { entity spot = world; @@ -572,14 +448,13 @@ player::SpawnIntoGame(void) } void -player::MakeClass(classtype_e class) +TFPlayer::MakeClass(classtype_e class) { - health = self.max_health = 100; - takedamage = DAMAGE_YES; - solid = SOLID_SLIDEBOX; - movetype = MOVETYPE_WALK; - flags = FL_CLIENT; - viewzoom = 1.0; + int atShells = ammoNumForName("ammo_shells"); + int atNails = ammoNumForName("ammo_nails"); + int atCells = ammoNumForName("ammo_cells"); + int atRockets = ammoNumForName("ammo_rockets"); + MakePlayer(); /* select our class model */ model = TFC_GetModelForClasstype(classtype); @@ -595,11 +470,11 @@ player::MakeClass(classtype_e class) switch (classtype) { case CLASS_SCOUT: - Weapons_AddItem(this, WEAPON_CROWBAR, -1); - Weapons_AddItem(this, WEAPON_SBS, -1); - Weapons_AddItem(this, WEAPON_NAILGUN, -1); - m_iAmmoShells = 17; - m_iAmmoNails = 100; + GiveItem("tf_weapon_axe"); + GiveItem("tf_weapon_shotgun"); + GiveItem("tf_weapon_ng"); + GiveAmmo(atShells, 17i); + GiveAmmo(atNails, 100i); m_iMaxHealth = 75; m_iMaxArmor = 50; @@ -613,12 +488,12 @@ player::MakeClass(classtype_e class) env_message_single(this, "HELP_SCOUT"); break; case CLASS_SNIPER: - Weapons_AddItem(this, WEAPON_CROWBAR, -1); - Weapons_AddItem(this, WEAPON_SNIPER, -1); - Weapons_AddItem(this, WEAPON_AUTORIFLE, -1); - Weapons_AddItem(this, WEAPON_NAILGUN, -1); - m_iAmmoShells = 60; /* sniper rifles use shells */ - m_iAmmoNails = 50; + GiveItem("tf_weapon_axe"); + GiveItem("tf_weapon_sniperrifle"); + GiveItem("tf_weapon_autorifle"); + GiveItem("tf_weapon_ng"); + GiveAmmo(atShells, 60i); /* sniper rifles use shells */ + GiveAmmo(atNails, 50i); m_iMaxHealth = 90; m_iMaxArmor = 50; @@ -632,12 +507,12 @@ player::MakeClass(classtype_e class) env_message_single(this, "HELP_SNIPER"); break; case CLASS_SOLDIER: - Weapons_AddItem(this, WEAPON_CROWBAR, -1); - Weapons_AddItem(this, WEAPON_SBS, -1); - Weapons_AddItem(this, WEAPON_DBS, -1); - Weapons_AddItem(this, WEAPON_RPG, -1); - m_iAmmoShells = 26; - m_iAmmoRockets = 6; + GiveItem("tf_weapon_axe"); + GiveItem("tf_weapon_supershotgun"); + GiveItem("tf_weapon_shotgun"); + GiveItem("tf_weapon_rpg"); + GiveAmmo(atShells, 26i); + GiveAmmo(atRockets, 6i); m_iMaxHealth = 100; m_iMaxArmor = 200; @@ -651,12 +526,12 @@ player::MakeClass(classtype_e class) env_message_single(this, "HELP_SOLDIER"); break; case CLASS_DEMO: - Weapons_AddItem(this, WEAPON_CROWBAR, -1); - Weapons_AddItem(this, WEAPON_SBS, -1); - Weapons_AddItem(this, WEAPON_GLAUNCHER, -1); - Weapons_AddItem(this, WEAPON_PIPEBOMB, -1); - m_iAmmoShells = 22; - m_iAmmoRockets = 14; + GiveItem("tf_weapon_axe"); + GiveItem("tf_weapon_supershotgun"); + GiveItem("tf_weapon_gl"); + GiveItem("tf_weapon_pl"); + GiveAmmo(atShells, 22i); + GiveAmmo(atRockets, 14i); m_iMaxHealth = 90; m_iMaxArmor = 100; @@ -670,12 +545,12 @@ player::MakeClass(classtype_e class) env_message_single(this, "HELP_DEMOMAN"); break; case CLASS_MEDIC: - Weapons_AddItem(this, WEAPON_MEDKIT, -1); - Weapons_AddItem(this, WEAPON_SBS, -1); - Weapons_AddItem(this, WEAPON_DBS, -1); - Weapons_AddItem(this, WEAPON_SUPERNAIL, -1); - m_iAmmoShells = 26; - m_iAmmoNails = 50; + GiveItem("tf_weapon_medikit"); + GiveItem("tf_weapon_supershotgun"); + GiveItem("tf_weapon_shotgun"); + GiveItem("tf_weapon_superng"); + GiveAmmo(atShells, 26i); + GiveAmmo(atNails, 50i); m_iMaxHealth = 90; m_iMaxArmor = 100; @@ -689,11 +564,11 @@ player::MakeClass(classtype_e class) env_message_single(this, "HELP_MEDIC"); break; case CLASS_HVYWEAPON: - Weapons_AddItem(this, WEAPON_CROWBAR, -1); - Weapons_AddItem(this, WEAPON_SBS, -1); - Weapons_AddItem(this, WEAPON_DBS, -1); - Weapons_AddItem(this, WEAPON_ASSCAN, -1); - m_iAmmoShells = 176; /* all of the heavy's weapons use shells */ + GiveItem("tf_weapon_axe"); + GiveItem("tf_weapon_supershotgun"); + GiveItem("tf_weapon_shotgun"); + GiveItem("tf_weapon_ac"); + GiveAmmo(atShells, 176i); /* all of the heavy's weapons use shells */ m_iMaxHealth = 100; m_iMaxArmor = 300; @@ -707,13 +582,13 @@ player::MakeClass(classtype_e class) env_message_single(this, "HELP_HWGUY"); break; case CLASS_PYRO: - Weapons_AddItem(this, WEAPON_CROWBAR, -1); - Weapons_AddItem(this, WEAPON_SBS, -1); - Weapons_AddItem(this, WEAPON_FLAMER, -1); - Weapons_AddItem(this, WEAPON_INCENDIARY, -1); - m_iAmmoShells = 12; - m_iAmmoCells = 120; - m_iAmmoRockets = 5; + GiveItem("tf_weapon_axe"); + GiveItem("tf_weapon_supershotgun"); + GiveItem("tf_weapon_flamethrower"); + GiveItem("tf_weapon_ic"); + GiveAmmo(atShells, 12i); + GiveAmmo(atCells, 120i); + GiveAmmo(atRockets, 5i); m_iMaxHealth = 100; m_iMaxArmor = 150; @@ -727,12 +602,12 @@ player::MakeClass(classtype_e class) env_message_single(this, "HELP_PYRO"); break; case CLASS_SPY: - Weapons_AddItem(this, WEAPON_KNIFE, -1); - Weapons_AddItem(this, WEAPON_TRANQUIL, -1); - Weapons_AddItem(this, WEAPON_DBS, -1); - Weapons_AddItem(this, WEAPON_NAILGUN, -1); - m_iAmmoShells = 24; /* tranquil and dbs use shells */ - m_iAmmoNails = 50; + GiveItem("tf_weapon_knife"); + GiveItem("tf_weapon_tranq"); + GiveItem("tf_weapon_shotgun"); + GiveItem("tf_weapon_ng"); + GiveAmmo(atShells, 24i); /* tranquil and dbs use shells */ + GiveAmmo(atNails, 50i); m_iMaxHealth = 90; m_iMaxArmor = 100; @@ -746,12 +621,12 @@ player::MakeClass(classtype_e class) env_message_single(this, "HELP_SPY"); break; case CLASS_ENGINEER: - Weapons_AddItem(this, WEAPON_WRENCH, -1); - Weapons_AddItem(this, WEAPON_RAILGUN, -1); - Weapons_AddItem(this, WEAPON_DBS, -1); - m_iAmmoCells = 100; - m_iAmmoNails = 25; - m_iAmmoShells = 4; + GiveItem("tf_weapon_spanner"); + GiveItem("tf_weapon_railgun"); + GiveItem("tf_weapon_shotgun"); + GiveAmmo(atCells, 100i); + GiveAmmo(atNails, 25i); + GiveAmmo(atShells, 4i); m_iMaxHealth = 80; m_iMaxArmor = 50; @@ -766,7 +641,7 @@ player::MakeClass(classtype_e class) break; } - g_items |= ITEM_SUIT; + GiveItem("item_suit"); } /* @@ -775,7 +650,7 @@ player::SendEntity ================= */ float -player::SendEntity(entity ePEnt, float flChanged) +TFPlayer::SendEntity(entity ePEnt, float flChanged) { /* don't broadcast invisible players */ if (IsFakeSpectator() && ePEnt != this) @@ -785,9 +660,6 @@ player::SendEntity(entity ePEnt, float flChanged) flChanged = OptimiseChangedFlags(ePEnt, flChanged); - WriteByte(MSG_ENTITY, ENT_PLAYER); - WriteFloat(MSG_ENTITY, flChanged); - /* the generic client attributes */ NSClientPlayer::SendEntity(ePEnt, flChanged); @@ -797,22 +669,9 @@ player::SendEntity(entity ePEnt, float flChanged) SENDENTITY_BYTE(anim_bottom, PLAYER_BOTTOMFRAME) SENDENTITY_FLOAT(anim_bottom_time, PLAYER_BOTTOMFRAME) - SENDENTITY_BYTE(mag_sbs, PLAYER_AMMO1) - SENDENTITY_BYTE(mag_dbs, PLAYER_AMMO1) - SENDENTITY_BYTE(mag_rpg, PLAYER_AMMO1) - SENDENTITY_BYTE(mag_glauncher, PLAYER_AMMO1) - - SENDENTITY_BYTE(m_iAmmoRockets, PLAYER_AMMO2) - SENDENTITY_BYTE(m_iAmmoNails, PLAYER_AMMO2) - SENDENTITY_BYTE(m_iAmmoCells, PLAYER_AMMO2) - SENDENTITY_BYTE(m_iAmmoShells, PLAYER_AMMO2) - SENDENTITY_BYTE(m_iAmmoDetpack, PLAYER_AMMO2) - SENDENTITY_BYTE(m_iAmmoMedikit, PLAYER_AMMO2) - - SENDENTITY_BYTE(mode_tempstate, PLAYER_AMMO3) - SENDENTITY_BYTE(classtype, PLAYER_AMMO3) - SENDENTITY_FLOAT(m_flIdleScale, PLAYER_AMMO3) - SENDENTITY_FLOAT(m_flHallucination, PLAYER_AMMO3) + SENDENTITY_BYTE(classtype, PLAYER_AMMOTYPES) + SENDENTITY_FLOAT(m_flIdleScale, PLAYER_AMMOTYPES) + SENDENTITY_FLOAT(m_flHallucination, PLAYER_AMMOTYPES) return (1); } diff --git a/src/shared/pmove.qc b/src/shared/pmove.qc index c4b0dfc..00cfe96 100644 --- a/src/shared/pmove.qc +++ b/src/shared/pmove.qc @@ -30,7 +30,7 @@ #define PHY_VIEWPOS_CROUCHED [0,0,12] void -player::Physics_Jump(void) +TFPlayer::Physics_Jump(void) { if (waterlevel >= 2) { if (watertype == CONTENT_WATER) { @@ -51,7 +51,7 @@ player::Physics_Jump(void) } float -player::Physics_MaxSpeed(void) +TFPlayer::Physics_MaxSpeed(void) { float desiredspeed = 300.0f; @@ -88,7 +88,7 @@ player::Physics_MaxSpeed(void) desiredspeed = 300.0f; } - if (GetFlags() & FL_CROUCHING) + if (IsCrouching()) desiredspeed /= 3; return desiredspeed; diff --git a/src/shared/w_asscan.qc b/src/shared/w_asscan.qc index 750d454..8d99af9 100644 --- a/src/shared/w_asscan.qc +++ b/src/shared/w_asscan.qc @@ -177,7 +177,7 @@ w_asscan_primary(player pl) Weapons_ViewPunchAngle(pl, [random(-2, 2),0,0]); Weapons_Sound(pl, CHAN_WEAPON, "weapon_asscan.fire"); - if (pl.flags & FL_CROUCHING) + if (pl.IsCrouching()) Animation_PlayerTop(pl, TFCANIM_CR_SHOOTASSCAN, 0.1f); else Animation_PlayerTop(pl, TFCANIM_SHOOTASSCAN, 0.1f); @@ -212,7 +212,7 @@ w_asscan_hud(player pl) float w_asscan_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? TFCANIM_CR_AIMASSCAN : TFCANIM_AIMASSCAN; + return pl.IsCrouching() ? TFCANIM_CR_AIMASSCAN : TFCANIM_AIMASSCAN; } void diff --git a/src/shared/w_autorifle.qc b/src/shared/w_autorifle.qc index 18dccbe..5b743a5 100644 --- a/src/shared/w_autorifle.qc +++ b/src/shared/w_autorifle.qc @@ -78,7 +78,7 @@ w_autorifle_draw(player pl) float w_autorifle_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? TFCANIM_CR_AIMAUTOSNIPER : TFCANIM_AIMAUTOSNIPER; + return pl.IsCrouching() ? TFCANIM_CR_AIMAUTOSNIPER : TFCANIM_AIMAUTOSNIPER; } void @@ -94,7 +94,7 @@ w_autorifle_primary(player pl) case AUTO_LAST: Weapons_ViewAnimation(pl, SNIPER_AUTOFIRE); - if (pl.flags & FL_CROUCHING) + if (pl.IsCrouching()) Animation_PlayerTop(pl, TFCANIM_CR_SHOOTAUTOSNIPER, 0.45f); else Animation_PlayerTop(pl, TFCANIM_SHOOTAUTOSNIPER, 0.45f); diff --git a/src/shared/w_crowbar.qc b/src/shared/w_crowbar.qc index a6ad24b..b2b7cfd 100644 --- a/src/shared/w_crowbar.qc +++ b/src/shared/w_crowbar.qc @@ -124,7 +124,7 @@ w_crowbar_primary(player pl) Weapons_ViewAnimation(pl, trace_fraction >= 1 ? CBAR_ATTACK3MISS:CBAR_ATTACK3HIT); } - if (pl.flags & FL_CROUCHING) + if (pl.IsCrouching()) Animation_PlayerTop(pl, ANIM_CR_SHOOTCROWBAR, 0.41f); else Animation_PlayerTop(pl, ANIM_SHOOTCROWBAR, 0.5f); @@ -169,7 +169,7 @@ w_crowbar_release(player pl) float w_crowbar_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? ANIM_CR_AIMCROWBAR : ANIM_AIMCROWBAR; + return pl.IsCrouching() ? ANIM_CR_AIMCROWBAR : ANIM_AIMCROWBAR; } void diff --git a/src/shared/w_dbs.qc b/src/shared/w_dbs.qc index 1087020..256a1df 100644 --- a/src/shared/w_dbs.qc +++ b/src/shared/w_dbs.qc @@ -107,7 +107,7 @@ w_dbs_primary(player pl) Weapons_ViewAnimation(pl, DBS_FIRE1); Weapons_ViewPunchAngle(pl, [-2,0,0]); - if (pl.flags & FL_CROUCHING) + if (pl.IsCrouching()) Animation_PlayerTop(pl, TFCANIM_CR_SHOOTSHOTGUN, 0.45f); else Animation_PlayerTop(pl, TFCANIM_SHOOTSHOTGUN, 0.45f); @@ -181,7 +181,7 @@ w_dbs_crosshair(player pl) float w_dbs_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? ANIM_CR_AIMSHOTGUN : ANIM_AIMSHOTGUN; + return pl.IsCrouching() ? ANIM_CR_AIMSHOTGUN : ANIM_AIMSHOTGUN; } void diff --git a/src/shared/w_flamer.qc b/src/shared/w_flamer.qc index 935600d..0b14882 100644 --- a/src/shared/w_flamer.qc +++ b/src/shared/w_flamer.qc @@ -170,7 +170,7 @@ w_flamer_crosshair(player pl) float w_flamer_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? TFCANIM_CR_AIMEGON : TFCANIM_AIMEGON; + return pl.IsCrouching() ? TFCANIM_CR_AIMEGON : TFCANIM_AIMEGON; } void diff --git a/src/shared/w_glauncher.qc b/src/shared/w_glauncher.qc index ab1f707..ad1a1e3 100644 --- a/src/shared/w_glauncher.qc +++ b/src/shared/w_glauncher.qc @@ -174,7 +174,7 @@ w_glauncher_primary(player pl) Weapons_ViewAnimation(pl, GLAUNCHER_GFIRE); Weapons_ViewPunchAngle(pl, [-1,0,0]); - if (pl.flags & FL_CROUCHING) + if (pl.IsCrouching()) Animation_PlayerTop(pl, TFCANIM_CR_SHOOTSHOTGUN, 0.45f); else Animation_PlayerTop(pl, TFCANIM_SHOOTSHOTGUN, 0.45f); @@ -220,7 +220,7 @@ w_glauncher_postdraw(player pl) float w_glauncher_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? TFCANIM_CR_AIMSHOTGUN : TFCANIM_AIMSHOTGUN; + return pl.IsCrouching() ? TFCANIM_CR_AIMSHOTGUN : TFCANIM_AIMSHOTGUN; } void diff --git a/src/shared/w_grapple.qc b/src/shared/w_grapple.qc index fa047eb..c7c1834 100644 --- a/src/shared/w_grapple.qc +++ b/src/shared/w_grapple.qc @@ -57,7 +57,7 @@ w_grapple_draw(player pl) float w_grapple_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? ANIM_CR_AIMCROWBAR : ANIM_AIMCROWBAR; + return pl.IsCrouching() ? ANIM_CR_AIMCROWBAR : ANIM_AIMCROWBAR; } void diff --git a/src/shared/w_incendiary.qc b/src/shared/w_incendiary.qc index b57259c..7378e28 100644 --- a/src/shared/w_incendiary.qc +++ b/src/shared/w_incendiary.qc @@ -113,7 +113,7 @@ w_incendiary_primary(player pl) Weapons_Sound(pl, CHAN_WEAPON, "weapon_incendiary.fire"); Weapons_ViewPunchAngle(pl, [-2,0,0]); - if (pl.flags & FL_CROUCHING) + if (pl.IsCrouching()) Animation_PlayerTop(pl, TFCANIM_CR_SHOOTRPG, 0.45f); else Animation_PlayerTop(pl, TFCANIM_SHOOTRPG, 0.45f); @@ -131,7 +131,7 @@ w_incendiary_primary(player pl) float w_incendiary_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? TFCANIM_CR_AIMRPG : TFCANIM_AIMRPG; + return pl.IsCrouching() ? TFCANIM_CR_AIMRPG : TFCANIM_AIMRPG; } void diff --git a/src/shared/w_knife.qc b/src/shared/w_knife.qc index b2739e8..b196045 100644 --- a/src/shared/w_knife.qc +++ b/src/shared/w_knife.qc @@ -99,7 +99,7 @@ w_knife_primary(player pl) Weapons_ViewAnimation(pl, KNIFE_SLASH); - if (pl.flags & FL_CROUCHING) + if (pl.IsCrouching()) Animation_PlayerTop(pl, ANIM_CR_SHOOTCROWBAR, 0.41f); else Animation_PlayerTop(pl, ANIM_SHOOTCROWBAR, 0.5f); @@ -144,7 +144,7 @@ w_knife_primary(player pl) float w_knife_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? ANIM_CR_AIMCROWBAR : ANIM_AIMCROWBAR; + return pl.IsCrouching() ? ANIM_CR_AIMCROWBAR : ANIM_AIMCROWBAR; } void diff --git a/src/shared/w_medkit.qc b/src/shared/w_medkit.qc index 98dcc91..e311b59 100644 --- a/src/shared/w_medkit.qc +++ b/src/shared/w_medkit.qc @@ -80,7 +80,7 @@ w_medkit_primary(player pl) Weapons_ViewAnimation(pl, MEDKIT_USE); - if (pl.flags & FL_CROUCHING) + if (pl.IsCrouching()) Animation_PlayerTop(pl, TFCANIM_CR_SHOOTMEDKIT, 0.45f); else Animation_PlayerTop(pl, TFCANIM_SHOOTMEDKIT, 0.45f); @@ -131,7 +131,7 @@ w_medkit_release(player pl) float w_medkit_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? TFCANIM_CR_AIMMEDKIT : TFCANIM_AIMMEDKIT; + return pl.IsCrouching() ? TFCANIM_CR_AIMMEDKIT : TFCANIM_AIMMEDKIT; } void diff --git a/src/shared/w_nailgun.qc b/src/shared/w_nailgun.qc index 852f6ac..cb9e80b 100644 --- a/src/shared/w_nailgun.qc +++ b/src/shared/w_nailgun.qc @@ -69,7 +69,7 @@ w_nailgun_draw(player pl) float w_nailgun_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? TFCANIM_CR_AIMMP5 : TFCANIM_AIMMP5; + return pl.IsCrouching() ? TFCANIM_CR_AIMMP5 : TFCANIM_AIMMP5; } void @@ -126,7 +126,7 @@ w_nailgun_primary(player pl) Weapons_ViewAnimation(pl, NAILGUN_SHOOT2); Weapons_ViewPunchAngle(pl, [-1,0,0]); - if (pl.flags & FL_CROUCHING) + if (pl.IsCrouching()) Animation_PlayerTop(pl, TFCANIM_CR_SHOOTMP5, 0.45f); else Animation_PlayerTop(pl, TFCANIM_SHOOTMP5, 0.45f); diff --git a/src/shared/w_pipebomb.qc b/src/shared/w_pipebomb.qc index 4ef8219..5ba6e13 100644 --- a/src/shared/w_pipebomb.qc +++ b/src/shared/w_pipebomb.qc @@ -182,7 +182,7 @@ w_pipebomb_primary(player pl) Weapons_ViewAnimation(pl, GLAUNCHER_PFIRE); Weapons_ViewPunchAngle(pl, [-1,0,0]); - if (pl.flags & FL_CROUCHING) + if (pl.IsCrouching()) Animation_PlayerTop(pl, TFCANIM_CR_SHOOTSHOTGUN, 0.45f); else Animation_PlayerTop(pl, TFCANIM_SHOOTSHOTGUN, 0.45f); @@ -250,7 +250,7 @@ w_pipebomb_postdraw(player pl) float w_pipebomb_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? TFCANIM_CR_AIMSHOTGUN : TFCANIM_AIMSHOTGUN; + return pl.IsCrouching() ? TFCANIM_CR_AIMSHOTGUN : TFCANIM_AIMSHOTGUN; } void diff --git a/src/shared/w_railgun.qc b/src/shared/w_railgun.qc index 28731d8..4756442 100644 --- a/src/shared/w_railgun.qc +++ b/src/shared/w_railgun.qc @@ -65,7 +65,7 @@ w_railgun_draw(player pl) float w_railgun_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? TFCANIM_CR_AIM1HAND : TFCANIM_AIM1HAND; + return pl.IsCrouching() ? TFCANIM_CR_AIM1HAND : TFCANIM_AIM1HAND; } void @@ -119,7 +119,7 @@ w_railgun_primary(player pl) Weapons_ViewAnimation(pl, RAILGUN_SHOOT); Weapons_ViewPunchAngle(pl, [-1,0,0]); - if (pl.flags & FL_CROUCHING) + if (pl.IsCrouching()) Animation_PlayerTop(pl, TFCANIM_CR_SHOOT1HAND, 0.45f); else Animation_PlayerTop(pl, TFCANIM_SHOOT1HAND, 0.45f); diff --git a/src/shared/w_rpg.qc b/src/shared/w_rpg.qc index 81a7c8e..580829b 100644 --- a/src/shared/w_rpg.qc +++ b/src/shared/w_rpg.qc @@ -120,7 +120,7 @@ w_rpg_primary(player pl) Weapons_ViewPunchAngle(pl, [-2,0,0]); Weapons_Sound(pl, CHAN_WEAPON, "weapon_rpg.fire"); - if (pl.flags & FL_CROUCHING) + if (pl.IsCrouching()) Animation_PlayerTop(pl, TFCANIM_CR_SHOOTRPG, 0.45f); else Animation_PlayerTop(pl, TFCANIM_SHOOTRPG, 0.45f); @@ -175,7 +175,7 @@ w_rpg_release(player pl) float w_rpg_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? TFCANIM_CR_AIMRPG : TFCANIM_AIMRPG; + return pl.IsCrouching() ? TFCANIM_CR_AIMRPG : TFCANIM_AIMRPG; } void diff --git a/src/shared/w_sbs.qc b/src/shared/w_sbs.qc index f80641f..56e7943 100644 --- a/src/shared/w_sbs.qc +++ b/src/shared/w_sbs.qc @@ -98,7 +98,7 @@ w_sbs_primary(player pl) Weapons_ViewAnimation(pl, SBS_FIRE1); Weapons_ViewPunchAngle(pl, [-2,0,0]); - if (pl.flags & FL_CROUCHING) + if (pl.IsCrouching()) Animation_PlayerTop(pl, TFCANIM_CR_SHOOTSHOTGUN, 0.45f); else Animation_PlayerTop(pl, TFCANIM_SHOOTSHOTGUN, 0.45f); @@ -169,7 +169,7 @@ w_sbs_crosshair(player pl) float w_sbs_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? ANIM_CR_AIMSHOTGUN : ANIM_AIMSHOTGUN; + return pl.IsCrouching() ? ANIM_CR_AIMSHOTGUN : ANIM_AIMSHOTGUN; } void diff --git a/src/shared/w_sniper.qc b/src/shared/w_sniper.qc index 8bc887d..9b5c59d 100644 --- a/src/shared/w_sniper.qc +++ b/src/shared/w_sniper.qc @@ -69,7 +69,7 @@ w_sniper_draw(player pl) float w_sniper_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? TFCANIM_CR_AIMSNIPER : TFCANIM_AIMSNIPER; + return pl.IsCrouching() ? TFCANIM_CR_AIMSNIPER : TFCANIM_AIMSNIPER; } void @@ -83,7 +83,7 @@ w_sniper_release(player pl) w_baseauto_fire(WEAPON_SNIPER, player::m_iAmmoShells, dmg, [0,0]); Weapons_ViewAnimation(pl, SNIPER_FIRE); - if (pl.flags & FL_CROUCHING) + if (pl.IsCrouching()) Animation_PlayerTop(pl, TFCANIM_CR_SHOOTSNIPER, 0.45f); else Animation_PlayerTop(pl, TFCANIM_SHOOTSNIPER, 0.45f); @@ -154,20 +154,20 @@ w_sniper_postdraw(player pl) if (pl.mode_tempstate) { vector laser_pos; - float lerp; + float lerpF; vector jitter = [0.0f, 0.0f, 0.0f]; Weapons_MakeVectors(pl); vector src = pl.origin + pl.view_ofs; float a = bound(0.0, (pl.mode_tempstate / 10), 1.0) * 0.75; traceline(src, src + (v_forward * 256), FALSE, pl); - lerp = Math_Lerp(32,16, trace_fraction); + lerpF = lerp(32,16, trace_fraction); jitter[0] = (random(0,2) - 2) * (1 - trace_fraction); jitter[1] = (random(0,2) - 2) * (1 - trace_fraction); - laser_pos = g_hudmins + (g_hudres / 2) + ([-lerp,-lerp] / 2); + laser_pos = g_hudmins + (g_hudres / 2) + ([-lerpF,-lerpF] / 2); drawsubpic( laser_pos + jitter, - [lerp,lerp], + [lerpF,lerpF], g_laser_spr, [0,0], [1.0, 1.0], diff --git a/src/shared/w_supernail.qc b/src/shared/w_supernail.qc index cbd7cd6..55b079d 100644 --- a/src/shared/w_supernail.qc +++ b/src/shared/w_supernail.qc @@ -72,7 +72,7 @@ w_supernail_draw(player pl) float w_supernail_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? TFCANIM_CR_AIMMP5 : TFCANIM_AIMMP5; + return pl.IsCrouching() ? TFCANIM_CR_AIMMP5 : TFCANIM_AIMMP5; } void @@ -129,7 +129,7 @@ w_supernail_primary(player pl) Weapons_ViewAnimation(pl, NAILGUN_SHOOT2); Weapons_ViewPunchAngle(pl, [-1,0,0]); - if (pl.flags & FL_CROUCHING) + if (pl.IsCrouching()) Animation_PlayerTop(pl, TFCANIM_CR_SHOOTMP5, 0.45f); else Animation_PlayerTop(pl, TFCANIM_SHOOTMP5, 0.45f); diff --git a/src/shared/w_tranquil.qc b/src/shared/w_tranquil.qc index d09d9f2..b9b1961 100644 --- a/src/shared/w_tranquil.qc +++ b/src/shared/w_tranquil.qc @@ -114,7 +114,7 @@ w_tranquil_primary(player pl) Weapons_ViewPunchAngle(pl, [-2,0,0]); Weapons_Sound(pl, CHAN_WEAPON, "weapon_tranquilizer.fire"); - if (pl.flags & FL_CROUCHING) + if (pl.IsCrouching()) Animation_PlayerTop(pl, TFCANIM_CR_SHOOT1HAND, 0.45f); else Animation_PlayerTop(pl, TFCANIM_SHOOT1HAND, 0.45f); @@ -132,7 +132,7 @@ w_tranquil_primary(player pl) float w_tranquil_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? TFCANIM_CR_AIM1HAND : TFCANIM_AIM1HAND; + return pl.IsCrouching() ? TFCANIM_CR_AIM1HAND : TFCANIM_AIM1HAND; } void diff --git a/src/shared/w_umbrella.qc b/src/shared/w_umbrella.qc index 70f5d8b..32afbf9 100644 --- a/src/shared/w_umbrella.qc +++ b/src/shared/w_umbrella.qc @@ -118,7 +118,7 @@ w_umbrella_primary(player pl) pl.w_idle_next = 2.5f; #ifdef SERVER - if (pl.flags & FL_CROUCHING) { + if (pl.IsCrouching()) { Animation_PlayerTop(pl, ANIM_SHOOTCROWBAR, 0.5f); } else { Animation_PlayerTop(pl, ANIM_CR_SHOOTCROWBAR, 0.42f); @@ -176,7 +176,7 @@ w_umbrella_release(player pl) float w_umbrella_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? ANIM_CR_AIMCROWBAR : ANIM_AIMCROWBAR; + return pl.IsCrouching() ? ANIM_CR_AIMCROWBAR : ANIM_AIMCROWBAR; } void diff --git a/src/shared/w_wrench.qc b/src/shared/w_wrench.qc index 0abc5e3..9157831 100644 --- a/src/shared/w_wrench.qc +++ b/src/shared/w_wrench.qc @@ -107,7 +107,7 @@ w_wrench_primary(player pl) pl.w_idle_next = 2.5f; #ifdef SERVER - if (pl.flags & FL_CROUCHING) { + if (pl.IsCrouching()) { Animation_PlayerTop(pl, ANIM_SHOOTCROWBAR, 0.5f); } else { Animation_PlayerTop(pl, ANIM_CR_SHOOTCROWBAR, 0.42f); @@ -191,7 +191,7 @@ w_wrench_crosshair(player pl) float w_wrench_aimanim(player pl) { - return pl.flags & FL_CROUCHING ? ANIM_CR_AIMCROWBAR : ANIM_AIMCROWBAR; + return pl.IsCrouching() ? ANIM_CR_AIMCROWBAR : ANIM_AIMCROWBAR; } void diff --git a/zpak001.pk3dir/PAK_NAME b/zpak001.pk3dir/PAK_NAME new file mode 100644 index 0000000..e683a80 --- /dev/null +++ b/zpak001.pk3dir/PAK_NAME @@ -0,0 +1 @@ +package_tfc.pk3 diff --git a/zpak001.pk3dir/def/ammo.def b/zpak001.pk3dir/def/ammo.def new file mode 100644 index 0000000..89f0c52 --- /dev/null +++ b/zpak001.pk3dir/def/ammo.def @@ -0,0 +1,30 @@ +// these have to be defined by the game. +entityDef ammo_types { + "ammo_none" "0" + "ammo_rockets" "1" + "ammo_nails" "2" + "ammo_cells" "3" + "ammo_shells" "4" + "ammo_medkits" "5" + "ammo_detpack" "6" +} + +entityDef ammo_names { + "ammo_none" "None" + "ammo_rockets" "Rockets" + "ammo_nails" "Nails" + "ammo_cells" "Cells" + "ammo_shells" "Shells" + "ammo_medkits" "Medkit" + "ammo_detpack" "Depack" +} + +entityDef ammo_max { + "ammo_none" "0" + "ammo_rockets" "255" + "ammo_nails" "255" + "ammo_cells" "255" + "ammo_shells" "255" + "ammo_medkits" "255" + "ammo_detpack" "255" +} diff --git a/zpak001.pk3dir/def/items.def b/zpak001.pk3dir/def/items.def new file mode 100644 index 0000000..46df44d --- /dev/null +++ b/zpak001.pk3dir/def/items.def @@ -0,0 +1,8 @@ +entityDef item_suit +{ + "spawnclass" "NSItem" + "model" "models/w_suit.mdl" + "mins" "-16 -16 0" + "maxs" "16 16 16" + "inv_carry" "1" +} diff --git a/zpak001.pk3dir/def/player.def b/zpak001.pk3dir/def/player.def new file mode 100644 index 0000000..365c063 --- /dev/null +++ b/zpak001.pk3dir/def/player.def @@ -0,0 +1,4 @@ +entityDef player +{ + "spawnclass" "TFPlayer" +} diff --git a/zpak001.pk3dir/def/weapons.def b/zpak001.pk3dir/def/weapons.def new file mode 100644 index 0000000..066fc61 --- /dev/null +++ b/zpak001.pk3dir/def/weapons.def @@ -0,0 +1,18 @@ +#include "weapons/ac.def" +#include "weapons/autorifle.def" +#include "weapons/axe.def" +#include "weapons/flamethrower.def" +#include "weapons/gl.def" +#include "weapons/ic.def" +#include "weapons/knife.def" +#include "weapons/medikit.def" +#include "weapons/ng.def" +#include "weapons/pl.def" +#include "weapons/railgun.def" +#include "weapons/rpg.def" +#include "weapons/shotgun.def" +#include "weapons/sniperrifle.def" +#include "weapons/spanner.def" +#include "weapons/superng.def" +#include "weapons/supershotgun.def" +#include "weapons/tranq.def" diff --git a/zpak001.pk3dir/def/weapons/ac.def b/zpak001.pk3dir/def/weapons/ac.def new file mode 100644 index 0000000..6d9e39e --- /dev/null +++ b/zpak001.pk3dir/def/weapons/ac.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_ac +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_tfac.mdl" + "model_view" "models/v_tfac.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/autorifle.def b/zpak001.pk3dir/def/weapons/autorifle.def new file mode 100644 index 0000000..94e148e --- /dev/null +++ b/zpak001.pk3dir/def/weapons/autorifle.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_autorifle +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_tfc_sniper.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/axe.def b/zpak001.pk3dir/def/weapons/axe.def new file mode 100644 index 0000000..292efc6 --- /dev/null +++ b/zpak001.pk3dir/def/weapons/axe.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_axe +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_tfc_crowbar.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/flamethrower.def b/zpak001.pk3dir/def/weapons/flamethrower.def new file mode 100644 index 0000000..b4cfe3f --- /dev/null +++ b/zpak001.pk3dir/def/weapons/flamethrower.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_flamethrower +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_flame.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/gl.def b/zpak001.pk3dir/def/weapons/gl.def new file mode 100644 index 0000000..3a28f66 --- /dev/null +++ b/zpak001.pk3dir/def/weapons/gl.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_gl +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_tfgl.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/ic.def b/zpak001.pk3dir/def/weapons/ic.def new file mode 100644 index 0000000..f5f53d7 --- /dev/null +++ b/zpak001.pk3dir/def/weapons/ic.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_ic +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_tfc_rpg.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/knife.def b/zpak001.pk3dir/def/weapons/knife.def new file mode 100644 index 0000000..94bbf1e --- /dev/null +++ b/zpak001.pk3dir/def/weapons/knife.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_knife +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_tfc_knife.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/medikit.def b/zpak001.pk3dir/def/weapons/medikit.def new file mode 100644 index 0000000..0e430b3 --- /dev/null +++ b/zpak001.pk3dir/def/weapons/medikit.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_medikit +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_tfc_medkit.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/ng.def b/zpak001.pk3dir/def/weapons/ng.def new file mode 100644 index 0000000..60a2fe9 --- /dev/null +++ b/zpak001.pk3dir/def/weapons/ng.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_ng +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_tfc_nailgun.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/pl.def b/zpak001.pk3dir/def/weapons/pl.def new file mode 100644 index 0000000..072db61 --- /dev/null +++ b/zpak001.pk3dir/def/weapons/pl.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_pl +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_tfgl.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/railgun.def b/zpak001.pk3dir/def/weapons/railgun.def new file mode 100644 index 0000000..752fd16 --- /dev/null +++ b/zpak001.pk3dir/def/weapons/railgun.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_railgun +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_tfc_railgun.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/rpg.def b/zpak001.pk3dir/def/weapons/rpg.def new file mode 100644 index 0000000..5536e6b --- /dev/null +++ b/zpak001.pk3dir/def/weapons/rpg.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_rpg +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_tfc_rpg.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/shotgun.def b/zpak001.pk3dir/def/weapons/shotgun.def new file mode 100644 index 0000000..d49a564 --- /dev/null +++ b/zpak001.pk3dir/def/weapons/shotgun.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_shotgun +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_tfc_12gauge.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/sniperrifle.def b/zpak001.pk3dir/def/weapons/sniperrifle.def new file mode 100644 index 0000000..08d2b37 --- /dev/null +++ b/zpak001.pk3dir/def/weapons/sniperrifle.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_sniperrifle +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_tfc_sniper.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/spanner.def b/zpak001.pk3dir/def/weapons/spanner.def new file mode 100644 index 0000000..cbaae58 --- /dev/null +++ b/zpak001.pk3dir/def/weapons/spanner.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_spanner +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_tfc_spanner.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/superng.def b/zpak001.pk3dir/def/weapons/superng.def new file mode 100644 index 0000000..a3e0fec --- /dev/null +++ b/zpak001.pk3dir/def/weapons/superng.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_superng +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_tfc_supernailgun.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/supershotgun.def b/zpak001.pk3dir/def/weapons/supershotgun.def new file mode 100644 index 0000000..8772547 --- /dev/null +++ b/zpak001.pk3dir/def/weapons/supershotgun.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_supershotgun +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_tfc_shotgun.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +} diff --git a/zpak001.pk3dir/def/weapons/tranq.def b/zpak001.pk3dir/def/weapons/tranq.def new file mode 100644 index 0000000..f22afc5 --- /dev/null +++ b/zpak001.pk3dir/def/weapons/tranq.def @@ -0,0 +1,43 @@ +entityDef tf_weapon_tranq +{ + "editor_color" ".3 .3 1" + "editor_mins" "-16 -16 -16" + "editor_maxs" "16 16 16" + "editor_usage" "9mm Handgun" + "editor_rotatable" "1" + + "spawnclass" "HLWeapon" + "model" "models/w_9mmhandgun.mdl" + "model_view" "models/v_tfc_pistol.mdl" + "snd_acquire" "weapon.pickup" + "snd_respawn" "item.respawn" + + // weapon specific + "def_fireInfo" "fireInfo_glock" + "def_altFireInfo" "fireInfo_altGlock" + "inv_name" "9mm Handgun" + "clipSize" "17" + "ammoType" "ammo_9mm" + "ammoRequired" "1" + "ammoPerShot" "1" + "punchAngle" "-2 0 0" + + "actFire" "3" + "actAltFire" "3" + "actFireLast" "4" + "actAltFireLast" "4" + "actHolster" "8" + "actReload" "6" + "actReloadEmpty" "5" + "actDraw" "7" + "actIdle" "0,1,2" + + "snd_fire" "weapon_glock.fire" + "snd_altfire" "weapon_glock.fire" + "snd_empty" "weapon_glock.empty" + + // HLWeapon specific + "hudSlot" "1" + "hudSlotPos" "0" + "weight" "10" +}