From 2aa0242232cebc1096a36c348528b2e296317e87 Mon Sep 17 00:00:00 2001 From: bmorello Date: Sat, 1 Apr 2017 01:10:06 -0400 Subject: [PATCH] Add files via upload --- MTF-versions.txt | 31 + Quakefont.gif | Bin 0 -> 39639 bytes actions.pqc | 1056 +++++++ ai.pqc | 653 +++++ boss.pqc | 701 +++++ buttons.pqc | 159 ++ camera.pqc | 984 +++++++ clan.pqc | 386 +++ client.pqc | 3978 +++++++++++++++++++++++++++ combat.pqc | 746 +++++ coop.pqc | 168 ++ ctf.pqc | 99 + debug.pqc | 25 + defs.pqc | 646 +++++ demoman.pqc | 498 ++++ dog.pqc | 658 +++++ doors.pqc | 776 ++++++ engineer.pqc | 832 ++++++ fight.pqc | 165 ++ fish.pqc | 497 ++++ flare.pqc | 105 + gmqcc | Bin 0 -> 3236272 bytes hiprot.pqc | 969 +++++++ hook.pqc | 304 +++ items.pqc | 1584 +++++++++++ medic.pqc | 127 + menu.pqc | 2233 +++++++++++++++ misc.pqc | 1936 +++++++++++++ missiles.pqc | 412 +++ monsters.pqc | 271 ++ mturret.pqc | 731 +++++ plats.pqc | 486 ++++ player.pqc | 1665 +++++++++++ prematch.pqc | 385 +++ progs.src | 54 + pyro.pqc | 718 +++++ qw.pqc | 265 ++ qwprogs.dat | Bin 0 -> 696686 bytes rankings.pqc | 206 ++ rpg.pqc | 568 ++++ scout.pqc | 560 ++++ sentry.pqc | 448 +++ sniper.pqc | 244 ++ spy.pqc | 1274 +++++++++ status.pqc | 2130 +++++++++++++++ subs.pqc | 251 ++ tf29ents.pqc | 2 + tfort.pqc | 4152 ++++++++++++++++++++++++++++ tforthlp.pqc | 194 ++ tfortmap.pqc | 3013 ++++++++++++++++++++ tforttm.pqc | 1242 +++++++++ triggers.pqc | 774 ++++++ tsoldier.pqc | 68 + weapons.pqc | 6833 ++++++++++++++++++++++++++++++++++++++++++++++ world.pqc | 436 +++ xavior.pqc | 450 +++ 56 files changed, 48148 insertions(+) create mode 100644 MTF-versions.txt create mode 100644 Quakefont.gif create mode 100644 actions.pqc create mode 100644 ai.pqc create mode 100644 boss.pqc create mode 100644 buttons.pqc create mode 100644 camera.pqc create mode 100644 clan.pqc create mode 100644 client.pqc create mode 100644 combat.pqc create mode 100644 coop.pqc create mode 100644 ctf.pqc create mode 100644 debug.pqc create mode 100644 defs.pqc create mode 100644 demoman.pqc create mode 100644 dog.pqc create mode 100644 doors.pqc create mode 100644 engineer.pqc create mode 100644 fight.pqc create mode 100644 fish.pqc create mode 100644 flare.pqc create mode 100644 gmqcc create mode 100644 hiprot.pqc create mode 100644 hook.pqc create mode 100644 items.pqc create mode 100644 medic.pqc create mode 100644 menu.pqc create mode 100644 misc.pqc create mode 100644 missiles.pqc create mode 100644 monsters.pqc create mode 100644 mturret.pqc create mode 100644 plats.pqc create mode 100644 player.pqc create mode 100644 prematch.pqc create mode 100644 progs.src create mode 100644 pyro.pqc create mode 100644 qw.pqc create mode 100644 qwprogs.dat create mode 100644 rankings.pqc create mode 100644 rpg.pqc create mode 100644 scout.pqc create mode 100644 sentry.pqc create mode 100644 sniper.pqc create mode 100644 spy.pqc create mode 100644 status.pqc create mode 100644 subs.pqc create mode 100644 tf29ents.pqc create mode 100644 tfort.pqc create mode 100644 tforthlp.pqc create mode 100644 tfortmap.pqc create mode 100644 tforttm.pqc create mode 100644 triggers.pqc create mode 100644 tsoldier.pqc create mode 100644 weapons.pqc create mode 100644 world.pqc create mode 100644 xavior.pqc diff --git a/MTF-versions.txt b/MTF-versions.txt new file mode 100644 index 0000000..2cb00aa --- /dev/null +++ b/MTF-versions.txt @@ -0,0 +1,31 @@ +*============================================================================* +* MegaTeamFortress 10.12.14 MTF-versions.txt * +*============================================================================* + +The original QuakeWorld MegaTeamFortress based on 08.22.06 + upgrades. No gameplay changes. FINALLY open-sourced. +Maintained by Up2nOgOod[ROCK] +https://github.com/quaketf +http://www.quakeworld.nu + + +Changelog: + +-------------------------------------------- +Version 10.12.14 10/12/2014 +-------------------------------------------- + +Changes: + - Added a 3 second prematch countdown written in console (Up2) + - Added how many minutes left in the game, every minute (Up2) + - Synced remaining time with ezQuake (Up2) + - Match results output from TF2.9 (Up2) + - Mod now displays "[auto]" after a player autoteams (Up2) + - Updated status bar code/formatting (Up2) + - Removed lots of unnecessary code (Up2) + +Bugs Fixed: + - Players respawn with the velocity of their last death (twincannon) + +Known Bugs: + - Times are off by 1-4 seconds. No idea why, this was in the original MTF and fixed in regTF2.95 + diff --git a/Quakefont.gif b/Quakefont.gif new file mode 100644 index 0000000000000000000000000000000000000000..52f6a31f801683663a49839410f25558e9693cd4 GIT binary patch literal 39639 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 m|DWCIy|^JOdg-A-GrL)6yx&>;1zBUqF0Nfcm; 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 ZjT*N*2NwhNmLF8w6<}?3+M$2|06UB|5(oeQ literal 0 HcmV?d00001 diff --git a/actions.pqc b/actions.pqc new file mode 100644 index 0000000..9d4feb8 --- /dev/null +++ b/actions.pqc @@ -0,0 +1,1056 @@ +.string oldweaponmodel; + +void() TeamFortress_NightVision = +{ + local entity te; + local entity tl; + sound(self, TF_FLARE_LIT, "items/nightvis.wav", 0.5, TF_FLARE_OFF); + te = find(world, classname, "player"); + while (te) + { + if (self != te) + { + if (te.team_no != TF_FLARE_LIT) + { + if (te.health > TF_FLARE_OFF) + { + if (visible(te)) + { + msg_entity = self; + tl = spawn(); + tl.owner = self; + tl.origin = te.origin; + tl.origin_z = tl.origin_z + 32; + WriteByte(TF_FLARE_OFF, 23); + WriteByte(TF_FLARE_OFF, 9); + WriteEntity(TF_FLARE_OFF, tl); + WriteCoord(TF_FLARE_OFF, tl.origin_x); + WriteCoord(TF_FLARE_OFF, tl.origin_y); + WriteCoord(TF_FLARE_OFF, tl.origin_z); + WriteCoord(TF_FLARE_OFF, te.origin_x); + WriteCoord(TF_FLARE_OFF, te.origin_y); + WriteCoord(TF_FLARE_OFF, te.origin_z + 5); + dremove(tl); + } + } + } + } + te = find(te, classname, "player"); + } + te = find(world, classname, "building_sentrygun"); + while (te) + { + if (self != te) + { + if (te.team_no != TF_FLARE_LIT) + { + if (te.health > TF_FLARE_OFF) + { + if (visible(te)) + { + msg_entity = self; + tl = spawn(); + tl.owner = self; + tl.origin = te.origin; + tl.origin_z = tl.origin_z + 32; + WriteByte(TF_FLARE_OFF, 23); + WriteByte(TF_FLARE_OFF, 9); + WriteEntity(TF_FLARE_OFF, tl); + WriteCoord(TF_FLARE_OFF, tl.origin_x); + WriteCoord(TF_FLARE_OFF, tl.origin_y); + WriteCoord(TF_FLARE_OFF, tl.origin_z); + WriteCoord(TF_FLARE_OFF, te.origin_x); + WriteCoord(TF_FLARE_OFF, te.origin_y); + WriteCoord(TF_FLARE_OFF, te.origin_z + 5); + dremove(tl); + } + } + } + } + te = find(te, classname, "building_sentrygun"); + } + te = find(world, classname, "bot"); + while (te) + { + if (self != te) + { + if (te.team_no != TF_FLARE_LIT) + { + if (te.health > TF_FLARE_OFF) + { + if (visible(te)) + { + msg_entity = self; + tl = spawn(); + tl.owner = self; + tl.origin = te.origin; + tl.origin_z = tl.origin_z + 32; + WriteByte(TF_FLARE_OFF, 23); + WriteByte(TF_FLARE_OFF, 9); + WriteEntity(TF_FLARE_OFF, tl); + WriteCoord(TF_FLARE_OFF, tl.origin_x); + WriteCoord(TF_FLARE_OFF, tl.origin_y); + WriteCoord(TF_FLARE_OFF, tl.origin_z); + WriteCoord(TF_FLARE_OFF, te.origin_x); + WriteCoord(TF_FLARE_OFF, te.origin_y); + WriteCoord(TF_FLARE_OFF, te.origin_z + 5); + dremove(tl); + } + } + } + } + te = find(te, classname, "bot"); + } +}; + +void() Drone = +{ + if (self.option3 < TF_FLARE_OFF) + { + sprint(self, 2, "You get 1 LaserDrone kit per life\n"); + return; + } + if (self.last_used > time) + { + sprint(self, 2, "Not finished building new drone yet... takes 3 minutes\n"); + return; + } + sprint(self, 2, "Laser Drone away!\n"); + self.option3 = self.option3 - TF_FLARE_OFF; + self.last_used = time + 180; + newmis = spawn(); + newmis.owner = self; + newmis.weapon = 41; + newmis.movetype = 9; + newmis.solid = 2; + newmis.classname = "bot"; + newmis.team_no = self.team_no; + makevectors(self.v_angle); + if (self.v_angle_x) + { + newmis.velocity = v_forward * 200; + } + else + { + newmis.velocity = aim(self, 10000); + newmis.velocity = newmis.velocity * 200; + } + newmis.option = TF_FLARE_OFF; + newmis.health = 30; + newmis.takedamage = 2; + newmis.th_die = DroneDie; + setsize(newmis, '-8 -8 -8', '12 12 12'); + setorigin(newmis, self.origin + v_forward * 8 + '0 0 20'); + newmis.angles_x = self.angles_x; + newmis.angles_y = self.angles_y; + newmis.angles_z = self.angles_z; + sound(newmis, TF_FLARE_LIT, "weapons/chngnu1a.wav", TF_FLARE_OFF, TF_FLARE_OFF); + newmis.nextthink = time + 0.8; + newmis.playerclass = TF_FLARE_LIT; + newmis.think = DroneJet; + newmis.touch = BalloonMIRVtouch; + newmis.skin = TF_FLARE_LIT; + setmodel(newmis, "progs/lsrdrone.mdl"); +}; + +void() Drone_Laser_Touch = +{ + local vector org; + if (other == self.owner) + { + return; + } + if (pointcontents(self.origin) == -6) + { + dremove(self); + return; + } + sound(self, TF_FLARE_OFF, "enforcer/enfstop.wav", TF_FLARE_OFF, 3); + org = self.origin - 8 * normalize(self.velocity); + if (other.health) + { + SpawnBlood(org, 15); + deathmsg = 41; + self.weapon = 41; + if (other.classname == "building_sentrygun") + { + T_RadiusDamage(self, self.owner.owner, 90, world); + } + else + { + T_Damage(other, self, self.owner.owner, 25); + } + } + dremove(self); +}; + +void(vector org, vector vec) DroneLaunchLaser = +{ + sound(self, TF_FLARE_OFF, "enforcer/enfire.wav", TF_FLARE_OFF, TF_FLARE_OFF); + vec = normalize(vec); + newmis = spawn(); + newmis.owner = self; + newmis.movetype = 5; + newmis.solid = 2; + newmis.effects = 8; + newmis.weapon = 41; + newmis.classname = "drone_laser"; + newmis.skin = self.owner.team_no - TF_FLARE_OFF; + setmodel(newmis, "progs/beam.mdl"); + setsize(newmis, '0 0 0', '0 0 0'); + setorigin(newmis, org); + newmis.velocity = vec * 2000; + newmis.angles = vectoangles(newmis.velocity); + newmis.nextthink = time + 4; + newmis.think = SUB_Remove; + newmis.touch = Drone_Laser_Touch; +}; + +void() DroneDoneTouch = +{ + if (self.velocity_z) + { + sound(self, TF_FLARE_OFF, "weapons/bounce.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } +}; + +void() DroneDie = +{ + ThrowGib("progs/tgib2.mdl", -70); + ThrowGib("progs/dgib2.mdl", -70); + ThrowGib("progs/dgib3.mdl", -70); + WriteByte(4, 23); + WriteByte(4, 3); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); + multicast(self.origin, TF_FLARE_OFF); + BecomeExplosion(); +}; + +void() DroneFall = +{ + sound(self, TF_FLARE_LIT, "weapons/chngnd1a.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.movetype = 10; + self.avelocity = '200 0 300'; + setsize(self, '-8 -8 -8', '8 8 8'); + self.takedamage = 2; + self.skin = TF_FLARE_OFF; + //self.team_no = 5; // <- pablo. guns shoot friendly drones cause of this. + self.th_die = DroneDie; + self.touch = DroneDoneTouch; + self.think = DroneDie; + // pablo. die abit faster since you'll be twice as annoying when we cant kill you. + //self.nextthink = time + 20; + self.nextthink = time + 15; + // <--- +}; + +void() DroneJet = +{ + local entity te; + //local entity tl; + self.playerclass = self.playerclass + TF_FLARE_OFF; + self.nextthink = time + 0.9; + sound(self, TF_FLARE_LIT, "weapons/drone.wav", TF_FLARE_OFF, TF_FLARE_OFF); + te = find(world, classname, "player"); + while (te) + { + if (self != te) + { + if (te.team_no != TF_FLARE_LIT && te.team_no != self.team_no) + { + if (te.health) + { + if (visible(te)) + { + if (te.is_undercover != TF_FLARE_OFF) + { + DroneLaunchLaser(self.origin, te.origin - self.origin); + } + } + } + } + } + te = find(te, classname, "player"); + } + te = find(world, classname, "building_sentrygun"); + while (te) + { + if (te.team_no != TF_FLARE_LIT && te.team_no != self.team_no) + { + if (te.health) + { + if (visible(te)) + { + DroneLaunchLaser(self.origin, te.origin + '0 0 24' - self.origin); + } + } + } + te = find(te, classname, "building_sentrygun"); + } + te = find(world, classname, "bot"); + while (te) + { + if (self != te) + { + if (te.team_no != TF_FLARE_LIT && te.team_no != self.team_no) + { + if (te.health) + { + if (visible(te)) + { + DroneLaunchLaser(self.origin, te.origin - self.origin); + } + } + } + } + te = find(te, classname, "bot"); + } + if (self.playerclass > 10) + { + self.think = DroneFall; + } +}; + +vector(vector ang) SUB_NormalizeAngles = +{ + while (ang_x > 360) + { + ang_x = ang_x - 360; + } + while (ang_x < TF_FLARE_LIT) + { + ang_x = ang_x + 360; + } + while (ang_y > 360) + { + ang_y = ang_y - 360; + } + while (ang_y < TF_FLARE_LIT) + { + ang_y = ang_y + 360; + } + while (ang_z > 360) + { + ang_z = ang_z - 360; + } + while (ang_z < TF_FLARE_LIT) + { + ang_z = ang_z + 360; + } + return ang; +}; + +void() Prox_Disarm = +{ + if (other.classname != "player") + { + return; + } + if (other.playerclass == TF_FLARE_OFF && other.team_no != self.team_no) + { + other.real_frags = other.real_frags + TF_FLARE_OFF; + dremove(self); + } + return; +}; + +void() ProxiDie = +{ + self.effects = 4; + make_explosion(); + self.takedamage = TF_FLARE_LIT; + deathmsg = 45; + T_RadiusDamage(self, self.owner, 200, world); + dremove(self); +}; + +void () FoundBastard = +{ + local float _l_11382; + + self.touch = Prox_Disarm; + sound (self, 3, "effects/beep.wav", 1, 1); + self.skin = (self.owner.team_no + 3); + _l_11382 = vlen ((self.enemy.origin - self.origin)); + if ((_l_11382 <= self.height)) + { + self.height = _l_11382; + self.nextthink = (time + ((_l_11382 / 1000) * 1.500000)); + self.think = FoundBastard; + } + else + { + self.effects = 4; + make_explosion (); + MushroomFlame (); + WriteByte (4, 23); + WriteByte (4, 3); + WriteCoord (4, self.origin_x); + WriteCoord (4, self.origin_y); + WriteCoord (4, self.origin_z); + multicast (self.origin, 1); + deathmsg = 45; + self.takedamage = 0; + T_RadiusDamage (self, self.owner, 200, world); + dremove (self); + } +}; + +void () ProxArmed = +{ + local entity _l_11392; + //local entity _l_11393; + local vector _l_11394; + + self.velocity = '0 0 0'; + self.nextthink = (time + 1); + self.think = ProxArmed; + sound (self, 3, "effects/beep.wav", 0.300000, 1); + self.playerclass = (self.playerclass + 1); + if ((self.skin == self.owner.team_no)) + { + self.skin = 0; + } + else + { + self.skin = self.owner.team_no; + } + _l_11392 = find (world, classname, "player"); + while (_l_11392) + { + if ((self.owner != _l_11392)) + { + if ((((_l_11392.team_no != 0) && (_l_11392.team_no != self.team_no)) && (_l_11392.bugger == 0))) + { + if ((_l_11392.health > 1)) + { + if (visible (_l_11392)) + { + if ((_l_11392.undercover_team != self.team_no)) + { + _l_11394 = _l_11392.origin - self.origin; + if ((vlen (_l_11394) < 200)) + { + self.height = vlen (_l_11394); + self.enemy = _l_11392; + self.nextthink = 0.200000; + self.think = FoundBastard; + } + } + } + } + } + } + _l_11392 = find (_l_11392, classname, "player"); + } + if (((self.playerclass > 300) || (self.owner.playerclass != 3))) + { + dremove (self); + } +}; + +void() ProxAttach = +{ + //self.touch = SUB_Null; + self.think = ProxArmed; + self.nextthink = time + 0.5; + sound(newmis, TF_FLARE_LIT, "buttons/switch02.wav", TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void (vector _p_11412, float _p_11415) BigAssBullet = +{ + local vector _l_11416; + local vector _l_11419; + + makevectors (self.v_angle); + _l_11419 = self.origin + (v_forward * 10); + _l_11419_z = self.absmin_z + (self.size_z * 0.700000); + ClearMultiDamage (); + traceline (_l_11419, (_l_11419 + (_p_11412 * 1500)), 0, self); + if ((trace_fraction != 1)) + { + TraceAttack (_p_11415, _p_11412); + } + if (trace_ent.takedamage) + { + _l_11416 = trace_endpos - (v_forward * 4); + SpawnBlood (_l_11416, 9); + } + else + { + _l_11416 = trace_endpos - (v_forward * 4); + WriteByte (4, 23); + WriteByte (4, 0); + WriteCoord (4, _l_11416_x); + WriteCoord (4, _l_11416_y); + WriteCoord (4, _l_11416_z); + multicast (self.origin, 1); + } + ApplyMultiDamage (); +}; + +void () W_FireBigAss = +{ + local vector _l_11430; + //local float _l_11436; + + if ((self.ammo_shells < 10)) + { + make_explosion (); +// sprint (self, 2, "Ammo chamber jammed!\n"); // I just don't like excess messages + sound (self, 1, "weapons/asscan4.wav", 1, 1); + stuffcmd (self, "bf\n"); + self.option4 = 0; + return; + } + self.nojumptime = (time + 0.750000); + + // My megatf uses the old megaTF assault cannon fire wav, but you can enable + // 11.11.04's by setting "localinfo newsounds 1" (or localinfo newsounds on) in the + // server console + if (infokey(world, "newsounds") == "1" || infokey(world, "newsounds") == "on") + { + sound (self, 1, "weapons/20mm.wav", 1, 1); + } + else + { + sound(self, TF_FLARE_OFF, "weapons/sgun1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + + KickPlayer (-5, self); + muzzleflash (); + stuffcmd (self, "bf\n"); +// self.ammo_shells = (self.ammo_shells - 10); +// self.currentammo = (self.ammo_shells - 10); + self.currentammo = self.ammo_shells = self.ammo_shells - 10; + makevectors (self.v_angle); + _l_11430 = v_forward; + deathmsg = 46; + BigAssBullet (_l_11430, 50); + EjectShell (); + self.velocity = (self.velocity - (v_forward * 200)); + if ((self.ammo_shells == 0)) + { + self.ammo_shells = 1; + } +}; + +void () BigAssCarry = +{ + makevectors (self.owner.v_angle); + setorigin (self, (((self.owner.origin + (v_forward * 12)) + '0 0 20') + (v_right * 5))); + self.angles = self.owner.angles; + self.think = BigAssCarry; + self.nextthink = (time + 0.02); +}; + +void () Prox = +{ + local vector _l_11458; + local vector _l_11461; + local entity _l_11464; + + _l_11464 = find (world, classname, "bot"); + while (_l_11464) + { + if ((_l_11464.owner == self)) + { + local float proxyDistance = vlen(_l_11464.origin - self.origin); + if (proxyDistance < 40) + { + dremove(_l_11464); + if (self.no_grenades_2 < 3) + { + self.no_grenades_2 = (self.no_grenades_2 + 2); + } + return; + } + else + { + sprint (self, 2, "1 proximity grenade at a time!\n"); + if ((self.weaponmodel == "progs/proxgren.mdl")) + { + self.current_weapon = W_BestWeapon (); + self.weaponmodel = "progs/v_rock2.mdl"; + self.currentammo = self.ammo_rockets; + Attack_Finished (0.700000); + self.impulse = 0; + self.StatusRefreshTime = (time + 0.100000); + } + return; + } + } + _l_11464 = find (_l_11464, classname, "bot"); + } + if ((self.no_grenades_2 < 2)) + { + sprint (self, 2, "Not enough type 2 grenades... get more\n"); + if ((self.weaponmodel == "progs/proxgren.mdl")) + { + self.weaponmodel = "progs/v_rock2.mdl"; + self.currentammo = self.ammo_rockets; + Attack_Finished (0.700000); + self.impulse = 0; + self.StatusRefreshTime = (time + 0.100000); + self.tfstate = (self.tfstate - (self.tfstate & 2)); + } + return; + } + if ((self.weaponmodel != "progs/proxgren.mdl")) + { + self.tfstate = (self.tfstate | 2); + self.oldweaponmodel = self.weaponmodel; + self.oldcurrentammo = self.currentammo; + self.currentammo = 1; + self.weaponmodel = "progs/proxgren.mdl"; + self.weaponframe = 0; + return; + } + makevectors (self.v_angle); + _l_11458 = self.origin + (v_forward * 10); + _l_11458_z = self.absmin_z + (self.size_z * 0.700000); + traceline (_l_11458, (_l_11458 + (v_forward * 70)), 0, self); + _l_11461 = trace_endpos - (v_forward * 8); + if ((trace_fraction != 1)) + { + sound (self, 3, "buttons/switch02.wav", 1, 1); + sprint (self, 2, "Proximity mine set!\n"); + self.no_grenades_2 = (self.no_grenades_2 - 2); + newmis = spawn (); + newmis.owner = self; + newmis.weapon = 41; + newmis.movetype = 0; + newmis.solid = 2; + newmis.classname = "bot"; + newmis.netname = "proxi"; + newmis.team_no = self.team_no; + newmis.health = 3; + newmis.takedamage = 2; + newmis.th_die = ProxiDie; + setsize (newmis, '-3 -3 -3', '3 3 3'); + newmis.angles = '0 0 0'; + newmis.nextthink = (time + 1); + newmis.playerclass = 0; + newmis.think = ProxAttach; + newmis.skin = 0; + newmis.frame = 1; + setmodel (newmis, "progs/proxgren.mdl"); + setorigin (newmis, _l_11461); + if ((self.oldweaponmodel != "")) + { + self.tfstate = (self.tfstate - (self.tfstate & 2)); + } + self.weaponmodel = self.oldweaponmodel; + self.currentammo = self.oldcurrentammo; + Attack_Finished (0.700000); + self.impulse = 0; + self.StatusRefreshTime = (time + 0.100000); + } +}; + +.float DropFlagDelay; + +void () DropFlag = +{ + local entity Item; + local entity te; + local float f; + local string st; + + te = find (world, classname, "item_tfgoal"); + while (te) + { + if (te.owner == self) + { + Item = te; + } + te = find (te, classname, "item_tfgoal"); + } + + if (Item == world) + { + sprint (self, 2, "You don't have the flag.\n"); + return; + } + + // Delay + if (self.DropFlagDelay > time) + { + sprint (self, 2, "Can't drop again for another "); + f = ceil(self.DropFlagDelay - time); + st = ftos(f); + sprint (self, 2, st); + sprint (self, 2, " seconds.\n"); + return; + } + self.DropFlagDelay = time + 10; + // + + // Flash of particles + WriteByte(4, 23); + WriteByte(4, 11); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); + multicast(self.origin, TF_FLARE_OFF); + // + + tfgoalitem_RemoveFromPlayer(Item, self, 2); + + setorigin (Item, self.origin - '0 0 24'); // - vf*(16));// - '0 0 15'); //Item.origin = self.origin + v_forward*56 + '0 0 8'; + Item.velocity = '0 0 1'; //((vf * 150) + '0 0 150'; + //gold. i didn't even have to change the origin, just the velocity. used to be '0 0 150' + Item.goal_state = 2; + Item.movetype = 6; + Item.solid = TF_FLARE_OFF; + setsize(Item, '-16 -16 0', '16 16 56'); + if (Item.mdl != string_null) + { + setmodel(Item, Item.mdl); + } + Item.option5 = time + 2; + Item.tent = self; + + Item.nextthink = time + 5; + Item.think = tfgoalitem_dropthink; + Item.touch = item_tfgoal_touch; +} +void () Det_Disp = +{ + local entity te; + if (self.playerclass != 9) + { + return; + } + if (self.has_dispenser) + { + te = find(world, classname, "building_dispenser"); + while (te) + { + if (te.real_owner == self) + { + deathmsg = 201; + T_RadiusDamage(te, te.real_owner, 140, world); + TF_T_Damage(te, world, world, 500, TF_FLARE_LIT, TF_FLARE_LIT); + sprint(self, 2, "Your dispenser was detonated.\n"); + } + te = find(te, classname, "building_dispenser"); + } + } + else + { + sprint(self, 2, "You don't have a dispenser to detonate.\n"); + } +} +void () Det_Sent = +{ + local entity te; + if (self.playerclass != 9) + { + return; + } + if (self.has_sentry) + { + te = find(world, classname, "building_sentrygun"); + while (te) + { + if (te.real_owner == self) + { + TF_T_Damage(te, world, world, 500, TF_FLARE_LIT, TF_FLARE_LIT); + } + te = find(te, classname, "building_sentrygun"); + } + } + else + { + sprint(self, 2, "You don't have a sentry to detonate.\n"); + } +} + +void () review_timeleft = { + + local string st; + local float minutes; + local float seconds; + local float remaining; + + self.no_grenades_1 = self.no_grenades_1 + 1; + self.nextthink = (time + 1); + + st = infokey (world,"timelimit"); + minutes = stof(st); + seconds = minutes * 60; + + if (minutes != self.health) // timelimit change detector + { + self.netname = ftos(self.health); + bprint(2,"Timelimit "); + if (minutes > self.health) + bprint(2,"increased from "); + else + bprint(2,"decreased from "); + bprint(2,self.netname); + bprint(2," to "); + bprint(2,st); + bprint(2," minutes\n"); + + } + + self.health = stof(st); + if (st == "0") + return; + + seconds = minutes * 60; + remaining = seconds - self.no_grenades_1; + if ((remaining == 4) & (seconds >= 4)) + bprint(2,"\[5\] seconds remaining\n"); + else if ((remaining == 29) & (seconds >= 29)) + bprint(2,"\[30\] seconds remaining\n"); + else if ((remaining == 59) & (seconds >= 59)) { + bprint(2,"\[1\] minute remaining\n"); + localcmd("serverinfo status \"1 min left\"\n"); + } + else if ((remaining == 119) & (seconds >= 119)) { + bprint(2,"\[2\] minutes remaining\n"); + localcmd("serverinfo status \"2 min left\"\n"); + } + else if ((remaining == 179) & (seconds >= 179)) { + bprint(2,"\[3\] minutes remaining\n"); + localcmd("serverinfo status \"3 min left\"\n"); + } + else if ((remaining == 239) & (seconds >= 239)) { + bprint(2,"\[4\] minutes remaining\n"); + localcmd("serverinfo status \"4 min left\"\n"); + } + else if ((remaining == 299) & (seconds >= 299)) { + bprint(2,"\[5\] minutes remaining\n"); + localcmd("serverinfo status \"5 min left\"\n"); + } + else if ((remaining == 359) & (seconds >= 359)) { + bprint(2,"\[6\] minutes remaining\n"); + localcmd("serverinfo status \"6 min left\"\n"); + } + else if ((remaining == 419) & (seconds >= 419)) { + bprint(2,"\[7\] minutes remaining\n"); + localcmd("serverinfo status \"7 min left\"\n"); + } + else if ((remaining == 479) & (seconds >= 479)) { + bprint(2,"\[8\] minutes remaining\n"); + localcmd("serverinfo status \"8 min left\"\n"); + } + else if ((remaining == 539) & (seconds >= 539)) { + bprint(2,"\[9\] minutes remaining\n"); + localcmd("serverinfo status \"9 min left\"\n"); + } + else if ((remaining == 599) & (seconds >= 599)) { + bprint(2,"\[10\] minutes remaining\n"); + localcmd("serverinfo status \"10 min left\"\n"); + } + else if ((remaining == 899) & (seconds >= 899)) { + bprint(2,"\[15\] minutes remaining\n"); + localcmd("serverinfo status \"15 min left\"\n"); + } + else if ((remaining == 1799) & (seconds >= 1799)) { + bprint(2,"\[30\] minutes remaining\n"); + localcmd("serverinfo status \"30 min left\"\n"); + } + + self.think = review_timeleft; + + +}; + +void (entity _p_11523, float _p_11524) sprint_duration = +{ + local float _l_11525; + local float _l_11526; + local float _l_11527; + local string _l_11528; + + if ((_p_11524 <= 0)) + { + sprint (_p_11523, 2, "none.\n"); + return; + } + _l_11525 = _p_11524; + _p_11524 = _p_11524 / 60; + _l_11526 = 0; + while ((_l_11526 < _p_11524)) + { + _l_11526 = _l_11526 + 1; + } + _l_11526 = _l_11526 - 1; + _l_11527 = _l_11526 * 60; + _l_11527 = _l_11525 - _l_11527; + if ((_l_11526 > 0)) + { + _l_11528 = ftos (_l_11526); + sprint (_p_11523, 2, _l_11528); + if ((_l_11528 == "1")) + { + sprint (_p_11523, 2, " minute"); + } + else + { + sprint (_p_11523, 2, " minutes"); + } + _l_11528 = ftos (_l_11527); + if ((_l_11528 != "60")) + { + sprint (_p_11523, 2, ", "); + sprint (_p_11523, 2, _l_11528); + if ((_l_11528 == "1")) + { + sprint (_p_11523, 2, " second"); + } + else + { + sprint (_p_11523, 2, " seconds"); + } + } + return; + } + else + { + _l_11528 = ftos (_l_11525); + sprint (_p_11523, 2, _l_11528); + sprint (_p_11523, 2, " seconds"); + } +}; + +void (entity _p_11534) TeamFortress_PrintPMTimeLeft = +{ + local float _l_11535; + local float _l_11536; + local float _l_11537; + local float _l_11538; + local string _l_11539; + local string _l_11540; + local string _l_11541; + + if (!prematch) + { + return; + } + if ((pointer_prematchtimer == world)) + { + dprint ("warning: prematch timer not found during prematch.\n"); + return; + } + else + { + _l_11538 = (timelimit - pointer_timeleft.no_grenades_1) - (timelimit - floor ((prematch * 60))); + _l_11538 = _l_11538 + 4; + _l_11535 = _l_11538; + _l_11538 = _l_11538 / 60; + _l_11536 = 0; +#ifdef clan_progs + if (clan_prematch == 0) + { + while ((_l_11536 < _l_11538)) + { + _l_11536 = _l_11536 + 1; + } + } +#else + while ((_l_11536 < _l_11538)) + { + _l_11536 = _l_11536 + 1; + } +#endif + _l_11536 = _l_11536 - 1; + _l_11537 = _l_11536 * 60; + _l_11537 = _l_11535 - _l_11537; + if ((_l_11536 > 0)) + { + _l_11539 = "Prematch ends in less than "; + _l_11540 = ftos ((_l_11536 + 1)); + if ((_l_11540 == "1")) + { + _l_11541 = " minute"; + } + else + { + _l_11541 = " minutes"; + } + } + else + { + if ((_l_11535 <= 10)) + { + centerprint (self, "Prematch is about to end!\n"); + return; + } + _l_11539 = "Prematch ends in "; + _l_11540 = ftos (_l_11535); + _l_11541 = " seconds!"; + } + } + centerprint (_p_11534, _l_11539, _l_11540, _l_11541, "\n"); +}; + +void () TeamFortress_Timeleft = +{ + local float _l_11549; + local string _l_11551; + + _l_11551 = infokey (world, "time"); + if (((_l_11551 == "off") && (pointer_timeleft == world))) + { + sprint (self, 2, "Timeleft has been disabled.\n"); + return; + } + else + { + if (((_l_11551 != "off") && (pointer_timeleft == world))) + { + sprint (self, 2, "Unknown.\n"); + return; + } + } + if (((timelimit != 0) && ((timelimit - pointer_timeleft.no_grenades_1) <= 0))) + { + sprint (self, 2, "Time is up.\n"); + return; + } + if (prematch) + { + sprint (self, 2, "Prematch: "); + if ((pointer_prematchtimer == world)) + { + sprint (self, 2, "\n"); + } + else + { +#ifdef clan_progs + if (clan_prematch > 0) + { + sprint(self,2, "infinite (all must select ready for prematch to end)\n"); + } + else if (clan_prematch == -1) + { + sprint(self,2, "4 seconds\n"); + } + else { +#endif + _l_11549 = (timelimit - pointer_timeleft.no_grenades_1) - (timelimit - floor ((prematch * 60))); + _l_11549 = _l_11549 + 4; + sprint_duration (self, _l_11549); + sprint (self, 2, "\n"); +#ifdef clan_progs + } +#endif + + } + sprint (self, 2, "Game : "); + } + else + { + sprint (self, 2, " "); + } + _l_11549 = timelimit - pointer_timeleft.no_grenades_1; + sprint_duration (self, _l_11549); + sprint (self, 2, "\n"); +}; \ No newline at end of file diff --git a/ai.pqc b/ai.pqc new file mode 100644 index 0000000..41c0e7b --- /dev/null +++ b/ai.pqc @@ -0,0 +1,653 @@ +// XTF2 +//entity (float rangeDist) buildTargetList; +//entity (entity targList) sortListFrom; // only in United :) +// XTF2_end +void(float normal) SUB_AttackFinished; +//float() WizardCheckAttack; +float() DogCheckAttack; +//float() SoldierCheckAttack; +//float() ShamCheckAttack; +//float() DemonCheckAttack; +//float() OgreCheckAttack; +float() CheckAttack; + +float current_yaw; +float enemy_vis, enemy_infront, enemy_range; +float enemy_yaw; + +entity sight_entity; +float sight_entity_time; + + +float(float v) anglemod = +{ + while (v >= 360) + { + v = v - 360; + } + while (v < TF_FLARE_LIT) + { + v = v + 360; + } + return v; +}; + +void() t_movetarget = +{ + local entity temp; + if (other.movetarget != self) + { + return; + } + if (other.enemy) + { + return; + } + temp = self; + self = other; + other = temp; + if (self.classname == "monster_ogre") + { + sound(self, 2, "ogre/ogdrag.wav", TF_FLARE_OFF, 2); + } + self.goalentity = self.movetarget = find(world, targetname, other.target); + self.ideal_yaw = vectoyaw(self.goalentity.origin - self.origin); + if (!(self.movetarget)) + { + self.pausetime = time + 999999; + self.th_stand(); + return; + } +}; + +void() movetarget_f = +{ + if (!(self.targetname)) + { + objerror("monster_movetarget: no targetname"); + } + self.solid = TF_FLARE_OFF; + self.touch = t_movetarget; + setsize(self, '-8 -8 -8', '8 8 8'); +}; + +void() path_corner = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + movetarget_f(); +}; + + + +float(entity targ) range = +{ + local vector spot1; + local vector spot2; + local float r; + spot1 = self.origin + self.view_ofs; + spot2 = targ.origin + targ.view_ofs; + r = vlen(spot1 - spot2); + if (r < 120) + { + return TF_FLARE_LIT; + } + if (r < 500) + { + return TF_FLARE_OFF; + } + if (r < 1000) + { + return 2; + } + return 3; +}; + +float(entity targ) infront = +{ + local vector vec; + local float dot; + makevectors(self.angles); + vec = normalize(targ.origin - self.origin); + dot = vec * v_forward; + if (dot > 0.3) + { + return TF_FLARE_OFF; + } + return TF_FLARE_LIT; +}; + +void() HuntTarget = +{ + self.goalentity = self.enemy; + self.think = self.th_run; + self.ideal_yaw = vectoyaw(self.enemy.origin - self.origin); + self.nextthink = time + 0.1; + SUB_AttackFinished(TF_FLARE_OFF); +}; + +void() SightSound = +{ + local float rsnd; + if (self.classname == "monster_ogre") + { + sound(self, 2, "ogre/ogwake.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (self.classname == "monster_knight") + { + sound(self, 2, "knight/ksight.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (self.classname == "monster_shambler") + { + sound(self, 2, "shambler/ssight.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (self.classname == "monster_demon1") + { + sound(self, 2, "demon/sight2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (self.classname == "monster_wizard") + { + sound(self, 2, "wizard/wsight.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (self.classname == "monster_zombie") + { + sound(self, 2, "zombie/z_idle.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (self.classname == "monster_dog") + { + sound(self, 2, "dog/dsight.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (self.classname == "monster_hell_knight") + { + sound(self, 2, "hknight/sight1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (self.classname == "monster_tarbaby") + { + sound(self, 2, "blob/sight1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (self.classname == "monster_vomit") + { + sound(self, 2, "vomitus/v_sight1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (self.classname == "monster_enforcer") + { + rsnd = rint(random() * 3); + if (rsnd == TF_FLARE_OFF) + { + sound(self, 2, "enforcer/sight1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (rsnd == 2) + { + sound(self, 2, "enforcer/sight2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (rsnd == TF_FLARE_LIT) + { + sound(self, 2, "enforcer/sight3.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + sound(self, 2, "enforcer/sight4.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + } + } + } + else + { + if (self.classname == "monster_army") + { + sound(self, 2, "soldier/sight1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (self.classname == "monster_shalrath") + { + sound(self, 2, "shalrath/sight.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + } + } + } + } + } + } + } + } + } + } + } + } +}; + +void() FoundTarget = +{ + if (self.enemy.classname == "player" || self.enemy.classname == "bot" || self.enemy.classname == "monster_dog" || self.enemy.classname == "monster_fish") + { + sight_entity = self; + sight_entity_time = time; + } + self.show_hostile = time + TF_FLARE_OFF; + SightSound(); + HuntTarget(); +}; + +float () FindTarget = +{ + local entity _l_8271; + local float _l_8273; + + if (((sight_entity_time >= (time - 0.1)) && !(self.spawnflags & 3))) + { + _l_8271 = sight_entity; + if ((_l_8271.enemy == self.enemy)) + { + return (0); + } + } + else + { + _l_8271 = checkclient (); + if ((!_l_8271 && (_l_8271.classname != "bot"))) + { + return (0); + } + } + if ((_l_8271 == self.enemy)) + { + return (0); + } + if ((_l_8271.flags & 128)) + { + return (0); + } + if ((_l_8271.items & 524288)) + { + return (0); + } + if ((_l_8271.team_no == self.team_no)) + { + return (0); + } + if (((_l_8271.undercover_team == self.team_no) && (_l_8271.playerclass == 8))) + { + return (0); + } + _l_8273 = range (_l_8271); + if ((_l_8273 == 3)) + { + return (0); + } + if (!visible (_l_8271)) + { + return (0); + } + if ((_l_8273 == 1)) + { + if (((_l_8271.show_hostile < time) && !infront (_l_8271))) + { + return (0); + } + } + else + { + if ((_l_8273 == 2)) + { + if (!infront (_l_8271)) + { + return (0); + } + } + } + self.enemy = _l_8271; + if ((((self.enemy.classname != "player") && (self.enemy.classname != "bot")) && (self.enemy.classname != "monster_dog"))) + { + self.enemy = self.enemy.enemy; + if ((((self.enemy.classname != "player") && (self.enemy.classname != "bot")) && (self.enemy.classname != "monster_dog"))) + { + self.enemy = world; + return (0); + } + } + FoundTarget (); + return (1); +}; + +void(float dist) ai_forward = +{ + walkmove(self.angles_y, dist); +}; + +void(float dist) ai_back = +{ + walkmove(self.angles_y + 180, dist); +}; + +void(float dist) ai_pain = +{ + ai_back(dist); +}; + +void(float dist) ai_painforward = +{ + walkmove(self.ideal_yaw, dist); +}; + +void(float dist) ai_walk = +{ + movedist = dist; + if (self.classname == "monster_dragon") + { + movetogoal(dist); + return; + } + if (FindTarget()) + { + return; + } + movetogoal(dist); +}; + +void() ai_stand = +{ + if (FindTarget()) + { + return; + } + if (time > self.pausetime) + { + self.th_walk(); + return; + } +}; + +void() ai_turn = +{ + if (FindTarget()) + { + return; + } + ChangeYaw(); +}; + +void(vector dest3) ChooseTurn = +{ + local vector dir; + local vector newdir; + dir = self.origin - dest3; + newdir_x = trace_plane_normal_y; + newdir_y = TF_FLARE_LIT - trace_plane_normal_x; + newdir_z = TF_FLARE_LIT; + if (dir * newdir > TF_FLARE_LIT) + { + dir_x = TF_FLARE_LIT - trace_plane_normal_y; + dir_y = trace_plane_normal_x; + } + else + { + dir_x = trace_plane_normal_y; + dir_y = TF_FLARE_LIT - trace_plane_normal_x; + } + dir_z = TF_FLARE_LIT; + self.ideal_yaw = vectoyaw(dir); +}; + +float() FacingIdeal = +{ + local float delta; + delta = anglemod(self.angles_y - self.ideal_yaw); + if (delta > 45 && delta < 315) + { + return TF_FLARE_LIT; + } + return TF_FLARE_OFF; +}; + +float() CheckAnyAttack = +{ + if (!enemy_vis) + { + return 0; + } + if (self.classname == "monster_dog") + { + return DogCheckAttack(); + } + if (self.classname == "bot") + { + return DogCheckAttack(); + } + return CheckAttack(); +}; + +void() ai_run_melee = +{ + self.ideal_yaw = enemy_yaw; + ChangeYaw(); + if (FacingIdeal()) + { + self.th_melee(); + self.attack_state = TF_FLARE_OFF; + } +}; + +void() ai_run_missile = +{ + self.ideal_yaw = enemy_yaw; + ChangeYaw(); + if (FacingIdeal()) + { + self.th_missile(); + self.attack_state = TF_FLARE_OFF; + } +}; + +void() ai_run_slide = +{ + local float ofs; + self.ideal_yaw = enemy_yaw; + ChangeYaw(); + if (self.lefty) + { + ofs = 90; + } + else + { + ofs = -90; + } + if (walkmove(self.ideal_yaw + ofs, movedist)) + { + return; + } + self.lefty = TF_FLARE_OFF - self.lefty; + walkmove(self.ideal_yaw - ofs, movedist); +}; + +void(float dist) ai_run = +{ + movedist = dist; + if (self.enemy.health <= TF_FLARE_LIT || self.playerclass == self.enemy.team_no) + { + self.enemy = world; + if (self.oldenemy.health > TF_FLARE_LIT) + { + self.enemy = self.oldenemy; + HuntTarget(); + } + else + { + if (self.movetarget) + { + self.th_walk(); + } + else + { + self.th_stand(); + } + return; + } + } + self.show_hostile = time + TF_FLARE_OFF; + enemy_vis = visible(self.enemy); + if (enemy_vis) + { + self.search_time = time + 5; + } + if (coop && self.search_time < time) + { + if (FindTarget()) + { + return; + } + } + enemy_infront = infront(self.enemy); + enemy_range = range(self.enemy); + enemy_yaw = vectoyaw(self.enemy.origin - self.origin); + if (self.attack_state == 4) + { + ai_run_missile(); + return; + } + if (self.attack_state == 3) + { + ai_run_melee(); + return; + } + if (CheckAnyAttack()) + { + return; + } + if (self.attack_state == 2) + { + ai_run_slide(); + return; + } + movetogoal(dist); +}; + +/* This is NOT in this version of MegaTF (it's part of XTF which I used in MegaTF United) +// XTF AI_TARGET +float (float rangeDist, float typeFlag) AI_Target = +{ + local entity client; + local entity te; + local entity targetList; + local float r; + local float gotone; + + r = TF_FLARE_LIT; + gotone = TF_FLARE_LIT; + targetList = buildTargetList (rangeDist); + targetList = sortListFrom (targetList); + while (((targetList.classname != "listTerminator") && (targetList.classname != "worldspawn"))) + { + gotone = TF_FLARE_OFF; + if (!targetList) + { + gotone = TF_FLARE_LIT; + } + if (teamplay) + { + if (((targetList.team_no == self.team_no) && (self.team_no != TF_FLARE_LIT))) + { + gotone = TF_FLARE_LIT; + } + if (((targetList.undercover_team == self.team_no) && (self.team_no != TF_FLARE_LIT))) + { + gotone = TF_FLARE_LIT; + } + } + if (((targetList == self.real_owner) || (targetList == self.owner))) + { + gotone = TF_FLARE_LIT; + } + if (targetList.is_feigning) + { + gotone = TF_FLARE_LIT; + } + if ((targetList.flags & 128)) + { + gotone = TF_FLARE_LIT; + } + if ((targetList.items & 524288)) + { + gotone = TF_FLARE_LIT; + } + if ((targetList.deadflag != TF_FLARE_LIT)) + { + gotone = TF_FLARE_LIT; + } + r = vlen ((self.origin - targetList.origin)); + if ((r > rangeDist)) + { + gotone = TF_FLARE_LIT; + } + r = range (targetList); + if (((r == 3) && (rangeDist <= 1000))) + { + gotone = TF_FLARE_LIT; + } + if ((typeFlag == TF_FLARE_LIT)) + { + if (((r == TF_FLARE_OFF) && (rangeDist >= 120))) + { + if (((targetList.show_hostile < time) && !infront (targetList))) + { + gotone = TF_FLARE_LIT; + } + } + else + { + if (((r == 2) && (rangeDist >= 500))) + { + if (!infront (targetList)) + { + gotone = TF_FLARE_LIT; + } + } + } + } + if (!visible (targetList)) + { + gotone = TF_FLARE_LIT; + } + if (gotone) + { + self.enemy = targetList; + self.goalentity = targetList; + return (gotone); + } + targetList = targetList.chain; + if ((targetList.classname == "worldspawn")) + { + dprint ("Worldspawn terminator"); + } + } + return (gotone); +}; +// END XTF +*/ \ No newline at end of file diff --git a/boss.pqc b/boss.pqc new file mode 100644 index 0000000..30f470c --- /dev/null +++ b/boss.pqc @@ -0,0 +1,701 @@ +void(vector p) boss_missile; + +entity le1, le2; +float lightning_end; + +void() boss_face = +{ + if (self.enemy.health <= TF_FLARE_LIT || random() < 0.020000) + { + self.enemy = find(self.enemy, classname, "player"); + if (!(self.enemy)) + { + self.enemy = find(self.enemy, classname, "player"); + } + } + ai_face(); +}; + +void() boss_rise1 = [0, boss_rise2] +{ + sound(self, TF_FLARE_OFF, "boss1/out1.wav", TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void() boss_rise2 = [1, boss_rise3] +{ + sound(self, 2, "boss1/sight1.wav", TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void() boss_rise3 = [2, boss_rise4] +{ +}; + +void() boss_rise4 = [3, boss_rise5] +{ +}; + +void() boss_rise5 = [4, boss_rise6] +{ +}; + +void() boss_rise6 = [5, boss_rise7] +{ +}; + +void() boss_rise7 = [6, boss_rise8] +{ +}; + +void() boss_rise8 = [7, boss_rise9] +{ +}; + +void() boss_rise9 = [8, boss_rise10] +{ +}; + +void() boss_rise10 = [9, boss_rise11] +{ +}; + +void() boss_rise11 = [10, boss_rise12] +{ +}; + +void() boss_rise12 = [11, boss_rise13] +{ +}; + +void() boss_rise13 = [12, boss_rise14] +{ +}; + +void() boss_rise14 = [13, boss_rise15] +{ +}; + +void() boss_rise15 = [14, boss_rise16] +{ +}; + +void() boss_rise16 = [15, boss_rise17] +{ +}; + +void() boss_rise17 = [16, boss_missile1] +{ +}; + +void() boss_idle1 = [17, boss_idle2] +{ +}; + +void() boss_idle2 = [18, boss_idle3] +{ + boss_face(); +}; + +void() boss_idle3 = [19, boss_idle4] +{ + boss_face(); +}; + +void() boss_idle4 = [20, boss_idle5] +{ + boss_face(); +}; + +void() boss_idle5 = [21, boss_idle6] +{ + boss_face(); +}; + +void() boss_idle6 = [22, boss_idle7] +{ + boss_face(); +}; + +void() boss_idle7 = [23, boss_idle8] +{ + boss_face(); +}; + +void() boss_idle8 = [24, boss_idle9] +{ + boss_face(); +}; + +void() boss_idle9 = [25, boss_idle10] +{ + boss_face(); +}; + +void() boss_idle10 = [26, boss_idle11] +{ + boss_face(); +}; + +void() boss_idle11 = [27, boss_idle12] +{ + boss_face(); +}; + +void() boss_idle12 = [28, boss_idle13] +{ + boss_face(); +}; + +void() boss_idle13 = [29, boss_idle14] +{ + boss_face(); +}; + +void() boss_idle14 = [30, boss_idle15] +{ + boss_face(); +}; + +void() boss_idle15 = [31, boss_idle16] +{ + boss_face(); +}; + +void() boss_idle16 = [32, boss_idle17] +{ + boss_face(); +}; + +void() boss_idle17 = [33, boss_idle18] +{ + boss_face(); +}; + +void() boss_idle18 = [34, boss_idle19] +{ + boss_face(); +}; + +void() boss_idle19 = [35, boss_idle20] +{ + boss_face(); +}; + +void() boss_idle20 = [36, boss_idle21] +{ + boss_face(); +}; + +void() boss_idle21 = [37, boss_idle22] +{ + boss_face(); +}; + +void() boss_idle22 = [38, boss_idle23] +{ + boss_face(); +}; + +void() boss_idle23 = [39, boss_idle24] +{ + boss_face(); +}; + +void() boss_idle24 = [40, boss_idle25] +{ + boss_face(); +}; + +void() boss_idle25 = [41, boss_idle26] +{ + boss_face(); +}; + +void() boss_idle26 = [42, boss_idle27] +{ + boss_face(); +}; + +void() boss_idle27 = [43, boss_idle28] +{ + boss_face(); +}; + +void() boss_idle28 = [44, boss_idle29] +{ + boss_face(); +}; + +void() boss_idle29 = [45, boss_idle30] +{ + boss_face(); +}; + +void() boss_idle30 = [46, boss_idle31] +{ + boss_face(); +}; + +void() boss_idle31 = [47, boss_idle1] +{ + boss_face(); +}; + +void() boss_missile1 = [57, boss_missile2] +{ + boss_face(); +}; + +void() boss_missile2 = [58, boss_missile3] +{ + boss_face(); +}; + +void() boss_missile3 = [59, boss_missile4] +{ + boss_face(); +}; + +void() boss_missile4 = [60, boss_missile5] +{ + boss_face(); +}; + +void() boss_missile5 = [61, boss_missile6] +{ + boss_face(); +}; + +void() boss_missile6 = [62, boss_missile7] +{ + boss_face(); +}; + +void() boss_missile7 = [63, boss_missile8] +{ + boss_face(); +}; + +void() boss_missile8 = [64, boss_missile9] +{ + boss_face(); +}; + +void() boss_missile9 = [65, boss_missile10] +{ + boss_missile('100 100 200'); +}; + +void() boss_missile10 = [66, boss_missile11] +{ + boss_face(); +}; + +void() boss_missile11 = [67, boss_missile12] +{ + boss_face(); +}; + +void() boss_missile12 = [68, boss_missile13] +{ + boss_face(); +}; + +void() boss_missile13 = [69, boss_missile14] +{ + boss_face(); +}; + +void() boss_missile14 = [70, boss_missile15] +{ + boss_face(); +}; + +void() boss_missile15 = [71, boss_missile16] +{ + boss_face(); +}; + +void() boss_missile16 = [72, boss_missile17] +{ + boss_face(); +}; + +void() boss_missile17 = [73, boss_missile18] +{ + boss_face(); +}; + +void() boss_missile18 = [74, boss_missile19] +{ + boss_face(); +}; + +void() boss_missile19 = [75, boss_missile20] +{ + boss_face(); +}; + +void() boss_missile20 = [76, boss_missile21] +{ + boss_missile('100 -100 200'); +}; + +void() boss_missile21 = [77, boss_missile22] +{ + boss_face(); +}; + +void() boss_missile22 = [78, boss_missile23] +{ + boss_face(); +}; + +void() boss_missile23 = [79, boss_missile1] +{ + boss_face(); +}; + +void() boss_shocka1 = [80, boss_shocka2] +{ +}; + +void() boss_shocka2 = [81, boss_shocka3] +{ +}; + +void() boss_shocka3 = [82, boss_shocka4] +{ +}; + +void() boss_shocka4 = [83, boss_shocka5] +{ +}; + +void() boss_shocka5 = [84, boss_shocka6] +{ +}; + +void() boss_shocka6 = [85, boss_shocka7] +{ +}; + +void() boss_shocka7 = [86, boss_shocka8] +{ +}; + +void() boss_shocka8 = [87, boss_shocka9] +{ +}; + +void() boss_shocka9 = [88, boss_shocka10] +{ +}; + +void() boss_shocka10 = [89, boss_missile1] +{ +}; + +void() boss_shockb1 = [90, boss_shockb2] +{ +}; + +void() boss_shockb2 = [91, boss_shockb3] +{ +}; + +void() boss_shockb3 = [92, boss_shockb4] +{ +}; + +void() boss_shockb4 = [93, boss_shockb5] +{ +}; + +void() boss_shockb5 = [94, boss_shockb6] +{ +}; + +void() boss_shockb6 = [95, boss_shockb7] +{ +}; + +void() boss_shockb7 = [90, boss_shockb8] +{ +}; + +void() boss_shockb8 = [91, boss_shockb9] +{ +}; + +void() boss_shockb9 = [92, boss_shockb10] +{ +}; + +void() boss_shockb10 = [93, boss_missile1] +{ +}; + +void() boss_shockc1 = [96, boss_shockc2] +{ +}; + +void() boss_shockc2 = [97, boss_shockc3] +{ +}; + +void() boss_shockc3 = [98, boss_shockc4] +{ +}; + +void() boss_shockc4 = [99, boss_shockc5] +{ +}; + +void() boss_shockc5 = [100, boss_shockc6] +{ +}; + +void() boss_shockc6 = [101, boss_shockc7] +{ +}; + +void() boss_shockc7 = [102, boss_shockc8] +{ +}; + +void() boss_shockc8 = [103, boss_shockc9] +{ +}; + +void() boss_shockc9 = [104, boss_shockc10] +{ +}; + +void() boss_shockc10 = [105, boss_death1] +{ +}; + +void() boss_death1 = [48, boss_death2] +{ + sound(self, 2, "boss1/death.wav", TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void() boss_death2 = [49, boss_death3] +{ +}; + +void() boss_death3 = [50, boss_death4] +{ +}; + +void() boss_death4 = [51, boss_death5] +{ +}; + +void() boss_death5 = [52, boss_death6] +{ +}; + +void() boss_death6 = [53, boss_death7] +{ +}; + +void() boss_death7 = [54, boss_death8] +{ +}; + +void() boss_death8 = [55, boss_death9] +{ +}; + +void() boss_death9 = [56, boss_death10] +{ + sound(self, 4, "boss1/out1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + WriteByte(4, 23); + WriteByte(4, 10); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); +}; + +void() boss_death10 = [56, boss_death10] +{ + killed_monsters = killed_monsters + TF_FLARE_OFF; + WriteByte(2, 27); + SUB_UseTargets(); + remove(self); +}; + +void(vector p) boss_missile = +{ + local vector offang; + local vector org; + local vector vec; + local vector d; + local float t; + offang = vectoangles(self.enemy.origin - self.origin); + makevectors(offang); + org = self.origin + p_x * v_forward + p_y * v_right + p_z * '0 0 1'; + if (skill > TF_FLARE_OFF) + { + t = vlen(self.enemy.origin - org) / 300; + vec = self.enemy.velocity; + vec_z = TF_FLARE_LIT; + d = self.enemy.origin + t * vec; + } + else + { + d = self.enemy.origin; + } + vec = normalize(d - org); + launch_spike(org, vec); + setmodel(newmis, "progs/lavaball.mdl"); + newmis.avelocity = '200 100 300'; + setsize(newmis, '0 0 0', '0 0 0'); + newmis.velocity = vec * 300; + newmis.touch = T_MissileTouch; + sound(self, TF_FLARE_OFF, "boss1/throw.wav", TF_FLARE_OFF, TF_FLARE_OFF); + if (self.enemy.health <= TF_FLARE_LIT) + { + boss_idle1(); + } +}; + +void() boss_awake = +{ + self.solid = 3; + self.movetype = 4; + self.takedamage = TF_FLARE_LIT; + setmodel(self, "progs/boss.mdl"); + setsize(self, '-128 -128 -24', '128 128 256'); + if (skill == TF_FLARE_LIT) + { + self.health = TF_FLARE_OFF; + } + else + { + self.health = 3; + } + self.enemy = activator; + WriteByte(4, 23); + WriteByte(4, 10); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); + self.yaw_speed = 20; + boss_rise1(); +}; + +void() monster_boss = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (deathmatch) + { + dremove(self); + return; + } + precache_model("progs/boss.mdl"); + precache_model("progs/lavaball.mdl"); + precache_sound("weapons/rocket1i.wav"); + precache_sound("boss1/out1.wav"); + precache_sound("boss1/sight1.wav"); + precache_sound("misc/power.wav"); + precache_sound("boss1/throw.wav"); + precache_sound("boss1/pain.wav"); + precache_sound("boss1/death.wav"); + total_monsters = total_monsters + TF_FLARE_OFF; + self.use = boss_awake; +}; + +void() lightning_fire = +{ + local vector p1; + local vector p2; + if (time >= lightning_end) + { + self = le1; + door_go_down(); + self = le2; + door_go_down(); + return; + } + p1 = (le1.mins + le1.maxs) * 0.5; + p1_z = le1.absmin_z - 16; + p2 = (le2.mins + le2.maxs) * 0.5; + p2_z = le2.absmin_z - 16; + p2 = p2 - normalize(p2 - p1) * 100; + self.nextthink = time + 0.1; + self.think = lightning_fire; + WriteByte(2, 23); + WriteByte(2, 9); + WriteEntity(2, world); + WriteCoord(2, p1_x); + WriteCoord(2, p1_y); + WriteCoord(2, p1_z); + WriteCoord(2, p2_x); + WriteCoord(2, p2_y); + WriteCoord(2, p2_z); +}; + +void() lightning_use = +{ + if (lightning_end >= time + TF_FLARE_OFF) + { + return; + } + le1 = find(world, target, "lightning"); + le2 = find(le1, target, "lightning"); + if (!le1 || !le2) + { + dprint("missing lightning targets\n"); + return; + } + if (le1.state != TF_FLARE_LIT && le1.state != TF_FLARE_OFF || (le2.state != TF_FLARE_LIT && le2.state != TF_FLARE_OFF) || le1.state != le2.state) + { + return; + } + le1.nextthink = -1; + le2.nextthink = -1; + lightning_end = time + TF_FLARE_OFF; + sound(self, 2, "misc/power.wav", TF_FLARE_OFF, TF_FLARE_OFF); + lightning_fire(); + self = find(world, classname, "monster_boss"); + if (!self) + { + return; + } + self.enemy = activator; + if (le1.state == TF_FLARE_LIT && self.health > TF_FLARE_LIT) + { + sound(self, 2, "boss1/pain.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.health = self.health - TF_FLARE_OFF; + if (self.health >= 2) + { + boss_shocka1(); + } + else + { + if (self.health == TF_FLARE_OFF) + { + boss_shockb1(); + } + else + { + if (self.health == TF_FLARE_LIT) + { + boss_shockc1(); + } + } + } + } +}; + +void() event_lightning = +{ + self.use = lightning_use; +}; + diff --git a/buttons.pqc b/buttons.pqc new file mode 100644 index 0000000..88692a8 --- /dev/null +++ b/buttons.pqc @@ -0,0 +1,159 @@ +void() button_wait; +void() button_return; + +void() button_wait = +{ + self.state = TF_FLARE_LIT; + self.nextthink = self.ltime + self.wait; + self.think = button_return; + activator = self.enemy; + SUB_UseTargets(); + self.frame = TF_FLARE_OFF; +}; + +void() button_done = +{ + self.state = TF_FLARE_OFF; +}; + +void() button_return = +{ + self.goal_state = 2; + self.state = 3; + SUB_CalcMove(self.pos1, self.speed, button_done); + self.frame = TF_FLARE_LIT; + if (self.health) + { + self.takedamage = TF_FLARE_OFF; + } +}; + +void() button_blocked = +{ +}; + +void() button_fire = +{ + if (self.state == 2 || self.state == TF_FLARE_LIT) + { + return; + } + sound(self, 2, self.noise, TF_FLARE_OFF, TF_FLARE_OFF); + self.state = 2; + SUB_CalcMove(self.pos2, self.speed, button_wait); +}; + +void() button_use = +{ + self.enemy = activator; + button_fire(); +}; + +void() button_touch = +{ + local entity te; + if (other.classname != "player") + { + return; + } + if (self.goal_activation & 8) + { + return; + } + if (!Activated(self, other)) + { + if (self.else_goal != TF_FLARE_LIT) + { + te = Findgoal(self.else_goal); + if (te) + { + DoResults(te, other, self.goal_result & 2); + } + } + return; + } + self.enemy = other; + button_fire(); +}; + +void() button_killed = +{ + if (self.goal_activation & 8) + { + return; + } + self.enemy = damage_attacker; + self.health = self.max_health; + self.takedamage = TF_FLARE_LIT; + button_fire(); +}; + +void() func_button = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (self.sounds == TF_FLARE_LIT) + { + precache_sound("buttons/airbut1.wav"); + self.noise = "buttons/airbut1.wav"; + } + if (self.sounds == TF_FLARE_OFF) + { + precache_sound("buttons/switch21.wav"); + self.noise = "buttons/switch21.wav"; + } + if (self.sounds == 2) + { + precache_sound("buttons/switch02.wav"); + self.noise = "buttons/switch02.wav"; + } + if (self.sounds == 3) + { + precache_sound("buttons/switch04.wav"); + self.noise = "buttons/switch04.wav"; + } + if (self.sounds == 4) + { + precache_sound("effects/rockfall.wav"); + self.noise = "effects/rockfall.wav"; + } + SetMovedir(); + self.movetype = 7; + self.solid = 4; + setmodel(self, self.model); + self.blocked = button_blocked; + self.use = button_use; + if (self.health) + { + self.max_health = self.health; + self.th_die = button_killed; + self.takedamage = TF_FLARE_OFF; + } + else + { + self.touch = button_touch; + } + if (!(self.speed)) + { + self.speed = 40; + } + if (!(self.wait)) + { + self.wait = TF_FLARE_OFF; + } + if (!(self.lip)) + { + self.lip = 4; + } + self.state = TF_FLARE_OFF; + self.pos1 = self.origin; + self.pos2 = self.pos1 + self.movedir * (fabs(self.movedir * self.size) - self.lip); + if (self.spawnflags & 32) + { + button_fire(); + } +}; + diff --git a/camera.pqc b/camera.pqc new file mode 100644 index 0000000..70b5545 --- /dev/null +++ b/camera.pqc @@ -0,0 +1,984 @@ +/*====================================================== + CAMERA.QC TeamFortress v2.5 + + (c) TeamFortress Software Pty Ltd 29/2/97 +======================================================== +Functions for the CAMERA behaviour +========================================================*/ +// Functions outside this file + +// Functions inside this file +void() CamLock; +void() CamDistLock; +void() CamVecLock; +void() CamAngleLock; +void() CamRevAngleLock; +void() CamProjectileLock; +void() CamProjectileZoom; +void() CamProjectileLockOn; +void() CamProjectileLockOff; +void() CamOffset; +void() CamDrop; +void() fadetoblack; +void() fadefromblack; +void() fadetowhite; +void() fadefromwhite; + +//====================================================== +void() CamLock = +{ + local entity te; + + // CameraMan special locks onto an entity + if (self.enemy == world) + { + // Find the entity which matches our netname + te = find(world, netname, self.netname); + while (te) + { + if (te != self) + { + sprint3(self, 2, "Locked onto ", te.netname, "\n"); + self.enemy = te; + self.heat = vlen(self.enemy.origin - self.origin); + } + + te = find(te, netname, self.netname); + } + + if (self.enemy == world) + sprint2(self, 2, te.netname, " not found.\n"); + } + else + { + sprint(self, 2, "Removed Lock\n"); + self.enemy = world; + } +}; + +//====================================================== +void() CamDistLock = +{ + if (self.tfstate & 4096) + { + sprint(self, 2, "Distance Lock OFF.\n"); + self.tfstate = self.tfstate - (self.tfstate & 4096); + } + else + { + sprint(self, 2, "Distance Lock ON.\n"); + self.tfstate = self.tfstate | 4096; + if (self.enemy) + self.camdist = vlen(self.enemy.origin - self.origin); + } +}; + +//====================================================== +void() CamVecLock = +{ + if (self.tfstate & 2048) + { + sprint(self, 2, "Vector Lock OFF.\n"); + self.tfstate = self.tfstate - (self.tfstate & 2048); + } + else + { + // Make sure Vector Lock isn't on + if (self.tfstate & 32768) + { + sprint(self, 2, "Angle Lock OFF.\n"); + self.tfstate = self.tfstate - (self.tfstate & 32768); + } + // Make sure Distance Lock is on + if (!(self.tfstate & 4096)) + { + sprint(self, 2, "Vector And Distance Lock ON.\n"); + self.tfstate = self.tfstate | 4096; + if (self.enemy) + self.camdist = vlen(self.enemy.origin - self.origin); + } + else + { + sprint(self, 2, "Vector Lock ON.\n"); + } + self.tfstate = self.tfstate | 2048; + if (self.enemy) + { + self.camangle = self.origin - self.enemy.origin; + self.camangle_z = 0 - self.camangle_z; + self.camangle = vectoangles(self.camangle); + } + } +}; + +//====================================================== +void() CamAngleLock = +{ + local vector enemyang; + + if (self.tfstate & 32768) + { + sprint(self, 2, "Angle Lock OFF.\n"); + self.tfstate = self.tfstate - (self.tfstate & 32768); + } + else + { + // Make sure Vector Lock isn't on + if (self.tfstate & 2048) + { + sprint(self, 2, "Vector Lock OFF.\n"); + self.tfstate = self.tfstate - (self.tfstate & 2048); + } + // Make sure Distance Lock is on + if (!(self.tfstate & 4096)) + { + sprint(self, 2, "Angle And Distance Lock ON.\n"); + self.tfstate = self.tfstate | 4096; + if (self.enemy) + self.camdist = vlen(self.enemy.origin - self.origin); + } + else + { + sprint(self, 2, "Angle Lock ON.\n"); + } + self.tfstate = self.tfstate | 32768; + if (self.enemy) + { + enemyang = self.enemy.angles; + enemyang_z = 0 - enemyang_z; + self.camangle = self.origin - self.enemy.origin; + self.camangle_z = 0 - self.camangle_z; + self.camangle = vectoangles(self.camangle); + self.camangle = self.camangle - enemyang; + } + } +}; + +//====================================================== +void() CamRevAngleLock = +{ + local vector enemyang; + + if (self.tfstate & 32) + { + sprint(self, 2, "Reverse Angle Lock OFF.\n"); + self.tfstate = self.tfstate - (self.tfstate & 32); + } + else + { + // Make sure Vector Lock isn't on + if (self.tfstate & 2048) + { + sprint(self, 2, "Vector Lock OFF.\n"); + self.tfstate = self.tfstate - (self.tfstate & 2048); + } + // Make sure Angle Lock isn't on + if (self.tfstate & 32768) + { + sprint(self, 2, "Angle Lock OFF.\n"); + self.tfstate = self.tfstate - (self.tfstate & 32768); + } + // Make sure Distance Lock is on + if (!(self.tfstate & 4096)) + { + sprint(self, 2, "Reverse Angle And Distance Lock ON.\n"); + self.tfstate = self.tfstate | 4096; + if (self.enemy) + self.camdist = vlen(self.enemy.origin - self.origin); + } + else + { + sprint(self, 2, "Reverse Angle Lock ON.\n"); + } + self.tfstate = self.tfstate | 32; + if (self.enemy) + { + enemyang = self.enemy.angles; + enemyang_z = 0 - enemyang_z; + self.camangle = self.origin - self.enemy.origin; + self.camangle_z = 0 - self.camangle_z; + self.camangle = vectoangles(self.camangle); + self.camangle = self.camangle - enemyang; + } + } +}; + +//====================================================== +void() CamProjectileLock = +{ + local entity te; + + if (self.tfstate & 512) + { + sprint(self, 2, "Projectile Lock OFF.\n"); + self.tfstate = self.tfstate - (self.tfstate & 512); + + live_camera = 0; + te = find(world, classname, "player"); + while ((te != world) && (live_camera == 0)) + { + if (te.playerclass == 0 && te.tfstate & 512) + live_camera = 1; + + te = find(te, classname, "player"); + } + } + else + { + sprint(self, 2, "Projectile Lock ON.\n"); + self.tfstate = self.tfstate | 512; + live_camera = 1; + } +}; + +//====================================================== +void() CamProjectileZoom = +{ + if (self.tfstate & 256) + { + sprint(self, 2, "Projectile Zoom OFF.\n"); + self.tfstate = self.tfstate - (self.tfstate & 256); + } + else + { + sprint(self, 2, "Projectile Zoom ON.\n"); + self.tfstate = self.tfstate | 256; + } +}; + +//====================================================== +void() CamProjectileLockOn = +{ + local entity te; + local float lockon; + local vector enemyang; + + lockon = 0; + te = find(world, classname, "player"); + while (te) + { + // Is it a camera wih projectile lock on? + if (te.playerclass == 0 && te.tfstate & 512) + { + if (te.enemy != world) + { + if (te.enemy == self) + lockon = 1; + } + else + { + // See if the camera is within sight + traceline(te.origin, self.origin, 0, te); + if (trace_ent == self) + lockon = 1; + } + + if (lockon) + { + // Turn off the camera's projectile lock + te.tfstate = te.tfstate - (te.tfstate & 512); + sprint(te, 2, "Projectile Locked!\n"); + te.enemy = newmis; + newmis.enemy = te; + + // If Projectile Zoom is on, get into position + if (te.tfstate & 256) + { + // Move the camera + enemyang = normalize(te.enemy.velocity) * 20; + enemyang_z = 0 - enemyang_z; + setorigin(te, te.enemy.origin - enemyang); + + // Turn on Distance Lock + te.tfstate = te.tfstate | 4096; + te.camdist = 20; + + // Angle + te.camangle = vectoangles(te.enemy.velocity); + te.camangle_z = 0 - te.camangle_z; + } + } + } + + te = find(te, classname, "player"); + } +}; + +//====================================================== +void() CamProjectileLockOff = +{ + sprint(self.enemy, 2, "Removed Lock\n"); + self.enemy.enemy = world; +}; + +//====================================================== +void() CamOffset = +{ + if (self.view_ofs == '0 0 22') + self.view_ofs = '0 0 18'; + else if (self.view_ofs == '0 0 18') + self.view_ofs = '0 0 13'; + else if (self.view_ofs == '0 0 13') + self.view_ofs = '0 0 7'; + else if (self.view_ofs == '0 0 7') + self.view_ofs = '0 0 1'; + else if (self.view_ofs == '0 0 1') + self.view_ofs = '0 0 -10'; + else if (self.view_ofs == '0 0 -10') + self.view_ofs = '0 0 -18'; + else + self.view_ofs = '0 0 22'; +}; + +//====================================================== +void() CamDrop = +{ + local entity te, prevte, cam; + local float tf; + local string st; + + cam = spawn(); + cam.classname = "camera"; + cam.origin = self.origin + self.view_ofs; + cam.angles = self.angles; + setmodel(cam,"progs/spike.mdl"); + + tf = 1; + prevte = self; + te = self.camera_list; + while (te != world) + { + tf = tf + 1; + prevte = te; + te = te.camera_list; + } + prevte.camera_list = cam; + + st = ftos(tf); + sprint3(self, 2, "Camera ", st, " dropped.\n"); +}; + +//====================================================== +// Fade functions from the brilliant +// Operation Bayshield movie, by the Undead Clan. +// Cameraman must be the server to use them. +void() fadetoblack = +{ + local float fade; + local string x; + + fade = 10; + while( fade <= 250 ) + { + x = ftos( fade ); + stuffcmd( self, "v_cshift 0 0 0 " ); + stuffcmd( self, x ); + stuffcmd( self, ";wait\n" ); + fade = fade + 10; + } + stuffcmd( self, "v_cshift 0 0 0 255\n" ); +}; + +void() fadefromblack = +{ + local float fade; + local string x; + + fade = 250; + while( fade >= 0 ) + { + x = ftos( fade ); + stuffcmd( self, "v_cshift 0 0 0 " ); + stuffcmd( self, x ); + stuffcmd( self, ";wait\n" ); + fade = fade - 10; + } + stuffcmd( self, "v_cshift 0 0 0 0\n" ); +}; + + +void() fadetowhite = +{ + local float fade; + local string x; + + fade = 10; + while( fade <= 250 ) + { + x = ftos( fade ); + stuffcmd( self, "v_cshift 255 255 255 " ); + stuffcmd( self, x ); + stuffcmd( self, ";wait\n" ); + fade = fade + 10; + } + stuffcmd( self, "v_cshift 255 255 255 255\n" ); +}; + +void() fadefromwhite = +{ + local float fade; + local string x; + + fade = 250; + while( fade >= 0 ) + { + x = ftos( fade ); + stuffcmd( self, "v_cshift 255 255 255 " ); + stuffcmd( self, x ); + stuffcmd( self, ";wait\n" ); + fade = fade - 10; + } + stuffcmd( self, "v_cshift 0 0 0 0\n" ); +}; + +// MTF .04 stuff + + + +void () prop_die = +{ + + self.owner.health = 0; + Killed (self.owner, self.enemy); + self = self.owner; + LookThroughCam (); +}; + +void () prop_think = +{ + + if ((self.origin != self.cam_origin)) + { + setorigin (self, self.cam_origin); + } + player_run (); +}; + +void (entity _p_1745, vector _p_1746, float _p_1749, float _p_1750, float _p_1751) Spawn_Prop = +{ + local entity _l_1752; + local vector _l_1753; + + _l_1752 = self; + _l_1753 = '0.200000 1 0.200000'; + newmis = spawn (); + self = newmis; + newmis.movetype = 6; + if ((_p_1750 == 1)) + { + newmis.solid = 2; + } + else + { + newmis.solid = 0; + } + newmis.mdl = "progs/player.mdl"; + setmodel (newmis, newmis.mdl); + setsize (newmis, '-16 -16 -24', '16 16 32'); + newmis.classname = "player_prop"; + setorigin (newmis, _p_1746); + newmis.cam_origin = _p_1746; + makevectors (_p_1745.v_angle); + v_forward_z = v_forward_z / 12; + newmis.angles = vectoangles (v_forward); + newmis.team_no = _p_1745.team_no; + newmis.undercover_team = _p_1745.undercover_team; + newmis.is_feigning = _p_1745.is_feigning; + newmis.owner = _p_1745; + newmis.skin = _p_1745.skin; + newmis.colormap = _p_1745.colormap; + newmis.bugger = _p_1751; + newmis.th_pain = player_pain; + newmis.th_die = prop_die; + newmis.think = prop_think; + if ((_p_1745.is_squating == 0)) + { + if ((newmis.is_feigning == 1)) + { + if (((_p_1745.frame >= 41) && (_p_1745.frame <= 49))) + { + spy_die_ax9 (); + } + else + { + if (((_p_1745.frame >= 50) && (_p_1745.frame <= 60))) + { + spy_diea11 (); + } + else + { + if (((_p_1745.frame >= 61) && (_p_1745.frame <= 69))) + { + spy_dieb9 (); + } + else + { + if (((_p_1745.frame >= 70) && (_p_1745.frame <= 84))) + { + spy_diec15 (); + } + else + { + if (((_p_1745.frame >= 85) && (_p_1745.frame <= 93))) + { + spy_died9 (); + } + else + { + if (((_p_1745.frame >= 94) && (_p_1745.frame <= 102))) + { + spy_diee9 (); + } + } + } + } + } + } + } + } + else + { + newmis.frame = 57; + newmis.is_squating = 1; + setsize (self, '-16 -16 -24', '16 16 8'); + } + newmis.nextthink = (time + 0.500000); + newmis.current_weapon = _p_1745.current_weapon; + if ((newmis.is_feigning == 0)) + { + newmis.frame = _p_1745.frame; + } + if ((_p_1750 == 1)) + { + newmis.takedamage = 2; + newmis.health = _p_1745.health; + } + else + { + newmis.takedamage = 0; + } + if ((_p_1749 & 2)) + { + newmis.ammo_shells = _p_1745.ammo_shells; + } + if ((_p_1749 & 4)) + { + newmis.ammo_nails = _p_1745.ammo_nails; + } + if ((_p_1749 & 8)) + { + newmis.ammo_rockets = _p_1745.ammo_rockets; + } + if ((_p_1749 & 16)) + { + newmis.ammo_cells = _p_1745.ammo_cells; + } + if ((_p_1749 & 32)) + { + newmis.armorvalue = _p_1745.armorvalue; + } + self = _l_1752; +}; + +vector (entity _p_1782, float _p_1783) Remove_Prop = +{ + local entity _l_1784; + local vector _l_1785; + + _l_1784 = find (world, classname, "player_prop"); + while (_l_1784) + { + if ((_l_1784.owner == _p_1782)) + { + if ((_l_1784.health != 0)) + { + _p_1782.health = _l_1784.health; + } + if ((_l_1784.ammo_shells != 0)) + { + _p_1782.ammo_shells = _l_1784.ammo_shells; + } + if ((_l_1784.ammo_nails != 0)) + { + _p_1782.ammo_nails = _l_1784.ammo_nails; + } + if ((_l_1784.ammo_rockets != 0)) + { + _p_1782.ammo_rockets = _l_1784.ammo_rockets; + } + if ((_l_1784.ammo_cells != 0)) + { + _p_1782.ammo_cells = _l_1784.ammo_cells; + } + if ((_l_1784.armorvalue != 0)) + { + _p_1782.armorvalue = _l_1784.armorvalue; + } + _l_1785 = _l_1784.origin; + dremove (_l_1784); + return (_l_1785); + } + _l_1784 = find (_l_1784, classname, "player_prop"); + } + return _l_1785; +}; + +void () CamAttach = +{ + + self.think = SUB_Null; + self.nextthink = (time - 1); + sound (newmis, 0, "buttons/switch02.wav", 1, 1); +}; +.float DropFlagDelay; + +void () Cam = +{ + local vector _l_1799; + local vector _l_1802; + local entity _l_1805; + local entity _l_1806; + local vector _l_1807; + + _l_1805 = find (world, classname, "camera"); + while (_l_1805) + { + if ((_l_1805.owner == self)) + { + LookThroughCam (); + return; + } + _l_1805 = find (_l_1805, classname, "camera"); + } + if ((self.is_feigning == 1)) + { + return; + } + if ((self.no_grenades_2 < 1)) + { + sprint (self, 2, "Not enough type 2 grenades... get more\n"); + self.impulse = 0; + if ((self.weaponmodel == "progs/spycamb.mdl")) + { + self.weaponmodel = "progs/v_shot.mdl"; + self.currentammo = self.ammo_nails; + Attack_Finished (0.700000); + self.impulse = 0; + self.StatusRefreshTime = (time + 0.100000); + self.tfstate = (self.tfstate - (self.tfstate & 2)); + } + return; + } + if ((self.weaponmodel != "progs/spycamb.mdl")) + { + self.tfstate = (self.tfstate | 2); + self.oldweaponmodel = self.weaponmodel; + self.oldcurrentammo = self.currentammo; + self.currentammo = 1; + self.weaponmodel = "progs/spycamb.mdl"; + self.weaponframe = 0; + return; + } + makevectors (self.v_angle); + _l_1799 = self.origin + (v_forward * 10); +// = self.absmin_z + (self.size_z * 0.700000); + traceline (_l_1799, (_l_1799 + (v_forward * 43)), 0, self); + _l_1802 = trace_endpos - (v_forward * 8); + if ((trace_fraction != 1)) + { + sprint (self, 2, "Camera set! Drop3 looks through it.\n"); + self.no_grenades_2 = (self.no_grenades_2 - 1); + _l_1807 = self.angles + '0 180 90'; + _l_1807_x = _l_1807_x * 12; + _l_1807_x = rint ((_l_1807_x / 90)) * 90; +// _l_1807_y = rint (( / 90)) * 90; +// _l_1807_y = rint (( / 90)) * 90; +// if ((((_l_1807_y - self.origin_z) <= -14) && ((_l_1807_y - self.origin_z) >= -18))) +// { +// _l_1807 = '-270 180 90'; +// } + newmis = spawn (); + newmis.classname = "camera"; + newmis.owner = self; + newmis.netname = "camera"; + newmis.weapon = 41; + newmis.movetype = 0; + newmis.solid = 2; + newmis.team_no = self.team_no; + newmis.health = 25; + newmis.takedamage = 0; + newmis.th_die = camera_die; + setsize (newmis, '-2 -2 -2', '2 2 2'); + newmis.angles = _l_1807; + newmis.nextthink = (time - 1); + newmis.playerclass = 0; + newmis.think = SUB_Null; + newmis.skin = 0; + newmis.frame = 0; + setmodel (newmis, "progs/spycamc.mdl"); + setorigin (newmis, _l_1802); + _l_1806 = newmis; + newmis = spawn (); + newmis.classname = "camera_base"; + newmis.owner = self; + newmis.netname = "camera_base"; + newmis.movetype = 0; + newmis.solid = 0; + newmis.team_no = self.team_no; + newmis.takedamage = 0; + setsize (newmis, '-2 -2 -2', '2 2 2'); + newmis.angles = _l_1807; + newmis.playerclass = 0; + newmis.frame = 1; + newmis.think = camera_expire; + newmis.nextthink = (time + 180); + setmodel (newmis, "progs/spycamb.mdl"); + setorigin (newmis, _l_1802); + if ((self.oldweaponmodel != "")) + { + self.tfstate = (self.tfstate - (self.tfstate & 2)); + } + self.weaponmodel = self.oldweaponmodel; + self.currentammo = self.oldcurrentammo; + Attack_Finished (0.700000); + self.impulse = 0; + self.StatusRefreshTime = (time + 0.100000); + } +}; + +void () camerathink = +{ + + if ((self.cnt != 1)) + { + self.think = SUB_Null; + return; + } + if ((self.owner.origin != self.owner.cam_origin)) + { + setorigin (self.owner, self.owner.cam_origin); + } + makevectors (self.owner.v_angle); + self.angles = vectoangles (v_forward); + self.nextthink = (time + 0.200000); +}; + +void () LookThroughCam = +{ + local entity _l_1853; + local entity _l_1854; + local entity _l_1855; + local vector _l_1856; + local float _l_1859; + local vector _l_1860; + local string _l_1863; + + _l_1863 = "camera"; + _l_1853 = find (world, netname, _l_1863); + while (_l_1853) + { + if ((_l_1853.classname == "camera")) + { + if ((_l_1853.owner == self)) + { + if ((self.tfstate & 1)) + { + TeamFortress_ThrowGrenade (); + self.nextthink = (time + 0.300000); + self.think = LookThroughCam; + return; + } + if ((self.tfstate & 16)) + { + sprint (self, 2, "You can't view your camera while infected\n"); + self.impulse = 0; + return; + } + if ((_l_1853.cnt == 1)) + { + _l_1853.cnt = 0; + _l_1853.skin = 0; + _l_1853.think = SUB_Null; + _l_1860 = Remove_Prop (self, 2); + if ((self.health > 0)) + { + self.solid = 3; + self.oldangle_x = (self.oldangle_x * -1); + makevectors (self.oldangle); + self.angles = vectoangles (v_forward); + self.fixangle = 1; + } + self.currentammo = self.ammo_shells; + self.bugger = 0; + self.gravity = 1; + stuffcmd (self, "r_drawviewmodel 1\n"); + self.modelindex = modelindex_player; + TeamFortress_SetSpeed (self); + setorigin (self, _l_1860); + self.impulse = 0; + return; + } + if ((_l_1853.cnt == 0)) + { + _l_1854 = findradius (_l_1853.origin, 32); + _l_1859 = 1; + while ((_l_1854 != world)) + { + if ((self == _l_1854)) + { + _l_1859 = 0; + } + _l_1854 = _l_1854.chain; + } + if ((_l_1859 == 1)) + { + if (!(self.flags & 512)) + { + sprint (self, 2, "You can't view your camera while in the air\n"); + self.impulse = 0; + return; + } + if (self.hook_out) + { + return; + } + _l_1855 = find (world, classname, "item_tfgoal"); + while (_l_1855) + { + if ((_l_1855.owner == self)) + { + self.DropFlagDelay = time; + DropFlag (); + _l_1855 = world; + } + _l_1855 = find (_l_1855, classname, "item_tfgoal"); + } + _l_1853.skin = 1; + _l_1853.think = camerathink; + _l_1853.nextthink = (time + 0.200000); + self.oldangle = self.v_angle; + Spawn_Prop (self, self.origin, 63, 1, 8); + self.modelindex = modelindex_null; + self.solid = 0; + self.gravity = 0; + stuffcmd (self, "cl_movespeedkey 1\n"); + self.maxspeed = 0; + self.maxfbspeed = 0; + self.maxstrafespeed = 0; +// if (1) +// { + stuffcmd (self, "m_forward 0\n"); + stuffcmd (self, "m_side 0\n"); +// } + self.velocity = '0 0 0'; + stuffcmd (self, "cl_backspeed 0\n"); + stuffcmd (self, "cl_forwardspeed 0\n"); + stuffcmd (self, "cl_sidespeed 0\n"); + makevectors (_l_1853.angles); + self.angles = vectoangles (v_forward); + self.fixangle = 1; + _l_1855 = find (world, classname, "camera_base"); + while (_l_1855) + { + if ((_l_1855.owner == self)) + { + makevectors (_l_1855.angles); + v_forward_z = v_forward_z * -1; + _l_1856 = '0 0 -24'; + if (((self.is_feigning == 1) && (_l_1855.angles_x == -270))) + { + _l_1856 = '0 0 -8'; + } + setorigin (self, ((_l_1853.origin + _l_1856) + (v_forward * 4))); + self.cam_origin = ((_l_1853.origin + _l_1856) + (v_forward * 4)); + } + _l_1855 = find (_l_1855, classname, "camera_base"); + } + _l_1853.cnt = 1; + self.bugger = 8; + self.impulse = 0; + stuffcmd (self, "r_drawviewmodel 0\n"); + self.health = _l_1853.health; + self.ammo_shells = 0; + self.ammo_nails = 0; + self.ammo_rockets = 0; + self.ammo_cells = 0; + self.armorvalue = 0; + self.currentammo = 0; + return; + } + else + { + sprint (self, 2, "You are too close to your camera to look through it.\n"); + self.impulse = 0; + return; + } + } + return; + } + } + _l_1853 = find (_l_1853, netname, _l_1863); + } + sprint (self, 2, "First drop a camera with drop3\n"); + self.impulse = 0; +}; + +void () camera_expire = +{ + local entity _l_1909; + + _l_1909 = find (world, classname, "camera"); + while (_l_1909) + { + if ((_l_1909.owner == self.owner)) + { + camera_die (_l_1909); + return; + } + _l_1909 = find (_l_1909, classname, "camera"); + } +}; + +void (entity _p_1912) camera_die = +{ + local entity _l_1913; + + self = _p_1912; + _p_1912.effects = 4; + _p_1912.takedamage = 0; + make_explosion (); + self = _p_1912.owner; + sprint (self, 2, "Your camera went bye-bye.\n"); + if ((_p_1912.cnt == 1)) + { + LookThroughCam (); + } + _l_1913 = find (world, classname, "camera"); + while (_l_1913) + { + if ((_l_1913.owner == self)) + { + dremove (_l_1913); + } + _l_1913 = find (_l_1913, classname, "camera"); + } + _l_1913 = find (world, classname, "camera_base"); + while (_l_1913) + { + if ((_l_1913.owner == self)) + { + dremove (_l_1913); + } + _l_1913 = find (_l_1913, classname, "camera_base"); + } +}; + +void () activatecam = +{ + if ((other.classname == "player")) + { + return; + } + self.cnt = 0; + self.touch = SUB_Null; +}; diff --git a/clan.pqc b/clan.pqc new file mode 100644 index 0000000..47900d7 --- /dev/null +++ b/clan.pqc @@ -0,0 +1,386 @@ +void () DumpClanScores = +{ + local float winners; + local float no_teams; + local float printed; + local float ti; + //local float teamfrags; + local string st; + local entity te; + local float t1_pl; local string players1; /*local float t1_unacc; local string t1frags; local string t1unaccfrags;*/ local string t1score; + local float t2_pl; local string players2; /*local float t2_unacc; local string t2frags; local string t2unaccfrags;*/ local string t2score; + local float t3_pl; local string players3; /*local float t3_unacc; local string t3frags; local string t3unaccfrags;*/ local string t3score; + local float t4_pl; local string players4; /*local float t4_unacc; local string t4frags; local string t4unaccfrags;*/ local string t4score; + local string space1; local string space2; local string space3; + + t1_pl = TeamFortress_TeamGetNoPlayers (1); + t2_pl = TeamFortress_TeamGetNoPlayers (2); + t3_pl = TeamFortress_TeamGetNoPlayers (3); + t4_pl = TeamFortress_TeamGetNoPlayers (4); + + printed = 0; + no_teams = 0; + + if (t1_pl) { + no_teams = no_teams + 1; + } + if (t2_pl) { + no_teams = no_teams + 1; + } + if (t3_pl) { + no_teams = no_teams + 1; + } + if (t4_pl) { + no_teams = no_teams + 1; + } + //if (no_teams < 2) { + //return; + //} + //t4_unacc = 0; + // t3_unacc = 0; + // t2_unacc = 0; + // t1_unacc = 0; + + ti = 0; + /* + te = find (world, classname, "player"); + while (te) { + if (te.team_no == 1) { + t1_unacc = t1_unacc + te.real_frags; + } else if (te.team_no == 2) { + t2_unacc = t2_unacc + te.real_frags; + } else if (te.team_no == 3) { + t3_unacc = t3_unacc + te.real_frags; + } else if (te.team_no == 4) { + t4_unacc = t4_unacc + te.real_frags; + } + te = find (te, classname, "player"); + } + t1_unacc = team1frags - t1_unacc; + t2_unacc = team2frags - t2_unacc; + t3_unacc = team3frags - t3_unacc; + t4_unacc = team4frags - t4_unacc; + */ + winners = TeamFortress_TeamGetWinner (); + + bprint (2, "\n\n=-------= \sMatch Results\s =-------="); //covers all four teams + + //Print team names + bprint (2, "\nTeam: "); + if (t1_pl > 0) { bprint (2, "blue"); } + else { bprint (2, " "); } + if (t2_pl > 0) { bprint (2, " red"); } + else { bprint (2, " "); } + if (t3_pl > 0) { bprint (2, " grn"); } + else { bprint (2, " "); } + if (t4_pl > 0) { bprint (2, " yell"); } + + //Print the number of PLAYERS per team, assume 99 max players (two digits) + bprint (2, "\nPlayers: "); + + players1 = " "; + players2 = " "; + players3 = " "; + space1 = ""; + space2 = ""; + space3 = ""; + + if (t1_pl > 0) { // players1 + space1 should add to "5" (4 chars for score, 1 for space) + players1 = ftos (TeamFortress_TeamGetNoPlayers (1)); + + if (strlen(players1) == 1) + space1 = " "; + else if (strlen(players1) == 2) + space1 = " "; + else if (strlen(players1) == 3) + space1 = " "; + else if (strlen(players1) > 3) { // it's 4 or more? + players1 = substring(players1, 0, 4); // just take first 4 chars of score + space1 = " "; + } + } + + if (t2_pl > 0) { + players2 = ftos (TeamFortress_TeamGetNoPlayers (2)); + + if (strlen(players2) == 1) + space2 = " "; + if (strlen(players2) == 2) + space2 = " "; + else if (strlen(players2) == 3) + space2 = " "; + else if (strlen(players2) > 3) { // it's 4 or more? + players2 = substring(players2, 0, 4); + space2 = " "; + } + } + + if (t3_pl > 0) { + players3 = ftos (TeamFortress_TeamGetNoPlayers (3)); + + if (strlen(players3) == 1) + space3 = " "; + if (strlen(players3) == 2) + space3 = " "; + else if (strlen(players3) == 3) + space3 = " "; + else if (strlen(players3) > 3) { // it's 4 or more? + players3 = substring(players3, 0, 4); + space3 = " "; + } + } + + if (t4_pl > 0) { + players4 = ftos (TeamFortress_TeamGetNoPlayers (4)); + players4 = substring(players4, 0, 4); //let's just make sure it's at most 4 characters + } + + bprint2 (2, players1, space1, players2, space2, players3, space3, players4); + +/* //Print the number of FRAGS per team, assuming 9999 max frags + bprint (2, "\nFrags: "); + + t1frags = " "; + t2frags = " "; + t3frags = " "; + space1 = ""; + space2 = ""; + space3 = ""; + + if (t1_pl > 0) { // t1frags + space1 should add to "5" (4 chars for score, 1 for space) + t1frags = ftos (team1frags); + + if (strlen(t1frags) == 1) + space1 = " "; + else if (strlen(t1frags) == 2) + space1 = " "; + else if (strlen(t1frags) == 3) + space1 = " "; + else if (strlen(t1frags) > 3) { // it's 4 or more? + t1frags = substring(t1frags, 0, 4); // just take first 4 chars of score + space1 = " "; + } + } + + if (t2_pl > 0) { + t2frags = ftos (team2frags); + + if (strlen(t2frags) == 1) + space2 = " "; + if (strlen(t2frags) == 2) + space2 = " "; + else if (strlen(t2frags) == 3) + space2 = " "; + else if (strlen(t2frags) > 3) { // it's 4 or more? + t2frags = substring(t2frags, 0, 4); + space2 = " "; + } + } + + if (t3_pl > 0) { + t3frags = ftos (team3frags); + + if (strlen(t3frags) == 1) + space3 = " "; + if (strlen(t3frags) == 2) + space3 = " "; + else if (strlen(t3frags) == 3) + space3 = " "; + else if (strlen(t3frags) > 3) { // it's 4 or more? + t3frags = substring(t3frags, 0, 4); + space3 = " "; + } + } + + if (t4_pl > 0) { + t4frags = ftos (team4frags); + t4frags = substring(t4frags, 0, 4); //let's just make sure it's at most 4 characters + } + + bprint2 (2, t1frags, space1, t2frags, space2, t3frags, space3, t4frags); + + + //Print UNACCOUNTED FRAGS per team, assuming 9999 max + bprint (2, "\nUnacc Frags: "); + + t1unaccfrags = " "; + t2unaccfrags = " "; + t3unaccfrags = " "; + space1 = ""; + space2 = ""; + space3 = ""; + + if (t1_pl > 0) { // t1unaccfrags + space1 should add to "5" (4 chars for score, 1 for space) + t1unaccfrags = ftos (t1_unacc); + + if (strlen(t1unaccfrags) == 1) + space1 = " "; + else if (strlen(t1unaccfrags) == 2) + space1 = " "; + else if (strlen(t1unaccfrags) == 3) + space1 = " "; + else if (strlen(t1unaccfrags) > 3) { // it's 4 or more? + t1unaccfrags = substring(t1unaccfrags, 0, 4); // just take first 4 chars of score + space1 = " "; + } + } + + if (t2_pl > 0) { + t2unaccfrags = ftos (t2_unacc); + + if (strlen(t2unaccfrags) == 1) + space2 = " "; + if (strlen(t2unaccfrags) == 2) + space2 = " "; + else if (strlen(t2unaccfrags) == 3) + space2 = " "; + else if (strlen(t2unaccfrags) > 3) { // it's 4 or more? + t2unaccfrags = substring(t2unaccfrags, 0, 4); + space2 = " "; + } + } + + if (t3_pl > 0) { + t3unaccfrags = ftos (t3_unacc); + + if (strlen(t3unaccfrags) == 1) + space3 = " "; + if (strlen(t3unaccfrags) == 2) + space3 = " "; + else if (strlen(t3unaccfrags) == 3) + space3 = " "; + else if (strlen(t3unaccfrags) > 3) { // it's 4 or more? + t3unaccfrags = substring(t3unaccfrags, 0, 4); + space3 = " "; + } + } + + if (t4_pl > 0) { + t4unaccfrags = ftos (t4_unacc); + t4unaccfrags = substring(t4unaccfrags, 0, 4); //let's just make sure it's at most 4 characters + } + + bprint2 (2, t1unaccfrags, space1, t2unaccfrags, space2, t3unaccfrags, space3, t4unaccfrags); +*/ + //Print TEAM SCORE, assuming 9999 max + bprint (2, "\nTeam Score: "); + + t1score = " "; + t2score = " "; + t3score = " "; + space1 = ""; + space2 = ""; + space3 = ""; + + if (t1_pl > 0) { // t1score + space1 should add to "5" (4 chars for score, 1 for space) + t1score = ftos (team1score); + + if (strlen(t1score) == 1) + space1 = " "; + else if (strlen(t1score) == 2) + space1 = " "; + else if (strlen(t1score) == 3) + space1 = " "; + else if (strlen(t1score) > 3) { // it's 4 or more? + t1score = substring(t1score, 0, 4); // just take first 4 chars of score + space1 = " "; + } + } + + if (t2_pl > 0) { + t2score = ftos (team2score); + + if (strlen(t2score) == 1) + space2 = " "; + if (strlen(t2score) == 2) + space2 = " "; + else if (strlen(t2score) == 3) + space2 = " "; + else if (strlen(t2score) > 3) { // it's 4 or more? + t2score = substring(t2score, 0, 4); + space2 = " "; + } + } + + if (t3_pl > 0) { + t3score = ftos (team3score); + + if (strlen(t3score) == 1) + space3 = " "; + if (strlen(t3score) == 2) + space3 = " "; + else if (strlen(t3score) == 3) + space3 = " "; + else if (strlen(t3score) > 3) { // it's 4 or more? + t3score = substring(t3score, 0, 4); + space3 = " "; + } + } + + if (t4_pl > 0) { + t4score = ftos (team4score); + t4score = substring(t4score, 0, 4); //let's just make sure it's at most 4 characters + } + + bprint2 (2, t1score, space1, t2score, space2, t3score, space3, t4score); + //End print Team Scores + + + bprint (2, "\n"); + + if ( (no_teams == 2) && (team1score == team2score) ) + bprint (2, "\sThe match is a DRAW.\s"); + else if ((no_teams == 3) && (((team1score == team2score) == team3score))) + bprint (2, "\sThe match is a DRAW.\s"); + else if ((no_teams == 4) && ((team1score == team2score) == team3score) == team4score) + bprint (2, "\sThe match is a DRAW.\s"); + else { + st = GetTeamName (winners); + bprint (2, st, " defeated "); + + if ((winners != 1) && (t1_pl != 0)) { + st = GetTeamName (1); + bprint (2, st); + printed = printed + 1; + } + if ((winners != 2) && (t2_pl != 0)) { + st = GetTeamName (2); + if (printed == no_teams) + bprint2 (2, " and ", st); + else if (printed) + bprint2 (2, ", ", st); + else + bprint (2, st); + printed = printed + 1; + } + if ((winners != 3) && (t3_pl != 0)) { + st = GetTeamName (3); + if (printed == no_teams) + bprint2 (2, " and ", st); + else if (printed) + bprint2 (2, ", ", st); + else + bprint (2, st); + printed = printed + 1; + } + if ((winners != 4) && (t4_pl != 0)) { + st = GetTeamName (4); + if (printed == no_teams) + bprint2 (2, " and ", st); + else if (printed) + bprint2 (2, ", ", st); + else + bprint (2, st); + } + } + bprint (2, "\n\n"); + + //End of match results output + te = find (world, classname, "player"); + while (te) { + st = infokey (te, "take_sshot"); + if (st != string_null) + stuffcmd (te, "screenshot\n"); + te = find (te, classname, "player"); + } +}; \ No newline at end of file diff --git a/client.pqc b/client.pqc new file mode 100644 index 0000000..efed3e2 --- /dev/null +++ b/client.pqc @@ -0,0 +1,3978 @@ +void() KickHead; +float already_cycled; +float footsteps, old_gl, exec_class; +float coloredlights; +.float dmgtime, gravity; +.float is_ingame; + +entity lastspawn_team1, lastspawn_team2, lastspawn_team3, lastspawn_team4; + +// pablo. prematch +void () SetUpPrematch; +// + +// 11.11.04 stuff +void (entity _p_11534) TeamFortress_PrintPMTimeLeft; +float footsteps; +float old_gl; +float exec_class; +float coloredlights; +float sr_gren1; +float sr_gren2; +float sr_airmirv; +void () DumpClanScores; + +// pablo. class restrictions. +float(float pc) IsRestrictedClass; +float cr_scout, cr_sniper, cr_soldier, cr_demoman, cr_medic, cr_hwguy, cr_pyro, cr_spy, cr_engineer; +// + +// more auth code +float clr_enabled; +// fin more auth + +void() set_suicide_frame; +void() player_touch; +void() TeamFortress_SetEquipment; +void() TeamFortress_SetHealth; +void(string halias, float himpulse1, float himpulse2) TeamFortress_Alias; +void() PlayerDie; +//'fer void(s) +void(entity attacker) fertimer; +void(entity te) ferdisplay; + +// prototypes +void () W_WeaponFrame; +void() W_SetCurrentAmmo; +void() player_pain; +void() player_stand1; +void (vector org) spawn_tfog; +void (vector org, entity death_owner) spawn_tdeath; +float modelindex_eyes, modelindex_player, modelindex_null; +float(float v) anglemod; + +// TeamFortress prototypes +void() TeamFortress_MOTD; +void() TeamFortress_CheckTeamCheats; +float(float tno) TeamFortress_TeamGetColor; +//void(entity Viewer, float pc, float rpc) TeamFortress_PrintClassName; +void(entity Viewer, float pc, float rpc, float xavior_Var) TeamFortress_PrintClassName; +void() TeamFortress_RemoveTimers; +void(float Suicided) TeamFortress_SetupRespawn; +void() TeamFortress_ShowTF; +float(float pc) IsLegalClass; +void() SetupTeamEqualiser; +void(entity p) SetTeamName; + +// Hook prototypes +void () Service_Grapple; + +// TeamFortressMap prototypes +void(entity AD) ParseTFDetect; +entity(float ino) Finditem; +void(entity Item, entity AP, entity Goal) tfgoalitem_GiveToPlayer; +void(entity Goal, entity AP, entity ActivatingGoal) AttemptToActivate; +void() CTF_FlagCheck; + +/* +============================================================================= + + LEVEL CHANGING / INTERMISSION + +============================================================================= +*/ + +string nextmap; + +float intermission_running; +float intermission_exittime; + + +void() info_intermission = +{ + if (CheckExistence() == 0) + { + dremove(self); + return; + } +}; + +void() SetChangeParms = +{ + if (self.health <= 0) + { + SetNewParms(); + return; + } + self.items = self.items - (self.items & (131072 | 262144 | 524288 | 1048576 | 2097152 | 4194304)); + if (self.health > 100) + { + self.health = 100; + } + if (self.health < 50) + { + self.health = 50; + } + parm1 = self.items; + parm2 = self.health; + parm3 = self.armorvalue; + if (self.ammo_shells < 25) + { + parm4 = 25; + } + else + { + parm4 = self.ammo_shells; + } + parm5 = self.ammo_nails; + parm6 = self.ammo_rockets; + parm7 = self.ammo_cells; + parm8 = self.current_weapon; + parm9 = self.armortype * 100; + parm10 = toggleflags; + parm11 = 0; + parm12 = 0; + parm13 = self.StatusBarRes; + parm14 = self.StatusBarSize; +}; + +void() SetNewParms = +{ + parm1 = 0; + parm2 = 100; + parm3 = 0; + parm4 = 25; + parm5 = 0; + parm6 = 0; + parm6 = 0; + parm8 = TF_FLARE_OFF; + parm9 = 0; + parm10 = 0; + parm11 = 0; + parm12 = 0; + parm13 = 0; + parm14 = 0; +}; + +void() autoteam_think = +{ + toggleflags = toggleflags | 64; + dremove(self); +}; + +void () DecodeLevelParms = +{ + local string mtfstring; + local entity mtfentity; + local float mtffloat; + + if (serverflags) + { + if ((world.model == "maps/start.bsp")) + { + SetNewParms (); + } + } + self.items = parm1; + self.health = parm2; + self.armorvalue = parm3; + self.ammo_shells = parm4; + self.ammo_nails = parm5; + self.ammo_rockets = parm6; + self.ammo_cells = parm7; + self.current_weapon = parm8; + self.armortype = (parm9 * 0.010000); +#ifdef tf29ents + if (!(toggleflags & TFLAG_FIRSTENTRY)) { + + toggleflags = parm10; + flagem_checked = 0; + allow_hook = 0; + invis_only = 0; + + if (coop || !deathmatch) + toggleflags = toggleflags | TFLAG_CLASS_PERSIST; + + nextmap = mapname; + allow_hook = 1; + + mtfentity = find (world, classname, "info_tfdetect"); + if (mtfentity != world) { + + if (teamplay == 0) + cvar_set ("teamplay", "21?TeamFortress"); + + ParseTFDetect (mtfentity); + + if ((number_of_teams <= 0) || (number_of_teams >= 5)) + number_of_teams = 4; + + } else { + + mtfentity = find (world, classname, "info_player_team1"); + if ((mtfentity != world) || (CTF_Map == 1)) { + + CTF_Map = 1; + if (teamplay == 0) + cvar_set ("teamplay", "21?TeamFortress"); + + mtfentity = spawn (); + mtfentity.nextthink = time + 30; + mtfentity.think = CTF_FlagCheck; + + number_of_teams = 2; + + } else + number_of_teams = 4; + + team1lives = -1; + team2lives = -1; + team3lives = -1; + team4lives = -1; + + illegalclasses1 = 0; + illegalclasses2 = 0; + illegalclasses3 = 0; + illegalclasses4 = 0; + + team1maxplayers = 100; + team2maxplayers = 100; + team3maxplayers = 100; + team4maxplayers = 100; + civilianteams = 0; + } + +#else + if ((toggleflags == 0)) + { + toggleflags = parm10; + allow_hook = 0; + invis_only = 0; + if ((coop || !deathmatch)) + { + toggleflags = toggleflags | 1; + } + nextmap = mapname; + allow_hook = 1; + mtfentity = find (world, classname, "info_tfdetect"); + if ((mtfentity != world)) + { + if ((teamplay == 0)) + { + cvar_set ("teamplay", "21?TeamFortress"); + } + ParseTFDetect (mtfentity); + if (((number_of_teams <= 0) || (number_of_teams >= 5))) + { + number_of_teams = 4; + } + } + else + { + mtfentity = find (world, classname, "info_player_team1"); + if (((mtfentity != world) || (CTF_Map == 1))) + { + CTF_Map = 1; + if ((teamplay == 0)) + { + cvar_set ("teamplay", "21?TeamFortress"); + } + mtfentity = spawn (); + mtfentity.nextthink = (time + 30); + mtfentity.think = CTF_FlagCheck; + number_of_teams = 2; + } + else + { + number_of_teams = 4; + } + cvar_set ("sv_aim", "1"); + team1lives = -1; + team2lives = -1; + team3lives = -1; + team4lives = -1; + illegalclasses1 = 0; + illegalclasses2 = 0; + illegalclasses3 = 0; + illegalclasses4 = 0; + team1maxplayers = 100; + team2maxplayers = 100; + team3maxplayers = 100; + team4maxplayers = 100; + civilianteams = 0; + } +#endif + bprint (2, "Mapname: "); + bprint (2, mapname); + bprint (2, "\n"); + SetupTeamEqualiser (); +// if (1) // if (toggleflags == 1) ?? +// { + toggleflags = toggleflags - (toggleflags & 128); +// } + toggleflags = toggleflags | 2; + mtfstring = infokey (world, "temp1"); + toggleflags = (toggleflags | 256) | stof (mtfstring); + mtffloat = 30; + mtfstring = infokey (world, "a"); + if ((mtfstring == string_null)) + { + mtfstring = infokey (world, "autoteam"); + } + if ((mtfstring == "on")) + { + toggleflags = toggleflags | 64; + } + else + { + if ((mtfstring == "off")) + { + toggleflags = toggleflags - (toggleflags & 64); + } + else + { + if ((stof (mtfstring) != 0)) + { + toggleflags = toggleflags | 64; + mtffloat = stof (mtfstring); + } + } + } + mtfstring = infokey (world, "t"); + if ((mtfstring == string_null)) + { + mtfstring = infokey (world, "teamfrags"); + } + if ((mtfstring == "on")) + { + toggleflags = toggleflags | 128; + } + else + { + if ((mtfstring == "off")) + { + toggleflags = toggleflags - (toggleflags & 128); + } + } + mtfstring = infokey (world, "g"); + if ((mtfstring == string_null)) + { + mtfstring = infokey (world, "grapple"); + } + if ((mtfstring == "off")) + { + allow_hook = 0; + } + if ((!(toggleflags & 1024) && (mtfstring != "on"))) + { + allow_hook = 0; + } + mtfstring = infokey (world, "spy"); + if ((mtfstring == "off")) + { + spy_off = 1; + } + mtfstring = infokey (world, "s"); + if ((mtfstring == string_null)) + { + mtfstring = infokey (world, "spyinvis"); + } + if (((mtfstring == "on") || (toggleflags & 512))) + { + invis_only = 1; + } + else + { + if ((mtfstring == "off")) + { + invis_only = 0; + } + } + mtfstring = infokey (world, "oldconc"); + if (((mtfstring == "on") || (mtfstring == "1"))) + { + oldconc = 1; + } + else + { + oldconc = 0; + } + mtfstring = infokey (world, "spyjumpoption"); + if (((mtfstring == "on") || (mtfstring == "1"))) + { + spyjumpoption = 1; + } + else + { + spyjumpoption = 0; + } + mtfstring = infokey (world, "spycam"); + if (((mtfstring == "on") || (mtfstring == "1"))) + { + spycam = 1; + } + else + { + spycam = 0; + } + spycam = 0; + mtfstring = infokey (world, "medicarmorheal"); + if (((mtfstring == "on") || (mtfstring == "1"))) + { + medicarmorheal = 1; + } + else + { + medicarmorheal = 0; + } + mtfstring = infokey (world, "quadscore"); + if ((mtfstring != "")) + { + if ((mtfstring == "on")) + { + quadscore = -666; + bprint (2, "Quad Round 1 in progress!\n"); + } + else + { + if ((mtfstring == "0")) + { + quadscore = 0; + } + else + { + bprint (2, quadscore); + bprint (2, "\n"); + quadscore = stof (mtfstring); + team2score = quadscore; + localcmd ("serverinfo quadscore 0\n"); + bprint (2, "Quad Round 2 in progress!\n"); + TeamFortress_TeamShowScores (2); + } + } + } + mtfstring = infokey (world, "dropgrens"); + if (((mtfstring == "on") || (mtfstring == "1"))) + { + sr_dropgrens = 1; + } + else + { + sr_dropgrens = 0; + } + mtfstring = infokey (world, "sr_gren1"); + sr_gren1 = stof (mtfstring); + mtfstring = infokey (world, "sr_gren2"); + sr_gren2 = stof (mtfstring); + if ((sr_gren1 <= 0)) + { + sr_gren1 = 10; + } + if ((sr_gren2 <= 0)) + { + sr_gren2 = 10; + } + + mtfstring = infokey(world, "sr_airmirv"); + sr_airmirv = stof (mtfstring); + if ((sr_airmirv <= 0)) + { + sr_airmirv = 10; + } + +#ifdef clan_progs + mtfstring = infokey (world, "clan_prematch"); + if (mtfstring == "on" || stof(mtfstring) > 0) + { + if (stof(mtfstring) > 1) + { + clan_prematch = stof(mtfstring); + } + else + { + clan_prematch = 1; + } + prematch = 666 * 666; // teh evil prematch :D + SetUpPrematch (); + } + else + { +#endif + mtfstring = infokey (world, "prematch"); + prematch = stof (mtfstring); + if ((prematch > 0)) + { + SetUpPrematch (); + } +#ifdef clan_progs + } +#endif + mtfstring = infokey (world, "cr_scout"); + cr_scout = stof (mtfstring); + mtfstring = infokey (world, "cr_sniper"); + cr_sniper = stof (mtfstring); + mtfstring = infokey (world, "cr_soldier"); + cr_soldier = stof (mtfstring); + mtfstring = infokey (world, "cr_demoman"); + cr_demoman = stof (mtfstring); + mtfstring = infokey (world, "cr_medic"); + cr_medic = stof (mtfstring); + mtfstring = infokey (world, "cr_hwguy"); + cr_hwguy = stof (mtfstring); + mtfstring = infokey (world, "cr_pyro"); + cr_pyro = stof (mtfstring); + mtfstring = infokey (world, "cr_spy"); + cr_spy = stof (mtfstring); + mtfstring = infokey (world, "cr_engineer"); + cr_engineer = stof (mtfstring); + if ((((((((((cr_scout != 0) && (cr_sniper != 0)) && (cr_soldier != 0)) && (cr_demoman != 0)) && (cr_medic != 0)) && (cr_hwguy != 0)) && (cr_pyro != 0)) && (cr_spy != 0)) && (cr_engineer != 0))) + { + cr_engineer = 0; + } + mtfstring = infokey (world, "clr_enabled"); + if ((mtfstring == "on")) + { + clr_enabled = 1; + } + else + { + if ((mtfstring == "1")) + { + clr_enabled = 1; + } + else + { + clr_enabled = 0; + } + } + mtfstring = infokey (world, "airscout"); + if ((mtfstring == "off")) + { + airscout = 0; + } + else + { + airscout = 1; + } + mtfstring = infokey (world, "headkick"); + if ((mtfstring == "off")) + { + headkick = 0; + } + else + { + headkick = 1; + } + mtfstring = infokey (world, "coloredlights"); + if ((mtfstring == "on")) + { + coloredlights = 1; + } + else + { + coloredlights = 0; + } + mtfstring = infokey (world, "drop3"); + if ((mtfstring == "off")) + { + drop3 = 0; + } + else + { + drop3 = 1; + } + mtfstring = infokey (world, "drop2"); + if ((mtfstring == "off")) + { + drop2 = 0; + } + else + { + drop2 = 1; + } + mtfstring = infokey (world, "drop1"); + if ((mtfstring == "off")) + { + drop1 = 0; + } + else + { + drop1 = 1; + } + mtfstring = infokey (world, "footsteps"); + if ((mtfstring == "off")) + { + footsteps = 0; + } + else + { + footsteps = 1; + } + mtfstring = infokey (world, "old_gl"); + if ((mtfstring == "off")) + { + old_gl = 0; + } + else + { + old_gl = 1; + } + mtfstring = infokey (world, "exec_class"); + if (mtfstring == string_null) + mtfstring = infokey (world, "ec"); + if ((mtfstring != "off")) + { + exec_class = 1; + } + else + { + exec_class = 0; + } + mtfstring = infokey (world, "rd"); + if ((mtfstring == string_null)) + { + mtfstring = infokey (world, "respawn_delay"); + } + respawn_delay_time = stof (mtfstring); + if (respawn_delay_time) + { + toggleflags = toggleflags | 4; + } + if (((toggleflags & 4) && (respawn_delay_time == 0))) + { + respawn_delay_time = 5; + } + if ((toggleflags & 64)) + { + toggleflags = toggleflags - (toggleflags & 64); + mtfentity = spawn (); + mtfentity.nextthink = (time + mtffloat); + mtfentity.think = autoteam_think; + } + } + if (parm11) + { + self.tfstate = parm11; + } + if ((self.playerclass == 0)) + { + self.playerclass = parm12; + } + if (parm13) + { + self.StatusBarRes = parm13; + } + if (parm14) + { + self.StatusBarSize = parm14; + } +}; + +// authcode 3 +float /*WARNING: could not determine return type*/ (entity _p_5763) IsLegalClient = +{ + local string _l_5764; + local string _l_5765; + local string _l_5766; + local string _l_5767; + + _l_5766 = infokey (_p_5763, "*client"); + if ((_l_5766 == "")) + { + _l_5766 = infokey (_p_5763, "*z_ver"); + if ((_l_5766 == "")) + { + _l_5766 = infokey (_p_5763, "*FuhQuake"); + if ((_l_5766 != "")) + { + _l_5764 = "*FuhQuake"; + } + } + else + { + _l_5764 = "*z_ver"; + } + } + else + { + _l_5764 = "*client"; + } + if ((_l_5764 == "")) + { + return (0); + } + _l_5765 = infokey (_p_5763, _l_5764); + _l_5766 = infokey (world, "clr_client1n"); + _l_5767 = infokey (world, "clr_client1v"); + if (((_l_5764 == _l_5766) && (_l_5765 == _l_5767))) + { + return (1); + } + _l_5766 = infokey (world, "clr_client2n"); + _l_5767 = infokey (world, "clr_client2v"); + if (((_l_5764 == _l_5766) && (_l_5765 == _l_5767))) + { + return (1); + } + _l_5766 = infokey (world, "clr_client3n"); + _l_5767 = infokey (world, "clr_client3v"); + if (((_l_5764 == _l_5766) && (_l_5765 == _l_5767))) + { + return (1); + } + _l_5766 = infokey (world, "clr_client4n"); + _l_5767 = infokey (world, "clr_client4v"); + if (((_l_5764 == _l_5766) && (_l_5765 == _l_5767))) + { + return (1); + } + _l_5766 = infokey (world, "clr_client5n"); + _l_5767 = infokey (world, "clr_client5v"); + if (((_l_5764 == _l_5766) && (_l_5765 == _l_5767))) + { + return (1); + } + _l_5766 = infokey (world, "clr_client6n"); + _l_5767 = infokey (world, "clr_client6v"); + if (((_l_5764 == _l_5766) && (_l_5765 == _l_5767))) + { + return (1); + } + _l_5766 = infokey (world, "clr_client7n"); + _l_5767 = infokey (world, "clr_client7v"); + if (((_l_5764 == _l_5766) && (_l_5765 == _l_5767))) + { + return (1); + } + _l_5766 = infokey (world, "clr_client8n"); + _l_5767 = infokey (world, "clr_client8v"); + if (((_l_5764 == _l_5766) && (_l_5765 == _l_5767))) + { + return (1); + } + _l_5766 = infokey (world, "clr_client9n"); + _l_5767 = infokey (world, "clr_client9v"); + if (((_l_5764 == _l_5766) && (_l_5765 == _l_5767))) + { + return (1); + } + _l_5766 = infokey (world, "clr_client10n"); + _l_5767 = infokey (world, "clr_client10v"); + if (((_l_5764 == _l_5766) && (_l_5765 == _l_5767))) + { + return (1); + } + return (0); +}; + +//end authcode3 + + +entity() FindIntermission = +{ + local entity spot; + local float cyc; + spot = find(world, classname, "info_intermission"); + if (spot) + { + cyc = random() * TF_FLARE_OFF; + return spot; + } + spot = find(world, classname, "info_player_start"); + if (spot) + { + return spot; + } + spot = find(world, classname, "info_player_deathmatch"); + if (spot) + { + cyc = random() * 6; + while (cyc > TF_FLARE_OFF) + { + spot = find(spot, classname, "info_player_deathmatch"); + if (!spot) + { + spot = find(spot, classname, "info_player_deathmatch"); + } + cyc = cyc - TF_FLARE_OFF; + } + return spot; + } + objerror("FindIntermission: no spot"); + return self; //dirty compiler warning fix, i know >.< +}; + +entity(entity start_point) FindNextIntermission = +{ + local entity spot; + if (deathmatch) + { + if (start_point.classname == "info_intermission" || start_point == world) + { + spot = find(start_point, classname, "info_intermission"); + if (spot) + { + return spot; + } + else + { + start_point = world; + } + } + if (start_point.classname == "info_player_deathmatch" || start_point == world) + { + spot = find(start_point, classname, "info_player_deathmatch"); + if (spot) + { + return spot; + } + } + spot = find(world, classname, "info_intermission"); + if (spot) + { + return spot; + } + spot = find(world, classname, "info_player_deathmatch"); + if (spot) + { + return spot; + } + } + else + { + spot = find(world, classname, "info_player_start"); + if (spot) + { + return spot; + } + } + return FindIntermission(); +}; + +void() TF_MovePlayer = +{ + local entity place; + place = FindNextIntermission(self.observer_list); + self.observer_list = place; + setorigin(self, place.origin + '0 0 1'); + self.angles = place.angles; + self.fixangle = TF_FLARE_OFF; +}; + +void() GotoNextMap = +{ + local float nextlevel; + local string sl; + + // ---> pablo. Reset autoscreenshot. +/* te = find(world, classname, "player"); + while (te) + { + if (te.screenshot == 1) + { + sprint(te, 2, "screenshot!\n"); + te.screenshot = 1; + } + te = find(te, classname, "player"); + }*/ + + // <--- + + if (nextmap != mapname) + { + changelevel(nextmap); + already_chosen_map = TF_FLARE_OFF; + } + if (!already_chosen_map) + { + sl = infokey(world, "n"); + nextlevel = stof(sl); + nextlevel = nextlevel + TF_FLARE_OFF; + sl = ftos(nextlevel); + localcmd("serverinfo n "); + localcmd(sl); + localcmd("\n"); + localcmd("exec qwmcycle/map"); + localcmd(sl); + localcmd(".cfg\n"); + already_chosen_map = TF_FLARE_OFF; + } + if (infokey(world, "n") == "0") + { + already_chosen_map = 0; + } + + // Pablo. Server-side map cfg + /*localcmd("exec "); + localcmd(nextmap); + localcmd(".cfg\n");*/ +}; + +void() ExitIntermission = +{ + dprint("Exiting intermission...\n"); + if (deathmatch) + { + dprint("Exit Intermission in Deathmatch.\n"); + GotoNextMap(); + return; + } + intermission_exittime = time + TF_FLARE_OFF; + intermission_running = intermission_running + TF_FLARE_OFF; + if (intermission_running == 2) + { + if (world.model == "maps/e2m6.bsp") + { + WriteByte(2, 31); + WriteString(2, "The Rune of Black Magic throbs evilly in\nyour hand and whispers dark thoughts\ninto your brain. You learn the inmost\nlore of the Hell-Mother; Shub-Niggurath!\nYou now know that she is behind all the\nterrible plotting which has led to so\nmuch death and horror. But she is not\ninviolate! Armed with this Rune, you\nrealize that once all four Runes are\ncombined, the gate to Shub-Niggurath's\nPit will open, and you can face the\nWitch-Goddess herself in her frightful\notherworld cathedral."); + return; + } + else + { + if (world.model == "maps/e3m6.bsp") + { + WriteByte(2, 31); + WriteString(2, "The charred viscera of diabolic horrors\nbubble viscously as you seize the Rune\nof Hell Magic. Its heat scorches your\nhand, and its terrible secrets blight\nyour mind. Gathering the shreds of your\ncourage, you shake the devil's shackles\nfrom your soul, and become ever more\nhard and determined to destroy the\nhideous creatures whose mere existence\nthreatens the souls and psyches of all\nthe population of Earth."); + return; + } + else + { + if (world.model == "maps/e4m7.bsp") + { + WriteByte(2, 31); + WriteString(2, "Despite the awful might of the Elder\nWorld, you have achieved the Rune of\nElder Magic, capstone of all types of\narcane wisdom. Beyond good and evil,\nbeyond life and death, the Rune\npulsates, heavy with import. Patient and\npotent, the Elder Being Shub-Niggurath\nweaves her dire plans to clear off all\nlife from the Earth, and bring her own\nfoul offspring to our world! For all the\ndwellers in these nightmare dimensions\nare her descendants! Once all Runes of\nmagic power are united, the energy\nbehind them will blast open the Gateway\nto Shub-Niggurath, and you can travel\nthere to foil the Hell-Mother's plots\nin person."); + return; + } + } + } + //} + GotoNextMap(); + } + if (intermission_running == 3) + { + if (!cvar("registered")) + { + WriteByte(2, 33); + return; + } + if ((serverflags & 15) == 15) + { + WriteByte(2, 31); + WriteString(2, "Now, you have all four Runes. You sense\ntremendous invisible forces moving to\nunseal ancient barriers. Shub-Niggurath\nhad hoped to use the Runes Herself to\nclear off the Earth, but now instead,\nyou will use them to enter her home and\nconfront her as an avatar of avenging\nEarth-life. If you defeat her, you will\nbe remembered forever as the savior of\nthe planet. If she conquers, it will be\nas if you had never been born."); + return; + } + } + dprint("Exit Intermission.\n"); + GotoNextMap(); +}; + +void() IntermissionThink = +{ + if (time < intermission_exittime) + { + return; + } + if (!(self.button0) && !(self.button1) && !(self.button2)) + { + return; + } + dprint("Intermission think.\n"); + GotoNextMap(); +}; + +void() execute_changelevel = +{ + local entity pos; + dprint("execute_changelevel()\n"); + intermission_running = TF_FLARE_OFF; + intermission_exittime = time + 5; + pos = FindIntermission(); + WriteByte(2, 30); + WriteCoord(2, pos.origin_x); + WriteCoord(2, pos.origin_y); + WriteCoord(2, pos.origin_z); + WriteAngle(2, pos.mangle_x); + WriteAngle(2, pos.mangle_y); + WriteAngle(2, pos.mangle_z); + if ((quadscore == -666)) + { + localcmd ("serverinfo quadscore "); + localcmd (ftos (team1score)); + localcmd ("\n"); + } + other = find(world, classname, "player"); + while (other != world) + { + if (other.stats_on) + { + stuffcmd (other, "set stats_execed -1; exec progs/stats.cfg\n"); + } + other.takedamage = 0; + other.solid = 0; + other.movetype = 0; + other.modelindex = 0; + other = find(other, classname, "player"); + } + DumpClanScores (); +}; + +void() changelevel_touch = +{ + if (other.classname != "player") + { + return; + } + if (cvar("samelevel") == 2 || (cvar("samelevel") == 3 && mapname != "start")) + { + return; + } + bprint(2, other.netname); + bprint(2, " exited the level\n"); + nextmap = self.map; + SUB_UseTargets(); + if (self.spawnflags & TF_FLARE_OFF && deathmatch == 0) + { + GotoNextMap(); + return; + } + self.touch = SUB_Null; + self.think = execute_changelevel; + self.nextthink = time + 0.1; +}; + +void() trigger_changelevel = +{ + if (CheckExistence() == 0) + { + dremove(self); + return; + } + if (!(self.map)) + { + objerror("changelevel trigger doesn't have map"); + } + InitTrigger(); + self.touch = changelevel_touch; +}; + +void() respawn = +{ + if (coop) + { + CopyToBodyQue(self); + setspawnparms(self); + PutClientInServer(); + } + else + { + if (deathmatch) + { + CopyToBodyQue(self); + SetNewParms(); + PutClientInServer(); + } + else + { + localcmd("restart\n"); + } + } +}; + +void() ClientKill = +{ + local entity te; + if (self.playerclass == 0) + { + return; + } +// Taken out by XavioR -- this was added because people would use it to lower team score. Took it out for PUG servers +// if (self.suicide_time > time) +// { +// sprint(self, 2, "30 sec delay to stop cheating!\n"); +// return; +// } + if (self.deadflag) + { + return; + } + /* Gold - Plast took cameras outta MegaTF in '04 + if ((self.bugger > 0) + { + sprint (self, 2, "Can't suicide while in camera!\n"); + return; + }*/ + if (self.tfstate & 16) + { + sprint(self, 2, "you wish life was that easy!\n"); + return; + } + if (self.hook_out) + { + sprint(self, 2, "You must retract hook first!\n"); + return; + } + self.suicide_time = time + 25 + random() * 5; + bprint(TF_FLARE_OFF, self.netname); + bprint(TF_FLARE_OFF, " suicides :)\n"); + set_suicide_frame(); + self.modelindex = modelindex_player; + if (self.tfstate & 16) + { + te = find(world, classname, "timer"); + while (te) + { + if (te.owner == self && te.think == BioInfection_Decay) + { + logfrag(te, self); + te.enemy.real_frags = te.enemy.real_frags + TF_FLARE_OFF; + if (!(toggleflags & 128)) + { + te.enemy.frags = te.enemy.real_frags; + } + } + te = find(te, classname, "timer"); + } + } + else + { + logfrag(self, self); + } + self.real_frags = self.real_frags - TF_FLARE_OFF; + if (!(toggleflags & 128)) + { + self.frags = self.real_frags; + } + TeamFortress_RemoveTimers(); + TeamFortress_SetupRespawn(TF_FLARE_OFF); + self.health = self.health - (self.health + TF_FLARE_OFF); + self.th_die(); + self.deadflag = 3; + self.tfstate = self.tfstate | 8192; +}; + +entity(float team_num) FindTeamSpawnPoint = +{ + local entity spot; + local entity at_spot; + local float spot_found; + local float attempts; + if (team_num == TF_FLARE_OFF) + { + spot = lastspawn_team1; + attempts = 0; + while (TF_FLARE_OFF) + { + attempts = attempts + TF_FLARE_OFF; + spot = find(spot, team_str_home, "ts1"); + if (spot == world) + { + spot = find(world, team_str_home, "ts1"); + } + if (spot == world) + { + return world; + } + at_spot = findradius(spot.origin, 40); + spot_found = TF_FLARE_OFF; + while (at_spot != world) + { + if (at_spot.classname == "player" && at_spot.deadflag == 0) + { + spot_found = 0; + } + at_spot = at_spot.chain; + } + if (!Activated(spot, self)) + { + spot_found = 0; + } + if (spot_found || attempts >= 30) + { + lastspawn_team1 = spot; + return spot; + } + } + } + else + { + if (team_num == 2) + { + spot = lastspawn_team2; + attempts = 0; + while (TF_FLARE_OFF) + { + attempts = attempts + TF_FLARE_OFF; + spot = find(spot, team_str_home, "ts2"); + if (spot == world) + { + spot = find(world, team_str_home, "ts2"); + } + if (spot == world) + { + return world; + } + at_spot = findradius(spot.origin, 40); + spot_found = TF_FLARE_OFF; + while (at_spot != world) + { + if (at_spot.classname == "player" && at_spot.deadflag == 0) + { + spot_found = 0; + } + at_spot = at_spot.chain; + } + if (!Activated(spot, self)) + { + spot_found = 0; + } + if (spot_found || attempts >= 30) + { + lastspawn_team2 = spot; + return spot; + } + } + } + else + { + if (team_num == 3) + { + spot = lastspawn_team3; + attempts = 0; + while (TF_FLARE_OFF) + { + attempts = attempts + TF_FLARE_OFF; + spot = find(spot, team_str_home, "ts3"); + if (spot == world) + { + spot = find(world, team_str_home, "ts3"); + } + if (spot == world) + { + return world; + } + at_spot = findradius(spot.origin, 40); + spot_found = TF_FLARE_OFF; + while (at_spot != world) + { + if (at_spot.classname == "player" && at_spot.deadflag == 0) + { + spot_found = 0; + } + at_spot = at_spot.chain; + } + if (!Activated(spot, self)) + { + spot_found = 0; + } + if (spot_found || attempts >= 30) + { + lastspawn_team3 = spot; + return spot; + } + } + } + else + { + if (team_num == 4) + { + spot = lastspawn_team4; + attempts = 0; + while (TF_FLARE_OFF) + { + attempts = attempts + TF_FLARE_OFF; + spot = find(spot, team_str_home, "ts4"); + if (spot == world) + { + spot = find(world, team_str_home, "ts4"); + } + if (spot == world) + { + return world; + } + at_spot = findradius(spot.origin, 40); + spot_found = TF_FLARE_OFF; + while (at_spot != world) + { + if (at_spot.classname == "player" && at_spot.deadflag == 0) + { + spot_found = 0; + } + at_spot = at_spot.chain; + } + if (!Activated(spot, self)) + { + spot_found = 0; + } + if (spot_found || attempts >= 30) + { + lastspawn_team4 = spot; + return spot; + } + } + } + } + } + } + return world; +}; + +void(entity e) ValidateUser = +{ +}; + +entity() SelectSpawnPoint = +{ + local entity spot; + local entity at_spot; + local float spot_found; + local float attempts; + if (self.team_no != 0) + { + spot = FindTeamSpawnPoint(self.team_no); + if (spot != world) + { + return spot; + } + } + if (coop) + { + lastspawn = find(lastspawn, classname, "info_player_coop"); + if (lastspawn == world) + { + lastspawn = find(world, classname, "info_player_coop"); + } + if (lastspawn != world) + { + return lastspawn; + } + } + else + { + if (deathmatch) + { + spot = find(lastspawn, classname, "info_player_deathmatch"); + if (spot == world) + { + spot = find(world, classname, "info_player_deathmatch"); + } + attempts = 0; + while (spot != world && attempts < 100) + { + attempts = attempts + TF_FLARE_OFF; + at_spot = findradius(spot.origin, 40); + spot_found = TF_FLARE_OFF; + while (at_spot) + { + if (at_spot.classname == "player" && at_spot.deadflag == 0) + { + spot_found = 0; + } + at_spot = at_spot.chain; + } + if (spot_found || attempts >= 10) + { + lastspawn = spot; + return spot; + } + spot = find(spot, classname, "info_player_deathmatch"); + if (spot == world) + { + spot = find(world, classname, "info_player_deathmatch"); + } + } + } + } + if (serverflags) + { + spot = find(world, classname, "info_player_start2"); + if (spot) + { + return spot; + } + } + spot = find(world, classname, "info_player_start"); + if (!spot) + { + error("PutClientInServer: no info_player_start on level\n"); + } + return spot; +}; + +void() PutClientInServer = +{ + local float tc; + local string st; + local float iszoom; + local float oldclass; + local entity spot; + local entity te; + self.touch = player_touch; + self.classname = "player"; + self.health = 100; + self.takedamage = 2; +#ifdef new_solid + if (self.playerclass < 1 && self.health == 1) + self.solid = 1; + else + self.solid = 3; +#else + self.solid = 3; +#endif + self.movetype = 3; + self.show_hostile = 0; + self.FlashTime = 0; + self.max_health = 100; + self.flags = 8; + self.air_finished = time + 12; + self.dmg = 2; + self.super_damage_finished = 0; + self.radsuit_finished = 0; + self.invisible_finished = 0; + self.invincible_finished = 0; + self.effects = 0; + self.invincible_time = 0; + self.reload_shotgun = 0; + self.reload_super_shotgun = 0; + self.reload_grenade_launcher = 0; + self.reload_rocket_launcher = 0; + self.immune_to_check = time + 5; + self.on_hook = 0; + self.active_grenades_1 = 0; + self.active_grenades_2 = 0; + self.active_airmirvs = 0; + self.hook_out = 0; + self.fire_held_down = 0; + stuffcmd(self, "play misc/null.wav\n"); + DecodeLevelParms(); +// begin client auth + stuffcmd (self, "alias aa_enabled impulse 240\nalias cl_accel impulse 240\nalias cl_speed impulse 240\nalias aa_lag impulse 240\nalias autofire impulse 240\nalias +autofire impulse 240\nalias autodet impulse 240\nalias +showradar impulse 240\nalias voteyes impulse 245\n"); + self.client = "unknown"; + st = infokey (self, "*client"); + if ((st == "mqwcl 0.96")) + { + self.client = "moreqw"; + self.clientv = "0.96"; + } + else + { + if ((st == "mqwcl 0.95")) + { + self.client = "moreqw"; + self.clientv = "0.95"; + } + else + { + if ((st == "mqwcl 0.93")) + { + self.client = "moreqw"; + self.clientv = "0.93"; + } + } + } +// AA ban + st = infokey (self, "*ip"); + if ((st != "")) + { + st = infokey (self, "*ver"); + bprint (st); + bprint ("\n"); + if ((st == "2.40-0858")) + { + stuffcmd (self, "aa_enabled"); + stuffcmd (self, "\n"); + } + } + st = infokey (self, "*z_ver"); + if ((st != "")) + { + self.client = "zquake"; + self.clientv = st; + } + st = infokey (self, "*FuhQuake"); + if ((st != "")) + { + self.client = "fuhquake"; + self.clientv = st; + } + if (self.client == "unknown") + { + st = infokey (self, "*ver"); + if ((st != "")) + { + self.client = st; + } + st = infokey (self, "*client"); + if ((st != "")) + { + self.client = st; + } + } + st = infokey (self, "tf_stats"); + if (((st == "on") || (st == "1"))) + { + if (((self.client != "fuhquake") && (self.client != "zquake"))) + { + sprint (self, 2, "Weapon statistics require fuhquake/zquake (www.fuhquake.net)\n"); + self.stats_on = 0; + stuffcmd (self, "setinfo tf_stats off\n"); + } + else + { + self.stats_on = 1; + } + } + else + { + self.stats_on = 0; + } + if (clr_enabled) + { + if (!IsLegalClient (self)) + { + stuffcmd (self, "disconnect\necho\necho illegal client, restrictions in effect\necho\n"); + bprint (1, self.netname); + bprint (1, " tried to join using an illegal client.\n"); + return; + } + } +// end client auth code + if (self.playerclass == 0) + { + if (TeamFortress_TeamIsCivilian(self.team_no)) + { + self.impulse = TF_FLARE_OFF; + TeamFortress_SetSpeed(self); + TeamFortress_ChangeClass(); + } + } + if (deathmatch == 3 && self.nextpc != 0) + { + tc = IsRestrictedClass(self.nextpc); + if ( tc == 0) + { + self.playerclass = self.nextpc; + if (self.nextpc == 10) + { + self.tfstate = self.tfstate | 8; + } + else + { + self.tfstate = self.tfstate - (self.tfstate & 8); + } + } + else + { + if (tc > 0) + { + sprint(self, 2, "That class is restricted to "); + st = ftos(tc); + sprint(self, 2, st); + sprint(self, 2, " per team.\n"); + } + else + { + sprint(self, 2, "That class is disabled.\n"); + } + self.nextpc = 0; + } + } + iszoom = 0; + if (self.tfstate & 4096) + { + iszoom = TF_FLARE_OFF; + } + if (self.tfstate & 8) + { + oldclass = TF_FLARE_OFF + floor(random() * (10 - TF_FLARE_OFF)); + while (!IsLegalClass(oldclass) || (IsRestrictedClass(oldclass) != 0) ) // pablo. removed this cause of problems if all but 1 class restricted. || (self.playerclass == oldclass) ) + { + oldclass = TF_FLARE_OFF + floor(random() * (10 - TF_FLARE_OFF)); + } + self.playerclass = oldclass; + self.tfstate = 8; + } + else + { + self.tfstate = 0; + } + if (iszoom == TF_FLARE_OFF) + { + self.tfstate = self.tfstate | 4096; + } + if (self.playerclass != 9) + { + te = find(world, classname, "building_dispenser"); + while (te) + { + if (te.real_owner == self) + { + TF_T_Damage(te, world, world, 500, 0, 0); + } + te = find(te, classname, "building_dispenser"); + } + te = find(world, classname, "building_sentrygun"); + while (te) + { + if (te.real_owner == self) + { + TF_T_Damage(te, world, world, 500, 0, 0); + } + te = find(te, classname, "building_sentrygun"); + } + } + TeamFortress_PrintClassName(self, self.playerclass, self.tfstate & 8, 0); + TeamFortress_SetEquipment(); + TeamFortress_SetHealth(); + TeamFortress_SetSpeed(self); + TeamFortress_SetSkin(self); + stuffcmd(self, "v_idlescale 0\n"); + stuffcmd(self, "v_cshift 0 0 0 0\n"); + SetTeamName(self); + W_SetCurrentAmmo(); + self.attack_finished = time + 0.3; + self.th_pain = player_pain; + self.th_die = PlayerDie; + if (self.height != 0) + { + self.height = 0; + TF_zoom(90); + } + self.deadflag = 0; + self.pausetime = 0; + spot = SelectSpawnPoint(); + if (self.playerclass != 0) + { + spawn_tdeath(spot.origin, self); + } + self.observer_list = spot; + self.origin = spot.origin + '0 0 1'; + self.angles = spot.angles; + self.fixangle = TF_FLARE_OFF; + if (spot.classname == "info_player_teamspawn") + { + if (spot.items != 0) + { + te = Finditem(spot.items); + if (te) + { + tfgoalitem_GiveToPlayer(te, self, self); + } + if (!(spot.goal_activation & TF_FLARE_OFF)) + { + spot.items = 0; + } + } + if (prematch) + { + TeamFortress_PrintPMTimeLeft (self); + } + else + { + if (spot.message) + { + CenterPrint (self, spot.message); + if (!(spot.goal_activation & 2)) + { + spot.message = string_null; + } + } + } + if (spot.activate_goal_no != 0) + { + te = Findgoal(spot.activate_goal_no); + if (te) + { + AttemptToActivate(te, self, spot); + } + } + if (spot.goal_effects == TF_FLARE_OFF) + { + spot.classname = "deadpoint"; + spot.team_str_home = string_null; + spot.nextthink = time + TF_FLARE_OFF; + spot.think = SUB_Remove; + } + } + setmodel(self, string_null); + modelindex_null = self.modelindex; + setmodel(self, "progs/eyes.mdl"); + modelindex_eyes = self.modelindex; + setmodel(self, "progs/player.mdl"); + modelindex_player = self.modelindex; + if (self.playerclass == 0) + { + self.modelindex = modelindex_null; + self.current_menu = TF_FLARE_OFF; + TeamFortress_Alias("id", 185, 0); + bprint (1, self.netname); + bprint (1, " is using "); + if ((self.client != "unknown")) + { + bprint (1, self.client); + bprint (1, " "); + bprint (1, self.clientv); + } + else + { + bprint (1, "an unknown client"); + } + bprint (1, "\n"); + if (self.stats_on) + { + stuffcmd (self, "set stats_execed 0\nexec progs/stats.cfg\n"); + } + } + setsize(self, '-16 -16 -24', '16 16 32'); + self.view_ofs = '0 0 22'; + self.velocity = '0 0 0'; + player_stand1(); + if (deathmatch || coop) + { + makevectors(self.angles); + if (self.playerclass != 0) + { + spawn_tfog(self.origin + v_forward * 20); + } + } + if (stof(infokey(world, "rj")) != 0) + { + rj = stof(infokey(world, "rj")); + } + else + { + rj = 2; + } + if (self.noise == "player/mdeath5.wav") + { + sound(self, 2, "player/malive5.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } +}; + +void() info_player_start = +{ + if (CheckExistence() == 0) + { + dremove(self); + return; + } +}; + +void() info_player_start2 = +{ + if (CheckExistence() == 0) + { + dremove(self); + return; + } +}; + +void() testplayerstart = +{ + if (CheckExistence() == 0) + { + dremove(self); + return; + } +}; + +void() info_player_deathmatch = +{ + if (CheckExistence() == 0) + { + dremove(self); + return; + } +}; + +void() info_player_coop = +{ + if (CheckExistence() == 0) + { + dremove(self); + return; + } +}; + +void(entity c) PrintClientScore = +{ + if (c.frags > -10 && c.frags < 0) + { + bprint(TF_FLARE_OFF, " "); + } + else + { + if (c.frags >= 0) + { + if (c.frags < 100) + { + bprint(TF_FLARE_OFF, " "); + } + if (c.frags < 10) + { + bprint(TF_FLARE_OFF, " "); + } + } + } + // pablo. + //bprint(?/00000004\?, ftos(c.frags)); + bprint(TF_FLARE_OFF, ftos(c.frags)); + bprint(TF_FLARE_OFF, " "); + bprint(TF_FLARE_OFF, c.netname); + bprint(TF_FLARE_OFF, "\n"); +}; + +void() DumpScore = +{ + local entity e; + local entity sort; + local entity walk; + if (world.chain) + { + error("DumpScore: world.chain is set"); + } + e = find(world, classname, "player"); + sort = world; + while (e) + { + if (!sort) + { + sort = e; + e.chain = world; + } + else + { + if (e.frags > sort.frags) + { + e.chain = sort; + sort = e; + } + else + { + walk = sort; + do + { + if (!(walk.chain)) + { + e.chain = world; + walk.chain = e; + } + else + { + if (walk.chain.frags < e.frags) + { + e.chain = walk.chain; + walk.chain = e; + } + else + { + walk = walk.chain; + } + } + } while (walk.chain != e); + } + } + e = find(e, classname, "player"); + } + bprint(TF_FLARE_OFF, "\n"); + while (sort) + { + PrintClientScore(sort); + sort = sort.chain; + } + bprint(TF_FLARE_OFF, "\n"); +}; + +void() NextLevel = +{ + local entity o; + if (already_cycled) + { + return; + } + already_cycled = TF_FLARE_OFF; + o = spawn(); + o.map = nextmap; + o.think = execute_changelevel; + o.nextthink = time + 0.1; +}; + +void() CheckRules = +{ + if (timelimit && time >= timelimit) + { + NextLevel(); + } + else + { + if (fraglimit && self.frags >= fraglimit) + { + NextLevel(); + } + } +}; + +void() PlayerDeathThink = +{ + local float forward; + if (self.flags & 512) + { + forward = vlen(self.velocity); + forward = forward - 20; + if (forward <= 0) + { + self.velocity = '0 0 0'; + } + else + { + self.velocity = forward * normalize(self.velocity); + } + } + if (self.deadflag == 2) + { + if (self.button2 || self.button1 || self.button0) + { + return; + } + self.deadflag = 3; + self.tfstate = self.tfstate - (self.tfstate & 8192); + return; + } + if (!(self.button2) && !(self.button1) && !(self.button0)) + { + if (self.tfstate & 8192) + { + if (self.respawn_time <= time) + { + self.button0 = 0; + self.button1 = 0; + self.button2 = 0; + respawn(); + } + } + return; + } + else + { + self.tfstate = self.tfstate | 8192; + if (self.respawn_time <= time) + { + self.button0 = 0; + self.button1 = 0; + self.button2 = 0; + respawn(); + } + return; + } +}; + +.float nojumptime; + +void () PlayerJump = +{ + + if ((self.nojumptime > time)) + { + if ((self.velocity_x > 70)) + { + self.velocity_x = 70; + } + else + { + if ((self.velocity_x < -70)) + { + self.velocity_x = -70; + } + } + if ((self.velocity_y > 70)) + { + self.velocity_y = 70; + } + else + { + if ((self.velocity_y < -70)) + { + self.velocity_y = -70; + } + } + } + if ((self.flags & 2048)) + { + return; + } + if ((self.waterlevel >= 2)) + { + if ((self.watertype == -3)) + { + self.velocity_z = 100; + } + else + { + if ((self.watertype == -4)) + { + self.velocity_z = 80; + } + else + { + self.velocity_z = 50; + } + } + if ((self.swim_flag < time)) + { + self.swim_flag = (time + 1); + if ((random () < 0.500000)) + { + sound (self, 4, "misc/water1.wav", 1, 1); + } + else + { + sound (self, 4, "misc/water2.wav", 1, 1); + } + } + return; + } + if (!(self.flags & 512)) + { + return; + } + if (!(self.flags & 4096)) + { + return; + } + self.flags = (self.flags - (self.flags & 4096)); + self.button2 = 0; + if ((self.playerclass == 8)) + { + if ((self.spy_regjump == 0)) + { + sound (self, 4, "hknight/slash1.wav", 0.700000, 1); + self.velocity_z = (self.velocity_z + 400); + } + else + { + sound (self, 4, "player/plyrjmp8.wav", 1, 1); + self.velocity_z = (self.velocity_z + 270); + } + //if( self.velocity_z < 0 ) self.velocity_z = 0; //prozac fix -- still needed for your equake, hughie? + } + else + { + sound (self, 4, "player/plyrjmp8.wav", 1, 1); + self.velocity_z = (self.velocity_z + 270); + //if( self.velocity_z < 0 ) self.velocity_z = 0; + } +}; + +void() WaterMove = +{ + if (self.movetype == 8) + { + return; + } + if (self.health < 0) + { + return; + } + if (self.waterlevel != 3) + { + if (self.air_finished < time) + { + sound(self, 2, "player/gasp2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (self.air_finished < time + 9) + { + sound(self, 2, "player/gasp1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + } + self.air_finished = time + 12; + self.dmg = 2; + } + else + { + if (self.air_finished < time) + { + if (self.pain_finished < time) + { + self.dmg = self.dmg + 2; + if (self.dmg > 15) + { + self.dmg = 10; + } + TF_T_Damage(self, world, world, self.dmg, TF_FLARE_OFF, 0); + self.pain_finished = time + TF_FLARE_OFF; + } + } + } + if (!(self.waterlevel)) + { + if (self.flags & 16) + { + sound(self, 4, "misc/outwater.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.flags = self.flags - 16; + } + return; + } + if (self.watertype == -5) + { + if (self.dmgtime < time) + { + if (self.radsuit_finished > time) + { + self.dmgtime = time + TF_FLARE_OFF; + } + else + { + self.dmgtime = time + 0.2; + } + TF_T_Damage(self, world, world, 10 * self.waterlevel, 0, 16); + } + } + else + { + if (self.watertype == -4) + { + if (self.dmgtime < time && self.radsuit_finished < time) + { + self.dmgtime = time + TF_FLARE_OFF; + T_Damage(self, world, world, 4 * self.waterlevel); + } + } + } + if (!(self.flags & 16)) + { + if (self.watertype == -5) + { + sound(self, 4, "player/inlava.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + if (self.watertype == -3) + { + sound(self, 4, "player/inh2o.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + if (self.watertype == -4) + { + sound(self, 4, "player/slimbrn2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + self.flags = self.flags + 16; + self.dmgtime = 0; + } +}; + +void() CheckWaterJump = +{ + local vector start; + local vector end; + makevectors(self.angles); + start = self.origin; + start_z = start_z + 8; + v_forward_z = 0; + normalize(v_forward); + end = start + v_forward * 24; + traceline(start, end, TF_FLARE_OFF, self); + if (trace_fraction < TF_FLARE_OFF) + { + start_z = start_z + self.maxs_z - 8; + end = start + v_forward * 24; + self.movedir = trace_plane_normal * -50; + traceline(start, end, TF_FLARE_OFF, self); + if (trace_fraction == TF_FLARE_OFF) + { + self.flags = self.flags | 2048; + self.velocity_z = 225; + self.flags = self.flags - (self.flags & 4096); + self.teleport_time = time + 2; + return; + } + } +}; + +void () PlayerPreThink = +{ + local vector src; + + if (self.autoid) + { + makevectors (self.v_angle); + src = self.origin + (v_forward * 10); + src_z = self.absmin_z + (self.size_z * 0.700000); + traceline (src, (src + (v_forward * 2048)), 0, self); + if (((trace_ent != world) && (trace_ent.origin != world.origin))) + { + if ((self.current_menu != 17)) + { + TeamFortress_ID (); + self.StatusRefreshTime = (time + 0.200000); + } + } + } + if ((self.is_feigning && (self.waterlevel == 1))) + { + self.watertype = -3; + self.waterlevel = 3; + } + if (intermission_running) + { + if ((intermission_running && (self.last_used != 999))) + { + if ((random () < 0.500000)) + { + stuffcmd (self, "play music/megamnu1.wav\n"); + } + else + { + stuffcmd (self, "play music/megamnu2.wav\n"); + } + self.last_used = 999; + } + IntermissionThink (); + return; + } + makevectors (self.v_angle); + if ((self.playerclass == 0)) + { + self.maxspeed = 0; + self.gravity = 0; + if (((self.button2 && (self.current_menu == 2)) && (self.team_no == 0))) + { + if (TeamFortress_TeamPutPlayerInTeam ()) + { + self.current_menu = 3; + self.menu_count = 25; + } + } + } + if ((self.view_ofs == '0 0 0')) + { + return; + } + CheckRules (); + if ((self.playerclass != 0)) + { + WaterMove (); + } + if ((self.deadflag >= 2)) + { + PlayerDeathThink (); + return; + } + if (((self.undercover_team || self.undercover_skin) || self.is_undercover)) + { + if ((self.effects & 12)) + { + sprint (self, 1, "The glowing removes your disguise.\n"); + Spy_RemoveDisguise (self); + } + } + if ((self.deadflag == 1)) + { + return; + } + if (!self.is_feigning) + { + if (self.button2) + { + PlayerJump (); + } + else + { + self.flags = (self.flags | 4096); + } + } + else + { + if (self.waterlevel) + { + self.velocity_z = -100; + } + } + if ((time < self.pausetime)) + { + self.velocity = '0 0 0'; + } + if ((((time > self.attack_finished) && (self.currentammo == 0)) && (self.weapon > 16))) + { + self.weapon = W_BestWeapon (); + W_SetCurrentAmmo (); + } + if (self.on_hook) + { + Service_Grapple (); + } +}; + + +void() CheckPowerups = +{ + local float lighton; + local entity te; + if (self.health <= 0) + { + return; + } + if (self.playerclass == 0) + { + self.modelindex = modelindex_null; + } + else + { + if (self.is_undercover == TF_FLARE_OFF && invis_only == TF_FLARE_OFF) + { + self.frame = 0; + self.modelindex = modelindex_eyes; + } + else + { + if (self.invisible_finished) + { + if (self.tfstate & 64) + { + if (self.invisible_finished < time + 10) + { + self.invisible_finished = time + 666; + } + } + if (self.invisible_sound < time) + { + sound(self, 0, "items/inv3.wav", 0.5, 2); + self.invisible_sound = time + (random() * 3 + TF_FLARE_OFF); + } + if (self.invisible_finished < time + 3) + { + if (self.invisible_time == TF_FLARE_OFF) + { + sprint(self, 2, "Invisability is fading\n"); + stuffcmd(self, "bf\n"); + sound(self, 0, "items/inv2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.invisible_time = time + TF_FLARE_OFF; + } + if (self.invisible_time < time) + { + self.invisible_time = time + TF_FLARE_OFF; + stuffcmd(self, "bf\n"); + } + } + if (self.invisible_finished < time) + { + self.items = self.items - 524288; + self.invisible_finished = 0; + self.invisible_time = 0; + } + self.frame = 0; + self.modelindex = modelindex_eyes; + } + else + { + self.modelindex = modelindex_player; + } + } + } + if (self.invincible_finished) + { + if (self.tfstate & 32) + { + if (self.invincible_finished < time + 10) + { + self.invincible_finished = time + 666; + } + } + if (self.invincible_finished < time + 3) + { + if (self.invincible_time == TF_FLARE_OFF) + { + sprint(self, 2, "Protection is almost gone\n"); + stuffcmd(self, "bf\n"); + sound(self, 0, "items/protect2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.invincible_time = time + TF_FLARE_OFF; + } + if (self.invincible_time < time) + { + self.invincible_time = time + TF_FLARE_OFF; + stuffcmd(self, "bf\n"); + } + } + if (self.invincible_finished < time) + { + self.items = self.items - 1048576; + self.invincible_time = 0; + self.invincible_finished = 0; + } + if (self.invincible_finished > time) + { + self.effects = self.effects | 8; + } + else + { + lighton = 0; + te = find(world, classname, "item_tfgoal"); + while (te) + { + if (te.owner == self) + { + if (te.goal_activation & TF_FLARE_OFF) + { + lighton = TF_FLARE_OFF; + } + } + te = find(te, classname, "item_tfgoal"); + } + if (!lighton) + { + self.effects = self.effects - (self.effects & 8); + } + } + } + if (self.super_damage_finished) + { + if (self.tfstate & 128) + { + if (self.super_damage_finished == time + 10) + { + self.super_damage_finished = time + 666; + } + } + if (self.super_damage_finished < time + 3) + { + if (self.super_time == TF_FLARE_OFF) + { + sprint(self, 2, "Quad Damage is wearing off\n"); + stuffcmd(self, "bf\n"); + sound(self, 0, "items/damage2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.super_time = time + TF_FLARE_OFF; + } + if (self.super_time < time) + { + self.super_time = time + TF_FLARE_OFF; + stuffcmd(self, "bf\n"); + } + } + if (self.super_damage_finished < time) + { + self.items = self.items - 4194304; + self.super_damage_finished = 0; + self.super_time = 0; + } + if (self.super_damage_finished > time) + { + self.effects = self.effects | 8; + } + else + { + lighton = 0; + te = find(world, classname, "item_tfgoal"); + while (te) + { + if (te.owner == self) + { + if (te.goal_activation & TF_FLARE_OFF) + { + lighton = TF_FLARE_OFF; + } + } + te = find(te, classname, "item_tfgoal"); + } + if (!lighton) + { + self.effects = self.effects - (self.effects & 8); + } + } + } + if (self.radsuit_finished) + { + self.air_finished = time + 12; + if (self.tfstate & 256) + { + if (self.radsuit_finished == time + 10) + { + self.radsuit_finished = time + 666; + } + } + if (self.radsuit_finished < time + 3) + { + if (self.rad_time == TF_FLARE_OFF) + { + sprint(self, 2, "Air supply has run out\n"); + stuffcmd(self, "bf\n"); + sound(self, 0, "items/suit2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.rad_time = time + TF_FLARE_OFF; + } + if (self.rad_time < time) + { + self.rad_time = time + TF_FLARE_OFF; + stuffcmd(self, "bf\n"); + } + } + if (self.radsuit_finished < time) + { + self.items = self.items - 2097152; + self.rad_time = 0; + self.radsuit_finished = 0; + } + } +}; + +void() PlayerPostThink = +{ +// if (!strcat) //moved up +// { +// setup_strcat (); +// } + +// local vector vtemp; +#ifdef clan_progs + if (clan_prematch > 0) + { + if (self.playerclass > 0 && self.team_no > 0) + self.current_menu = MENU_CLAN_PREMATCH; + } +#endif + if (self.view_ofs == '0 0 0') + { + return; + } + if (self.deadflag) + { + DeadImpulses(); + self.impulse = 0; + return; + } + if (self.jump_flag < -300 && (self.flags & 512) && self.health > 0) + { + if (self.watertype == -3) + { + sound(self, 4, "player/h2ojump.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (self.jump_flag < -650) + { + T_Damage(self, world, world, 5); + sound(self, 2, "player/land2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.deathtype = "falling"; + } + else + { + if (self.playerclass == 8) + { + sound(self, 2, "hknight/hit.wav", TF_FLARE_OFF, TF_FLARE_OFF); + if (infokey(world, "prozacserver") == "1") { if( self.velocity_z < 0 ) self.velocity_z = 0; } // Prozac + if (!self.is_feigning) { // Spy Bunnhyhop + //if( self.velocity_z < 0 ) self.velocity_z = 0; + } // fix + } + else + { + sound(self, 2, "player/land.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + } + } + } + self.jump_flag = self.velocity_z; + CheckPowerups(); + W_WeaponFrame(); + if (self.motd < 22) + { + TeamFortress_MOTD(); + } + else + { + if (self.cheat_check == 0) + { + self.cheat_check = time + 5; + } + else + { + if (time > self.StatusRefreshTime && self.StatusBarSize != 0) + { + RefreshStatusBar(self); + } + } + } + if (self.cheat_check <= time) + { + TeamFortress_CheckTeamCheats(); + self.cheat_check = time + 2; + } + // no jump! + // self.button2 = 0; +// if (self.nojumptime != 0) +// { +// //self.gravity = 200; + //self.movetype = 0; + //self.flags = self.flags | 512; + //self.health = -1; +// vtemp = self.origin; +// vtemp_z = vtemp_z + 10; +// setorigin(self, vtemp); +// self.nojumptime = 0; +// } +}; + +void() ClientConnect = +{ + num_players = num_players + 1; + globaluserid = globaluserid + 1; +// self.userid = globaluserid; + self.userid = stof(infokey (self, "*userid")); + if ((infokey (world, "prozacserver") == "1")) + { + self.userid = getuid(self); + } + self.vote_wait = (time + 30); + local string st; + + bprint(2, self.netname); + bprint(2, " joined!\n"); + + self.is_ingame = 1; +// if (0 == 0) +// { + self.tfstate = self.tfstate | 4096; +// } + self.motd = 0; + self.got_aliases = 0; +// BTF anti-cheat + local string msg; + if (infokey(world, "modelcheck") == "1" || infokey(world, "modelcheck") == "on") + { + st = infokey (self, "pmodel"); + if ((((((((((st != "13845") && (st != "20572")) && (st != "33168")) && (st != "39460")) && (st != "52964")) && (st != "63186")) && (st != "32907")) && (st != "58759")) && (st != "47373"))) + { + sprint (self, 0, "You were kicked for using invalid TF pmodel\n"); + sprint (self, 0, "Have a nice day! :)\n"); + stuffcmd (self, "disconnect\n"); + stuffcmd (self, "help\n"); + bprint (0, self.netname); + bprint (0, " has been kicked for hacked pmodel\n"); + return; + } + } + st = infokey (self, "in_speed_hack"); + if ((st != "")) + { + sprint (self, 0, "You were banned for using hacked qwcl.exe\n"); + sprint (self, 0, "Have a nice day! :)\n"); + stuffcmd (self, "disconnect\n"); + stuffcmd (self, "help\n"); + bprint (0, self.netname); + bprint (0, " has been banned for speed cheat\n"); + msg = infokey (self, "ip"); + localcmd ("addip "); + localcmd (msg); + localcmd ("\n"); + localcmd ("writeip "); + localcmd (msg); + localcmd ("\n"); + return; + } + st = infokey (self, "ser"); + if ((st != "")) + { + sprint (self, 0, "You were banned for using hacked qwcl.exe\n"); + sprint (self, 0, "Have a nice day! :)\n"); + stuffcmd (self, "disconnect\n"); + stuffcmd (self, "help\n"); + bprint (0, self.netname); + bprint (0, " has been banned for speed cheat\n"); + msg = infokey (self, "ip"); + localcmd ("addip "); + localcmd (msg); + localcmd ("\n"); + localcmd ("writeip "); + localcmd (msg); + localcmd ("\n"); + return; + } + st = infokey(self, "sbar_res"); + if (st == "768") + { + self.StatusBarRes = 8; + } + else + { + if (st == "600") + { + self.StatusBarRes = 7; + } + else + { + if (st == "480") + { + self.StatusBarRes = 6; + } + else + { + if (st == "400") + { + self.StatusBarRes = 5; + } + else + { + if (st == "384") + { + self.StatusBarRes = 4; + } + else + { + if (st == "350") + { + self.StatusBarRes = 3; + } + else + { + if (st == "300") + { + self.StatusBarRes = 2; + } + else + { + if (st == "240") + { + self.StatusBarRes = TF_FLARE_OFF; + } + else + { + self.StatusBarRes = 0; + } + } + } + } + } + } + } + } + st = infokey(self, "sbar_size"); + self.StatusBarSize = stof(st); + if (self.StatusBarSize > 2 || self.StatusBarSize < 0) + { + self.StatusBarSize = 0; + } + self.has_disconnected = 0; + if (intermission_running) + { + GotoNextMap(); + } +}; + +void () ClientDisconnect = +{ + num_players = num_players - 1; + if ((self.has_voted == 1)) + { + num_votes = num_votes - 1; + } +#ifdef clan_progs + if (self.is_ready == 1) + { + num_players_ready = num_players_ready - 1; + } +#endif + + self.userid = 0; + local entity _l_6062; + + sound (self, 4, "misc/eject.wav", 1, 0); + self.has_disconnected = 1; + TeamFortress_RemoveTimers (); + _l_6062 = find (world, classname, "player_prop"); + while (_l_6062) + { + if ((_l_6062.owner == self)) + { + dremove (_l_6062); + } + _l_6062 = find (_l_6062, classname, "player_prop"); + } + _l_6062 = find (world, classname, "camera"); + while (_l_6062) + { + if ((_l_6062.owner == self)) + { + dremove (_l_6062); + } + _l_6062 = find (_l_6062, classname, "camera"); + } + _l_6062 = find (world, classname, "camera_base"); + while (_l_6062) + { + if ((_l_6062.owner == self)) + { + dremove (_l_6062); + } + _l_6062 = find (_l_6062, classname, "camera_base"); + } + _l_6062 = find (world, classname, "building_dispenser"); + while (_l_6062) + { + if ((_l_6062.real_owner == self)) + { + TF_T_Damage (_l_6062, world, world, 500, 0, 0); + } + _l_6062 = find (_l_6062, classname, "building_dispenser"); + } + _l_6062 = find (world, classname, "building_sentrygun"); + while (_l_6062) + { + if ((_l_6062.real_owner == self)) + { + TF_T_Damage (_l_6062, world, world, 500, 0, 0); + } + _l_6062 = find (_l_6062, classname, "building_sentrygun"); + } + _l_6062 = find (world, classname, "detpack"); + while (_l_6062) + { + if ((_l_6062.owner == self)) + { + if ((_l_6062.weaponmode == 1)) + { + TeamFortress_SetSpeed (_l_6062.enemy); + dremove (_l_6062.oldenemy); + dremove (_l_6062.observer_list); + } + dremove (_l_6062); + _l_6062 = world; + } + _l_6062 = find (_l_6062, classname, "detpack"); + } + _l_6062 = find (world, classname, "drop1"); + while (_l_6062) + { + if ((_l_6062.owner == self)) + { + dremove (_l_6062); + _l_6062 = world; + } + _l_6062 = find (_l_6062, classname, "drop1"); + } + _l_6062 = find (world, classname, "bot"); + while (_l_6062) + { + if ((_l_6062.owner == self)) + { + dremove (_l_6062); + _l_6062 = world; + } + _l_6062 = find (_l_6062, classname, "bot"); + } + set_suicide_frame (); + self.netname = string_null; + self.team_no = 0; + self.solid = 0; + setsize (self, '0 0 0', '0 0 0'); +}; + +void(entity targ, entity attacker) ClientObituary = +{ + local float rnum; + local string deathstring; + local string deathstring2; + + if (prematch) + { + return; + } + +// 'fer code caller! + if (deathmsg > 0 && deathmsg < 199) + { + if (attacker) + { + attacker.num_kills = attacker.num_kills + 1; + if ((targ.off_hook > time)) + { + attacker.num_kills = attacker.num_kills - 1; + targ.off_hook = 0; + } + if (attacker.fertracker != 1) + { + attacker.fertracker = 1; + fertimer (attacker); + } + if (attacker == targ) + { + attacker.num_kills = attacker.num_kills - 1; + } + + if (targ.off_hook != 1) + { +//So disps, Drones, and heads dont count as fers + if (targ.classname == "building_dispenser") { + attacker.num_kills = attacker.num_kills - 1; } + if (targ.think == DroneJet) { + attacker.num_kills = attacker.num_kills - 1; } + if (targ.touch == KickHead) { + attacker.num_kills = attacker.num_kills - 1; } + } + } + } +// end 'fer caller + rnum = random(); + if (targ.classname == "player") + { + if (attacker.classname == "teledeath") + { + bprint(TF_FLARE_OFF, targ.netname); + bprint(TF_FLARE_OFF, " got in the way of "); + bprint(TF_FLARE_OFF, attacker.owner.netname); + bprint(TF_FLARE_OFF, "\n"); + if (attacker.owner.team_no != targ.team_no || attacker.owner.team_no < TF_FLARE_OFF) + { + attacker.owner.real_frags = attacker.owner.real_frags + TF_FLARE_OFF; + } + if (!(toggleflags & 128)) + { + attacker.owner.frags = attacker.owner.real_frags; + } + return; + } + if (attacker.classname == "teledeath2") + { + bprint(TF_FLARE_OFF, "Satan's power deflects "); + bprint(TF_FLARE_OFF, targ.netname); + bprint(TF_FLARE_OFF, "'s telefrag\n"); + targ.real_frags = targ.real_frags - TF_FLARE_OFF; + if (!(toggleflags & 128)) + { + targ.frags = targ.real_frags; + } + logfrag(targ, targ); + return; + } + if (attacker.classname == "info_tfgoal") + { + if (attacker.deathtype != "") + { + bprint(TF_FLARE_OFF, targ.netname); + bprint(TF_FLARE_OFF, attacker.deathtype); + } + logfrag(targ, targ); + return; + } + if (attacker.classname == "player" || attacker.classname == "bot") + { + if (targ == attacker) + { + attacker.real_frags = attacker.real_frags - TF_FLARE_OFF; + if (!(toggleflags & 128)) + { + attacker.frags = attacker.real_frags; + } + bprint(TF_FLARE_OFF, targ.netname); + if (deathmsg == 8) + { + if (targ.gender < 1) + { + deathstring = " grenades himself\n"; + } + else + { + deathstring = " grenades herself\n"; + } + } + else + { + if (deathmsg == 43) + { + if (targ.gender < 1) + { + deathstring = " has himself bombed\n"; + } + else + { + deathstring = " has herself bombed\n"; + } + } + else + { + if (deathmsg == 45) + { + if (targ.gender < 1) + { + deathstring = " hugs his proximity grenade\n"; + } + else + { + deathstring = " hugs her proximity grenade\n"; + } + } + else + { + if (deathmsg == 9) + { + if (targ.gender < 1) + { + deathstring = " nails himself\n"; + } + else + { + deathstring = " nails herself\n"; + } + } + else + { + if (deathmsg == 10) + { + deathstring = " is blown to bits\n"; + } + else + { + if (deathmsg == 11) + { + if (targ.gender < 1) + { + deathstring = " pipebombs himself...\nWhat a dumb-ass!\n"; + } + else + { + deathstring = " pipebombs herself...\nWhat a dumb-ass!\n"; + } + } + else + { + if (deathmsg == 24) + { + if (targ.gender < 1) + { + deathstring = " gags on his own gas... pew!\n"; + } + else + { + deathstring = " gags on her own gas... pew!\n"; + } + } + else + { + if (deathmsg == 30) + { + if (targ.gender < 1) + { + deathstring = " nukes his own ammo\n"; + } + else + { + deathstring = " nukes her own ammo\n"; + } + } + else + { + if (deathmsg == 35) + { + if (targ.gender < 1) + { + deathstring = " flash grenade himself to death\n"; + } + else + { + deathstring = " flash grenade herself to death\n"; + } + } + else + { + if (deathmsg == 31) + { + if (targ.gender < 1) + { + deathstring = " detonates an ammo box too close to him\n"; + } + else + { + deathstring = " detonates an ammo box too close to her\n"; + } + } + else + { + if (deathmsg == 12) + { + if (targ.gender < 1) + { + deathstring = " detpacks himself\n That was smart!\n"; + } + else + { + deathstring = " detpacks herself\n That was smart!\n"; + } + } + else + { + if (deathmsg == 13) + { + deathstring = " died impossibly!\n"; + } + else + { + if (deathmsg == 6) + { + if (rnum <= 0.5) + { + if (targ.gender < 1) + { + deathstring = " checks if his weapon is loaded\n"; + } + else + { + deathstring = " checks if her weapon is loaded\n"; + } + } + else + { + if (targ.gender < 1) + { + deathstring = " hates himself\n"; + } + else + { + deathstring = " hates herself\n"; + } + } + } + else + { + if (deathmsg == 41) + { + deathstring = "'s Laser Drone malfunctioned\n"; + } + else + { + if (deathmsg == 33) + { + if (targ.gender < 1) + { + deathstring = " chars himself with an incendiary rocket\n"; + } + else + { + deathstring = " chars herself with an incendiary rocket\n"; + } + } + else + { + if (deathmsg == 5) + { + deathstring = " tries to put the pin back in\n"; + } + else + { + if (deathmsg == 15) + { + if (attacker.playerclass == TF_FLARE_OFF) + { + deathstring = "'s JetPack malfunctions\n"; + } + else + { + if (targ.gender < 1) + { + deathstring = " bakes himself\n"; + } + else + { + deathstring = " bakes herself\n"; + } + } + } + else + { + if (deathmsg == 7 && targ.waterlevel > TF_FLARE_LIT) + { + if (targ.gender < 1) + { + bprint(TF_FLARE_OFF, " shocks himself to death.\n"); + } + else + { + bprint(TF_FLARE_OFF, " shocks herself to death.\n"); + } + return; + } + else + { + if (deathmsg == 40) + { + if (targ.gender < 1) + { + deathstring = " couldn't outrun his airspam\n"; + } + else + { + deathstring = " couldn't outrun her airspam\n"; + } + } + else + { + if (deathmsg == 201) + { + if (targ.gender < 1) + { + deathstring = " used his dispenser for all the wrong reasons\n"; + } + else + { + deathstring = " used her dispenser for all the wrong reasons\n"; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + bprint(TF_FLARE_OFF, deathstring); + return; + } + else + { + if (teamplay && attacker.team_no == targ.team_no && attacker.team_no > 0) + { + if (attacker.team_no > 0 && attacker.team_no == targ.team_no) + { + attacker.real_frags = attacker.real_frags - TF_FLARE_OFF; + } + else + { + attacker.real_frags = attacker.real_frags + TF_FLARE_OFF; + } + if (!(toggleflags & 128)) + { + attacker.frags = attacker.real_frags; + } + if (rnum < 0.25) + { + deathstring = " mows down a teammate\n"; + } + else + { + if (rnum < 0.5) + { + if (targ.gender < 1) + { + deathstring = " checks his glasses\n"; + } + else + { + deathstring = " checks her glasses\n"; + } + } + else + { + if (rnum < 0.75) + { + deathstring = " gets a frag for the other team\n"; + } + else + { + deathstring = " loses another friend\n"; + } + } + } + if (deathmsg == 23) + { + bprint(TF_FLARE_OFF, targ.netname); + bprint(TF_FLARE_OFF, " didn't survive the operation.\n"); + return; + } + bprint(TF_FLARE_OFF, attacker.netname); + bprint(TF_FLARE_OFF, deathstring); + return; + } + else + { + attacker.real_frags = attacker.real_frags + TF_FLARE_OFF; + logfrag(attacker, targ); + if (!(toggleflags & 128)) + { + attacker.frags = attacker.real_frags; + } + if (deathmsg == 43) + { + deathstring = " was bombed by "; + deathstring2 = "'s AirStrike call\n"; + } + if (deathmsg == 45) + { + deathstring = " gets too friendly with "; + deathstring2 = "'s Proxi grenade\n"; + } + if (deathmsg == 46) + { + deathstring = " gets shredded by "; + deathstring2 = "'s 20mm cannon\n"; + } + if (deathmsg == 8) + { + deathstring = " tries to hatch "; + deathstring2 = "'s grenade\n"; + } + else + { + if (deathmsg == 9) + { + deathstring = " gets perforated by "; + deathstring2 = "'s nail grenade\n"; + } + else + { + if (deathmsg == 10) + { + deathstring = " gets juiced by "; + deathstring2 = "'s Mirv grenade\n"; + } + else + { + if (deathmsg == 40) + { + deathstring = " is shreaded by "; + deathstring2 = "'s AirMirv\n"; + } + else + { + if (deathmsg == 11) + { + deathstring = " is shreaded by "; + deathstring2 = "'s pipebomb trap\n"; + } + else + { + if (deathmsg == 24) + { + deathstring = " sniffs to much of "; + deathstring2 = "'s glue\n"; + } + else + { + if (deathmsg == 30) + { + deathstring = "'s gets vaporized by "; + deathstring2 = "'s EMP grenade.\n"; + } + else + { + if (deathmsg == 35) + { + deathstring = "'s brain is fried by "; + deathstring2 = "'s flash grenade\n"; + } + else + { + if (deathmsg == 31) + { + deathstring = " stands near some ammo as "; + deathstring2 = "'s EMP nukes it\n"; + } + else + { + if (deathmsg == 12) + { + deathstring = " is nuked by "; + deathstring2 = "'s detpack\n"; + } + else + { + if (deathmsg == 16) + { + deathstring = " cut the red wire of "; + deathstring2 = "'s detpack\n"; + } + else + { + if (deathmsg == 13) + { + deathstring = " dies from "; + deathstring2 = "'s social disease\n"; + sound(targ, 0, "player/mpain6.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (deathmsg == 14) + { + deathstring = " escapes infection from "; + deathstring2 = " by dying first\n"; + } + else + { + if (deathmsg == 5) + { + deathstring = " swallows "; + deathstring2 = "'s grenade\n"; + if (targ.health < -40) + { + deathstring = " was split in half by "; + deathstring2 = "'s grenade\n"; + } + } + else + { + if (deathmsg == 6) + { + deathstring = " is reamed by "; + deathstring2 = "'s rocket\n"; + if (targ.health < -40) + { + deathstring = "'s bunghole was ripped by "; + deathstring2 = "'s rocket\n"; + } + } + else + { + if (deathmsg == 41) + { + deathstring = " was killed by "; + deathstring2 = "'s Laser Drone\n"; + if (targ.health < -40) + { + deathstring = " was vaporized by "; + deathstring2 = "'s Laser Drone\n"; + } + } + else + { + if (deathmsg == 42) + { + deathstring = " was torn up by an enemy Rottweiler"; + deathstring2 = "\n"; + } + else + { + if (deathmsg == 44) + { + deathstring = " was stopped by an enemy autoturret"; + deathstring2 = "\n"; + } + else + { + if (deathmsg == 15) + { + if (rnum < 0.2) + { + deathstring = " burns to death by "; + deathstring2 = "'s flame\n"; + } + else + { + if (rnum < 0.4) + { + deathstring = " is fried by "; + deathstring2 = "'s fire\n"; + } + else + { + if (rnum < 0.6) + { + deathstring = " is boiled alive by "; + deathstring2 = "'s heat\n"; + } + else + { + if (rnum < 0.8) + { + deathstring = " is cremated by "; + deathstring2 = "'s incinerator\n"; + } + else + { + deathstring = " is grilled by "; + deathstring2 = "'s BBQ\n"; + } + } + } + } + } + else + { + if (deathmsg == 17) + { + if (attacker.playerclass == 8) + { + deathstring = " was stabbed by "; + } + else + { + deathstring = " was slit open by "; + } + deathstring2 = "\n"; + } + else + { + if (deathmsg == 32) + { + deathstring = " was spanner-whacked by "; + deathstring2 = "\n"; + } + else + { + if (deathmsg == TF_FLARE_OFF) + { + deathstring = " was swiss-cheesed by "; + deathstring2 = "'s bird gun\n"; +// //shotgun_exp_gain (); + } + else + { + if (deathmsg == 2) + { + deathstring = "'s head is popped by "; + deathstring2 = "'s shotgun\n"; + } + else + { + if (deathmsg == 3) + { + deathstring = " was capped by "; + deathstring2 = "\n"; + } + else + { + if (deathmsg == 4) + { + deathstring = " was perforated by "; + deathstring2 = "'s nailgun\n"; + } + else + { + if (deathmsg == 7) + { + deathstring = " swims with "; + deathstring2 = "'s toaster\n"; + } + else + { + if (deathmsg == 21) + { + deathstring = " grappled with "; + deathstring2 = "\n"; + } + else + { + if (deathmsg == 18) + { + if (rnum <= 0.3) + { + deathstring = " gets a sucking chest wound from "; + deathstring2 = "\n"; + } + else + { + if (rnum <= 0.6) + { + deathstring = "'s liver is blown out by "; + deathstring2 = "\n"; + } + else + { + deathstring = "'s chest explodes from "; + deathstring2 = "'s sniper round\n"; + } + } + } + else + { + if (deathmsg == 29) + { + if (rnum <= 0.5) + { + deathstring = " is beheaded by "; + deathstring2 = "'s round\n"; + } + else + { + deathstring = "'s labotomized by "; + deathstring2 = "'s sniper round\n"; + } + } + else + { + if (deathmsg == 28) + { + deathstring = "'s legs explode open from "; + deathstring2 = "'s shot\n"; + } + else + { + if (deathmsg == 19) + { + deathstring = " enjoys "; + deathstring2 = "'s machinegun.\n"; + } + else + { + if (deathmsg == 20) + { + deathstring = " torso is removed by "; + deathstring2 = "\n"; + } + else + { + if (deathmsg == 22) + { + deathstring = " is ass-knifed by "; + deathstring2 = "\n"; + sound(targ, 0, "player/mpain6.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (deathmsg == 25) + { + deathstring = " is over-dosed by "; + deathstring2 = "'s ludes\n"; + } + else + { + if (deathmsg == 26) + { + deathstring = " spews juice thru holes from "; + deathstring2 = "'s railgun\n"; + } + else + { + if (deathmsg == 33) + { + deathstring = " gets cooked by "; + deathstring2 = "'s incendiary rocket\n"; + } + // pablo. spike trap death msg. + else + { + if (deathmsg == 200) + { + deathstring = "'s leg was amputated by "; + deathstring2 = "'s spike\n"; + } + // pablo. dispenser death msg. + else + { + if (deathmsg == 201) + { + deathstring = " thought "; + deathstring2 = "'s dispenser was a mechanical bull\n"; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + bprint(TF_FLARE_OFF, targ.netname); + bprint(TF_FLARE_OFF, deathstring); + bprint(TF_FLARE_OFF, attacker.netname); + bprint(TF_FLARE_OFF, deathstring2); + } + } + return; + } + else + { + if (attacker.classname == "building_sentrygun") + { + if (targ == attacker.real_owner) + { + if (deathmsg == 34) + { + if (targ.gender < 1) + { + deathstring = " gets wasted by his sentry gun\nDumb-ass!\n"; + } + else + { + deathstring = " gets wasted by her sentry gun\nDumb-ass!\n"; + } + } + else + { + if (deathmsg == 27) + { + if (targ.gender < 1) + { + deathstring = " crossed his sentry gun's line of fire\n"; + } + else + { + deathstring = " crossed her sentry gun's line of fire\n"; + } + } + } + bprint(TF_FLARE_OFF, targ.netname); + bprint(TF_FLARE_OFF, deathstring); + } + else + { + attacker.real_owner.real_frags = attacker.real_owner.real_frags + TF_FLARE_OFF; + logfrag(attacker.real_owner, targ); + if (!(toggleflags & 128)) + { + attacker.real_owner.frags = attacker.real_owner.real_frags; + } + if (deathmsg == 34) + { + deathstring = " is creamed by "; + deathstring2 = "'s sentry gun\n"; + } + else + { + if (deathmsg == 27) + { + deathstring = "'s spine is extracted by "; + deathstring2 = "'s sentry gun\n"; + } + } + bprint(TF_FLARE_OFF, targ.netname); + bprint(TF_FLARE_OFF, deathstring); + bprint(TF_FLARE_OFF, attacker.real_owner.netname); + bprint(TF_FLARE_OFF, deathstring2); + } + } + else + { + logfrag(targ, targ); + targ.real_frags = targ.real_frags - TF_FLARE_OFF; + if (!(toggleflags & 128)) + { + targ.frags = targ.real_frags; + } + rnum = targ.watertype; + bprint(2, targ.netname); + if (rnum == -3) + { + if (random() < 0.5) + { + deathstring = " can't swim worth a crap!\n"; + } + else + { + deathstring = " can't breathe water\n"; + } + } + else + { + if (rnum == -4) + { + if (random() < 0.5) + { + deathstring = " gulped a load of slime\n"; + } + else + { + deathstring = " can't exist on slime alone\n"; + } + } + else + { + if (rnum == -5) + { + if (targ.health < -15) + { + deathstring = " burst into flames\n"; + } + else + { + if (random() < 0.5) + { + deathstring = " turned into hot slag\n"; + } + else + { + deathstring = " visits the Hell fires\n"; + } + } + } + else + { + if (attacker.classname == "monster_dog") + { + deathstring = " was mauled by a Rottweiler\n"; + } + else + { + if (attacker.classname == "explo_box") + { + deathstring = " blew up\n"; + } + else + { + if (attacker.solid == 4 && attacker != world) + { + deathstring = " was crushed\n"; + } + else + { + if (targ.deathtype == "falling") + { + targ.deathtype = ""; + if (targ.gender < 1) + { + deathstring = " fell to his death\n"; + } + else + { + deathstring = " fell to her death\n"; + } + + } + else + { + if (attacker.classname == "trap_shooter" || attacker.classname == "trap_spikeshooter") + { + deathstring = " was shot\n"; + } + else + { + if (attacker.classname == "fireball") + { + deathstring = " ate a lavaball\n"; + } + else + { + if (attacker.classname == "trigger_changelevel") + { + deathstring = " tried to leave\n"; + } + else + { + deathstring = " died\n"; + } + } + } + } + } + } + } + } + } + } + bprint(TF_FLARE_OFF, deathstring); + } + } + } + else + { + if (targ.classname == "building_sentrygun") + { + if (attacker.classname == "teledeath") + { + bprint(TF_FLARE_OFF, targ.real_owner.netname); + bprint(TF_FLARE_OFF, "'s sentrygun was telefragged by "); + bprint(TF_FLARE_OFF, attacker.owner.netname); + bprint(TF_FLARE_OFF, "\n"); + return; + } + if (attacker.classname == "player") + { + if (attacker == targ.real_owner) + { + bprint(TF_FLARE_OFF, targ.real_owner.netname); + bprint(TF_FLARE_OFF, " selfdistructs his sentrygun\n"); + return; + } + bprint(TF_FLARE_OFF, targ.real_owner.netname); + bprint(TF_FLARE_OFF, "'s sentrygun was no match for "); + bprint(TF_FLARE_OFF, attacker.netname); + bprint(TF_FLARE_OFF, "\n"); + logfrag(attacker, targ.real_owner); + attacker.real_frags = attacker.real_frags + TF_FLARE_OFF; + // pablo. no frags when teamscores is on. + if (!(toggleflags & 128)) + { + attacker.frags = attacker.real_frags; + } + // + if (attacker.team_no > 0 && attacker.team_no != targ.real_owner.team_no) + { + attacker.real_frags = attacker.real_frags + TF_FLARE_OFF; + logfrag(attacker, targ.real_owner); + if (!(toggleflags & 128)) + { + attacker.frags = attacker.real_frags; + } + } + return; + } + } + } +}; + +void(entity attacker) fertimer = +{ + attacker.fertracker = 1; +// self.num_kills = 1; + newmis = spawn(); + newmis.enemy = attacker; + newmis.classname = "timer"; + newmis.nextthink = time + 3; + newmis.think = ferdisplay; +}; + +void(entity te) ferdisplay = +{ + local entity playernamefer; + playernamefer = self.enemy; + playernamefer.fertracker = 0; + + if (playernamefer.classname != "player") + { + dremove (self); + return; + } + if (playernamefer.num_kills > 1) + { + local entity head; + head = nextent(world); + while (head != world) + { + if (head.classname == "player") { stuffcmd(head, "play misc/secret.wav \n"); } + head = nextent(head); + } + local string fercount; + fercount = ftos(playernamefer.num_kills); + bprint (1, playernamefer.netname); + bprint (1, " got a "); + bprint (1, fercount); + bprint (1, "-fer!"); + bprint (1, "\n"); + playernamefer.num_kills = 0; + + } + playernamefer.num_kills = 0; + dremove (self); +}; diff --git a/combat.pqc b/combat.pqc new file mode 100644 index 0000000..e40ab08 --- /dev/null +++ b/combat.pqc @@ -0,0 +1,746 @@ +void () T_MissileTouch; +void () info_player_start; +void (entity targ,entity attacker) ClientObituary; +void (entity Goal,entity AP,float addb) DoResults; +float (entity Goal,entity AP) Activated; +float (entity targ,entity attacker,float damage) TeamEqualiseDamage; + +entity (float gno) Findgoal; + +/*entity (float gno) Findgoal = +{ + local entity tg; + local string st; + + tg = find (world, classname, "info_tfgoal"); + while (tg) + { + if ((tg.goal_no == gno)) + { + return (tg); + } + tg = find (tg, classname, "info_tfgoal"); + } + dprint ("Could not find a goal with a goal_no of "); + st = ftos (gno); + dprint (st); + dprint (".\n"); + }; +*/ + + void() monster_death_use = + { + if (self.flags & TF_FLARE_OFF) + { + self.flags = self.flags - TF_FLARE_OFF; + } + if (self.flags & 2) + { + self.flags = self.flags - 2; + } + if (!(self.target)) + { + return; + } + activator = self.enemy; + SUB_UseTargets(); + }; + + float(entity targ, entity inflictor) CanDamage = + { + if (targ.movetype == 7) + { + traceline(inflictor.origin, 0.5 * (targ.absmin + targ.absmax), TF_FLARE_OFF, self); + if (trace_fraction == TF_FLARE_OFF) + { + return TF_FLARE_OFF; + } + if (trace_ent == targ) + { + return TF_FLARE_OFF; + } + return TF_FLARE_LIT; + } + traceline(inflictor.origin, targ.origin, TF_FLARE_OFF, self); + if (trace_fraction == TF_FLARE_OFF) + { + return TF_FLARE_OFF; + } + traceline(inflictor.origin, targ.origin + '15 15 0', TF_FLARE_OFF, self); + if (trace_fraction == TF_FLARE_OFF) + { + return TF_FLARE_OFF; + } + traceline(inflictor.origin, targ.origin + '-15 -15 0', TF_FLARE_OFF, self); + if (trace_fraction == TF_FLARE_OFF) + { + return TF_FLARE_OFF; + } + traceline(inflictor.origin, targ.origin + '-15 15 0', TF_FLARE_OFF, self); + if (trace_fraction == TF_FLARE_OFF) + { + return TF_FLARE_OFF; + } + traceline(inflictor.origin, targ.origin + '15 -15 0', TF_FLARE_OFF, self); + if (trace_fraction == TF_FLARE_OFF) + { + return TF_FLARE_OFF; + } + return TF_FLARE_LIT; + }; + + void(entity targ, entity attacker) Killed = + { + local entity oself; + oself = self; + self = targ; + if (self.health < -99) + { + self.health = -99; + } + if (self.movetype == 7 || self.movetype == TF_FLARE_LIT) + { + self.th_die(); + self = oself; + return; + } + self.enemy = attacker; + if (self.flags & 32) + { + killed_monsters = killed_monsters + TF_FLARE_OFF; + WriteByte(2, 27); + } + ClientObituary(self, attacker); + self.takedamage = TF_FLARE_LIT; + self.touch = SUB_Null; + monster_death_use(); + self.th_die(); + self = oself; + }; + + void(entity targ, entity inflictor, entity attacker, float damage) T_Damage = + { + local vector dir; + local entity oldself; + local entity te; + local float save; + local float take; + if (!(targ.takedamage)) + { + return; + } + if (attacker.classname == "player") + { + damage = damage * 0.9; + } + if (attacker.classname == "player") + { + if (targ.classname != "player" && targ.classname != "bot") + { + if (!Activated(targ, attacker)) + { + if (targ.else_goal != TF_FLARE_LIT) + { + te = Findgoal(targ.else_goal); + if (te) + { + DoResults(te, attacker, targ.goal_result & 2); + } + } + return; + } + } + } + + if (((((targ.classname == "player") || (targ.classname == "building_sentrygun")) || (targ.classname == "building_dispenser")) || (targ.classname == "bot"))) + { + if (((attacker.stats_on == 1) && (attacker.team_no != targ.team_no))) + { + oldself = self; + self = attacker; + if ((deathmsg == 28)) + { + Stats_Hit (33); + } + else + { + if ((deathmsg == 29)) + { + Stats_Hit (34); + } + } + self = oldself; + } + } + + damage_attacker = attacker; + if (attacker.super_damage_finished > time) + { + damage = damage * 4; + } + if (teamplay & (64 | 32)) + { + damage = TeamEqualiseDamage(targ, attacker, damage); + } + save = ceil(targ.armortype * damage); + if (save >= targ.armorvalue) + { + save = targ.armorvalue; + targ.armortype = TF_FLARE_LIT; + targ.armorclass = TF_FLARE_LIT; + targ.items = targ.items - (targ.items & (8192 | 16384 | 32768)); + } + targ.armorvalue = targ.armorvalue - save; + take = ceil(damage - save); + if (targ.flags & 8) + { + targ.dmg_take = targ.dmg_take + take; + targ.dmg_save = targ.dmg_save + save; + targ.dmg_inflictor = inflictor; + } + if (inflictor != world && targ.movetype == 3) + { + targ.immune_to_check = time + damage / 20; + dir = targ.origin - (inflictor.absmin + inflictor.absmax) * 0.5; + dir = normalize(dir); + if (targ.jet_time < time) + { +if ((((damage < 60) & ((attacker.classname == "player") & (targ.classname == "player"))) & (attacker.netname != targ.netname))) + { + targ.velocity = targ.velocity + dir * damage * 11; + } + else + { + targ.velocity = targ.velocity + dir * damage * 8; + } + if (rj > TF_FLARE_OFF && (attacker.classname == "player" && targ.classname == "player") && attacker.netname == targ.netname) + { + targ.velocity = targ.velocity + dir * damage * rj; + } + } + } + if (targ.flags & 64) + { + return; + } + if (targ.invincible_finished >= time) + { + if (self.invincible_sound < time) + { + sound(targ, 3, "items/protect3.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.invincible_sound = time + 2; + } + return; + } + if (attacker.classname == "player" && (targ.classname == "player" || targ.classname == "building_sentrygun")) + { + if (targ.team_no > TF_FLARE_LIT && targ.team_no == attacker.team_no && targ != attacker) + { + if (teamplay & 16) + { + return; + } + else + { + if (teamplay & 8) + { + take = take / 2; + } + } + } + } + if (take < TF_FLARE_OFF) + { + take = TF_FLARE_OFF; + } + targ.health = targ.health - take; + if (targ.armorvalue < TF_FLARE_OFF) + { + targ.armorclass = TF_FLARE_LIT; + targ.armorvalue = TF_FLARE_LIT; + } + if (targ.health <= TF_FLARE_LIT) + { + Killed(targ, attacker); + return; + } + oldself = self; + self = targ; + if (self.th_pain) + { + self.th_pain(attacker, take); + if (skill >= 3) + { + self.pain_finished = time + 5; + } + } + self = oldself; + }; + + void(entity targ, entity inflictor, entity attacker, float damage, float T_flags, float T_AttackType) TF_T_Damage = + { + local vector dir; + local entity oldself; + local entity te; + local float save; + local float take; + + if (!(targ.takedamage)) + { + return; + } + if (attacker.classname == "player") + { + damage = damage * 0.9; + } + if (attacker.classname == "player") + { + if (targ.classname != "player" && targ.classname != "bot" && targ.classname != "building_sentrygun" && targ.classname != "building_dispenser") + { + if (!Activated(targ, attacker)) + { + if (targ.else_goal != TF_FLARE_LIT) + { + te = Findgoal(targ.else_goal); + if (te) + { + DoResults(te, attacker, targ.goal_result & 2); + } + } + return; + } + } + } + + if (((((targ.classname == "player") || (targ.classname == "building_sentrygun")) || (targ.classname == "building_dispenser")) || (targ.classname == "bot"))) + { + if (((attacker.stats_on == 1) && (attacker.team_no != targ.team_no))) + { + oldself = self; + self = attacker; + if ((deathmsg == 1)) + { + Stats_Hit (128); + } + else + { + if ((deathmsg == 2)) + { + Stats_Hit (256); + } + else + { + if ((deathmsg == 3)) + { + Stats_Hit (512); + } + else + { + if ((deathmsg == 4)) + { + Stats_Hit (1024); + } + else + { + if ((deathmsg == 5)) + { + Stats_Hit (2048); + } + else + { + if ((deathmsg == 6)) + { + Stats_Hit (8192); + } + else + { + if ((deathmsg == 8)) + { + Stats_Hit (666); + } + else + { + if ((deathmsg == 11)) + { + Stats_Hit (2054); + } + else + { + if ((deathmsg == 17)) + { + Stats_Hit (8); + } + else + { + if ((deathmsg == 18)) + { + Stats_Hit (32); + } + else + { + if ((deathmsg == 19)) + { + Stats_Hit (64); + } + else + { + if ((deathmsg == 20)) + { + Stats_Hit (32768); + } + else + { + if ((deathmsg == 25)) + { + Stats_Hit (262144); + } + else + { + if ((deathmsg == 26)) + { + Stats_Hit (524288); + } + else + { + if ((deathmsg == 46)) + { + Stats_Hit (32768); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + self = oldself; + } + } + + damage_attacker = attacker; + if (attacker.super_damage_finished > time) + { + damage = damage * 4; + } + if (teamplay != 1 && teamplay != 2) + { + if (targ.team_no == attacker.team_no && targ != attacker) + { + damage = TF_FLARE_LIT; + } + } + if (teamplay & (64 | 32)) + { + damage = TeamEqualiseDamage(targ, attacker, damage); + } + if (targ.armorclass != TF_FLARE_LIT && T_AttackType != TF_FLARE_LIT) + { + if (targ.armorclass & TF_FLARE_OFF && T_AttackType == TF_FLARE_OFF) + { + damage = floor(damage * 0.5); + } + else + { + if (targ.armorclass & 2 && T_AttackType == 2) + { + damage = floor(damage * 0.5); + } + else + { + if (targ.armorclass & 4 && T_AttackType == 4) + { + damage = floor(damage * 0.5); + } + else + { + if (targ.armorclass & 8 && T_AttackType == 8) + { + damage = floor(damage * 0.5); + } + else + { + if (targ.armorclass & 16 && T_AttackType == 16) + { + damage = floor(damage * 0.5); + } + } + } + } + } + } + if (T_flags & TF_FLARE_OFF) + { + take = damage; + save = TF_FLARE_LIT; + } + else + { + save = ceil(targ.armortype * damage); + if (save >= targ.armorvalue) + { + save = targ.armorvalue; + targ.armortype = TF_FLARE_LIT; + targ.armorclass = TF_FLARE_LIT; + targ.items = targ.items - (targ.items & (8192 | 16384 | 32768)); + } + targ.armorvalue = targ.armorvalue - save; + take = ceil(damage - save); + } + if (targ.flags & 8) + { + targ.dmg_take = targ.dmg_take + take; + targ.dmg_save = targ.dmg_save + save; + targ.dmg_inflictor = inflictor; + } + if (inflictor != world && targ.movetype == 3) + { + if (deathmsg != 9) + { + if (targ.playerclass != 6 && targ.jet_time < time) + { + targ.immune_to_check = time + damage / 20; + dir = targ.origin - (inflictor.absmin + inflictor.absmax) * 0.5; + dir = normalize(dir); +if ((((damage < 60) & ((attacker.classname == "player") & (targ.classname == "player"))) & (attacker.netname != targ.netname))) + { + if (attacker.playerclass == 5) + { + targ.velocity = targ.velocity + dir * damage * 3; + } + else + { + targ.velocity = targ.velocity + dir * damage * 11; + } + } + else + { + targ.velocity = targ.velocity + dir * damage * 8; + } + if (rj > TF_FLARE_OFF && (attacker.classname == "player" && targ.classname == "player") && attacker.netname == targ.netname) + { + targ.velocity = targ.velocity + dir * damage * rj; + } + } + } + } + if (targ.flags & 64) + { + return; + } + if (targ.invincible_finished >= time) + { + if (self.invincible_sound < time) + { + sound(targ, 3, "items/protect3.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.invincible_sound = time + 2; + } + return; + } + if (attacker.classname == "player" && (targ.classname == "player" || targ.classname == "building_sentrygun")) + { + if (T_flags & 2) + { + if (targ.team_no > TF_FLARE_LIT && targ.team_no == attacker.team_no && targ != attacker) + { + if (teamplay & 4) + { + return; + } + else + { + if (teamplay & 2) + { + take = take / 2; + } + } + } + } + else + { + if (targ.team_no > TF_FLARE_LIT && targ.team_no == attacker.team_no && targ != attacker) + { + if (teamplay & 16) + { + return; + } + else + { + if (teamplay & 8) + { + take = take / 2; + } + } + } + } + } + if (T_flags & 4) + { + if (targ == attacker) + { + return; + } + } + if (take < TF_FLARE_OFF) + { + take = TF_FLARE_OFF; + } + targ.health = targ.health - take; + if (targ.armorvalue < TF_FLARE_OFF) + { + targ.armorclass = TF_FLARE_LIT; + targ.armorvalue = TF_FLARE_LIT; + } + + if ((((deathmsg == 34) && (targ.classname == "building_sentrygun")) && (targ.health <= 0))) + { + if (((targ.goalentity.classname == "bot") || (targ.goalentity.classname == "airmirv"))) + { + targ.goalentity = targ.goalentity.owner; + } + bprint (1, targ.real_owner.netname); + bprint (1, "'s sentrygun blew itself up thanks to "); + bprint (1, targ.goalentity.netname); + bprint (1, "\n"); + targ.goalentity.real_frags = (targ.goalentity.real_frags + 2); + logfrag (targ.goalentity, targ.real_owner); + if (!(toggleflags & 128)) + { + targ.goalentity.frags = targ.goalentity.real_frags; + } + } + + if (targ.health <= TF_FLARE_LIT) + { + if (inflictor.classname == "detpack" && inflictor.weaponmode == TF_FLARE_OFF && inflictor.enemy == targ) + { + deathmsg = 16; + } + Killed(targ, attacker); + return; + } + oldself = self; + self = targ; + if (self.th_pain) + { + self.th_pain(attacker, take); + if (skill >= 3) + { + self.pain_finished = time + 5; + } + } + self = oldself; + }; + + void(entity inflictor, entity attacker, float damage, entity ignore) T_RadiusDamage = + { + local float points; + local entity head; + local entity te; + local vector org; + head = findradius(inflictor.origin, damage + 40); + while (head) + { + if (head != ignore) + { + if (head.classname == "info_tfgoal") + { + if (inflictor.classname == "detpack") + { + if (head.goal_activation & 2 && head.search_time == TF_FLARE_LIT) + { + traceline(inflictor.origin, head.origin, TF_FLARE_OFF, inflictor); + if (trace_fraction == TF_FLARE_OFF) + { + if (Activated(head, attacker)) + { + DoResults(head, attacker, TF_FLARE_OFF); + } + else + { + if (head.else_goal != TF_FLARE_LIT) + { + te = Findgoal(head.else_goal); + if (te) + { + DoResults(te, attacker, head.goal_result & 2); + } + } + return; + } + } + } + } + } + else + { + if (head.takedamage) + { + org = head.origin + (head.mins + head.maxs) * 0.5; + points = 0.5 * vlen(inflictor.origin - org); + if (points < TF_FLARE_LIT) + { + points = TF_FLARE_LIT; + } + points = damage - points; + if (head == attacker) + { + points = points * 0.75; + } + if (points > TF_FLARE_LIT) + { + if (CanDamage(head, inflictor)) + { + if (head.classname == "monster_shambler") + { + T_Damage(head, inflictor, attacker, points * 0.5); + } + else + { + TF_T_Damage(head, inflictor, attacker, points, 2, 4); + } + } + } + } + } + } + head = head.chain; + } + }; + + void(entity attacker, float damage) T_BeamDamage = + { + local float points; + local entity head; + head = findradius(attacker.origin, damage + 40); + while (head) + { + if (head.takedamage) + { + points = 0.5 * vlen(attacker.origin - head.origin); + if (points < TF_FLARE_LIT) + { + points = TF_FLARE_LIT; + } + points = damage - points; + if (head == attacker) + { + points = points * 0.5; + } + if (points > TF_FLARE_LIT) + { + if (CanDamage(head, attacker)) + { + T_Damage(head, attacker, attacker, points); + } + } + } + head = head.chain; + } + }; diff --git a/coop.pqc b/coop.pqc new file mode 100644 index 0000000..ee40190 --- /dev/null +++ b/coop.pqc @@ -0,0 +1,168 @@ +void() DroppedKeyThink = +{ + self.think = SUB_Null; + self.touch = key_touch; + self.owner = world; +}; + +/*void() DropKey = +{ + if (self.items & 131072 || (self.items & 262144)) + { + newmis = spawn(); + if (self.items & 131072) + { + self.items = self.items - (self.items & 131072); + newmis.items = 131072; + if (world.worldtype == TF_FLARE_LIT) + { + setmodel(newmis, "progs/w_s_key.mdl"); + newmis.netname = "silver key"; + newmis.noise = "misc/medkey.wav"; + } + else + { + if (world.worldtype == TF_FLARE_OFF) + { + setmodel(newmis, "progs/m_s_key.mdl"); + newmis.netname = "silver runekey"; + newmis.noise = "misc/runekey.wav"; + } + else + { + if (world.worldtype == 2) + { + setmodel(newmis, "progs/b_s_key.mdl"); + newmis.netname = "silver keycard"; + newmis.noise = "misc/basekey.wav"; + } + } + } + } + else + { + if (self.items & 262144) + { + self.items = self.items - (self.items & 262144); + newmis.items = 262144; + if (world.worldtype == TF_FLARE_LIT) + { + setmodel(newmis, "progs/w_g_key.mdl"); + newmis.netname = "gold key"; + newmis.noise = "misc/medkey.wav"; + } + else + { + if (world.worldtype == TF_FLARE_OFF) + { + setmodel(newmis, "progs/m_g_key.mdl"); + newmis.netname = "gold runekey"; + newmis.noise = "misc/runekey.wav"; + } + else + { + if (world.worldtype == 2) + { + setmodel(newmis, "progs/b_g_key.mdl"); + newmis.netname = "gold keycard"; + newmis.noise = "misc/basekey.wav"; + } + } + } + } + } + newmis.owner = self; + newmis.touch = SUB_Null; + setorigin(newmis, self.origin + '0 0 16'); + makevectors(self.v_angle); + newmis.velocity = normalize(v_forward) * 300 + '0 0 200'; + newmis.movetype = 6; + newmis.solid = TF_FLARE_OFF; + newmis.deadflag = TF_FLARE_OFF; + setsize(newmis, '-16 -16 -24', '16 16 32'); + newmis.think = DroppedKeyThink; + newmis.nextthink = time + 1.5; + } + else + { + sprint(self, 2, "You don't have a key\n"); + } +};*/ + +float() DoorShouldOpen = +{ + local entity ptr; + local float plyrcount; + local entity plyr1; + local entity plyr2; + if (coop != 2) + { + return TF_FLARE_OFF; + } + plyrcount = TF_FLARE_LIT; + ptr = find(world, classname, "player"); + while (ptr != world) + { + if (!(ptr.tf_items & self.items) && ptr.playerclass != TF_FLARE_LIT && ptr.solid != TF_FLARE_LIT && ptr.model != string_null) + { + plyrcount = plyrcount + TF_FLARE_OFF; + if (plyrcount == TF_FLARE_OFF) + { + plyr1 = ptr; + } + else + { + if (plyrcount == 2) + { + plyr2 = ptr; + } + } + } + ptr = find(ptr, classname, "player"); + } + if (plyrcount != TF_FLARE_LIT) + { + if (plyrcount == TF_FLARE_OFF) + { + bprint(2, plyr1.netname); + bprint(2, " needs"); + } + else + { + if (plyrcount == 2) + { + bprint(2, plyr1.netname); + bprint(2, " and "); + bprint(2, plyr2.netname); + bprint(2, " need"); + } + else + { + bprint(2, "More players need"); + } + } + bprint(2, " to unlock the "); + if (self.items & 131072) + { + bprint(2, "silver"); + } + else + { + bprint(2, "gold"); + } + bprint(2, " door\n"); + return TF_FLARE_LIT; + } + bprint(2, "The "); + if (self.items & 131072) + { + bprint(2, "silver"); + } + else + { + bprint(2, "gold"); + } + bprint(2, " door has been unlocked\n"); + return TF_FLARE_OFF; +}; + diff --git a/ctf.pqc b/ctf.pqc new file mode 100644 index 0000000..1cf84d6 --- /dev/null +++ b/ctf.pqc @@ -0,0 +1,99 @@ +void () TeamFortress_CTF_FlagInfo = +{ + local entity _l_11235; + + _l_11235 = Finditem (1); + if ((_l_11235.goal_state == 1)) + { + if ((self == _l_11235.owner)) + { + sprint (self, 2, "You have the enemy flag. "); + } + else + { + sprint (self, 2, _l_11235.owner.netname); + sprint (self, 2, " has"); + if ((self.team_no == 1)) + { + sprint (self, 2, " your flag. "); + } + else + { + sprint (self, 2, " the enemy flag. "); + } + } + } + else + { + if ((_l_11235.origin != _l_11235.oldorigin)) + { + if ((self.team_no == 1)) + { + sprint (self, 2, "Your flag is lying about. "); + } + else + { + sprint (self, 2, "The enemy flag is lying about. "); + } + } + else + { + if ((self.team_no == 1)) + { + sprint (self, 2, "Your flag is in your base. "); + } + else + { + sprint (self, 2, "The enemy flag is in their base. "); + } + } + } + _l_11235 = Finditem (2); + if ((_l_11235.goal_state == 1)) + { + if ((self == _l_11235.owner)) + { + sprint (self, 2, "You have the enemy flag.\n"); + } + else + { + sprint (self, 2, _l_11235.owner.netname); + sprint (self, 2, " has"); + if ((self.team_no == 2)) + { + sprint (self, 2, " your flag.\n"); + } + else + { + sprint (self, 2, " the enemy flag.\n"); + } + } + } + else + { + if ((_l_11235.origin != _l_11235.oldorigin)) + { + if ((self.team_no == 2)) + { + sprint (self, 2, "Your flag is lying about.\n"); + } + else + { + sprint (self, 2, "The enemy flag is lying about.\n"); + } + } + else + { + if ((self.team_no == 2)) + { + sprint (self, 2, "Your flag is in your base.\n"); + } + else + { + sprint (self, 2, "The enemy flag is in their base.\n"); + } + } + } +}; + + diff --git a/debug.pqc b/debug.pqc new file mode 100644 index 0000000..c596c6f --- /dev/null +++ b/debug.pqc @@ -0,0 +1,25 @@ +void(entity te) dremove = +{ + if (te == world) + { + dprint("***BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG***\n"); + dprint("WORLD has nearly been removed. Don't worry\n"); + dprint("***BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG***\n"); + return; + } + if (te.is_removed == TF_FLARE_OFF) + { + return; + } + te.is_removed = TF_FLARE_OFF; + remove(te); +}; + +void() display_location = +{ + local string st; + st = vtos(self.origin); + sprint(self, 2, st); + sprint(self, 2, "\n"); +}; + diff --git a/defs.pqc b/defs.pqc new file mode 100644 index 0000000..b95f092 --- /dev/null +++ b/defs.pqc @@ -0,0 +1,646 @@ +//clan stuff +#define clan_progs +#define fte_rankings // comment this out if not running fte server or dont want rankings enabled +#define new_solid // rocket hitting invisible wall fix (may be buggy, comment this out if it is..) + +#define WEAP_SNIPER_RIFLE_MAX_TIME 3 // PZ - Randomer's charge-up fix +#define WEAP_SNIPER_RIFLE_MIN_DAMG 50 // +#define WEAP_SNIPER_RIFLE_MAX_DAMG 400 // + +#define PC_SPY_MAXSPEED 320 + +#define TL_ANY_SOLID 0 +#define TL_BSP_ONLY 1 // will hit BSP only + +//menus +#define MENU_CLAN_PREMATCH 45 + + +/* +============================================================================== + + SOURCE FOR GLOBALVARS_T C STRUCTURE + +============================================================================== +*/ + +// +// system globals +// +entity self; +entity other; +entity world; +float time; +float frametime; + + +entity newmis; // if this is set, the entity that just + // run created a new missile that should + // be simulated immediately + + +float force_retouch; // force all entities to touch triggers + // next frame. this is needed because + // non-moving things don't normally scan + // for triggers, and when a trigger is + // created (like a teleport trigger), it + // needs to catch everything. + // decremented each frame, so set to 2 + // to guarantee everything is touched +string mapname; + + + + + + + +float serverflags; // propagated from level to level, used to + // keep track of completed episodes + +float total_secrets; +float total_monsters; + +float found_secrets; // number of secrets found +float killed_monsters; // number of monsters killed + + +// spawnparms are used to encode information about clients across server +// level changes +float parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8, parm9, parm10, parm11, parm12, parm13, parm14, parm15, parm16; + +// +// global variables set by built in functions +// +vector v_forward, v_up, v_right; // set by makevectors() + +// set by traceline / tracebox +float trace_allsolid; +float trace_startsolid; +float trace_fraction; +vector trace_endpos; +vector trace_plane_normal; +float trace_plane_dist; +entity trace_ent; +float trace_inopen; +float trace_inwater; + +entity msg_entity; // destination of single entity writes + +// +// required prog functions +// +void() main; // only for testing + +void() StartFrame; + +void() PlayerPreThink; +void() PlayerPostThink; + +void() ClientKill; +void() ClientConnect; +void() PutClientInServer; // call after setting the parm1... parms +void() ClientDisconnect; + +void() SetNewParms; // called when a client first connects to + // a server. sets parms so they can be + // saved off for restarts + +void() SetChangeParms; // call to set parms for self so they can + // be saved for a level transition + + +//================================================ +void end_sys_globals; // flag for structure dumping +//================================================ + +/* +============================================================================== + + SOURCE FOR ENTVARS_T C STRUCTURE + +============================================================================== +*/ + +// +// system fields (*** = do not set in prog code, maintained by C code) +// +.float modelindex; // *** model index in the precached list +.vector absmin, absmax; // *** origin + mins / maxs + +.float ltime; // local time for entity + +.float lastruntime; // *** to allow entities to run out of sequence + + +.float movetype; +.float solid; + +.vector origin; // *** +.vector oldorigin; // *** +.vector velocity; +.vector angles; +.vector avelocity; + + + + + +.string classname; // spawn function +.string model; +.float frame; +.float skin; +.float effects; + +.vector mins, maxs; // bounding box extents reletive to origin +.vector size; // maxs - mins + +.void() touch; +.void() use; +.void() think; +.void() blocked; // for doors or plats, called when can't push other + +.float nextthink; +.entity groundentity; + +// stats +.float health; +.float frags; +.float weapon; // one of the IT_SHOTGUN, etc flags +.string weaponmodel; +.float weaponframe; +.float currentammo; +.float ammo_shells, ammo_nails, ammo_rockets, ammo_cells; + +.float items; // bit flags + +.float takedamage; +.entity chain; +.float deadflag; + +.vector view_ofs; // add to origin to get eye point + + +.float button0; // fire +.float button1; // use +.float button2; // jump + +.float impulse; // weapon changes + +.float fixangle; +.vector v_angle; // view / targeting angle for players + + + + + +.string netname; + +.entity enemy; + +.float flags; + +.float colormap; +.float team; + +.float max_health; // players maximum health is stored here + +.float teleport_time; // don't back up + +.float armortype; // save this fraction of incoming damage +.float armorvalue; + +.float waterlevel; // 0 = not in, 1 = feet, 2 = wast, 3 = eyes +.float watertype; // a contents value + +.float ideal_yaw; +.float yaw_speed; + +.entity aiment; + +.entity goalentity; // a movetarget or an enemy + +.float spawnflags; + +.string target; +.string targetname; + +// damage is accumulated through a frame. and sent as one single +// message, so the super shotgun doesn't generate huge messages +.float dmg_take; +.float dmg_save; +.entity dmg_inflictor; + +.entity owner; // who launched a missile +.vector movedir; // mostly for doors, but also used for waterjump + +.string message; // trigger messages + +.float sounds; // either a cd track number or sound number + +.string noise, noise1, noise2, noise3; // contains names of wavs to play + +//================================================ +void end_sys_fields; // flag for structure dumping +//================================================ + +/* +============================================================================== + + VARS NOT REFERENCED BY C CODE + +============================================================================== +*/ + +float movedist /* = 0 */; +string string_null /* = "" */; +//float empty_float /* = 0 */; +entity activator; +entity damage_attacker; +float framecount /* = 0 */; +float skill /* = 0 */; +float teamplay /* = 0 */; +float timelimit /* = 0 */; +float fraglimit /* = 0 */; +float deathmatch /* = 0 */; +//.string wad; +.string map; +.float worldtype; +.string killtarget; +.float light_lev; +.float style; +.void() th_stand; +.void() th_walk; +.void() th_run; +.void() th_missile; +.void() th_melee; +.void(entity attacker, float damage) th_pain; +.void() th_die; +.entity oldenemy; +.float speed; +.float lefty; +.float search_time; +.float attack_state; +.float walkframe; +.float attack_finished; +.float pain_finished; +.float invincible_finished; +.float invisible_finished; +.float super_damage_finished; +.float radsuit_finished; +.float invincible_time; +.float invincible_sound; +.float invisible_time; +.float invisible_sound; +.float super_time; +.float super_sound; +.float rad_time; +.float fly_sound; +.float axhitme; +.float show_hostile; +.float jump_flag; +.float swim_flag; +.float air_finished; +.float bubble_count; +.string deathtype; +.string mdl; +.vector mangle; +.float t_length; +.float t_width; +.vector dest; +.vector dest1; +.vector dest2; +.float wait; +.float delay; +.entity trigger_field; +.string noise4; +.float pausetime; +.entity movetarget; +.float aflag; +.float dmg; +.float cnt; +.void() think1; +.vector finaldest; +.vector finalangle; +.float count; +.float lip; +.float state; +.vector pos1; +.vector pos2; +.float height; +.float waitmin; +.float waitmax; +.float distance; +.float volume; +void (vector ang) makevectors = #1; +void (entity e, vector o) setorigin = #2; +void (entity e, string m) setmodel = #3; +void (entity e, vector min, vector max) setsize = #4; +void () break = #6; +float () random = #7; +void (entity e, float chan, string samp, float vol, float atten) sound = #8; +vector (vector v) normalize = #9; +void (string e) error = #10; +void (string e) objerror = #11; +float (vector v) vlen = #12; +float (vector v) vectoyaw = #13; +entity () spawn = #14; +void (entity e) remove = #15; +void (vector v1, vector v2, float nomonsters, entity forent) traceline = #16; +entity () checkclient = #17; +entity (entity start, .string fld, string match) find = #18; +string (string s) precache_sound = #19; +string (string s) precache_model = #20; +void (entity client, string s) stuffcmd = #21; +entity (vector org, float rad) findradius = #22; +// pablo. +// ---> + +void(...) bprint = #23; +void(...) sprint = #24; + +void(...) bprint2 = #23; +void(...) sprint2 = #24; + +void(...) bprint3 = #23; +void(...) sprint3 = #24; + +void(...) bprint4 = #23; +void(...) sprint4 = #24; + +void(...) bprint5 = #23; +void(...) sprint5 = #24; + +void(...) bprint6 = #23; +void(...) sprint6 = #24; + +void(...) bprint7 = #23; +void(...) sprint7 = #24; + +void(...) bprint8 = #23; + +/* +void (string s) bprint = #23; +void (entity client, string s) sprint = #24; +void (string s) bprint2 = #23; +void (entity client, string s) sprint2 = #24; +void (string s) bprint3 = #23; +void (entity client, string s) sprint3 = #24; +void (string s) bprint4 = #23; +void (entity client, string s) sprint4 = #24; +void (string s) bprint5 = #23; +void (entity client, string s) sprint5 = #24; +void (string s) bprint6 = #23; +void (entity client, string s) sprint6 = #24; +void (string s) bprint7 = #23; +void (entity client, string s) sprint7 = #24; +void (string s) bprint8 = #23; +*/ +// <--- + +void (string s) dprint = #25; +string (float f) ftos = #26; +string (vector v) vtos = #27; +void () coredump = #28; +void () traceon = #29; +void () traceoff = #30; +void (entity e) eprint = #31; +float (float yaw, float dist) walkmove = #32; +// ---> pablo. this is wierd. :/ +//float (float yaw, float dist) droptofloor = #34; +float () droptofloor = #34; +// <--- +void (float style, string value) lightstyle = #35; +float (float v) rint = #36; +float (float v) floor = #37; +float (float v) ceil = #38; +float (entity e) checkbottom = #40; +float (vector v) pointcontents = #41; +float (float f) fabs = #43; +vector (entity e, float speed) aim = #44; +float (string s) cvar = #45; +void (string s) localcmd = #46; +entity (entity e) nextent = #47; +void (vector o, vector d, float color, float count) particle = #48; +void () ChangeYaw = #49; +vector (vector v) vectoangles = #51; +void (float to, float f) WriteByte = #52; +void (float to, float f) WriteChar = #53; +void (float to, float f) WriteShort = #54; +void (float to, float f) WriteLong = #55; +void (float to, float f) WriteCoord = #56; +void (float to, float f) WriteAngle = #57; +void (float to, string s) WriteString = #58; +void (float to, entity s) WriteEntity = #59; +void (float step) movetogoal = #67; +string (string s) precache_file = #68; +void (entity e) makestatic = #69; +void (string s) changelevel = #70; +void (string var, string val) cvar_set = #72; +// pablo. simple. +//void (entity client, string s, ...) CenterPrint = #73; +void(...) centerprint = #73; +// +void (vector pos, string samp, float vol, float atten) ambientsound = #74; +string (string s) precache_model2 = #75; +string (string s) precache_sound2 = #76; +string (string s) precache_file2 = #77; +void (entity e) setspawnparms = #78; +void(entity killer, entity killee) logfrag = #79; +string(entity e, string key) infokey = #80; +float(string s) stof = #81; +void (vector pos, float to) multicast = #82; + +.float autoid; +.float autodiscard; +.float discard_max; + + +/* old ideas - ignore pls :) +// exp vars (float is global, .float is self?) +.float shotgun_exp; +.float shotgun_level +void () shotgun_exp_gain; + +// VOTE SYSTEM HOPEFUL +void () megatf_votemap;*/ + +void () TeamFortress_Discard; +float medicarmorheal; + +void () lay; +void () unlay; + +void () lay = +{ + setsize (self, '-16 -16 -24', '16 16 8'); +}; + +void () unlay = +{ + setsize (self, '-16 -16 -24', '16 16 32'); +}; + +//votemap code +float num_players; +float num_votes; +float votestarted; +.float has_voted; +.float vote_wait; +void (string put) votemap_start; +void () voteyes; +string themap; +.float startedvote; +// Parems for prozac servers ONLY +float(string st) validatefile = #91; +float prozacmethod; +string prozacmap; +float(string mapstr) validatemap; +string pmap_backup; + +void(entity e, string s) clientcommand = #440; +float(string s) tokenize = #441; +string(float n) argv = #442; + +//fer stuff! +.float num_kills; +.float fertracker; +.float off_hook; + +float spycam; +.string oldweaponmodel; +void () Cam; +void () DetpackDisarm; +float drop1; +float drop2; + +void (entity _p_1912) camera_die; +void () camera_expire; +void () activatecam; +void () LookThroughCam; + +//Server Message Display +// serverinfo/localinfo svmsg1 - time amount between displaying message 1 +// serverinfo/localinfo svmsg2 - time amount between displaying message 2 +// serverinfo/localinfo message1 - what msg1 displays (IE serverinfo message1 "hi everybody!") +// serverinfo/localinfo message2 - what msg2 displays + +void () messagetimer; +void () pre_messagetimer2; +void () messagetimer2; +void () display_message; +void () display_message2; +float msg1time; +float msg2time; +float msg1first; +float msg2first; +#ifndef tf29ents +float haltloop1; +float haltloop2; +#endif +// the delay between displaying messages 1 and 2 - constrolled by serverinfo/localinfo svmsg_delay - +// just a little trick so you dont have to set msg1tiemr and msg2time to different intervals. +// This is optional however, and if the server doesn't find "svmsg_delay" it will continue messages as normal. +float msgdelay; + +// PM code! +.float userid; +float globaluserid; +.float cooldown; + +// scout disarm fix +float olddisarm; +void () DetpackDisarm; + +//Centerprint4.. wtf.. +void (entity client, string s, ...) CenterPrint4 = #73; + +//stats_dl +.float stats_on; +void (float _p_2445) Stats_Hit; +void (float _p_2420) Stats_Fired; + +// 11.11.04 defs +float spyjumpoption; +float quadscore; +float sr_dropgrens; +float sr_airmirv; +.float spy_regjump; +float engbat; + +//so players cant "discard" the server to death on certain maps +.float discard_next; + +//vector for original origin of objects +.vector orig_origin; + +//For FTE/EZQuake/Fuhquake servers +void () pm_list; +float true = 1; +float false = 0; +//float canusenew; +float(string pattern, float caseinsensitive, float quiet) search_begin = #444; +void(float handle) search_end = #445; +string(float handle, float num) search_getfilename = #447; +// Server Fix Function +string(string s1, string s2, ...) qsg_strcat = #82; +string(string s1, string s2, ...) cpqwsv_strcat = #84; +string(string s1, string s2, ...) mvdsv_strcat = #89; +string(string s1, string s2, ...) frik_strcat = #115; +float(string s) checkextension = #99; + +void () testfunct; + +// prozac Get UserID Function +float(entity client) getuid = #83; + +#ifdef clan_progs +// RANK FEATURES (FTE only) +float Ranks_Updated; // tells us if the global ranks have been updated already (once per map) +.string rank_name; // file name where stats are stored in -- thisw is assigned to the player's netname on join +.float global_rank; +.float global_frags; +.float global_fers; +.float global_dths; +.float global_caps; +void () Rank_UpdateStatsGlobal; + +// Rank stuff +void (entity rank_ent) Rank_FindStats; +void (entity rank_ent) Rank_UpdateStats; +void (entity rank_ent, float addscore) Rank_AddFrags; +void (entity rank_ent, float addscore) Rank_AddFers; +void (entity rank_ent, float addscore) Rank_AddDeaths; + +float num_players_ready; +float clan_prematch; +.float is_ready; +#endif +//moved from rankings.pqc: +string(string s) strzone = #118; +void(string s) strunzone = #119; + +float MSG_BROADCAST = 0; + +float oldconc; // toggle for using old (tf 2.9) style conc (localinfo/serverinfo oldconc 1 or on) + +#ifdef tf29ents +// TF 2.9 stuff +#define TFLAG_FIRSTENTRY 256 // Used to determine the first time toggleflags is set +#define TFLAG_CLASS_PERSIST 1 // Persistent Classes Bit +float flagem_checked; +#endif + +.float jet_time; // defines jetjump immune-to-pushback time (pushback from sentryguns) + +#define mtf_Ver "10.12.14" // insert MegaTF version here +#define mtf_Website "\shttps://github.com/quaketf\s" + +//strcat for combining two strings, strlen to getting the length of a string. +//substring Ex: substring("Abraham Lincoln", 1, 3) == "bra", stov = string to vector +//From FrikaC's file access tutorial +float(string s) strlen = #114; +string(string s1, string s2) strcat = #115; +string(string s, float start, float length) substring = #116; +vector(string s) stov = #117; + diff --git a/demoman.pqc b/demoman.pqc new file mode 100644 index 0000000..85acf32 --- /dev/null +++ b/demoman.pqc @@ -0,0 +1,498 @@ + +void () NormalGrenadeTouch; + +void () NormalGrenadeExplode; + +void () MirvGrenadeTouch; + +void () MirvGrenadeExplode; + +void (vector org, entity shooter) MirvGrenadeLaunch; + +void () TeamFortress_DetpackSet; + +void () TeamFortress_DetpackExplode; + +void () TeamFortress_DetpackTouch; + +void () TeamFortress_DetpackDisarm; + +void () TeamFortress_DetpackCountDown; + +void () TeamFortress_DetonatePipebombs = { + + local entity e; + + e = find (world,classname,"pipebomb"); + while (e != world) + { + if (e.owner == self) + { + e.nextthink = time; + } + e = find (e,classname,"pipebomb"); + } + +}; + +void () PipebombTouch = +{ + + sound (self, 1, "weapons/bounce.wav", 1, 1); + if ((self.velocity == '0 0 0')) + { + self.avelocity = '0 0 0'; + } +}; + +void () MirvGrenadeTouch = { + + sound (self,TF_FLARE_OFF,"weapons/bounce.wav",TF_FLARE_OFF,TF_FLARE_OFF); + if (self.velocity == '0 0 0') + { + self.avelocity = '0 0 0'; + } + +}; + +void () MirvGrenadeExplode = { + + local float i; + + deathmsg = 10; + T_RadiusDamage (self,self.owner,100,world); + WriteByte (4,23); + WriteByte (4,3); + WriteCoord (4,self.origin_x); + WriteCoord (4,self.origin_y); + WriteCoord (4,self.origin_z); + multicast (self.origin,TF_FLARE_OFF); + self.solid = TF_FLARE_LIT; + i = TF_FLARE_LIT; + while (i < 6) + { + MirvGrenadeLaunch ((self.origin + '0 0 -1'),self.owner); + i = (i + TF_FLARE_OFF); + } + BecomeExplosion (); + +}; + +void (vector org, entity shooter) MirvGrenadeLaunch = { + + local float xdir; + local float ydir; + local float zdir; + + xdir = ((150 * random ()) - 75); + ydir = ((150 * random ()) - 75); + zdir = (40 * random ()); + newmis = spawn (); + newmis.owner = shooter; + newmis.movetype = 10; + newmis.solid = 2; + newmis.classname = "grenade"; + newmis.weapon = 10; + newmis.touch = GrenadeTouch; + newmis.think = GrenadeExplode; + newmis.nextthink = ((time + 2) + random ()); + newmis.velocity_x = (xdir * 2); + newmis.velocity_y = (ydir * 2); + newmis.velocity_z = (zdir * 15); + newmis.avelocity = '250 300 400'; + setmodel (newmis,"progs/grenade2.mdl"); + setsize (newmis,'0 0 0','0 0 0'); + setorigin (newmis,org); + +}; +float(entity obj) DetpackCheckArea = +{ + //shitty wallarea check + //does not detect irregularly clipped/morphed walls + //although dets wont fall through against them + local vector src; + local float pos; + pos = pointcontents(obj.origin); + + if (pos == -2 || pos == -6) + { + return TF_FLARE_LIT; + } + + src_x = obj.origin_x + obj.maxs_x + 10; + src_y = obj.origin_y + obj.maxs_y + 10; + src_z = obj.origin_z + obj.maxs_z - 24; + pos = pointcontents(src); + if (pos == -2 || pos == -6) + { + return TF_FLARE_LIT; + } +/* junk + bprint (2,"second check\n"); + src_x = obj.origin_x + obj.maxs_x - 10; + src_y = obj.origin_y + obj.maxs_y - 10; + src_z = obj.origin_z + obj.maxs_z - 24; + pos = pointcontents(src); + st = ftos(pos); + bprint (2,st); + bprint(2,"\n"); + if (pos == -2 || pos == -6) + { + return TF_FLARE_LIT; + } +*/ + src_x = obj.origin_x + obj.mins_x - 10; + src_y = obj.origin_y + obj.mins_y + 0; + src_z = obj.origin_z + obj.mins_z + 24; + pos = pointcontents(src); + if (pos == -2 || pos == -6) + { + return TF_FLARE_LIT; + } + + src_x = obj.origin_x + obj.mins_x + 0; + src_y = obj.origin_y + obj.mins_y - 10; + src_z = obj.origin_z + obj.mins_z + 24; + pos = pointcontents(src); + if (pos == -2 || pos == -6) + { + return TF_FLARE_LIT; + } + + src_x = obj.origin_x + obj.mins_x + 10; + src_y = obj.origin_y + obj.mins_y - 10; + src_z = obj.origin_z + obj.mins_z + 24; + pos = pointcontents(src); + if (pos == -2 || pos == -6) + { + return TF_FLARE_LIT; + } + + src_x = obj.origin_x + obj.mins_x - 10; + src_y = obj.origin_y + obj.mins_y + 10; + src_z = obj.origin_z + obj.mins_z + 24; + pos = pointcontents(src); + + if (pos == -2 || pos == -6) + { + return TF_FLARE_LIT; + } + + return TF_FLARE_OFF; +}; + + +void (float _p_9515) TeamFortress_SetDetpack = +{ + local string _l_9516; + local entity _l_9517; + + self.impulse = 0; + self.last_impulse = 0; + if (!(self.weapons_carried & 131072)) + { + return; + } + if ((self.ammo_detpack <= 0)) + { + return; + } + if (!(self.flags & 512)) + { + sprint (self, 2, "You can't set detpacks in the air!\n"); + return; + } + if ((_p_9515 < 5)) + { + sprint (self, 2, "You can't set detpacks for less that 5 seconds.\n"); + return; + } + if ((DetpackCheckArea (self) == 0)) + { + sprint (self, 2, "You need more room to set a detpack.\n"); + return; + } + _l_9517 = find (world, classname, "detpack"); + while (_l_9517) + { + if ((_l_9517.owner == self)) + { + sprint (self, 2, "1 DetPack at a time!\n"); + return; + } + _l_9517 = find (_l_9517, classname, "detpack"); + } + TeamFortress_ThrowGrenade (); + self.is_detpacking = 1; + self.ammo_detpack = (self.ammo_detpack - 1); + self.immune_to_check = (time + 5); + self.tfstate = (self.tfstate | 65536); + self.weapon = self.current_weapon; + self.current_weapon = 0; + self.weaponmodel = ""; + self.weaponframe = 0; + TeamFortress_SetSpeed (self); + self.pausetime = (time + 4); + _l_9516 = ftos (_p_9515); + sprint (self, 2, "Setting detpack for "); + sprint (self, 2, _l_9516); + sprint (self, 2, " seconds...\n"); + sound (self, 2, "items/flare1.wav", 1, 1); + newmis = spawn (); + newmis.owner = self; + newmis.classname = "timer"; + newmis.netname = "detpack_timer"; + newmis.nextthink = (time + 4); + newmis.think = TeamFortress_DetpackSet; + newmis.health = _p_9515; +}; + +void () TeamFortress_DetpackStop = { + + local entity detpack_timer; + + detpack_timer = find (world,netname,"detpack_timer"); + while ((detpack_timer.owner != self) && (detpack_timer != world)) + { + detpack_timer = find (detpack_timer,netname,"detpack_timer"); + } + if (detpack_timer == world) + { + return ; + } + sprint (self,2,"Detpack retrieved.\n"); + self.ammo_detpack = (self.ammo_detpack + TF_FLARE_OFF); + dremove (detpack_timer); + self.tfstate = (self.tfstate - (self.tfstate & 65536)); + self.is_detpacking = TF_FLARE_LIT; + self.current_weapon = self.weapon; + W_SetCurrentAmmo (); + TeamFortress_SetSpeed (self); + self.pausetime = time; + +}; + +void () TeamFortress_DetpackSet = +{ + local entity _l_9532; + local entity _l_9533; + + self.is_detpacking = 0; + self.owner.tfstate = (self.owner.tfstate - (self.owner.tfstate & 65536)); + sound (self, 2, "weapons/throw.wav", 1, 1); + TeamFortress_SetSpeed (self.owner); + _l_9533 = self; + self = self.owner; + self.is_detpacking = 0; + self.current_weapon = self.weapon; + W_SetCurrentAmmo (); + self = _l_9533; + newmis = spawn (); + newmis.owner = self.owner; + newmis.origin = (self.owner.origin - '0 0 32'); + newmis.movetype = 10; + newmis.solid = 2; + newmis.classname = "detpack"; + newmis.flags = 256; + newmis.angles = '90 0 0'; + newmis.angles_y = self.owner.angles_y; + newmis.velocity = '0 0 0'; + newmis.avelocity = '0 30 0'; + newmis.weaponmode = 0; + newmis.touch = TeamFortress_DetpackTouch; + setmodel (newmis, "progs/detpack.mdl"); + setsize (newmis, '-16 -16 0', '16 16 4'); + setorigin (newmis, self.owner.origin); + _l_9532 = spawn (); + newmis.linked_list = _l_9532; + _l_9532.think = TeamFortress_DetpackCountDown; + _l_9532.health = (self.health - 1); + _l_9532.owner = self.owner; + _l_9532.classname = "countdown_timer"; + _l_9532.enemy = newmis; + newmis.oldenemy = _l_9532; + _l_9532.nextthink = (time + 1); + _l_9532.health = (self.health - 1); + newmis.nextthink = (time + self.health); + newmis.think = TeamFortress_DetpackExplode; + sprint (self.owner, 2, "Detpack set!\n"); + dremove (self); +}; + +void () TeamFortress_DetpackExplode = { + + local float pos; + + bprint (TF_FLARE_OFF,"FIRE IN THE HOLE!\n"); + sound (self,TF_FLARE_OFF,"weapons/detpack.wav",TF_FLARE_OFF,TF_FLARE_LIT); + pos = pointcontents (self.origin); + if ((pos != -2) && (pos != -6)) + { + deathmsg = 12; + T_RadiusDamage (self,self.owner,700,world); + WriteByte (4,23); + WriteByte (4,3); + WriteCoord (4,self.origin_x); + WriteCoord (4,self.origin_y); + WriteCoord (4,self.origin_z); + multicast (self.origin,TF_FLARE_OFF); + } + if (self.weaponmode == TF_FLARE_OFF) + { + TeamFortress_SetSpeed (self.enemy); + dremove (self.oldenemy); + dremove (self.observer_list); + } + BecomeExplosion (); + +}; + +void () TeamFortress_DetpackTouch = +{ + if (olddisarm != 1) { + if ((other.classname != "player")) + { + sound (self, 3, "zombie/z_hit.wav", 1, 1); + } + } + else { + local entity disarm; + + if (other.classname != "player") + { + sound (self,3,"zombie/z_hit.wav",TF_FLARE_OFF,TF_FLARE_OFF); + } + if (other.classname != "player") + { + return ; + } + if (other.playerclass != TF_FLARE_OFF) + { + return ; + } + if (self.weaponmode == TF_FLARE_OFF) + { + return ; + } + if ((other.team_no == self.owner.team_no) && (self.owner.team_no != TF_FLARE_LIT)) + { + return ; + } + other.immune_to_check = (time + 2); + other.tfstate = (other.tfstate | 65536); + sprint (other,2,"Disarming detpack...\n"); + TeamFortress_SetSpeed (other); + disarm = spawn (); + disarm.owner = other; + disarm.enemy = self; + disarm.classname = "timer"; + disarm.nextthink = (time + 3); + disarm.think = TeamFortress_DetpackDisarm; + self.weaponmode = TF_FLARE_OFF; + self.enemy = other; + self.observer_list = disarm; +} +}; +void () TeamFortress_DetpackDisarmTrigger = +{ + local entity _l_9571; + + if ((other.classname != "player")) + { + sound (self, 3, "zombie/z_hit.wav", 1, 1); + } + if ((other.classname != "player")) + { + return; + } + if ((other.playerclass != 1)) + { + return; + } + if ((self.weaponmode == 1)) + { + return; + } + if (((other.team_no == self.owner.team_no) && (self.owner.team_no != 0))) + { + return; + } + other.immune_to_check = (time + 2); + other.tfstate = (other.tfstate | 65536); + sprint (other, 2, "Disarming detpack...\n"); + TeamFortress_SetSpeed (other); + _l_9571 = spawn (); + _l_9571.owner = other; + _l_9571.enemy = self; + _l_9571.classname = "timer"; + _l_9571.nextthink = (time + 2); + _l_9571.think = TeamFortress_DetpackDisarm; + self.weaponmode = 1; + self.enemy = other; + self.observer_list = _l_9571; +}; + +void () TeamFortress_DetpackDisarm = +{ + + bprint (1, self.enemy.owner.netname); + bprint (1, "'s detpack was defused by "); + bprint (1, self.owner.netname); + bprint (1, "\n"); + self.owner.tfstate = (self.owner.tfstate - (self.owner.tfstate & 65536)); + TeamFortress_SetSpeed (self.owner); + logfrag (self.owner, self.enemy.owner); + self.owner.real_frags = (self.owner.real_frags + 1); + if (!(toggleflags & 128)) + { + self.owner.frags = self.owner.real_frags; + } + dremove (self.enemy.oldenemy); + dremove (self.enemy); + dremove (self); +}; + +void () TeamFortress_DetpackCountDown = +{ + local string _l_9580; + + if ((self.health < 10)) + { + _l_9580 = ftos (self.health); + if ((self.health > 0)) + { + sprint (self.owner, 2, _l_9580); + sprint (self.owner, 2, "...\n"); + } + if ((self.health <= 4)) + { + self.enemy.skin = 1; + sound (self, 0, "effects/beep.wav", 1, 1); + } + if ((self.health == 0)) + { + dremove (self); + } + } + self.nextthink = (time + 1); + self.health = (self.health - 1); + self.owner.StatusRefreshTime = (time + 0.200000); +}; + +void () DetpackDisarm = +{ + local entity _l_9597; + + _l_9597 = findradius (self.origin, 38); + while (_l_9597) + { + if ((_l_9597.classname == "detpack")) + { + other = self; + self = _l_9597; + TeamFortress_DetpackDisarmTrigger (); + self = other; + } + _l_9597 = _l_9597.chain; + } +}; diff --git a/dog.pqc b/dog.pqc new file mode 100644 index 0000000..0d7ace1 --- /dev/null +++ b/dog.pqc @@ -0,0 +1,658 @@ +void() dog_leap1; +void() dog_run1; +void() monster_dog_respawn; + +.vector oldangles; + +void() dog_bite = +{ + local vector delta; + local float ldmg; + ai_charge(10); + if (!CanDamage(self.enemy, self)) + { + return; + } + delta = self.enemy.origin - self.origin; + if (vlen(delta) > 100) + { + return; + } + if (self.enemy.team_no == self.team_no) + { + return; + } + if (random() < 0.2) + { + if (self.enemy.leg_damage < TF_FLARE_OFF && self.enemy.classname == "player") + { + self.enemy.leg_damage = TF_FLARE_OFF; + sprint(self.enemy, 2, "Your leg's been bitten!\n"); + TeamFortress_SetSpeed(self.enemy); + } + } + deathmsg = 42; + random(); + ldmg = (random() + random() + random()) * 16; + T_Damage(self.enemy, self, self, ldmg); +}; + +void() Dog_JumpTouch = +{ + local float ldmg; + if (self.health <= TF_FLARE_LIT) + { + return; + } + if (other.team_no == self.team_no) + { + return; + } + if (other.classname == "bot" && self.playerclass == other.playerclass) + { + return; + } + if (other.takedamage) + { + if (vlen(self.velocity) > 300) + { + sound(self, 2, "shambler/smack.wav", 0.7, TF_FLARE_OFF); + deathmsg = 42; + ldmg = (10 + 10 * random()) * 2; + T_Damage(other, self, self, ldmg); + } + } + if (!checkbottom(self)) + { + if (self.flags & 512) + { + self.touch = SUB_Null; + self.think = dog_leap1; + self.nextthink = time + 0.1; + } + return; + } + self.touch = SUB_Null; + self.think = dog_run1; + self.nextthink = time + 0.1; +}; + +void() dog_stand1 = [69, dog_stand2] +{ + ai_stand(); +}; + +void() dog_stand2 = [70, dog_stand3] +{ + ai_stand(); +}; + +void() dog_stand3 = [71, dog_stand4] +{ + ai_stand(); +}; + +void() dog_stand4 = [72, dog_stand5] +{ + ai_stand(); +}; + +void() dog_stand5 = [73, dog_stand6] +{ + ai_stand(); +}; + +void() dog_stand6 = [74, dog_stand7] +{ + ai_stand(); +}; + +void() dog_stand7 = [75, dog_stand8] +{ + ai_stand(); +}; + +void() dog_stand8 = [76, dog_stand9] +{ + ai_stand(); +}; + +void() dog_stand9 = [77, dog_stand1] +{ + ai_stand(); +}; + +void() dog_walk1 = [78, dog_walk2] +{ + if (random() < 0.2) + { + sound(self, 2, "dog/idle.wav", TF_FLARE_OFF, 2); + } + else + { + if (random() < 0.25) + { + sound(self, 2, "demon/idle1.wav", TF_FLARE_OFF, 2); + } + } + ai_walk(8); +}; + +void() dog_walk2 = [79, dog_walk3] +{ + ai_walk(8); +}; + +void() dog_walk3 = [80, dog_walk4] +{ + ai_walk(8); +}; + +void() dog_walk4 = [81, dog_walk5] +{ + ai_walk(8); +}; + +void() dog_walk5 = [82, dog_walk6] +{ + ai_walk(8); +}; + +void() dog_walk6 = [83, dog_walk7] +{ + ai_walk(8); +}; + +void() dog_walk7 = [84, dog_walk8] +{ + ai_walk(8); +}; + +void() dog_walk8 = [85, dog_walk1] +{ + ai_walk(8); +}; + +void() dog_run1 = [48, dog_run2] +{ + if (random() < 0.2) + { + sound(self, 2, "dog/idle.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (random() < 0.25) + { + sound(self, 2, "demon/idle1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (random() < 0.5) + { + sound(self, 2, "dog/dsight.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + } + } + ai_run(16); +}; + +void() dog_run2 = [49, dog_run3] +{ + ai_run(32); +}; + +void() dog_run3 = [50, dog_run4] +{ + ai_run(32); +}; + +void() dog_run4 = [51, dog_run5] +{ + ai_run(20); +}; + +void() dog_run5 = [52, dog_run6] +{ + ai_run(64); +}; + +void() dog_run6 = [53, dog_run7] +{ + ai_run(32); +}; + +void() dog_run7 = [54, dog_run8] +{ + ai_run(16); +}; + +void() dog_run8 = [55, dog_run9] +{ + ai_run(32); +}; + +void() dog_run9 = [56, dog_run10] +{ + ai_run(32); +}; + +void() dog_run10 = [57, dog_run11] +{ + ai_run(20); +}; + +void() dog_run11 = [58, dog_run12] +{ + ai_run(64); +}; + +void() dog_run12 = [59, dog_run1] +{ + ai_run(32); +}; + +void() dog_atta1 = [0, dog_atta2] +{ + ai_charge(10); +}; + +void() dog_atta2 = [1, dog_atta3] +{ + ai_charge(10); +}; + +void() dog_atta3 = [2, dog_atta4] +{ + ai_charge(10); +}; + +void() dog_atta4 = [3, dog_atta5] +{ + if (random() < 0.8) + { + sound(self, 2, "dog/dattack1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (random() < 0.25) + { + sound(self, 2, "demon/sight2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + } + dog_bite(); +}; + +void() dog_atta5 = [4, dog_atta6] +{ + ai_charge(10); +}; + +void() dog_atta6 = [5, dog_atta7] +{ + ai_charge(10); +}; + +void() dog_atta7 = [6, dog_atta8] +{ + ai_charge(10); +}; + +void() dog_atta8 = [7, dog_run1] +{ + ai_charge(10); +}; + +void() dog_leap1 = [60, dog_leap2] +{ + ai_face(); +}; + +void() dog_leap2 = [61, dog_leap3] +{ + ai_face(); + self.touch = Dog_JumpTouch; + makevectors(self.angles); + self.origin_z = self.origin_z + TF_FLARE_OFF; + self.velocity = v_forward * 300 + '0 0 200'; + if (self.flags & 512) + { + self.flags = self.flags - 512; + } +}; + +void() dog_leap3 = [62, dog_leap4] +{ +}; + +void() dog_leap4 = [63, dog_leap5] +{ +}; + +void() dog_leap5 = [64, dog_leap6] +{ +}; + +void() dog_leap6 = [65, dog_leap7] +{ +}; + +void() dog_leap7 = [66, dog_leap8] +{ +}; + +void() dog_leap8 = [67, dog_leap9] +{ +}; + +void() dog_leap9 = [68, dog_leap9] +{ +}; + +void() dog_pain1 = [26, dog_pain2] +{ +}; + +void() dog_pain2 = [27, dog_pain3] +{ +}; + +void() dog_pain3 = [28, dog_pain4] +{ +}; + +void() dog_pain4 = [29, dog_pain5] +{ +}; + +void() dog_pain5 = [30, dog_pain6] +{ +}; + +void() dog_pain6 = [31, dog_run1] +{ +}; + +void() dog_painb1 = [32, dog_painb2] +{ +}; + +void() dog_painb2 = [33, dog_painb3] +{ +}; + +void() dog_painb3 = [34, dog_painb4] +{ + ai_pain(4); +}; + +void() dog_painb4 = [35, dog_painb5] +{ + ai_pain(12); +}; + +void() dog_painb5 = [36, dog_painb6] +{ + ai_pain(12); +}; + +void() dog_painb6 = [37, dog_painb7] +{ + ai_pain(2); +}; + +void() dog_painb7 = [38, dog_painb8] +{ +}; + +void() dog_painb8 = [39, dog_painb9] +{ + ai_pain(4); +}; + +void() dog_painb9 = [40, dog_painb10] +{ +}; + +void() dog_painb10 = [41, dog_painb11] +{ + ai_pain(10); +}; + +void() dog_painb11 = [42, dog_painb12] +{ +}; + +void() dog_painb12 = [43, dog_painb13] +{ +}; + +void() dog_painb13 = [44, dog_painb14] +{ +}; + +void() dog_painb14 = [45, dog_painb15] +{ +}; + +void() dog_painb15 = [46, dog_painb16] +{ +}; + +void() dog_painb16 = [47, dog_run1] +{ +}; + +void() dog_pain = +{ + sound(self, 2, "dog/dpain1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + if (random() > 0.5) + { + dog_pain1(); + } + else + { + dog_painb1(); + } +}; + +void() dog_die1 = [8, dog_die2] +{ +}; + +void() dog_die2 = [9, dog_die3] +{ +}; + +void() dog_die3 = [10, dog_die4] +{ +}; + +void() dog_die4 = [11, dog_die5] +{ +}; + +void() dog_die5 = [12, dog_die6] +{ +}; + +void() dog_die6 = [13, dog_die7] +{ +}; + +void() dog_die7 = [14, dog_die8] +{ +}; + +void() dog_die8 = [15, dog_die9] +{ +}; + +void() dog_die9 = [16, dog_die9] +{ +}; + +void() dog_dieb1 = [17, dog_dieb2] +{ +}; + +void() dog_dieb2 = [18, dog_dieb3] +{ +}; + +void() dog_dieb3 = [19, dog_dieb4] +{ +}; + +void() dog_dieb4 = [20, dog_dieb5] +{ +}; + +void() dog_dieb5 = [21, dog_dieb6] +{ +}; + +void() dog_dieb6 = [22, dog_dieb7] +{ +}; + +void() dog_dieb7 = [23, dog_dieb8] +{ +}; + +void() dog_dieb8 = [24, dog_dieb9] +{ +}; + +void() dog_dieb9 = [25, dog_dieb9] +{ +}; + +void() dog_die = +{ + sound(self, 2, "dog/ddeath.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.solid = TF_FLARE_LIT; + if (random() > 0.5) + { + dog_die1(); + } + else + { + dog_dieb1(); + } + monster_dog_respawn(); +}; + +float() CheckDogMelee = +{ + if (enemy_range == TF_FLARE_LIT) + { + self.attack_state = 3; + return TF_FLARE_OFF; + } + return TF_FLARE_LIT; +}; + +float() CheckDogJump = +{ + local vector dist; + local float d; + if (self.origin_z + self.mins_z > self.enemy.origin_z + self.enemy.mins_z + 0.75 * self.enemy.size_z) + { + return TF_FLARE_LIT; + } + if (self.origin_z + self.maxs_z < self.enemy.origin_z + self.enemy.mins_z + 0.25 * self.enemy.size_z) + { + return TF_FLARE_LIT; + } + dist = self.enemy.origin - self.origin; + dist_z = TF_FLARE_LIT; + d = vlen(dist); + if (d < 80) + { + return TF_FLARE_LIT; + } + if (d > 150) + { + return TF_FLARE_LIT; + } + return TF_FLARE_OFF; +}; + +float() DogCheckAttack = +{ + if (CheckDogMelee()) + { + self.attack_state = 3; + return TF_FLARE_OFF; + } + if (CheckDogJump()) + { + self.attack_state = 4; + return TF_FLARE_OFF; + } + return TF_FLARE_LIT; +}; + +void() monster_dog = +{ + precache_model("progs/h_dog.mdl"); + precache_model("progs/dog.mdl"); + precache_sound("dog/dattack1.wav"); + precache_sound("dog/ddeath.wav"); + precache_sound("dog/dpain1.wav"); + precache_sound("dog/dsight.wav"); + precache_sound("dog/idle.wav"); + precache_sound("demon/sight2.wav"); + precache_sound("demon/idle1.wav"); + self.classname = "bot"; + self.solid = 3; + self.movetype = 6; + setmodel(self, "progs/dog.mdl"); + setsize(self, '-32 -32 -24', '32 32 10'); + self.health = 200; + self.oldorigin = self.origin; + self.oldangles = self.angles; + self.th_stand = dog_stand1; + self.th_walk = dog_walk1; + self.th_run = dog_run1; + self.th_pain = dog_pain; + self.th_die = dog_die; + self.th_melee = dog_atta1; + self.th_missile = dog_leap1; + self.think = walkmonster_start; + self.nextthink = time + 3; +}; + +void() respawn_dog = +{ + self = self.owner; + self.origin = self.oldorigin; + spawn_tfog(self.origin); + spawn_tdeath(self.origin, self); + setorigin(self, self.origin); + self.solid = 3; + self.movetype = 6; + self.takedamage = 2; + setmodel(self, "progs/dog.mdl"); + setsize(self, '-32 -32 -24', '32 32 10'); + self.health = 200; + self.oldorigin = self.origin; + self.angles = self.oldangles; + self.classname = "bot"; + self.target = string_null; + self.enemy = world; + HuntTarget(); + dremove(self.owner); + droptofloor(); +}; + +void() monster_dog_respawn = +{ + local entity resp; + resp = spawn(); + self.owner = resp; + resp.owner = self; + resp.think = respawn_dog; + resp.nextthink = time + 30 + random() * 20; +}; + diff --git a/doors.pqc b/doors.pqc new file mode 100644 index 0000000..57a9b60 --- /dev/null +++ b/doors.pqc @@ -0,0 +1,776 @@ +void() door_go_down; +void() door_go_up; +float() DoorShouldOpen; + +void() fd_secret_move1; +void() fd_secret_move2; +void() fd_secret_move3; +void() fd_secret_move4; +void() fd_secret_move5; +void() fd_secret_move6; +void() fd_secret_done; + +//.vector orig_origin; //in defs.pqc + +void() door_blocked = +{ + T_Damage(other, self, self, self.dmg); + if (self.wait >= TF_FLARE_LIT) + { + if (self.state == 3) + { + door_go_up(); + } + else + { + door_go_down(); + } + } +}; + +void() door_hit_top = +{ + sound(self, 2, self.noise1, TF_FLARE_OFF, TF_FLARE_OFF); + self.state = TF_FLARE_LIT; + if (self.spawnflags & 32) + { + return; + } + self.think = door_go_down; + self.nextthink = self.ltime + self.wait; +}; + +void() door_hit_bottom = +{ + self.goal_state = 2; + sound(self, 2, self.noise1, TF_FLARE_OFF, TF_FLARE_OFF); + self.state = TF_FLARE_OFF; +}; + +void() door_go_down = +{ + sound(self, 2, self.noise2, TF_FLARE_OFF, TF_FLARE_OFF); + if (self.max_health) + { + self.takedamage = TF_FLARE_OFF; + self.health = self.max_health; + } + self.state = 3; + SUB_CalcMove(self.pos1, self.speed, door_hit_bottom); +}; + +void() door_go_up = +{ + if (self.state == 2) + { + return; + } + if (self.state == TF_FLARE_LIT) + { + self.nextthink = self.ltime + self.wait; + return; + } + sound(self, 2, self.noise2, TF_FLARE_OFF, TF_FLARE_OFF); + self.state = 2; + SUB_CalcMove(self.pos2, self.speed, door_hit_top); + SUB_UseTargets(); +}; + +void() door_fire = +{ + local entity oself; + local entity starte; + if (self.owner != self) + { + objerror("door_fire: self.owner != self"); + } + if (self.items) + { + sound(self, 2, self.noise4, TF_FLARE_OFF, TF_FLARE_OFF); + } + self.message = string_null; + oself = self; + if (self.spawnflags & 32) + { + if (self.state == 2 || self.state == TF_FLARE_LIT) + { + starte = self; + do + { + door_go_down(); + self = self.enemy; + } while (self != starte && self != world); + self = oself; + return; + } + } + starte = self; + do + { + door_go_up(); + self = self.enemy; + } while (self != starte && self != world); + self = oself; +}; + +void() door_use = +{ + local entity oself; + self.message = ""; + self.owner.message = ""; + self.enemy.message = ""; + oself = self; + self = self.owner; + door_fire(); + self = oself; +}; + +void() door_trigger_touch = +{ + local entity te; + if (other.health <= TF_FLARE_LIT) + { + return; + } + if (!Activated(self, other)) + { + if (self.else_goal != TF_FLARE_LIT) + { + te = Findgoal(self.else_goal); + if (te) + { + DoResults(te, other, self.goal_result & 2); + } + } + return; + } + if (time < self.attack_finished) + { + return; + } + self.attack_finished = time + TF_FLARE_OFF; + activator = other; + self = self.owner; + door_use(); +}; + +void() door_killed = +{ + local entity oself; + oself = self; + self = self.owner; + self.health = self.max_health; + self.takedamage = TF_FLARE_LIT; + door_use(); + self = oself; +}; + +void() door_touch = +{ + local entity te; + if (other.classname != "player") + { + return; + } + if (self.owner.attack_finished > time) + { + return; + } + if (!Activated(self, other)) + { + if (self.else_goal != TF_FLARE_LIT) + { + te = Findgoal(self.else_goal); + if (te) + { + DoResults(te, other, self.goal_result & 2); + } + } + return; + } + self.owner.attack_finished = time + 2; + if (self.owner.message != "") + { + CenterPrint(other, self.owner.message); + sound(other, 2, "misc/talk.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + if (!(self.items)) + { + return; + } + if ((self.items & other.items) != self.items) + { + if (self.owner.items == 131072) + { + if (world.worldtype == 2) + { + CenterPrint(other, "You need the silver keycard"); + sound(self, 2, self.noise3, TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (world.worldtype == TF_FLARE_OFF) + { + CenterPrint(other, "You need the silver runekey"); + sound(self, 2, self.noise3, TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (world.worldtype == TF_FLARE_LIT) + { + CenterPrint(other, "You need the silver key"); + sound(self, 2, self.noise3, TF_FLARE_OFF, TF_FLARE_OFF); + } + } + } + } + else + { + if (world.worldtype == 2) + { + CenterPrint(other, "You need the gold keycard\n"); + sound(self, 2, self.noise3, TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (world.worldtype == TF_FLARE_OFF) + { + CenterPrint(other, "You need the gold runekey"); + sound(self, 2, self.noise3, TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (world.worldtype == TF_FLARE_LIT) + { + CenterPrint(other, "You need the gold key"); + sound(self, 2, self.noise3, TF_FLARE_OFF, TF_FLARE_OFF); + } + } + } + } + return; + } + other.items = other.items - self.items; + other.tf_items = other.tf_items | self.items; + if (DoorShouldOpen()) + { + self.touch = SUB_Null; + if (self.enemy) + { + self.enemy.touch = SUB_Null; + } + door_use(); + } +}; + +entity(vector fmins, vector fmaxs) spawn_field = +{ + local entity trigger; + local vector t1; + local vector t2; + trigger = spawn(); + trigger.movetype = TF_FLARE_LIT; + trigger.solid = TF_FLARE_OFF; + trigger.owner = self; + trigger.touch = door_trigger_touch; + trigger.team_no = self.team_no; + trigger.playerclass = self.playerclass; + trigger.items_allowed = self.items_allowed; + trigger.activate_goal_no = self.activate_goal_no; + trigger.inactivate_goal_no = self.inactivate_goal_no; + trigger.remove_goal_no = self.remove_goal_no; + trigger.restore_goal_no = self.restore_goal_no; + trigger.activate_group_no = self.activate_group_no; + trigger.inactivate_group_no = self.inactivate_group_no; + trigger.remove_group_no = self.remove_group_no; + trigger.restore_group_no = self.restore_group_no; + trigger.goal_activation = self.goal_activation; + trigger.goal_effects = self.goal_effects; + trigger.goal_result = self.goal_result; + trigger.goal_group = self.goal_group; + t1 = fmins; + t2 = fmaxs; + setsize(trigger, t1 - '60 60 8', t2 + '60 60 8'); + return trigger; +}; + +float(entity e1, entity e2) EntitiesTouching = +{ + if (e1.mins_x > e2.maxs_x) + { + return TF_FLARE_LIT; + } + if (e1.mins_y > e2.maxs_y) + { + return TF_FLARE_LIT; + } + if (e1.mins_z > e2.maxs_z) + { + return TF_FLARE_LIT; + } + if (e1.maxs_x < e2.mins_x) + { + return TF_FLARE_LIT; + } + if (e1.maxs_y < e2.mins_y) + { + return TF_FLARE_LIT; + } + if (e1.maxs_z < e2.mins_z) + { + return TF_FLARE_LIT; + } + return TF_FLARE_OFF; +}; + +void() LinkDoors = +{ + local entity t; + local entity starte; + local vector cmins; + local vector cmaxs; + if (self.enemy) + { + return; + } + if (self.spawnflags & 4) + { + self.enemy = self; + self.owner = self; + return; + } + cmins = self.mins; + cmaxs = self.maxs; + starte = self; + t = self; + do + { + self.owner = starte; + if (self.health) + { + starte.health = self.health; + } + if (self.targetname) + { + starte.targetname = self.targetname; + } + if (self.message != "") + { + starte.message = self.message; + } + t = find(t, classname, self.classname); + if (!t) + { + self.enemy = starte; + self = self.owner; + if (self.health) + { + return; + } + if (self.targetname) + { + return; + } + if (self.items) + { + return; + } + self.owner.trigger_field = spawn_field(cmins, cmaxs); + return; + } + if (EntitiesTouching(self, t)) + { + if (t.enemy) + { + objerror("cross connected doors"); + } + self.enemy = t; + self = t; + if (t.mins_x < cmins_x) + { + cmins_x = t.mins_x; + } + if (t.mins_y < cmins_y) + { + cmins_y = t.mins_y; + } + if (t.mins_z < cmins_z) + { + cmins_z = t.mins_z; + } + if (t.maxs_x > cmaxs_x) + { + cmaxs_x = t.maxs_x; + } + if (t.maxs_y > cmaxs_y) + { + cmaxs_y = t.maxs_y; + } + if (t.maxs_z > cmaxs_z) + { + cmaxs_z = t.maxs_z; + } + } + } while (TF_FLARE_OFF); +}; + +void() func_door = +{ + self.orig_origin = self.origin; + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (world.worldtype == TF_FLARE_LIT) + { + precache_sound("doors/medtry.wav"); + precache_sound("doors/meduse.wav"); + self.noise3 = "doors/medtry.wav"; + self.noise4 = "doors/meduse.wav"; + } + else + { + if (world.worldtype == TF_FLARE_OFF) + { + precache_sound("doors/runetry.wav"); + precache_sound("doors/runeuse.wav"); + self.noise3 = "doors/runetry.wav"; + self.noise4 = "doors/runeuse.wav"; + } + else + { + if (world.worldtype == 2) + { + precache_sound("doors/basetry.wav"); + precache_sound("doors/baseuse.wav"); + self.noise3 = "doors/basetry.wav"; + self.noise4 = "doors/baseuse.wav"; + } + else + { + dprint("no worldtype set!\n"); + } + } + } + if (self.sounds == TF_FLARE_LIT) + { + precache_sound("misc/null.wav"); + precache_sound("misc/null.wav"); + self.noise1 = "misc/null.wav"; + self.noise2 = "misc/null.wav"; + } + if (self.sounds == TF_FLARE_OFF) + { + precache_sound("doors/drclos4.wav"); + precache_sound("doors/doormv1.wav"); + self.noise1 = "doors/drclos4.wav"; + self.noise2 = "doors/doormv1.wav"; + } + if (self.sounds == 2) + { + precache_sound("doors/hydro1.wav"); + precache_sound("doors/hydro2.wav"); + self.noise2 = "doors/hydro1.wav"; + self.noise1 = "doors/hydro2.wav"; + } + if (self.sounds == 3) + { + precache_sound("doors/stndr1.wav"); + precache_sound("doors/stndr2.wav"); + self.noise2 = "doors/stndr1.wav"; + self.noise1 = "doors/stndr2.wav"; + } + if (self.sounds == 4) + { + precache_sound("doors/ddoor1.wav"); + precache_sound("doors/ddoor2.wav"); + self.noise1 = "doors/ddoor2.wav"; + self.noise2 = "doors/ddoor1.wav"; + } + if (self.armorclass == TF_FLARE_OFF) + { + precache_sound("doors/creekdr1.wav"); + precache_sound("doors/creekdr2.wav"); + self.noise2 = "doors/creekdr1.wav"; + self.noise1 = "doors/creekdr2.wav"; + } + if (self.armorclass == 2) + { + precache_sound("doors/metaldr1.wav"); + precache_sound("doors/metaldr2.wav"); + self.noise2 = "doors/metaldr1.wav"; + self.noise1 = "doors/metaldr2.wav"; + } + if (self.armorclass == 3) + { + precache_sound("doors/electdr1.wav"); + precache_sound("doors/electdr2.wav"); + self.noise2 = "doors/electdr1.wav"; + self.noise1 = "doors/electdr2.wav"; + } + if (self.armorclass == 4) + { + precache_sound("doors/track_st.wav"); + precache_sound("doors/track_e.wav"); + self.noise2 = "doors/track_st.wav"; + self.noise1 = "doors/track_e.wav"; + } + SetMovedir(); + self.max_health = self.health; + self.solid = 4; + self.movetype = 7; + setorigin(self, self.origin); + setmodel(self, self.model); + self.classname = "door"; + self.blocked = door_blocked; + self.use = door_use; + if (self.spawnflags & 16) + { + self.items = 131072; + } + if (self.spawnflags & 8) + { + self.items = 262144; + } + if (!(self.speed)) + { + self.speed = 100; + } + if (!(self.wait)) + { + self.wait = 3; + } + if (!(self.lip)) + { + self.lip = 8; + } + if (!(self.dmg)) + { + self.dmg = 2; + } + self.pos1 = self.origin; + self.pos2 = self.pos1 + self.movedir * (fabs(self.movedir * self.size) - self.lip); + if (self.spawnflags & TF_FLARE_OFF) + { + setorigin(self, self.pos2); + self.pos2 = self.pos1; + self.pos1 = self.origin; + } + self.state = TF_FLARE_OFF; + if (self.health) + { + self.takedamage = TF_FLARE_OFF; + self.th_die = door_killed; + } + if (self.items) + { + self.wait = -1; + } + self.touch = door_touch; + self.think = LinkDoors; + self.nextthink = self.ltime + 0.1; +}; + +void() fd_secret_use = +{ + local float temp; + self.health = 10000; + if (self.origin != self.oldorigin) + { + return; + } + if (self.spawnflags & 32) + { + return; + } + self.message = string_null; + SUB_UseTargets(); + if (!(self.spawnflags & 8)) + { + self.th_pain = SUB_Null; + self.takedamage = TF_FLARE_LIT; + } + self.velocity = '0 0 0'; + sound(self, 2, self.noise1, TF_FLARE_OFF, TF_FLARE_OFF); + self.nextthink = self.ltime + 0.1; + temp = TF_FLARE_OFF - (self.spawnflags & 2); + makevectors(self.mangle); + if (!(self.t_width)) + { + if (self.spawnflags & 4) + { + self.t_width = fabs(v_up * self.size); + } + else + { + self.t_width = fabs(v_right * self.size); + } + } + if (!(self.t_length)) + { + self.t_length = fabs(v_forward * self.size); + } + if (self.spawnflags & 4) + { + self.dest1 = self.origin - v_up * self.t_width; + } + else + { + self.dest1 = self.origin + v_right * (self.t_width * temp); + } + self.dest2 = self.dest1 + v_forward * self.t_length; + SUB_CalcMove(self.dest1, self.speed, fd_secret_move1); + sound(self, 2, self.noise2, TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void() fd_secret_move1 = +{ + self.nextthink = self.ltime + TF_FLARE_OFF; + self.think = fd_secret_move2; + sound(self, 2, self.noise3, TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void() fd_secret_move2 = +{ + sound(self, 2, self.noise2, TF_FLARE_OFF, TF_FLARE_OFF); + SUB_CalcMove(self.dest2, self.speed, fd_secret_move3); +}; + +void() fd_secret_move3 = +{ + sound(self, 2, self.noise3, TF_FLARE_OFF, TF_FLARE_OFF); + if (!(self.spawnflags & TF_FLARE_OFF)) + { + self.nextthink = self.ltime + self.wait; + self.think = fd_secret_move4; + } +}; + +void() fd_secret_move4 = +{ + sound(self, 2, self.noise2, TF_FLARE_OFF, TF_FLARE_OFF); + SUB_CalcMove(self.dest1, self.speed, fd_secret_move5); +}; + +void() fd_secret_move5 = +{ + self.nextthink = self.ltime + TF_FLARE_OFF; + self.think = fd_secret_move6; + sound(self, 2, self.noise3, TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void() fd_secret_move6 = +{ + sound(self, 2, self.noise2, TF_FLARE_OFF, TF_FLARE_OFF); + SUB_CalcMove(self.oldorigin, self.speed, fd_secret_done); +}; + +void() fd_secret_done = +{ + if (!(self.targetname) || (self.spawnflags & 16)) + { + self.health = 10000; + self.takedamage = TF_FLARE_OFF; + self.th_pain = fd_secret_use; + self.th_die = fd_secret_use; + } + sound(self, 2, self.noise3, TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void() secret_blocked = +{ + if (time < self.attack_finished) + { + return; + } + self.attack_finished = time + 0.5; + T_Damage(other, self, self, self.dmg); +}; + +void() secret_touch = +{ + if (other.classname != "player") + { + return; + } + if (self.attack_finished > time) + { + return; + } + if (self.spawnflags & 32) + { + return; + } + self.attack_finished = time + 2; + if (self.message) + { + CenterPrint(other, self.message); + sound(other, 4, "misc/talk.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } +}; + +void() func_door_secret = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (self.sounds == TF_FLARE_LIT) + { + self.sounds = 3; + } + if (self.sounds == TF_FLARE_OFF) + { + precache_sound("doors/latch2.wav"); + precache_sound("doors/winch2.wav"); + precache_sound("doors/drclos4.wav"); + self.noise1 = "doors/latch2.wav"; + self.noise2 = "doors/winch2.wav"; + self.noise3 = "doors/drclos4.wav"; + } + if (self.sounds == 2) + { + precache_sound("doors/airdoor1.wav"); + precache_sound("doors/airdoor2.wav"); + self.noise2 = "doors/airdoor1.wav"; + self.noise1 = "doors/airdoor2.wav"; + self.noise3 = "doors/airdoor2.wav"; + } + if (self.sounds == 3) + { + precache_sound("doors/basesec1.wav"); + precache_sound("doors/basesec2.wav"); + self.noise2 = "doors/basesec1.wav"; + self.noise1 = "doors/basesec2.wav"; + self.noise3 = "doors/basesec2.wav"; + } + if (!(self.dmg)) + { + self.dmg = 2; + } + self.mangle = self.angles; + self.angles = '0 0 0'; + self.solid = 4; + self.movetype = 7; + self.classname = "door"; + setmodel(self, self.model); + setorigin(self, self.origin); + self.touch = secret_touch; + self.blocked = secret_blocked; + self.speed = 50; + self.use = fd_secret_use; + if (!(self.targetname) || (self.spawnflags & 16)) + { + self.health = 10000; + self.takedamage = TF_FLARE_OFF; + self.th_pain = fd_secret_use; + } + self.oldorigin = self.origin; + if (!(self.wait)) + { + self.wait = 5; + } +}; + diff --git a/engineer.pqc b/engineer.pqc new file mode 100644 index 0000000..29ee766 --- /dev/null +++ b/engineer.pqc @@ -0,0 +1,832 @@ +void () LaserBolt_Touch; +void () EMPGrenadeTouch; +void () EMPGrenadeExplode; +void () TeamFortress_FinishedBuilding; +//void () T_Mortar; +void () Dispenser_Die; +void () CheckDistance; +float (entity obj, entity builder) CheckArea; +/*void () TeamFortress_SpawnDrone; +void () DroneDodge; +void () DroneTarget; +void () DroneFire; +void () DroneDie; +float (float aNum) roughRoot; +void () RailTimer;*/ + +void () LaserBolt_Think = +{ + + self.solid = 1; + self.movetype = 9; + self.velocity = self.oldorigin; + self.touch = LaserBolt_Touch; + self.avelocity = '0 0 500'; + setmodel (self, "progs/beam.mdl"); + self.effects = 8; + self.skin = (self.owner.team_no - 1); + self.nextthink = (time + 1); + self.think = SUB_Remove; +}; + +void () LaserBolt_Touch = +{ + local vector org; + + if ((other == self.owner)) + { + return; + } + if (((other == self.enemy) && (self.enemy != world))) + { + return; + } + if ((pointcontents (self.origin) == -6)) + { + dremove (self); + return; + } + org = self.origin - (8 * normalize (self.velocity)); + if (other.health) + { + SpawnBlood (org, 15); + deathmsg = 26; + TF_T_Damage (other, self, self.enemy, 30, 0, 8); + self.velocity = self.oldorigin; + self.owner = other; + setmodel (self, string_null); + self.touch = SUB_Null; + self.solid = 0; + self.movetype = 8; + self.nextthink = (time + 0.100000); + self.think = LaserBolt_Think; + return; + } + else + { + sound (self, 1, "enforcer/enfstop.wav", 1, 1); + WriteByte (4, 23); + WriteByte (4, 11); + WriteCoord (4, self.origin_x); + WriteCoord (4, self.origin_y); + WriteCoord (4, self.origin_z); + multicast (self.origin, 1); + } + dremove (self); +}; + +void () W_FireLaser = +{ + local vector vec; + local vector org; + + self.ammo_nails = (self.ammo_nails - 1); + self.currentammo = (self.ammo_nails - 1); + makevectors (self.v_angle); + org = self.origin + (v_forward * 8); + vec = aim (self, 10000); + vec = normalize (vec); + newmis = spawn (); + newmis.owner = self; + newmis.enemy = self; + newmis.team_no = self.team_no; + newmis.movetype = 9; + newmis.solid = 1; + newmis.avelocity = '0 0 500'; + setmodel (newmis, "progs/beam.mdl"); + if (infokey(world, "railcolors") == "on" || infokey(world, "railcolors") == "1" || infokey(world, "railcolors") == "" || (coloredlights)) + { + if ((newmis.team_no == 1)) + { + newmis.effects = 64; + } + else + { + if ((newmis.team_no == 2)) + { + newmis.effects = 128; + } + else + { + newmis.effects = 2; + } + } + } + else + { + newmis.effects = 2; + } + newmis.skin = (self.team_no - 1); + setsize (newmis, '0 0 0', '0 0 0'); + setorigin (newmis, (org + '0 0 16')); + newmis.velocity = (vec * 1500); + newmis.angles = vectoangles (newmis.velocity); + newmis.angles_y = (newmis.angles_y + 0.100000); + newmis.oldorigin = newmis.velocity; + newmis.nextthink = (time + 5); + newmis.think = SUB_Remove; + newmis.touch = LaserBolt_Touch; +}; + +void() EMPExplode = +{ + local float expsize; + expsize = 10; + if (self.touch == weapon_touch) + { + expsize = 60; + } + else + { + if (self.classname == "item_shells") + { + expsize = 50 + self.aflag; + } + else + { + if (self.classname == "item_spikes") + { + expsize = 40; + } + else + { + if (self.classname == "item_rockets") + { + expsize = 100 + self.aflag * 4; + } + else + { + if (self.classname == "item_cells") + { + expsize = 100 + self.aflag * 3; + } + else + { + if (self.classname == "item_weapon") + { + expsize = 60; + } + else + { + dprint("EMPExplode: Attempting to explode a "); + dprint(self.classname); + dprint("\n"); + return; + } + } + } + } + } + } + deathmsg = 31; + T_RadiusDamage(self, self.enemy, expsize, world); + WriteByte(4, 23); + WriteByte(4, 3); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); + multicast(self.origin, TF_FLARE_OFF); + Respawn_Item(self, self.enemy); +}; + +void() EMPGrenadeTouch = +{ + sound(self, TF_FLARE_OFF, "weapons/bounce.wav", TF_FLARE_OFF, TF_FLARE_OFF); + if (self.velocity == '0 0 0') + { + self.avelocity = '0 0 0'; + } +}; + +void() EMPGrenadeExplode = +{ + local float expsize; + local entity te; + local entity oldself; + WriteByte(4, 23); + WriteByte(4, 4); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); + multicast(self.origin, TF_FLARE_OFF); + te = findradius(self.origin, 240); + while (te) + { + if (te.touch == ammo_touch || te.touch == weapon_touch) + { + te.solid = TF_FLARE_LIT; + te.enemy = self.owner; + te.nextthink = time + TF_FLARE_OFF + random() * 2; + te.think = EMPExplode; + } + else + { + if (te.think == TeamFortress_DetpackExplode) + { + te.solid = TF_FLARE_LIT; + te.nextthink = time + TF_FLARE_OFF + random() * 2; + dremove(te.oldenemy); + } + else + { + if (te.classname == "pipebomb") + { + te.nextthink = time + 0.1 + random() * 2; + } + else + { + if (te.classname == "building_dispenser") + { + TF_T_Damage(te, self, self.owner, 200, TF_FLARE_LIT, 4); + } + else + { + if (te.classname == "ammobox") + { + expsize = TF_FLARE_LIT; + expsize = expsize + te.ammo_shells * 0.75; + expsize = expsize + te.ammo_rockets * 0.75 * 2; + expsize = expsize + te.ammo_cells * 0.75 * 2; + if (expsize > TF_FLARE_LIT) + { + te.solid = TF_FLARE_LIT; + deathmsg = 30; + T_RadiusDamage(te, self.owner, expsize, te); + te.think = SUB_Remove; + te.nextthink = time + 0.1; + WriteByte(4, 23); + WriteByte(4, 3); + WriteCoord(4, te.origin_x); + WriteCoord(4, te.origin_y); + WriteCoord(4, te.origin_z); + multicast(te.origin, TF_FLARE_OFF); + } + } + else + { + if (te.classname == "player" || te.touch == BackpackTouch) + { + expsize = TF_FLARE_LIT; + expsize = expsize + te.ammo_shells * 0.75; + expsize = expsize + te.ammo_rockets * 0.75 * 2; + if (te.playerclass != 9) + { + expsize = expsize + te.ammo_cells * 0.75; + } + if (expsize > TF_FLARE_LIT) + { + deathmsg = 30; + T_RadiusDamage(te, self.owner, expsize, te); + if (te.touch != BackpackTouch) + { + TF_T_Damage(te, self, self.owner, expsize, TF_FLARE_LIT, 4); + te.ammo_shells = ceil(te.ammo_shells * 0.25); + te.ammo_rockets = ceil(te.ammo_rockets * 0.25); + if (te.playerclass != 9) + { + te.ammo_cells = ceil(te.ammo_cells * 0.25); + } + oldself = self; + self = te; + W_SetCurrentAmmo(); + self = oldself; + } + else + { + te.think = SUB_Remove; + te.nextthink = time + 0.1; + } + WriteByte(4, 23); + WriteByte(4, 3); + WriteCoord(4, te.origin_x); + WriteCoord(4, te.origin_y); + WriteCoord(4, te.origin_z); + multicast(te.origin, TF_FLARE_OFF); + } + } + } + } + } + } + } + te = te.chain; + } + BecomeExplosion(); + self.owner.active_grenades_2 = (self.owner.active_grenades_2 - 1); + dremove(self); +}; + +void () TeamFortress_EngineerBuild = +{ + local entity te; + + if ((self.is_building == 0)) + { + if ((((self.ammo_cells < 100) && (self.has_dispenser == 0)) && (self.has_sentry == 0))) + { + CenterPrint (self, "You don't have enough metal to \nbuild anything.\n\n"); + return; + } + self.current_menu = 15; + self.menu_count = 25; + } + else + { + if ((self.is_building == 1)) + { + sprint (self, 2, "You stop building.\n"); + self.pausetime = 0; + self.tfstate = (self.tfstate - (self.tfstate & 65536)); + TeamFortress_SetSpeed (self); + te = find (world, netname, "build_timer"); + while (te) + { + if ((te.owner == self)) + { + dremove (te); + te = world; + } + else + { + te = find (te, netname, "build_timer"); + } + } + self.is_building = 0; + self.current_weapon = self.weapon; + W_SetCurrentAmmo (); + } + } +}; + +float(entity obj, entity builder) CheckArea = +{ + local vector src; + local vector end; + local float pos; + pos = pointcontents(obj.origin); + if (pos == -2 || pos == -6) + { + return TF_FLARE_LIT; + } + src_x = obj.origin_x + obj.maxs_x + 16; + src_y = obj.origin_y + obj.maxs_y + 16; + src_z = obj.origin_z + obj.maxs_z + 16; + pos = pointcontents(src); + if (pos == -2 || pos == -6) + { + return TF_FLARE_LIT; + } + end_x = obj.origin_x + obj.mins_x - 16; + end_y = obj.origin_y + obj.mins_y - 16; + end_z = obj.origin_z + obj.mins_z - 16; + traceline(src, end, TF_FLARE_OFF, obj); + if (trace_fraction != TF_FLARE_OFF) + { + return TF_FLARE_LIT; + } + pos = pointcontents(end); + if (pos == -2 || pos == -6) + { + return TF_FLARE_LIT; + } + src_x = obj.origin_x + obj.mins_x - 16; + src_y = obj.origin_y + obj.maxs_y + 16; + src_z = obj.origin_z + obj.maxs_z + 16; + pos = pointcontents(src); + if (pos == -2 || pos == -6) + { + return TF_FLARE_LIT; + } + end_x = obj.origin_x + obj.maxs_x + 16; + end_y = obj.origin_y + obj.mins_y - 16; + end_z = obj.origin_z + obj.mins_z - 16; + traceline(src, end, TF_FLARE_OFF, obj); + if (trace_fraction != TF_FLARE_OFF) + { + return TF_FLARE_LIT; + } + pos = pointcontents(end); + if (pos == -2 || pos == -6) + { + return TF_FLARE_LIT; + } + traceline(builder.origin, obj.origin, TF_FLARE_OFF, builder); + if (trace_fraction != TF_FLARE_OFF) + { + return TF_FLARE_LIT; + } + return TF_FLARE_OFF; +}; + +void(float objtobuild) TeamFortress_Build = +{ + local float btime; + local vector tmp1; + local vector tmp2; + newmis = spawn(); + makevectors(self.v_angle); + v_forward_z = TF_FLARE_LIT; + v_forward = normalize(v_forward) * 64; + newmis.origin = self.origin + v_forward; + if (objtobuild == TF_FLARE_OFF) + { + if (self.has_dispenser) + { + sprint(self, 2, "You can only have one dispenser.\nTry dismantling your old one.\n"); + return; + } + tmp1 = '-16 -16 0'; + tmp2 = '16 16 24'; + newmis.mdl = "progs/dispencr.mdl"; + newmis.netname = "dispenser"; + btime = time + 2; + } + else + { + if (objtobuild == 2) + { + if (self.has_sentry) + { + sprint(self, 2, "You can only have one sentry gun.\nTry dismantling your old one.\n"); + return; + } + tmp1 = '-16 -16 0'; + tmp2 = '16 16 48'; + newmis.mdl = "progs/turrbase.mdl"; + newmis.netname = "sentrygun"; + btime = time + 5; + } + } + if (CheckArea(newmis, self) == TF_FLARE_LIT) + { + sprint(self, 2, "Not enough room to build here\n"); + dremove(newmis); + return; + } +// Code for not being able to build near doors. Enable using "localinfo doorbuild 0" (if unspecified, +// you can still build by doors). + if (infokey(world, "doorbuild") == "0") { + local entity isneardoor; + isneardoor = findradius (newmis.origin, 200); + while (isneardoor) + { + if ((isneardoor.classname == "door")) + { + if (isneardoor.orig_origin_z <= newmis.origin_z) { + sprint (self, 2, "You cannot build here.\n"); + dremove(newmis); + return; + } } + isneardoor = isneardoor.chain; + } } + local entity isnearnobuild; + isnearnobuild = findradius (newmis.origin, 200); + while (isnearnobuild) + { +// sprint(self, 2, "entity ",isnearnobuild.classname," found\n"); + if ((isnearnobuild.classname == "func_nobuild")) + { + sprint (self, 2, "You cannot build here.\n"); + dremove(newmis); + return; + } + isnearnobuild = isnearnobuild.chain; + } + self.is_building = TF_FLARE_OFF; + self.immune_to_check = time + 10; + self.maxspeed = TF_FLARE_LIT; + self.tfstate = self.tfstate | 65536; + self.weapon = self.current_weapon; + self.current_weapon = TF_FLARE_LIT; + self.weaponmodel = ""; + self.weaponframe = TF_FLARE_LIT; + TeamFortress_SetSpeed(self); + newmis.owner = self; + newmis.classname = "timer"; + newmis.netname = "build_timer"; + newmis.nextthink = btime; + newmis.think = TeamFortress_FinishedBuilding; + newmis.colormap = self.colormap; + newmis.weapon = objtobuild; + newmis.angles_y = anglemod(self.angles_y + 180); + newmis.velocity = '0 0 8'; + newmis.movetype = 6; + newmis.solid = 2; + setmodel(newmis, newmis.mdl); + setsize(newmis, tmp1, tmp2); + setorigin(newmis, newmis.origin); + newmis.flags = newmis.flags - (newmis.flags & 512); +}; + +void(entity bld) CheckBelowBuilding = +{ + local vector below; + below = bld.origin; + if (bld.classname == "detpack") + { + below_z = below_z - 8; + } + else + { + below_z = below_z - 24; + } + traceline(bld.origin, below, TF_FLARE_OFF, bld); + if (trace_fraction == TF_FLARE_OFF) + { + bld.movetype = 6; + bld.flags = bld.flags - (bld.flags & 512); + } +}; + +void() DispenserThink = +{ + self.ammo_shells = self.ammo_shells + rint(400 / 20); + self.ammo_cells = self.ammo_cells + rint(400 / 20); + self.ammo_nails = self.ammo_nails + rint(600 / 20); + self.ammo_rockets = self.ammo_rockets + rint(300 / 20); + self.armorvalue = self.armorvalue + rint(500 / 20); + if (self.ammo_shells > 400) + { + self.ammo_shells = 400; + } + if (self.ammo_nails > 600) + { + self.ammo_nails = 600; + } + if (self.ammo_rockets > 300) + { + self.ammo_rockets = 300; + } + if (self.ammo_cells > 400) + { + self.ammo_cells = 400; + } + if (self.armorvalue > 500) + { + self.armorvalue = 500; + } + self.nextthink = time + 10; +}; + +void() TeamFortress_FinishedBuilding = +{ + local entity oldself; + if (self.owner.is_building != TF_FLARE_OFF) + { + return; + } + oldself = self; + self = self.owner; + oldself.owner = world; + oldself.real_owner = self; + self.is_building = TF_FLARE_LIT; + self.tfstate = self.tfstate - (self.tfstate & 65536); + self.current_weapon = self.weapon; + self.StatusRefreshTime = time + 0.1; + TeamFortress_SetSpeed(self); + if (oldself.weapon == TF_FLARE_OFF) + { + self.has_dispenser = TF_FLARE_OFF; + sprint(self, 2, "You finish building the dispenser.\n"); + teamsprint(self.team_no, self, self.netname); + teamsprint(self.team_no, self, " has built a Dispenser.\n"); + self.ammo_cells = self.ammo_cells - 100; + oldself.classname = "building_dispenser"; + oldself.netname = "dispenser"; + oldself.blocked = T_Dispenser; + oldself.touch = T_Dispenser; + oldself.max_health = 150; + oldself.health = 150; + oldself.think = DispenserThink; + oldself.nextthink = time + 5; + oldself.th_die = Dispenser_Die; + oldself.mdl = "progs/dispencr.mdl"; + oldself.team_no = self.team_no; + oldself.real_owner = self; + oldself.colormap = self.colormap; + oldself.takedamage = 2; + oldself.owner = world; + oldself.movetype = 6; + oldself.velocity = '0 0 8'; + oldself.flags = oldself.flags - (oldself.flags & 512); + oldself.ammo_shells = ceil(self.ammo_shells * 0.25); + oldself.ammo_nails = ceil(self.ammo_nails * 0.25); + oldself.ammo_rockets = ceil(self.ammo_rockets * 0.25); + oldself.ammo_cells = ceil(self.ammo_cells * 0.25); + oldself.armorvalue = ceil(self.armorvalue * 0.25); + self.ammo_shells = ceil(self.ammo_shells * 0.75); + self.ammo_nails = ceil(self.ammo_nails * 0.75); + self.ammo_rockets = ceil(self.ammo_rockets * 0.75); + self.ammo_cells = ceil(self.ammo_cells * 0.75); + self.armorvalue = ceil(self.armorvalue * 0.75); + oldself.solid = 2; + setmodel(oldself, oldself.mdl); + //setsize(oldself, '-8 -8 0', '8 8 24');gold. commented out.. plexi's idea :j + setorigin(oldself, oldself.origin); + } + else + { + if (oldself.weapon == 2) + { + self.has_sentry = TF_FLARE_OFF; + sprint(self, 2, "You finish building the sentry gun.\n"); + teamsprint(self.team_no, self, self.netname); + teamsprint(self.team_no, self, " has built a Sentry Gun.\n"); + oldself.classname = "building_sentrygun_base"; + oldself.netname = "sentry gun"; + oldself.takedamage = TF_FLARE_LIT; + oldself.th_die = Sentry_Die; + self.ammo_cells = self.ammo_cells - 130; + setsize(oldself, '-16 -16 0', '16 16 4'); + newmis = spawn(); + newmis.classname = "building_sentrygun"; + newmis.health = 150; + newmis.max_health = newmis.health; + newmis.weapon = TF_FLARE_OFF; + newmis.th_die = Sentry_Die; + newmis.th_pain = Sentry_Pain; + newmis.mdl = "progs/turrgun.mdl"; + sound(oldself, 3, "weapons/tnkatck4.wav", TF_FLARE_OFF, TF_FLARE_OFF); + newmis.solid = 2; + setmodel(newmis, newmis.mdl); + setsize(newmis, '-16 -16 0', '16 16 48'); + setorigin(newmis, oldself.origin + '0 0 8'); + newmis.real_owner = oldself.real_owner; + newmis.trigger_field = oldself; + oldself.oldenemy = newmis; + newmis.movetype = 4; + oldself.colormap = self.colormap; + newmis.colormap = self.colormap; + newmis.takedamage = 2; + newmis.velocity = '0 0 -8'; + newmis.flags = newmis.flags - (newmis.flags & 512); + oldself.flags = oldself.flags - (oldself.flags & 512); + newmis.team_no = self.team_no; + newmis.think = lvl1_sentry_stand; + newmis.nextthink = time + 0.5; + newmis.yaw_speed = 10; + newmis.heat = TF_FLARE_LIT; + newmis.angles_x = TF_FLARE_LIT; + newmis.angles_y = oldself.angles_y; + newmis.angles_z = TF_FLARE_LIT; + newmis.waitmin = anglemod(newmis.angles_y - 50); + newmis.waitmax = anglemod(newmis.angles_y + 50); + if (newmis.waitmin > newmis.waitmax) + { + newmis.waitmin = newmis.waitmax; + newmis.waitmax = anglemod(newmis.angles_y - 50); + } + newmis.ammo_shells = 25; + newmis.maxammo_shells = 100; + newmis.maxammo_rockets = 20; + } + } + W_SetCurrentAmmo(); +}; + +void() T_Dispenser = +{ + local entity dist_checker; + if (other.classname != "player") + { + return; + } + if (other.playerclass == 9 || other.playerclass == 5) + { + self.movetype = 6; + makevectors(other.v_angle); + self.velocity = v_forward * 100 + v_up * 80; + } + if (other.building == world && other.building_wait < time) + { + other.current_menu = 19; + other.menu_count = 25; + other.building = self; + dist_checker = spawn(); + dist_checker.classname = "timer"; + dist_checker.owner = other; + dist_checker.enemy = self; + dist_checker.think = CheckDistance; + dist_checker.nextthink = time + 0.3; + } +}; + +void() Dispenser_Die = +{ + self.real_owner.has_dispenser = TF_FLARE_LIT; + ThrowGib("progs/dgib1.mdl", -30); + ThrowGib("progs/dgib2.mdl", -50); + ThrowGib("progs/dgib3.mdl", -50); + WriteByte(4, 23); + WriteByte(4, 3); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); + multicast(self.origin, TF_FLARE_OFF); + BecomeExplosion(); +}; + +void(entity disp) Engineer_UseDispenser = +{ + local entity dist_checker; + local string st; + sprint(self, 2, "Dispenser has "); + st = ftos(disp.health); + sprint(self, 2, st); + sprint(self, 2, " health\n"); + st = ftos(disp.ammo_shells); + sprint(self, 2, st); + sprint(self, 2, " shells, "); + st = ftos(disp.ammo_nails); + sprint(self, 2, st); + sprint(self, 2, " nails,"); + st = ftos(disp.ammo_rockets); + sprint(self, 2, st); + sprint(self, 2, " rockets\n"); + st = ftos(disp.ammo_cells); + sprint(self, 2, st); + sprint(self, 2, " cells, and "); + st = ftos(disp.armorvalue); + sprint(self, 2, st); + sprint(self, 2, " armor\n"); + self.current_menu = 16; + self.menu_count = 25; + self.building = disp; + dist_checker = spawn(); + dist_checker.classname = "timer"; + dist_checker.owner = self; + dist_checker.enemy = disp; + dist_checker.think = CheckDistance; + dist_checker.nextthink = time + 0.3; +}; + +void (entity gun) Engineer_UseSentryGun = +{ + local entity dist_checker; + local string st; + + sprint (self, 2, "Level "); + st = ftos (gun.weapon); + sprint (self, 2, st); + sprint (self, 2, " Sentry Gun has "); + st = ftos (floor (gun.health)); + sprint (self, 2, st); + sprint (self, 2, " health, "); + st = ftos (floor (gun.ammo_shells)); + sprint (self, 2, st); + sprint (self, 2, " shells"); + if ((gun.weapon == 3)) + { + st = ftos (floor (gun.ammo_rockets)); + sprint (self, 2, ", "); + sprint (self, 2, st); + sprint (self, 2, " rockets"); + } + sprint (self, 2, "\n"); + self.current_menu = 17; + self.menu_count = 25; + self.building = gun; + dist_checker = spawn (); + dist_checker.classname = "timer"; + dist_checker.owner = self; + dist_checker.enemy = gun; + dist_checker.think = CheckDistance; + dist_checker.nextthink = (time + 0.300000); +}; + +void (entity gunhead) CheckSentry = +{ + local vector dist; + local entity gunbase; + + gunbase = gunhead.trigger_field; + dist = gunbase.origin - gunhead.origin; + if ((vlen (dist) > 15)) + { + bprint (1, self.real_owner.netname); + bprint (1, "'s sentry gun malfunctioned\n"); + Sentry_Die (); + } +}; + +void () CheckDistance = +{ + local vector dist; + + if ((self.owner.building != self.enemy)) + { + dremove (self); + return; + } + dist = self.enemy.origin - self.owner.origin; + if ((vlen (dist) > 64)) + { + CenterPrint (self.owner, "\n"); + self.owner.menu_count = 25; + self.owner.current_menu = 1; + self.owner.building = world; + dremove (self); + return; + } + self.nextthink = (time + 0.300000); +}; diff --git a/fight.pqc b/fight.pqc new file mode 100644 index 0000000..6b34c64 --- /dev/null +++ b/fight.pqc @@ -0,0 +1,165 @@ + + +float(float v) anglemod; + +//void() knight_atk1; +//void() knight_runatk1; +//void() ogre_smash1; +//void() ogre_swing1; + +//void() sham_smash1; +//void() sham_swingr1; +//void() sham_swingl1; + +//float() DemonCheckAttack; +//void(float side) Demon_Melee; + +void(vector dest) ChooseTurn; + +void() ai_face; + +float() CheckAttack = +{ + local vector spot1; + local vector spot2; + local entity targ; + local float chance; + targ = self.enemy; + spot1 = self.origin + self.view_ofs; + spot2 = targ.origin + targ.view_ofs; + traceline(spot1, spot2, TF_FLARE_LIT, self); + if (trace_ent != targ) + { + return TF_FLARE_LIT; + } + if (trace_inopen && trace_inwater) + { + return TF_FLARE_LIT; + } + if (enemy_range == TF_FLARE_LIT) + { + if (self.th_melee) + { + self.th_melee(); + return TF_FLARE_OFF; + } + } + if (!(self.th_missile)) + { + return TF_FLARE_LIT; + } + if (time < self.attack_finished) + { + return TF_FLARE_LIT; + } + if (enemy_range == 3) + { + return TF_FLARE_LIT; + } + if (enemy_range == TF_FLARE_LIT) + { + chance = 0.9; + self.attack_finished = TF_FLARE_LIT; + } + else + { + if (enemy_range == TF_FLARE_OFF) + { + if (self.th_melee) + { + chance = 0.2; + } + else + { + chance = 0.4; + } + } + else + { + if (enemy_range == 2) + { + if (self.th_melee) + { + chance = 0.05; + } + else + { + chance = 0.1; + } + } + else + { + chance = TF_FLARE_LIT; + } + } + } + if (random() < chance) + { + self.th_missile(); + SUB_AttackFinished(2 * random()); + return TF_FLARE_OFF; + } + return TF_FLARE_LIT; +}; + +void(float d) ai_charge = +{ + ai_face(); + movetogoal(d); +}; + +void() ai_charge_side = +{ + local vector dtemp; + local float heading; + self.ideal_yaw = vectoyaw(self.enemy.origin - self.origin); + ChangeYaw(); + makevectors(self.angles); + dtemp = self.enemy.origin - 30 * v_right; + heading = vectoyaw(dtemp - self.origin); + walkmove(heading, 20); +}; + +void() ai_melee = +{ + local vector delta; + local float ldmg; + if (!(self.enemy)) + { + return; + } + delta = self.enemy.origin - self.origin; + if (vlen(delta) > 60) + { + return; + } + // pablo. + //random(); + ldmg = (random() + random() + random()) * 3; + T_Damage(self.enemy, self, self, ldmg); +}; + +void() ai_melee_side = +{ + local vector delta; + local float ldmg; + if (!(self.enemy)) + { + return; + } + ai_charge_side(); + delta = self.enemy.origin - self.origin; + if (vlen(delta) > 60) + { + return; + } + if (!CanDamage(self.enemy, self)) + { + return; + } + // pablo. + //random(); + ldmg = (random() + random() + random()) * 3; + T_Damage(self.enemy, self, self, ldmg); +}; + diff --git a/fish.pqc b/fish.pqc new file mode 100644 index 0000000..138f0f3 --- /dev/null +++ b/fish.pqc @@ -0,0 +1,497 @@ +void() f_stand1 = [39, f_stand2] +{ + ai_stand(); +}; + +void() f_stand2 = [40, f_stand3] +{ + ai_stand(); +}; + +void() f_stand3 = [41, f_stand4] +{ + ai_stand(); +}; + +void() f_stand4 = [42, f_stand5] +{ + ai_stand(); +}; + +void() f_stand5 = [43, f_stand6] +{ + ai_stand(); +}; + +void() f_stand6 = [44, f_stand7] +{ + ai_stand(); +}; + +void() f_stand7 = [45, f_stand8] +{ + ai_stand(); +}; + +void() f_stand8 = [46, f_stand9] +{ + ai_stand(); +}; + +void() f_stand9 = [47, f_stand10] +{ + ai_stand(); +}; + +void() f_stand10 = [48, f_stand11] +{ + ai_stand(); +}; + +void() f_stand11 = [49, f_stand12] +{ + ai_stand(); +}; + +void() f_stand12 = [50, f_stand13] +{ + ai_stand(); +}; + +void() f_stand13 = [51, f_stand14] +{ + ai_stand(); +}; + +void() f_stand14 = [52, f_stand15] +{ + ai_stand(); +}; + +void() f_stand15 = [53, f_stand16] +{ + ai_stand(); +}; + +void() f_stand16 = [54, f_stand17] +{ + ai_stand(); +}; + +void() f_stand17 = [55, f_stand18] +{ + ai_stand(); +}; + +void() f_stand18 = [56, f_stand1] +{ + ai_stand(); +}; + +void() f_walk1 = [39, f_walk2] +{ + ai_walk(8); +}; + +void() f_walk2 = [40, f_walk3] +{ + ai_walk(8); +}; + +void() f_walk3 = [41, f_walk4] +{ + ai_walk(8); +}; + +void() f_walk4 = [42, f_walk5] +{ + ai_walk(8); +}; + +void() f_walk5 = [43, f_walk6] +{ + ai_walk(8); +}; + +void() f_walk6 = [44, f_walk7] +{ + ai_walk(8); +}; + +void() f_walk7 = [45, f_walk8] +{ + ai_walk(8); +}; + +void() f_walk8 = [46, f_walk9] +{ + ai_walk(8); +}; + +void() f_walk9 = [47, f_walk10] +{ + ai_walk(8); +}; + +void() f_walk10 = [48, f_walk11] +{ + ai_walk(8); +}; + +void() f_walk11 = [49, f_walk12] +{ + ai_walk(8); +}; + +void() f_walk12 = [50, f_walk13] +{ + ai_walk(8); +}; + +void() f_walk13 = [51, f_walk14] +{ + ai_walk(8); +}; + +void() f_walk14 = [52, f_walk15] +{ + ai_walk(8); +}; + +void() f_walk15 = [53, f_walk16] +{ + ai_walk(8); +}; + +void() f_walk16 = [54, f_walk17] +{ + ai_walk(8); +}; + +void() f_walk17 = [55, f_walk18] +{ + ai_walk(8); +}; + +void() f_walk18 = [56, f_walk1] +{ + ai_walk(8); +}; + +void() f_run1 = [39, f_run2] +{ + ai_run(12); + if (random() < 0.3) + { + sound(self, 2, "misc/water1.wav", 0.6, 2); + } +}; + +void() f_run2 = [41, f_run3] +{ + ai_run(12); +}; + +void() f_run3 = [43, f_run4] +{ + ai_run(12); +}; + +void() f_run4 = [45, f_run5] +{ + ai_run(12); +}; + +void() f_run5 = [47, f_run6] +{ + ai_run(12); +}; + +void() f_run6 = [49, f_run7] +{ + ai_run(12); +}; + +void() f_run7 = [51, f_run8] +{ + ai_run(12); +}; + +void() f_run8 = [53, f_run9] +{ + ai_run(12); +}; + +void() f_run9 = [55, f_run1] +{ + ai_run(12); +}; + +void() fish_melee = +{ + local vector delta; + local float ldmg; + if (!(self.enemy)) + { + return; + } + delta = self.enemy.origin - self.origin; + if (vlen(delta) > 60) + { + return; + } + sound(self, 2, "fish/bite.wav", TF_FLARE_OFF, TF_FLARE_OFF); + random(); + ldmg = (random() + random()) * 3; + T_Damage(self.enemy, self, self, ldmg); +}; + +void() f_attack1 = [0, f_attack2] +{ + ai_charge(10); +}; + +void() f_attack2 = [1, f_attack3] +{ + ai_charge(10); +}; + +void() f_attack3 = [2, f_attack4] +{ + fish_melee(); +}; + +void() f_attack4 = [3, f_attack5] +{ + ai_charge(10); +}; + +void() f_attack5 = [4, f_attack6] +{ + ai_charge(10); +}; + +void() f_attack6 = [5, f_attack7] +{ + ai_charge(10); +}; + +void() f_attack7 = [6, f_attack8] +{ + ai_charge(10); +}; + +void() f_attack8 = [7, f_attack9] +{ + ai_charge(10); +}; + +void() f_attack9 = [8, f_attack10] +{ + fish_melee(); +}; + +void() f_attack10 = [9, f_attack11] +{ + ai_charge(10); +}; + +void() f_attack11 = [10, f_attack12] +{ + ai_charge(10); +}; + +void() f_attack12 = [11, f_attack13] +{ + ai_charge(10); +}; + +void() f_attack13 = [12, f_attack14] +{ + ai_charge(10); +}; + +void() f_attack14 = [13, f_attack15] +{ + ai_charge(10); +}; + +void() f_attack15 = [14, f_attack16] +{ + fish_melee(); +}; + +void() f_attack16 = [15, f_attack17] +{ + ai_charge(10); +}; + +void() f_attack17 = [16, f_attack18] +{ + ai_charge(10); +}; + +void() f_attack18 = [17, f_run1] +{ + ai_charge(10); +}; + +void() f_death1 = [18, f_death2] +{ + sound(self, 2, "fish/death.wav", TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void() f_death2 = [19, f_death3] +{ +}; + +void() f_death3 = [20, f_death4] +{ +}; + +void() f_death4 = [21, f_death5] +{ +}; + +void() f_death5 = [22, f_death6] +{ +}; + +void() f_death6 = [23, f_death7] +{ +}; + +void() f_death7 = [24, f_death8] +{ +}; + +void() f_death8 = [25, f_death9] +{ +}; + +void() f_death9 = [26, f_death10] +{ +}; + +void() f_death10 = [27, f_death11] +{ +}; + +void() f_death11 = [28, f_death12] +{ +}; + +void() f_death12 = [29, f_death13] +{ +}; + +void() f_death13 = [30, f_death14] +{ +}; + +void() f_death14 = [31, f_death15] +{ +}; + +void() f_death15 = [32, f_death16] +{ +}; + +void() f_death16 = [33, f_death17] +{ +}; + +void() f_death17 = [34, f_death18] +{ +}; + +void() f_death18 = [35, f_death19] +{ +}; + +void() f_death19 = [36, f_death20] +{ +}; + +void() f_death20 = [37, f_death21] +{ +}; + +void() f_death21 = [38, f_death21] +{ + self.solid = TF_FLARE_LIT; +}; + +void() f_pain1 = [57, f_pain2] +{ +}; + +void() f_pain2 = [58, f_pain3] +{ + ai_pain(6); +}; + +void() f_pain3 = [59, f_pain4] +{ + ai_pain(6); +}; + +void() f_pain4 = [60, f_pain5] +{ + ai_pain(6); +}; + +void() f_pain5 = [61, f_pain6] +{ + ai_pain(6); +}; + +void() f_pain6 = [62, f_pain7] +{ + ai_pain(6); +}; + +void() f_pain7 = [63, f_pain8] +{ + ai_pain(6); +}; + +void() f_pain8 = [64, f_pain9] +{ + ai_pain(6); +}; + +void() f_pain9 = [65, f_run1] +{ + ai_pain(6); +}; + +void(entity attacker, float damage) fish_pain = +{ + f_pain1(); +}; + +void() monster_fish = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_model2("progs/fish.mdl"); + precache_sound2("fish/death.wav"); + precache_sound2("fish/bite.wav"); + self.solid = 3; + self.movetype = 4; + setmodel(self, "progs/fish.mdl"); + setsize(self, '-16 -16 -24', '16 16 24'); + self.health = 5000; + self.th_stand = f_stand1; + self.th_walk = f_walk1; + self.th_run = f_run1; + self.th_die = f_death1; + self.th_pain = fish_pain; + self.th_melee = f_attack1; + swimmonster_start(); +}; + diff --git a/flare.pqc b/flare.pqc new file mode 100644 index 0000000..f3dede9 --- /dev/null +++ b/flare.pqc @@ -0,0 +1,105 @@ +void() FlareGrenadeTouch = +{ + self.touch = SUB_Null; + self.velocity = '0 0 0'; + if (pointcontents(self.origin) == -6) + { + newmis = spawn(); + setmodel(newmis, "progs/flare.spr"); + setorigin(newmis, self.origin - '0 0 30'); + newmis.movetype = 8; + newmis.solid = TF_FLARE_OFF; + newmis.effects = 4; + newmis.effects = newmis.effects + TF_FLARE_OFF; + sound(newmis, 3, "items/flare1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + newmis.velocity_z = -30; + newmis.velocity_x = random() * 10; + newmis.velocity_y = random() * 10; + newmis.nextthink = time + 30; + newmis.think = SUB_Remove; + newmis.touch = SUB_Remove; + newmis.classname = "flare"; + dremove(self); + } + else + { + sound(self, TF_FLARE_OFF, "weapons/bounce.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.movetype = 6; + } +}; + +void () FlareGrenadeThink = +{ + local float _l_8723; + local float _l_8724; + + _l_8724 = self.health - time; + if ((_l_8724 > 37)) + { + _l_8723 = random (); + if ((_l_8723 < 0.500000)) + { + self.effects = 8; + } + else + { + self.effects = 0; + } + self.nextthink = ((time + 0.050000) + (random () * 0.100000)); + } + else + { + if ((_l_8724 > 34)) + { + _l_8723 = random (); + if ((_l_8723 < 0.500000)) + { + self.effects = 4; + } + else + { + self.effects = 8; + } + self.nextthink = ((time + 0.050000) + (random () * 0.100000)); + } + else + { + if ((_l_8724 > 15)) + { + self.effects = 4; + self.nextthink = (time + 10); + } + else + { + if ((_l_8724 < 1)) + { + self.owner.active_grenades_2 = (self.owner.active_grenades_2 - 1); + remove (self); + } + else + { + self.effects = 8; + self.nextthink = (time + _l_8724); + } + } + } + } +}; + +void() FlareGrenadeExplode = +{ + self.skin = TF_FLARE_OFF; + self.health = time + 40; + self.nextthink = time + 0.05 + random() * 0.1; + sound(self, 3, "items/flare1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.solid = TF_FLARE_LIT; + self.think = FlareGrenadeThink; +}; + +void () RemoveFlare = +{ + self.owner.effects = (self.owner.effects - (self.owner.effects & 4)); + self.owner.active_grenades_2 = (self.owner.active_grenades_2 - 1); + dremove (self); +}; + diff --git a/gmqcc b/gmqcc new file mode 100644 index 0000000000000000000000000000000000000000..26612df6e959335255cef023a66f3c931a2f3561 GIT binary patch literal 3236272 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 NSAN%D*I z_eHIZ;Y(*>vn%?pDZ9^pe<*4qDx zhbL?G9+$>S2M)vS8((Hmk@_mp#9jo~v3bOw|3!lJ7*r#TYqH_t4j5;avn>2D>4HrdR%%u?c?f~i}JNMfUOwzmARrXl=G0{XhD|Y%hZsMW0e_ibYi zxW~MpPPzAmuOzvQo(&1PcT<6Qq;p6*Uj&Rc!8pwFEj@QrT@>uNO;esdF4mg+K7%$W zvXiX5O8M^Quw+A9wO7uvj(hlUeD4#w7t`A;_ycyD^R(vYVSmlX(B;Y<SkwcR_k#i61+2n)7A@Oic6np}^5T-Pf<@N4oqzxK08UCNQki@n}s$^^qf46GHL z?TqG@sGjd8Ra!l`+9Nm}(e95Y;vgD6aQE{$4)3uP#GBC z+%3t4>(#zwYax1{ba=NrKC5Q|)}dQ?3+q(2_X|AWYsOlgc|SGB_><+R_Xr=be2&32 z^UiL43k6<|E?^XNq+_=S` zg8Iehrk2|oon@l2t|d7)J66}Zl4LDB%vG_I0g4kv@iVl9?vhycRNyPQzDn27gIwwh z4@$?g*PLB=;VEpHde3|Px@W$k_T<3Kg=NP*=QQxSdgV6z+88uYGN%o3&Chbs=CVj8 zKL1@Cts}TB_|60Ukk^MqD{HMb_rF5CuDMb=XOEWpES(c`Gw)013+StUz(ywIHt|{n zc{TaSZKEcIead0d$LT6-91HkZ8^s3rAFev^)a8@+qE!ec<6LE-Ytn58NhX@+PS{QMYLbm z5A6d*`-Np_Pu6Ut^FnXjeJgw@2K4B>5}ivw@WJ{kvLVlE(wfmhF9lf>gL-5a;%Nz< z6W!FQf0b+o`*9n7Ib$3q2D;p2k74X{xoNFPXO#IC31ee24hB0AU3t}$*8x8s2Xm8a zHXG|J6*C-~5!WYI?#%TPNHty4&L&UJtN0S?+WY*|8dw~W`2~4Yo9VYh(CJv zv*)`j&YO?_@pE2{ikY>!3)bR?GfJGd>m6H!|r9RN7RT$bkBOklSc1Iqc=?>vWsaC z*Csp7Ap?*2iSy+0BHs*hP4VWsVC@Hnyl z+1*Zgo|FAZ)(_B;=b%km!>5mp`(c0b3E?V6Z4QjuuwNYRNw*Hi_4^x>*B{j%yKuY5 z-fvf(w`W{}?n}%^VqCoIXtLmt<73Az^I$KM3x1%v@ks8mM@4&h|EKZ*_=xi`$vccW zKN4V`Rz)4(-;c6Wvz|F#`@qA35KGI8|Px^HmfHuLnB5oI82`~2qV}74L zf-y$4g#M-EY~u{c)oFFP4v{?I4Oo1yK)%`M-Mhlsqmy*sf19mihXIdp26@Y0V!6K< zt>HNgVqd(DSM0}cj?g{#n_We33>zIis{80Pz)s=*mBEEKbnEi0@OBw8xy$5>!4GuO^G++n)0!A z0k{5-)tR@v`uqH^N!RXgUpDyMH~4+dOUQ>eJG<83xQ;K4*S-Vx0nfw`cy@g3N%%ed zfw&&a$bIBJW{2MIFXD-OD~9!m>c|PukGET?I^YkHJn-|l{hyXnxnXldV3^ z^+;W7efIH!$q`zrv{tuwe6Lw!E^CIL7C z%mU{`bq+np+UacDE5BeRIU{?e$OoN!j@u~vo2=hoHE-<7xj#a?VEs4s zIPrf;j~=rc6hm159$_&A`iY&1e_h(Wo#KIV6sut(hhMt4{l(oyqLui(Bhs zoV&uu{t11e>A&e?pWgLibuWjjZj5@kajd`IeX8>R2}TP3i~yg%mxMv*-!+ zWyaQmax~&jMLro@*X)wmOCg_(tvxWyjIDkS>AywKo!dxH$YrE2;vZ+wTwh*J%crM4 zLq5s9zVf+J^n`lJr>8H^&y|r6Yx3kCH8+^%yTu?@R@(dXBu-w`Bds9*-VEjOzw zi3im!7xZguN%pT7#58Dqfw%)LaIS*UnEo;9w{HduEU zEb<%V7taN~oVLrJ`V6~F?)A0HLuHqtUUu2jw;#LoxnN%OAS2(OoT2$&dXJCXJ$cS8 zwa;idIW`=hw*lq^*)aYGY}N&}9XE)DBw2oCxdq2b0qWQ%m>-ByItq&Y3xv>Vt z`~;mb|DeoS0rr@D-SmJ_$=RHG)yMCcI6?c%?hiA?SARY++rG~e>(pa=m-Lq96Ki)! ze4@7amtaq{KU(&IZI9M}G59d+8i|d%pWOR$wx4`i{T$Xn!9tIoo^xK895-OZceNf6u*?uhlBI+$dj&eeIN>v&8Rq)OCNp zcB|wN@_%TNyyCgO``RsbUN6>5)?EK58ST&q{<@_#o5e=Q!$!w{(@&3k+y9-PruU-qOqX-$k~5ueZ-B=7#ka z^JRRC=Vy9y2lXK)ktc^W82#6(oW%LQYcikF8EW+pdyO7T%h`bAho(l^0Bg|Lz%jx- z;%`;C^lz!^{x5zF!rP&r)4NX}*(7Tt$PC#aqjIuoG}-JQ_1{kYkZrm@`pc`HT*BA8 zw8tG}t9QI8?k8(;=y+T82d;87YMpO0{goRBv&NO;yRX){iX@&7R(y=l^;aq9B1gM+ zd)3>xvX8EFC4Xj>XXLNU%+bzNye3y{`YWaCT^op8dDrFVX&6tMcfoXA-^i zjs4PJh76%UEyI^H)~@fKRFhk*T-tT(XVA#Yhx#6^eBdYVN&JYtV&3o+b#I975qH!1c%9@Jwl2g9-y+Z+JnKj%7@xmBDAD@@H{X8x`v%k+7HFQ;} z+~8NHd+2VLANts)oTQp@W6VF2@#Awf$$0PQXx#ScH&AW89P{gQI>v3CXI_=p`?;_S zVu$Z*`#MJaJP@*FeT_8*GX0Io#Fco_8u{4;9Lr_jL%kkO!a3QppUrYbmAw(SZL?m@cSnuK7g-NKHJJX@06TN zOmeI59w+%K#*%v;pt+oEHJp1YiXZCgtq$IsR0n|c%EG1G_{^v}Nu09`gmix1a9eC-A(Y%=`%cSq}_3NEtdBV>(i2Wm%8ktZ!-d zN@&{C`sIpqwZFo?RT4MQ?E%6G&ps9b!($Ng^KyUk`?|&=ZwJp?+fP~be7A+0`#JxC ztkYwi$I@A{wONXt+}~c$oGm#jdH+=2o`+O@cxNl`-I*oc{8{#oC~iyUAx0xR?vY1g z(;tfNDb{Vars{RSuT1Q=U3Q25+U%cqCs3YZ|E>1lV*iuvf1>>}o{bleF?~FvagF7L z(DazD8^kAVc-L~J@h5*8w)Dt^=OI?7u_Juv0l(+j)&}+AnrB}1ZsUL__7PzA!~@G2 z-M)Dal6*tu`Pi|;a=4%E_3L50?yW*&-soV*E?22gXUr3oqF5C*DU!M z`Cp@CSxy-moWRGFxV#MP=N_}}8 zEEvOzWbLbuF%lSUVr}-WDq2kpX{lYt&)u(87clQgM z)-$)oE|8yp&t&i#q0(=(+DrJ9G%$CX7l)h>6&xN%!9$vj{T~ArQM?( z-|tA>rySp(mby>b?=NrewUuQJiLIay@V=Q?Rg^5ho^gJUSarGL193Kv!ya#*V2)cz zzCn@|hac5@BwLVuB8OpZb}hKWW()3QE8{C%$9V-gf2hmIX&Fb*GqzA6TR<-Fs;yYh zdzgCQq;uKuzJm)^irzKMJ*P&vxlZE_bs4xByVAIK6Yi&3t9i2K0!-<1C&HCrct zpKHZ7c?t~8LK`^t<9F=8vYQE z=d2~re=+@Ax>ijtDc4kak-?jSAB31NH~7Sq;+Mi+Gi@%iK2xpFh5ht#n#ZcmG_3)4 zT5doNxR3S2kM-T&VaS8nSrWe`;mO(k=~mv($}>zJ(@h?uRX;)Un4muG*5=K~gZ{1b zH+fKQF?i+VL7QW&5AvWqzMno$^Q+38rb`|(B6&RF`IN~+d05E5n5%hC%RWzQA&FZ( z^Lfp^YX3pW87Uu|S|wj(jZJgi*RT89wBA!QKgQX<1)RGX&gvA-_6R4} zTf#XdYR@%e*srU@H?_hXF%6IVx7vN?miVCa$TjzGwEN6CJ-#3VuDSn1yU$#7V$`2& z?tjPbGY3t}ko#BI{Z`#i$7=3>-R?7|^)UtfTyuZE-Dj@5z2=3~`C1Xrx2({55$~6d z*Q~?-WnSyHh2)vaeU-Boq+9kE-zghe{6o-&NH)Z^&FLy7ieOm?$Z^u1g<&mZ3 z6SdK`_I1KKN_>wzp1cG5PWKyZ_XgQLZwt&pb}uKH^|xNm`Z4y*_k#=SN1XAs@|TWE z<|mB#td(!HGWkRDj)r7DzMtlXVXYiqh>ya_dhSfkDFj>d{$$UZSPPyyi%-?+$Gb;Z zAND!JKMV(bcrR-Do5oq|{aLi%oud8zh<5f;orZs@KBnE{BRT9qm$`UCwyamAdHA#X zr+HXrxZr`k)HDyim%2dfP74*E7fA;TP4>v{L-o1!lnWt`NY=uzMt?dg=6Bqm{9Q@*FEOmhg>1kIO$+J!?mSPURa7rfb(5Hv8dKiN53c zEdCt&Sl-RrO-ZmE?pL@@#rsa90r~x1^2-Ysu^RqZdmN!M^Msu8p;LYIOyNr8^rG=zpVvBr=$I*= zis^lQWulvd~|H$^zF(TtU`n*t!&BRJ-h?Es7PLy2p6lo)^DKyD+zz zXtXg`VDHcK0rGuhrS;3iCQVkGwUa%h<@Y0#AN^UAOy`XaszV-Gu+nmU*EY)N5|a_* zq|2x!l98|7G0skrj9McZ?Qb%gA{mX=HS~Gj!!`ExGrfBcd+Rj$oDMHm##V_f#C+a2 zkjbO<)0oh|T-6SnB*!IQoV*2@dJN8@`LFiAK;CI3`yCc+s*LTA-2xuja;E(+f3Da5 zx5k$DH$6>=^fV#T(+#$6M7}gxdYTyN>2}@2mRXDVy{_vdfAqxI%QbrHeq+-WAtp(V zoCDK&scJ7zRGIZoFCVM2&Ybj=C#kHps-7}ujR!~N$tqVy<>OUm4HkIB(-5;Fe}^`Y z6SMn~liLw~6XJ~E`8V~5H8Gsd2u_xdrFG!EVgoVnyQ}=a#XH|8>5upE5zT4(wuSdm z5uB~z9iPND=E^6LL)O@HZpOX9i`s9?*wZ06!5*WrXPRL6*wZGv3I3jRhi81~T_u(M>R{5S=t*LMG3_TD|ts;d0s zKf??T{3-EZw)w2(Dj%bmZ;aX#*P}a?BIM4%VbBJ)Q3@@T--Rxo*dT+86P|5+cS8IuN~)@?#wscxlHA4(w(*%bZ2r7 z|0?;2Jp{Key0c#n?7r&G;Ecu)18ry@v1N_;^+k79?_1eNxO{dIP4lHY=R~@*c}8bP ztUHX+=m`G#ulBuPo}Ltuv-Ib?uXTl3tR-sKQKcPmG;?0xf9QKMCTebs{$R7r+n9@@ zOTPDlGx9#OL*~b5e_3>2C~Dl%_mJpi?2njN0i#{|%sOg|{x^8_XwCmsMjS#vypQ)a z_;c=jvJ~R74*k!S{(qA^H+h1&%G2szIU8_izQr^1kXG^A$FI*Sr%6ty)$HYamg9t$ ziw_p=rNtd;Tdx12c<6N(s;5(d&ZfNo6x<_hnWXFp!&Ywka$mJL+>@6U@wc-vsay@Gq$0LZ@%F@@ez7M zJ73#pZ`FIZ&-8}A#wkb4d*90eZ7-P*Wxi-<3a)hq8s7)R<89o>O(nsX{CJ%YI3`Z4b(8Smrv=+g}mP4GT_e_iz6d4E%}I`2=-;XV74$-BBPG=q=)GSA2B zo0hOgMDmPfcx(&D}_dVJD82OBGkx3A z8xH%Cg^&OLz&@rM6QmoB(v3#F!~Y0}U<2s%-@9H9_5vNy;P~^u&!r6i@ZA~yVWRvC zZAw!!-6Utp*fjX*?7a7h^1t*kP4(Odeq8%8fXzJC=8EBai|)GFJT&;Nh!4Bz+nUg4 z8K&kRf=ezW&RLICJ?Y7s7{6DK?up;CPj$m``xqScwS{2BIBNb{#*zArO?3hnrjpP`gOMw4!IgXMXdCrq#=I3;tzR8j2 zSdNeDyQ=U1G4Ny69_kvJV!Se_cFf>~=Xa zt~-BLD~B!~_GrH_Y5%3DeI5_LFCIdR<64b}kBEn_>hjz^|5r9e_As@mwYO5X{zmSU z|M{CDnCS2s;8R-MF-_0oEM7pjj^4PihBCgzVNCV>CF2$T75~Ehc*zz1QMXaF6Vp7a zy{m^C|E36z*PWocyQwbEoG~#`a3<=0pJY#7f5~}@_{;u)iKT5j@9xU<_&~whPx`ZT zuY)>hM_hPPTh~)g%R$E5lUll-YG^rT1;1Rkv>wy}Z*R8WpX&FP)}uR4YWc-ej~`F_I+-gTMQn5KV0WpsQp_bTF7N7M>+HW!v~tk)4q{u`tI zorb^LenO``?c@3AeMW zqj$aG^BLij=~UNK#PPB2-5hkSXE}ZSG^f0`ehz<=`q@YQ92N2Ry~f`>eLpqgQ_9~H zqjxEPKOMd6jqWYqB)b27*qbBA4)xR3zgvIFeScB zGxo&A`WD;#=DpNUWwKE(^?Q@kHKHre24B!#VbRucQjK^&*-L%!PJPS6y|n2K_gTUn zo?^dQ9G0zlT-w$380SMU?!^B3XWpOr`4pcYMekESUmLya4X-1G*UU&)SZ8@p1z&ej z1UI$C^P+btKJ%k@z2P%j_*C+B>*CY4-@x#i1g|;b7wb^)E6<+Z7tx*aYkc%B<=43A zU2pt)>d+0#uLm|TyjukC@rG_+#JZg3*kxaILA!k?*-OgL)&8!6f9Q?J z=Zc0rzw|ucU2pu` zPk0?2=>Ti5OQZvJ=J$MDI#aq3$5y9#ABAi@BKP>ho{Kscj{fC}U%it(?#HYUjPSjO z{OXE+dj6bfsc)HGam@O70#j#`uDrC5FjHQ%JIr;I+biwzDH zy;R7BdCY;**^}$K=a=LwcvsRp^03_dJmsFKAAA7%4KDoBFLQe4rQ|KP(fn`^vjfW0 zdFORUb<-QqJAs$Q{w8_)OIL-1RJ`(D9y`jH)Z zpcoGGcHp;3wy}JWb(_kOzvl)fh*#`GuQsQCP3O;e-U0fqH9X=zm4692=pBVy8Fo=| zII?J4+~H--E*sh01mQw_&UrB&r!Q;yb;!-Ttmnd8)gyl}LGV68d*zqPa<2&ImmR?G z*T#RzXYB`A->e&G&2Ffd1NXi5ZkhfU!1EuXX|3idel$&dW?Da*t5=&NM#u5WoD+p9bhpztlzXRg*rF$LSv7dAco#lQH-8b4j>(J;N<-6#f^=9rZM;Ul= zwZ3cgTvJ&FZQZ%1rALZp^#@L|&FA@&zT}#YmJTxJo~`~-$uQc-d{`(i?u%dK6{hd%LGhs!&wJ|TeAKcV|-8U$u>5yE;v(dhMS-E z@q;}Jtle?0nEX_E4_otFhj-4E-Y{o(U1bf{>u;+1(nsapv-zfStL1moa@vlP9c*KJ zp3z10ucW@Yub1rR=<@tPgV_+{lK012gw96`_{IOftn-tboF?i{7cKav*KHr8_f^fG zF43AScBYl81N3bN5HPvuGRdwJaxT6<*vy0xamU^=G ze8)QS`aYRnT`HI!>$Ip%Tn9axvwOE5g?&(h7wgfN)t){Z+s3bK(eEVn4Q)>eKEB4* zfk)_mPxqaSM|?j$xW4dAXrq`hz|c1*?w_Ye{jv`3a&=v8RbR2L@=U(^p`G$|)$8Z! zs=pi9ymnjmeVvfVX^hG~8I_?U4#Rbm=SsTCJJ-#lA~@JVHTl-%=o7G9Hz)J~*7NUQ zThD>zy17RmVEs|BdehAZRHu?|emK$1qfB?O*FDYteSEa@1TNm!d=2{Q^P7eQXLJSG zxXx7L?bX5$Sj5`wvlyp)##Z)bbI+a%_71Zb*PnSWUl*QzAH)^g+B&`7q34W?tQ~>_ z^@&kv@472^LuZd2-Z@+F{eO;#5vhYdU%B(zI*EUE7|V0s(%Ul#QXF1$ldab1_&MN!>aaok@xPK|JMoZvJ4 zrLuS2;{JVJb#l}{^QdaLembh_bRnl0uCJR-i|RsGUhJm5RYS=?I?nX3|Ib@P-R;G9 zjjI=PKT`MoqkEk{5X$+#J?*bO8yGR~ZXOBDqve0Y|A!8Ja@_FFCBn1L&Kwb}rk7QQ zd>JnayK+CLvo||lq5pmyB3aUgHP>mTr_c{ff6m+Y<=>Ql?bWr<&-48dob}E3QlpC5 zcSOE-YNqc6Q9syV77Ju!&9Z-F`yeP|9n|-!-K2dGe||8GL#vJxPkHa~G*4Oe{MMPR zqOY4An4RI;s5(Bsar@Ob>^fpa-}w~f2TD5ECg;D7Qk>4KfK#(@`ibE*-t?FLcM^T! zY*M`savE2^5}pn-TJb+TYhTvTfx?kEjCp{*eGJdUvAmbR3eUvUJmX)ef1^EXJ`tW3 zBd=Ooy0v4m_6?Lw2QJiJn38lreFlHEY>&*2uD9Q%_Ipc9W+Uu90QVhTHiE+%1oq>6 z-ZpxNz6{oyHTuJUX>evT>(%h~ebOuZ7Vvz3MVsd5$LZpmRp#ZcBm7S$-yRN@j$r5P zkKs&P=I6&5PK`z7P`q!gj}O+na%_QY6q~>w_1R;O8Zt)*-X?hbqUXSmVgGxW^rn=Z zdv5#GdhGktH#Xthy9*7My}(2DV;s(t{{jd0p9I*7f#Q8F`>74(GgUq?+MhC8eIw79 zPtKP%@r8ZoU!nTwiOqR*_I&m&mCJi5@{ui42N}rs z{B(%+V<9u<4(NA-_KYx33H?Y1!n<$=f!+((S2@pkj|-kYsrc8Y;3^eSDKoZ}MmKhq#(=l*g!!>%>ZQNb(JMAswXe*+re1E57l6936!^>1bAdiS!5C{)S{gS)JUxb z5lx#xllrI3=PEyYN5*?(W%HFiC5sV0UqPPuD1Gl2WP~oWk2Sz;%f9J#SW65R^kD~^ zZ!mh|oIAwD+@kI2Z3l3wRd?U};61-YEI`hBY{t%P9@Ault^n;k_ z7WwSBuL)L{Z;0@}{S43VXf1{QZ`pyEA(P#vl1bclFYiZfg-_VmAIqafxvjYV+mrg_ zIAb3-GO52^QopGB=z!xm#OhB{|0ARFt2B=LK6v+qX&iyQbDj^%`j&1@fMXAT$<{sy8G460yz#-DH zxE=dsFWV)PKQu6gg0ts(80Suv9iSh`ZH(y{^NZ3Bi#mJcZG>~$_ES;Yw?}Qs0m*lU z9828Shok!2S^X^D?dDND-+``@_=C<45q+1~zFODK6rXoT@K1~G&yCvMES{H&?APZk zO~pkP^LZ?>_xsrA)jf7IPB4}-PF$q9X6g&c{lC$A^J(b@d{}0BgI$9Ebm1Rx)0l!99?OC?D`zpzBIU7FLsJ}IX2=Yav52Lmrv?{dRimB zM*k$!HR$SIm@}IRCYtj?=pF5X;p{Glx#mGjoE5?sG@OS`^=J z_*tYHkD6i}?lv5JOt@UW)BO)?9MFo7K-UxpuA%KTi<8s$k83@b`3K|UeLHeLr}Nh; z11CT0mGuZ7?ZCC2Hh1gFmnC+0kirE$GWyq=9St%B1U`TL8M2Sbm*$K&TV zkMBxzR`3ov{zcyxVNduk*R3;6U&aU~x;EdQ$LV>D@ED_h@T1qOJbYWDI#YD-Ie0(k zgn9dNo2xkw^qoQ2n?FT7K)&z*JN3Qx`~0!%nTdkO887T<)}RvncDz<6S(Lw7dHtm< zCTCoZWAb+O+k9WJn^lv9Gjn$8c)!8^qJFnkzfRW)q9y%q;RxdaJacj0>^;#%UK z(e|D-OP=?&=Lvcqp}yOUXCGI2IOA1yHqm{HWZNRV;(Rf2FlEk1*0*?e+?{8BzUH%! zWx2(;j??FLR;iBT@DBCcrWlm-13Yfn&hUl42cz#Ye4gp^%X^54bN*)#Tfxq;74QR& z&cX=$?@K}7v+pu8|FO7Z0dkYA^SoU4g6tZi?@JUruln8ZvY7lT@dKDXcVN7f-(0mw z<+LYRxCtyj*kstEtD@3A%i|=~2Kv%8xY5hA$Ex#4&RPqo_9S z!+yGr`7qg__v!qsGrNuJf8XlU-$jQ6nB}<)=P(te6T~vtYRn*3iFIE12D%*IwhH*p zlHPyH@I5NQcWTr>G1095^xn_gD)ci%{j^&@`x$RDzjiqPZ5Dj5^J)L2-)D3Bb(zL- zQA%@t1zZ*=KeMah!kjne`S7IgU31p{(|-Q)x6G%cx-d%pY+?O?Cwhe}-9}c+Hd?xkmo|#XL5|3v~kL&iy z@?7e(X@dIIm>6P3eCDIVHRQykm-VL0_k+LmhcOqO!k6;@7I#ut_4v*xj0q|Wee;7Zfkj&3|oHj=KgMNkik*#A)lCDiw z-yRc6zC%BhoJDnw><625+~RQq`vZq&v!VA}pEibscCl}A-1idhkK0-0C5t^d%fo5) zGw+!vQii`M6!l-a;wdx~%-)rE3~d-I`F2V0*V?;7pV%At53+BqS^oYxOV`ToXXi#m5RT_aWt?QHMQY{ioFJ6X@+SMZPlXFkWW`vvgY zICm?f{Q|?!^EO*W@bln_=8$IxHu3~#zWbaiyTAXDo_Y}X>vZ6I+M_sUFV@6_i|eJv zsvh(&Oz`~#_%6@#Ou*Slxp?w=U)C56tqzM^0PzmbKG#R)F;24**oRbreWGBar{C7T z7^m6w?VBp|KKaj4&YqmBvf1tZ3xg;3FI;(8|H9HEvfqO4o2Tgh(Ef$vKB(Uh^e@mB z9c&r8sPmc^Oa}!g)f251l=Zbybr)Buiw-&5q0m&!UzfQL!)odckk={);86PAK2Q;0pew) zw)CO@CZ4qn2lN+1&eZhM#}St998PevGv=@OQuZ59_x#zxssE zHl*DI`D5aU7^lY#hT}9$Jg!%n^soo+4|qM(6Xs&^oabKUz|t|o#{u`l#0jh|&mFU( z;|g6qK2_3@8?4V%zqU3xwlf~K2$uHHlRLjkbjGw@K?_7KGQ-D>!yy7E@(O6Ct1%O7MhXd181p>11cJNVZl{+jQTPkF7I zZ?R8UobYO~^UCz@6yYGAb+`{c{tw+gIL;Yx7HLe=R~?S=yhU4&*_Y7=iu+GhEIZaZUM zO>P4_ru`|(M~w8f5!voDvV#CyG+>YD-i^<9$762u6Vwj-p-woXNBORSg2@>VzYPhLu=#w|L}b7EhpHh9EYEi&YV8P!tygE`rKpT(~TC> zou|D-j4#yTJS)$k0MqA}u6qw#{?cOtV34@PO^_|BM?6QL!7<9_xx6Ed2@ zzGZ`helaG*?LS8QHhg=Puei2i{Z^S-eNQHn(|8NBlVFn ze7;$HzIk-^y#;du?|)0<3(qk>Z&rTmoyN~&MFa1r8LXcs^8JY6K&~S`gY1{WA;#77 z^sWcHnjW+^h(5_-hu`|Jy-)8727X9xnJrxySIDhd1#I+y|gp{S#j? zHh6iVxOmkA&)Pf7$!Hu}D+j}Tpd{Okb@1S~a0XO{_Y=Z(q~6Cq|8~QlK5y6B3Os3U z%W`($bbM3B6SvP>B`4=$Q9N{>x5&p1Tzc+G)>r-fAJMXkH79w z*vnz7uJXr$t}G{+o$&{qBb9GvOouk&W%AnZ*(vkAGO56tLq=ico);> zxw6f3_`!Elz=S@*47v&ZG0bln%$Nt*J-pqb3QTyQz5`6J7xR|BkpcC*Z+IE^eTMZN z_*r7Dkv%GNb#|p1x@~=iy6xF~ z!pr{0+T$}?i`#bgFD>r4L;q_C?(`LYt*=j6U3@HOdd9wKR?^pDIemRF>Wlr|^mVQJ zLTBhJ{90d!SY2Wi{9wE;@zJEOy>t3{XVe$#R`hkg`trSt9%piv9BXMqgahLXeso1K z+aHb(Y*hd3PmbTS=J}6JGQLxPmx0-Jd3l8y`veI3^EknG4~U>{GHiN>YEZ&@+(>$62u zN&n9|Prk*!QDE(IX<^&W?F4(NV7Y#LX+&mo@qAEzCe*!7`{$@TOneLeRqgwU7x?da z>Vq+N6MLSoXY6I3`M14P4&Q0-vG?tR)V59kxu|x3F#a}(PsCfVYL4q|hp6p5>BM}& z@|d>E>ccPn|J6|7B2RqhFu{A=-k)R7+K3bIT%hN%!s{Hv>n(!qdr@vs9rmKY7j#Im z^r}Puna>Y&WrlK|ti7TG8wrmcqys!p&@(pEtb6d&e60!m*iT1Uo8GgBM!tP#p5whn zjG3X1>Sk@`mf;Y0P&U=z&<}9bCcv3sZP?%J^xY+z&JphxM7&#Sya2bGjd#d2#7Uz4 zTzh|^XyAL&i|qLude(m$thvy5w_N4KZ7r(v39AF|kl!VeA9|7M5q#TGd~+C=sojOb z?;8<*^9>gGaXv6K&uh#0;kxrlbVu+fnhhWDo~%FDpS>Q)bk*yB$m^G~ywOb2GBfIP zisqH{d#R98BzU7N&N$p`p2vO@lpLY=B=W=sB*@A`eJT3Qft-y4p{hf-1lgQ zWwbRVw7q_RPh8*T^^LaU)W>mA-#a9@4o&J$SN-Wx{VkLFn*@;n>O6f-em0ibL&^y=UxjwY!I%dxdR>hZak(6C4;Z6uO?QfLnkqe-65(~1 z(Sg0d`^l;^S?|#ia!B_jbUu{8zBa;-TtkeKrP`bXYRn60|JXD7UvV*LDu za>w{BjeBz?mxcZ<0Bg+f*vI8N47St5SP{$MxCDM1@Z}Tu{%K&#yzD%6_0@WNW_t~y zC2l{(+5`XFnv2nvZ@-`=o$u@<+|Z$$_qM(1_Is24-l*Rg_5lW){21_;8hqmWC6ZNK z_Z?Q(zw5dxs(WQp_n&$2%^EED$ zZ6liN;a9@bEfTz+kq*Ka`*x$p98l}nJ?y(7g8eM*64vivUTERa%7yB z6y7EOL902;SnA-f_^*n7k`H4R`$ivrPXAvK!JAzYY}%LRtZ2|#CT)7|S2|0u=d5gy zPvCvrM?*2|zfNbnurG=K?e)IsXIW9WiO!Qm2kp>}-HMA>EzvXQ(M(VobYY(r@z8lH zb)|QO{zZ%a8>O563E-nX`jtMqBH(B6G&k$XC-Js_1^y^kF?P235q(D_+83`nzZzeJ zPyb5%pda`kc|hxu;v!=6ReOrw*apU<8{!MJ#C&?}fK315ID$Bcdhm(73irUiLO5ch z#Jl_|z6!ia>wPn-hmFwIb0y@fySfU6hNa3?>zb|0|I2fr;%ai#jn=o~;;Ua!ep-8J z!amajgpXpeyI1HNF6!|88@Va&-z6Sw#(V9%*jZ%*Pt?8(UBh&Z)HO?2tFB49#_5`@ zYm}}Dx~A%yuIqSRGj+{VpX^thtzUh!x@MMs`9_nxKKYQD`qf^dH8b?9Z&ueFuV2;- zj?=H~WzBT`GFP9bUwAZCzv$5v{feJ!ChM2^N4tKRmrT+xJc|FbbH4cUxN`0n>h~ME zF4c9Vu4{EI)3sdJow^>5`oYT8bFOBia^uKv zWBnGDPo(b)R%_l=(!O6kFRK%Nve!Mkc9*Zu=4|kpcbDoN<+Ss0g!$W8^F6?Nx6KuO z?*ZpprS*4<>W{Vhw4D**(Hh~Aw%#G$=S4_s2fi z$2acQmtv$l6ZNiLx<>3F7M82fTb_qf937afo<_FOJ*r zP1ac+FKa%VzB|p{H7JGw-Z_FtT!fs-MZZjp-!Dc9Pn<-Kzo1rYWnb$^SHuJcCdFM96`BkaSJXF87&Ctem;0xQY zZ8KM@4YEORMv8aXOx%V%+%g+~3$mH?oj#oicIbLDMetm2$i*RV;KuFFr;X&w`#ib2 z&8*P8#BpmDj49wIn`u_N)Mm!${TP+I&Ad-_d5&ewb1dU?G{-?-ka1iW8PBwL$T)6? zjHlW=%8~Iw$XN979OR>UA$B=g_%jxkRF40Oc}!iG3p_qL;&J+Ja>C=675C)vIBqwl zMjp?ycnzK+EBMSkws}R4ZMt2(WVT<)Hn){+V#`5J;?Z-F?xo}STd^C}oo3?){&JY` zf_E-|Y@GcPF-&Z`HL~qP_ssMgnb4O1D$(4aM{X=`et_epH>e5d5Av4;61 z^E==F!S^k|^O)!^>IokBPgCsW`1{=E6vbK>>bg=_mnJGp^m~&o;;@@_opQ~9!ae$Z zT-TGj*rPK}G5)iO@x<=}1(bcAFvM!I~}(8ND!Lsu`c6!ZeT6m} zR~rQ{`yP1C3UV>Xiu#rmq%ertIYTT=(SKu3$}d#vdsu>#NI z?U`|p_>+Am(ES;ehrJSN&)DFy+M9mb#21x2k48s*PgLJ-{|;-CU~$e%ya#4a>laz- zY?rV$QdC>y?m9V7bT80_4!R!2|J&6pJwlEHg*$X2Z(=-r#B}+3d>8O|2d?AQmsERb zNpv^s-S@O+b+2gVo3}ArEb1IHVo~RPf7P0g>cdxXBk#zw&ox4OJ-Z$ms#a!LtfX5?zlW4p+ zKC0)qLYw36w6VX6_fDJEC&RPr7_=$p`%Fn=3_RDoa1A*U>_~hH{iEv*tXpVbp4;g_ z=u>}AH)j~QT;lr9zwOlr`?%->o5c6i2lwnbd@Y>B-Cw!oR8V zHO{|D)*tkj3@-k}pS}J6M(s;#Kd{(Mi_54#GP3wT9Z%k7vR`ew4t(0Veg4YEBDc@q z*faLY7~?keipt$S(G_^t9^rOQ$RoCi%nJ&hToAtX~*PXiV)AhKn*p}0Mox~*Q#o3}0S@Rv+#v0d-5N_ngPF4Ap zU+iDFP}g)_6LihgHBZ-MT@P*G>(?6?-iF3+L%~}nIKlq#h&GN%JRpb^NyIsZM7g> zPyGVAf)3A+4pYC;VEK6Zq;zk!u4i?UH9PCAfEvbTa8BS_G7Cu zpTv9og44-26ZFI0r>9T*@$>i^WU}=xhd;ZAU?7+B`w#y3dG6VF^z^5)d-fR7uJGw| zpX+z}xzEua8Ek3oT`seYSI7kz6U?7be+!L~;z*D3cSQJ3jPOM+E<5NN71bLV)pMB? z#p@xuO1ehsYSA@LSDP-6cLqxa>6+Vr!>Dpj=*+a=e1!>i`zYt)6V6<`Ud-&IQx;f@sBp|gP+8-5Bqb_oyn}< zme&Kp!+DWMALEzSqr!O?oLS+x_r@0=_o~$!D13oekZiFpkMC2yJAZskavaDn_`UP8 z#rDin*Y|oA+OzYd8pIFe0sK3SC;gFwa&`E!dsOD{b^KNNKHZC!;_={m;PG@09y023 z-*-g!z2Wh<^}u5z%kjnh(8ka*9_X#}#_`D0msEDO)Jf%wUJ!@=RsJoNZ(d!#F&V!( z=O%62sXe|SCi3r26gSlbgSP(vr08R&m)-jA`sFrOHEKRtr}p@0^k06ljFZ#5F7k7kAwS|%bi&~|K4lvcZ=SEEp4n}+x=y3(>2rcx zUiXzBBL>kJ*o1t-eq7NU!zw%`HM*4TxgLn*ZUXqt?d#-xjLxe(3)K-}mssSU%4hhJ7jyhVZL!;!r?(o8$Zk<|UyX0;YO`;&eq3Vshn!>$`tfbm zuSO?u7?;XET6?p`v)(CQ#Xcp~ty<&Cw4K{|47-vZyxIOL_BGJY*cQfs;Pbo3*OaDO zdEs=%V^ln@ohw;6e^TETw@JsfGjrNi8rSBiZal7?;m?7_|GRn1TD+03n`XF?2gTnV zZ_i=f!eT3rDg4_V_SnSw2W5;yP6y{Iep-Ecx#vdMv#T|fHQ+^V?sE}dE=%XV<3+x~ z@12HP?QMnHBDdJyo>ZCJ+w$l>wYL-x@(t^X$0++YG{&PvWsb)aIe4Trx^CAJmmY6t ziN^i?+4`sycYMU!xSn;We##Sc+w;jq&F5W?Xa4DR%?%VAOQt*jS-D{OGM-&tE?c(^ z=#G6@Nja31w|Q++AGUc;yGlN6OUvDOzHg8}|Cjr)xwdyL&xbvLjKs@ozQBFh?^U-q zA6AQRsHKj}V4U=Y?{xTInKtPQ-|L)i{;XO4Z=7O)X8Ahz8#fq^e}bTl-P8&!H3F3LdSY%>}FL z3v*Xz_lrBeWo_wqR8jI5Y;v{rh8tzHoDJNT<9+zduq|I_3@2)bN1hePw)rYkaf7%SXF7x{#(`0^Nr>Ff#mYb*E9X} zalh5{BX8W_&-5c6_g}U4?vFRI??&O5`&H)^I$ep6=zaQbhVuVKotZ&?*7xGDHqKf; zdj{{8?vWD?{z7&#PR}9Vqp>vpR)w5M)<)m_uxFsn_Z=?o7-aZ*E_bWwyVtetG5kMS z6Z={w4%S(E#S9np7WkR%V?SA3Q_vh2ovRZsJTKcQ_~E_fB>kS4!|x?qqfy_nC-~~4 zkwCBG+aP%CAJ|WPVEqoXft;^|j#7D+_bNzyj;(Z6LoH76BtKBaBn<|f=Y0r2a+P7rijK#ihef-*6a(LdT?<=bL zHJ6k7n4gKxN`8$x_YTYCgb!m~1e&os^qYJ4OKZh$YWv%qwspnDtNK~{c-|iNza}tK zo_f3(^UwSB*xmWwmw5|)1KY=fa4*}4=PmzKos?GZleqVb%^9C!p5)=5HLN?vLU+8DozmL_7tuUn%dD-BcfnT*R^E8G zh56BVyi4b~+f~u46z@N6VR|V%Sf6TB+j#zw$9wqEo9?jQc~t`Y?FsBWUeY)7+fhb? zkD1kE;QG85@WuP8bp?MPgB{mfS2{BtuYGR6i{Xg=R+`)Ip*odx246DQ@Q-~7{@^QC z9{Yn!tSqM0`R;lMOt0rU_}!=v&KAUH^^@Gu5kDuSH<{ zZkPEeJ-mbXNxrW)-MS{yA@ujh_KZ!W`nufS#V~!I9q%zC-rrRJg}^yMm)O}CLv)YM z6U+QcaMF36!)eugpjmP0sG`1+(|nzCIhxh>E&47KdYJ2SRu=PEx1%9?$GnGn^R2(^ z8?-DwASZO8&RnE@q3zyK4_sPG%x$;r{EhIT?Wxw5xheBf=%noztS!%#=A|y@b+L>8 z-xhzqx{@#G%la8{ZC>0E+vhs@CF#a=>4@8VMY~h~=*YWktn0Xjxux_G_{-L2QVwT|^Q)id48+k58YOT0&GaGUH+ zd06Evo5;EBwww0&=y&O^vakE}U(gli(HqLojg|N)<{9;+#U0m0bJ7;u-^>1g&+m~pA#QEk zVNvG~RhKc_^G%Gi(`e3FXeX)hyIe8^XC4HzHmN3 z$TQ{SSALY_DS*j&UgX$_OIYIx{p&t2H+DtR9@@XFvRZOu`1Lqv$bNC~1P9NJ@vS6s zMaE^Cqa2y%N2Y5(d^H(;B}Ya#^g%{H$&u0X6=d|ZtudGJH5q+s9cA>DgvaowqYpAV zJ!y}O&RjkO9rTOt=jji!F6WdrPNehHujRDQ9UBWe zLr8VAd13Yq&V~Lg+-#3_z20xZ8H(}zFQq3hAF4H?a4uUOjXHawB8_GH7k=jmpIU4m z+&G`Tmb%sa#I4D^>c|FHc>1a!#NT-!ioIL z!B&qLm;49oak~r8EaoAPI$m*47JCqbczHjoKSp)=wlB7WT%G_Uiedl9d|VuJo~p9E z7&f-6c#cZUIU{GB*iJaP?({ZJ?4Y{oIB}%P^2Ui@znni#9I}q%1ZQ8MBk?%#UiDq; zIB{^&o^j$Zm95J-ae(?=pK-!v6#J<|1hW?3gYN86W8G?gia0vXj|_}pzEOUPJz}nF zc|6!F!l7b4v!AVNtXqu-sjpt$uUiIrJaC-zVzAjSW%?e^=QfGx?aj94X>B#Nt)HkY z&$hm*{T0|kI#>9J;ovrcj@L4u8&%BUc{^gTYt?tHwlyqiProIVt&44aVH>rRjMsHO z_ePF?xxQL{^-^0GCm!?h%lFz)#`uM<_3HNp>&p&H{vUt;i242iyAZw&=rx{7{r*2+ zSz9;xwl1}?T4Kw?gIk1kotc06*cyk+X!}? zqi7SnQ5KtglK$GXb|Tq^?`YLu1GZeq_6L4O`(>K-ju>XC@;u;zU!ZI|!!>UW$G^QG z-T@ErBqzi^f45`Sbl?U14dzN8iBam6X8@PQMpMj(dbO3GSryu;4Y?erW3=GbuM3{HT~6%Qmg(pk?#0JyItnhXqcbh;%hS<&RF82h)zL>) zUW<<2VX$KzU7pdItE2pvIsLI;9R8rAV-p=gzQ0lbm2~tJhmoUiJ0-BtkDCk@{pIQC z(4-AIy8Sxp=*@~>>1SPav|2o~sp(uC&s-+je9UnDu9TnNT6NQS<|8W0i)Vgsa>b?? z_wh;WM|?I%-nGOtzZ}}r4*~Nq_3b)_AF7t0{$bJ{8Qq|=TH+bT`Pla#&KyHBsua(Z zX_gmnO7=N(ac>J%Vw;|W2IlRt@Z)y~-v}0|B|FPLpIJxe|?a@*H z&Wm#vk@Z$l-4rL_hS);&xM%$67sYpZc&6u0G6sgV3E@Yd-%P&CA7uJR&Vm2W=KHLF zQAhnjlhYCFhSL$w(NMeps6O%}hNLZi(B+B0=&~~4c}^wfOB_SG58$ltTKW!Wf?MC{ zLfZG{R#r>j=ykb&;XO2J>$vphi(b|_NvSUyC;Ibz(e97v`PLFUrMy!`#uL)MnD z`?GkD0rI_0b+MtKYi*fNTN0J6OMdub(-|K(H*d=N$Qw7ev3Ggn=6v7?Cwz6C)pI{f zJa`7OlufwV_{y7!M{WB@0I9p!JteYao^61y!_kJ93OC~@UPVejNWtY z{M)fA%NrvO-oK2lR;|Om!yAaUBdXvW({@yqdeC;v2BhtS8;G_zZmK4?!*gg$^#i}Z>9d(l z#PhRBQCqiP{#OEj$~ns=*#a^36xA!VW%2cyFPUwXj#-h#$>Bd*dwjpmcj@eTop{gd z^3B_Jo=6*O|5kM|7W3$z)ifjmdC3Yo8~> z7q`k_r!p+kCX$uQa8vM#%3X#V8*kQEhV>DgzRIx9c!msLm+z0q6qjLx!OxSS>lpGH zpn4l>Y$zBk`gGa5k4W{#bvrK~`;RK)S?oXmnNu(A2c4glqo452adex>)6XX3HTwCL zhT8RWchk=^Xk+?$y0y>K&-Yf)&l6}9>7ncAlgK?Pcm4b`vW^EKL-Jzrq$^X&PEEi>5Zc=H9?M0V@;yb!#ia<}JmDc=D0 z{N)HvU+wuz#xv}Bp210D2Iey0nJ4R1hShvOeO1zb#;dRB{f4sHIR-1wX5CN3Hg{$( zxbc2N;dXKr+){pGi^u*Y)3-PVJE01`F?aJ%^X)1J0tp+3?Serdndov3F%YU@2{^{dLwp&j(B%obLk`(X(R6q3_c{==Ilb5%v7r*z5+B!e;^l&0L87~hs{9?S{ zXJvUfr?`0k>_7Nm)W47A^xvH$J*YD;mPuivgE8ELBYaZcI1i~mIj3Gr^o?mc?>?0J z?fS++Z9^a83G-^#Q(voqx6p=d=B=F#l|F{^jSAX}q1;!Cz6s9LL8s{`!Ky|F@7)i0 zJ*NX+#q(i&W}sVipof7b(LtQ=e2eKgJc6C#n(pD?jE?>~qk}#?PZzg$+?>`_jcprc{T)_tYDI?n6VCxpE^ zlGRZ96~EAb zrgWk|_mX3G8RhBmp*eayNVvNVq&S!5+s8TIy0%01$fOqkid-Jbq31=d%{x8L+dRAc zH|LB?Pw+7_3{EX}IqZ(iE{~y&wV!6~^X&2+`X4C#U^@3WoHnJk?eh2F6_vYP{*H3s ztY^ORHxZoFE}dVMZ0j!L8Mbx1!HMkv+q%cfW7~3_?BO>A<7CU_GN!QZLtE}$etGR& zM_7*t^-X80wkc`0(T|?B=CYD<*1i25XVvqLz1qBE530X|=Cq%9Eb}p@ zUh?}>RCk7*0o$r^Z;bNhen#^I#RzT6Z%@#=llQUflcq27see+O*Cu}O|Jx4=9`a{D z?3jR8<}bO&cj7O{YrUAh*~h}!vY#sy#*R_@CWG0cwk_&!T+|=*0vG@3u-FsMo*0Lt zZ!<0q@8kzUnXgMvo3kR6w=c}v%2)A>?5El{nDN=3x2dlbPJPK>Xw3_}X!|>}C-%h0 z{jt8sf6CUW4*J3~GI1V_)AJwne4cEiO?b454nN14{h6!0{|L{~hG%Ob<8y=fx7zDL zuiBy4oK?hnZ63Z?IKDZ27;5l|Usyv1{@e&Yuv56u)2h1AbGhmsEqah6xE!Z%O}_W< zE}fT~$qRn*-_?IsS+mNT1#gtel6~#Y)6*Qsi1wE(M-OhCE7Gj~fHNwBy~gS|k4LG_ zV&Oy`haG&Obcp_fe4{=dOZuSwZBZY2ZSGClpwsuOY>emxKKm2-^|OjYSxdH;5*t82 z{5+}U>WlZ##(FFF;J|uoSPNEt-nm>^d+qA#TI1)-E{)C}asP#nIzc>eU*tX^9Y6hj zE#sNT)yzSr3AV$`^MM;nAE-|~Y!@B)gy9qR@JRmbMaF;O2VTaL^ zE!1;bj#>{|+TTE0-WAc3%9@xbmUE@Clz8Ju?&D=A%(*m%uEL*P{z~@$+3a8B|Id*t zcFBIjbnUOKi$TWPN2@x{zYC)KN^%EZ*Ez)-tG-#KjgN7@|Bvt0z5`CyciKl9d!}>Y zD|7m)#;=7H_;q9je!T{6n!|FgRcb$u^JY=ZUWo2fTAa@*zrug|n(d`+^7u7aeR$t_ z^}F*6oXOZN8~nlMHQZ#)p>#Fl8m7D7aI5Y`%ig(N#_es=qJuDhNz4@eS zvY$~w_7A_DZ!7Ph&t7C7az`e+u@S!2=yP6RD+g3*lP7y}7|!>!kCf-B>?c*}%lQv( zhvoFKp=3WnupRFdX6pA`mtx#JKNRexP|agSd5ihY>d3%-LsE73zeY2Zf{Z?A17F`^%j(t_r zhi6vi>%;e7>h@8+=|e2n`iNiE`h5;Plx?8njTS?kAN5HL!FU)^KHolP2 z;_}1Bp4NEk@^ia&-D3Z@f6KOtT%+uk{J@GRZ>f1~(DB%Af$4gm=5Wit!))YHn-AbW z{t~rwoO-j7xUaO0(-FruFB3nkV{G%cKH~Rx)pwk#$$E>Y)|T~FeUNpTr;?2vXqork zx676MdAi2%E|V*34DU3#;*ZDW$kp={dH%TWua*6As*C&|z|3F0UgnLuX5;1 zeTB<6_9xy)%&VX0z{;!liz@YM!TD!7?Ngjn|CYY5m8NQE*4BdSf*f3(C#f9Wk1!4# z9oez#T{WG5JV)n0@V9QC+M9nX%h7CkeuVdF(Y@p1G9+0acZ%hm|DdM}wQQkgXyBogRbY1k;%f6s@ zXjInQcd+r=xUXyOOaBIIjNziZQOJY)KI4JeckVs*eL0Tlnhvqv=m_TSIWSwTjJPYM zIS<~MuUU*D*t58o?}%~SyBBya19IZ{9Qgl~zIEo8oD*`GAQ+B|+jDO=^RB30m;Jiy zk-h~GKJQ=N9h>w8mfIY@dzA3nQ24xk1K@*>Zzz2FuO~kEF!+q`sN^f1m+tRA@xtrR z&}OCi4|q&omG6~nfkE3zPnhk>_t3__(TZ~ym23(<4QGWhW?J75s_$Z(_MYf@FN5ti z@h9G?kJ!FiEH4uK&@jI;7$bqvo~>JRezMzGf6>WY?coS!IkFItzwqUc)n{|P4e87817k!E zCgkAY?elo+=Pn*vrCnKmmK(Xdzr~K^H#A$?!L$*kEh!KvlqYi>d$)W>!W&p zv-R~gJGUj~Q(tH=%UQhqM-D94hg80r)2-!WU#ikR?gyFGzX3A)C;j&#v#*%UeBOEd z8!WTDvFMQ;KBY4Axh`^z#|W2)^E1?w?C=4f(OHDS#m;Pe;1{vUkTMX){B;;_+q&u97>DPJHzE7+`~&f#9LS$jFt^0qPT?-=a7wU<-1 z-=NaImXy!%0Qp`nc)j`EJbk+=qA_jna`7Bi+hdYRkdu5X`*G#3wJ)rR`O_1?DMjD+ zh>ytqNtMTX=dir5RKKWONyl8Ty^gOtM~FB`p)||i^i6O#@7=X-=cBHX+%!dXuSKs zl*Y@oA3m0&HW~Mj4%Ijd49hyyr?wS7#GnU z_><7=J~eNR^epz*N&dtaXV_jl&yxe|ClT%&!XK_H4?`Rz8_naP`(?N1`~PFPgg4Nh zpSbD2)1EIxUXeW$XT{^+E((X>l6z~&(?Rp*VhcMJY7ibDQ|A) zv25Hvr6u?U`5nIPDzELC-|_hf?c@23+gWe1%SCo(iOb>dzt6@Ww>xC!?>h9Znv8C< zwr{44%JwE%)*92+R8Rbdr+G20^ETewlKzkUufCrBk9-rhd0+nj$a^dv%gudwOjk7> zjqBA!SFLETl+l0pkGttlY4h=pIoP&lM|CYDR{HScKl^mgTyyXP#l;=FiXW~w)%dpW|3~@u?FxLGP$Slk>C$xVzhUgF=I7T}mp)K|CmsK+%?5|R0X(V2UTUdRjkj-zoiYb&%l2Pt zEDYbE)s)f<2ORF4&)}4Bc>>Z>hA`N$|Gi{P*@OP9DO&d;G@jspFsO_W!9)IbYK_vf7;A z=cvr>(>W?-{iFvzN4@`s?s-GGZZcn67aV+UNPltO;fAQcyt!d5GIQPS5qtUAnq#wr ztME4u7WO(mvVpd;zE}RQidyh?K6<={jj$f>F&nXc8q0Y6<9Md_3U5!)*<_3>;7!i> z3_bfk9RJ^4kLA~8PvsrT)B0Ys!>upiRojOXKFXwzK%dL`3j&uv0y!A^0i1N7t|n=O0qpSf^&8aa8lW_ z*7L=3yY6-QmMY`y$(&CkKBG@3ao?8ld`5I`jjwk-{tvyE9meBq9u715h{I>8Z#W#! zz2WdlgA=cdoe;rJ$NJP(PBK`~){RqTTgmfrK2M70ueH{5-jvscgva;g8(0%!egq$< z|5H3IF^*~7wPjB5kCeM#thKLN>p4#DqdkW=I^wJMU8(LKwbT`@)#|0=eO}&Z=bV0O zrSr|Ghn!-)aDJt<#j(t-iWl(iPQe(?k zbY>anhiHDUwKc8XHE~}oX5Uc_(fG^ru;mLor?xCo4&Yp^(OshJ+>mo?)URTvRRd+? zgWuNmjN+^{tySs`D+-482%x)-svq=b;?GwPyzktV+js5Wamum*g?YLLMz}T$*OG7@ zsn{S}V+5z{eu(Cg_-D$8=^k33i8If@6MPvb!FRC6&y5QUS96BbDe4=)#5te+TaNDD zlO$Xk4VOH97}dHk@X2F2o;NP7Sk^EB0m zR(R%e-bihT4Nm2q+AdeyldavcYKQ-0-^`UdJM8uAUk`f+_#T(MDtPejlpo9Q$`1v7 zQ8~YL;=y3MhabbD`;zDj{i}TB$XmnrE!)}Lx_)9do^0dKtr|1h=7lk4u$Q&W3uoCO z&%wg0U*Yf$`G74%TRpikcri%&%X^-of!OauYEN0$xcZeN1lP-t^71h%AJbiasLHj! zagE~&4NHPfXR;rtKE7ekE_=??t5e=>wwD)Itg1sNRL*%?T5BIWy|AdWPJC++{Zqxe z$|IffxaKj}p&MSGz18 z@80u+Ubx@Rb<1tX+@I_ctMwshc1()l1nTT z#!~nT|M8gtXY&K~^6U6+k0W0GVa9Xmlk&QobWV@x?Js(R9!bw)UDTX;O@J@lu#=~{ zy3QUIwUhlf4YOzPeMvMAZCwVtOYed0{@-Eo z46G|6SfhYdP+TqgosVvd-7%DKw!Xj{7qv~<4fVJ5H}QB9u$0ZC|gfY>2O`}@3n8& z*x@nily3eH1=l9wsXbj`&(2_@5neJ*xa_cF>b_HT<%h!lFYtL@@f`l{{lW#FUaNiv z+SnKO!}?#X{ZMy@mhmgML(VTQ`ugsIJ@1f>3RmV_$E$3nu35>uOYM1jQl1AREjveT zrs}#-*9iFl$#Bh7{SMaehxNO;evj5~QNJJ3?`Ha)rC<5BHK*$rfAM+!HtP2b{Yn=D zZ^E8E@e4k|yG6!3^s_hl9hoCPWajc?YzQ(-BFh@B;curn}pj{qtN`8m~QR zdS^bu^-gjLJSoZl@xHM%XJx-V7Cv389%e9mwnZ0_-{07)n&`RcEz3i)&y@!-J??T} zVKx=wJ$SKc7UwArQeUb+vGqaio39V+i};jHtsmst-~0=F<(m&===^p)`=r6cU+_NG zw={yPgtbRE+86B=4H0NpHWIk(r4}a*qmkkV!ZJzp>Z^`Q8TPSm0 z#Bp_s6ZJ|hb60&-K4F`T&WkDgi0;v4#h9ynJcYIx)>?jDveQ@_e6@`uL1rz2Js^X3 zb_&mJGY_w689tAJ&nI**d4&5m-ODDz{kt=`cc*Zx;puYl@r<~MKH~X|$4%w(ByN)5 z8OytO?a#T_bHh2zb;ZT2h~2JSmhDL$H8_h6%5c;8Rz#KkUOr-}cCWj;q7#oU!& z=4SjdZ)GlvO*TX}N$kvf?e|&3dvu+-E_1Pa%vT_b5t&{zQI4%|pXuT%&2`pL_Dic< zGTVor9w)_d7;y-`A3wQpbqzog+zEa+|86J)U zyf3#m-VYZYDzC_UZ;S4vZPA@jRs;SQ*MNV_`{sndpAaqokuJmUrii~j=LA3QQ~rjs z9Q=Gwm-F{T;l~;3Wf(Q^ceU1T7`q(@_*-so{H@z0@ONi)`|YC1$5vto>Gn`>yT16p zs|NgI{(?)aznh7tSBbyK6TKU`<)Y4}NY@oZ1YCn1=v{sEPJVhQzKSs$oe1}ep~_|I zOSz^nj@M~?#Gf6bzP=pwck|#yozH*2+qQ;8{avbePe<<*FPHnnwq!3&<-QcdrTtUq zJxTxL)wk9V%JjCWkKaap>>Tw^?&8PS7eWpU*yJt-w~`~x=4Omj4fdSs-?MvW^-}*T z-jBVnzB^C!fZ#8uZgFAfP2MKY$A-E0Su4o@c`kzagUfBk7K=JBjp!hLM8}XDbf5zd zUzhROWkJmIHeJxh7)?w?UJP5?-Ek22W`n&X(eq9ER!(;GDV;Ezd>o+oT zJfM~LjDhakdCxs~-fiz0Gl_LBH~Q#D>jpji5P7J)u{g{rphYm9_aV-a{$;s~2RosU zyx}3DG1PkfMZD$&HdP}h7~ zC7OmB{N7+X4$u_i5Yyy!Vi|rklA+V|AFZ3ZJa-d3?!A92Tda+r#sbWY!~P)I_k0Ba^?H()ODY(M|3@|D=(KOJ?63+B8gcz&(u{rSDDNb`!N7Ao#RV z{LfWJlkyTxF<#is?S>ckx9VQB=JEqS1+CQk ziM4r6-#5W$r^S64eof!wg*Y$etMji(a1Jy$_v;t_eN=tFR~PVh7K}D%(tQdekB$os z7Wkd7`(2wPxnUU@Q*P!udkr4(&1m?5_31o4BEdoY3O0lsD)CGE;>$KC{VmrQt|6BZ@h+^&S6#8LxWK|D=4O%YwBj_Cm2|=O)1; zw@Y3JTmxEcD@qM}6#_MeD;;;_s)L7mfs5}w<)~Vk{!QNJVhc<&vZo(_TOy*eG zy3$!I>PxIOGyh$ zkt}EF8{VLI;!~^eWW5$!`HJdIq>jo`-z^(zLMNw6PnnYdhuq~z*#`H=I!x8UcgSu- zoyV0cxKw+hs8bN1Zd5(s-`TvVvsrT^?wiGjoeei&zC|#H=-K<*yk7?E;0k@5qCVzE zeSFLMn4a`8$Y3@p_WhjbU@c^gauo|cyHVlNH}G1X13Rw_9PasaH!e$cU(4mVFSoXj zL@@l_8}VECR5z|qs!wQoA?f?3Pi|D0ozTBpW!3PxFM0oKgYmePzihv8|F5avjZNRr zluS3Z`&qhgvinnYKfvx!*1h)d1p7Ei_nX-L4BflkptC>J-ZS_xtEx zc78Ya6?;1Vtvzk)@Ib5Z8_k)a`hP>!KmEU$uBFOB@c-*h*Y}LB3rF^(Ydg`^V6<%y zkMMPR-p*u6o@{%&|CjEE+x-Bz%Z8TpA za*xV}s%#t0HR9NScz0-0My&00odjL#XNdLlMfIP;*gglwHY%fk^igY9Wqnlc>~31h!cz1|D zcVx`!+1HMO(YK@XqvWTPns5} zj>Cq34jX$8u#JC=!SK)d<*)|}_G*LOkib4wu;Ia=#<2c>^|N~{>YUB`@!s_-iDwuS zdEcdb{0RKNM|+PRGI+}rU&UkM$Bmu^in-heeO_(O zbA*|SJHmcCy$28J;86E*$cA}6IWYdy6rQm^k220Q$e!nh7=k>N__d~4XO$4gc>V}F zh&6YR9#hV~9qJN?1vrW?UhL}nY1$5Z6)u5i+z-+{IlQ7^%+~jx#4PL;aQ{u;^rgMl ztG-cM6yoNk@J?k@RaU3|!@NW>68;!C!m-2g`=|Iwe>@XsyrO4f4C0lW{?irWl?j>$ z%rKb5D`%??JQ$+>V%fxT*aXF4bxNR2)$dK(hc-jM=jd9h%j15ZgRy@E-m?!A{f2IE z*iCW?^Gw~Jr&y7`z!e(4YR^T(`wrp6eG~ZG{DJlwM?#F|Yp=?MTudJ=CUg41k4X=k z9M)k5>(BZPb#3jRy`1z-Y=&MlF9B!AHS8BKe6BDUPbmfiAB|g*W5(l4?cEdhj`oh9 z{Nu&!MMWoNdrf=?bE@i#KOK}Yzo6fEuDROs6X128>UdlV{lulfi+wQpAn0(OI$kFm zUO&mf`Lp)!`W&2J>FT=J`9lAqHRSX0XOdT#2Vd#!M9=7m9@%{0`(o+X!}=Z%IOs95 zc9`<_W!^m_INnYPoHK7YsQ|9GCd<2CmvoObJT_${8} zy3BKisJ?!~H^{N9W4&G>{Y9@`hbL-|(I)w#zvRf;gxiavgZu>d_<(+j-N`K>w@^oY zGnZ(L)^-`c@Kwwun3K}>DADRUDe`FWlJY~Na&iFTcN69KwJY?FeMI}HYCF?-i2T2*K3s0Y z1oKx0b900FV_?$1_G|Gw$zU|u`yUuTo*cHQ^ZxI4%iv(+$G;5TX5x7qKd8^gz-6i0 zU1fD%0awZJV!G$|iJ>_z~;pKXub|F8Z&Da57@>BS%cz-Q&!@qnt!jpIk z_-TFidB*hq)^OAR0tH`4d_rsy+KP{{O}6Vf&hz-#!`ck{iuE1h+0cH|wu{35zkl55 zzrp(Wpz-uly`L4~dW7-R`Sla!DENPJzRjS2=jm~3*KRNu8_WX*)9cAT0#AqR(vzp- zjHkZ$mvyJW1JToJwDN9@-7^NT2RP;dxh{W>dB9qBxjZM=#k(}uHSHSx=RC3*oXMih z*DATLF;T9IwxdjM9Zzs(uQB}pfbr(_hRmj0hw599h~ImQ-{=)lNeO zl<#EUd!QH8cUo)F3)V<|zj@p)*d_Ff=k#%u@dFyzw+#&!E6&6xyT7@}o_!2ZdGI&* z64sb$v#rs++~{uGW>M!#;qU&FxC~nvrSiw4a$-Zuhp7AyQMqF7P~M>O`=WAUMC!kw z+}hnyx%4lTlh^xoRPO%y;|Wb4t%0VeY;Er=qRD*$>wAHpReZsfQUC1W%&YIdfEb7O z9!qnN4?RJB;%nB&Cp=_6;hwD*b$(Regd(RO8cjzEKJpx)`PBy{M{|x_8P}%O2&uSfV%Zo7Z@M2`*W-vaadgx^I|u^OJm930#D_0 zlYZ{B@)VBZ zF*dqwbI;(PJ|5xaagTT%#!T?JG3sM)*2bx1{>w^1+z{~sP7v01jzHM^8)8v-w zPchM-_gj2K+w-jL1B!#(X3;U%ee{U)Z0KvL!B6#~lD+*+Ye0GS_AKRscSF)Ab5+Xe zb7SjsH_b5{?0!KX`+uN9|Myt`(0_=*=6;ghpKSenA+g_E)DHb0CH{E40IwAD1bYO= zz6Jx^%%fdrbO#u_sGVZ)U{Aa1o|pmHe8ZxBkKvwgB#0R(-%s~iClB{K=$@E?^0(=} z(e7vI9$8R+hVC8559|K+2*=G0$0H*C17G#S9EyGgXK1tFaNlg@;PzI7gNzD-vqbja zPYHp6Hx4L_(bcAFlCCMb=IOdn*RORwu4}cf#vczT6m<>OHB8q?U88ih>Kdo3UDp&{ zQ*}+(b-b>bx@PHWpQL=Bu6epA_qRa5H|u&t7rB$>lI%e^v&JfZ23p`1{B*r~(Bl2A z^vfD*#%UqKh(&rR0XzZIu= zU+}P6U)QM3;Za`)>iH1s3q4V+8~OqcIZUVPTdH@U)k7!9^?=hEx>sH<)O$3-16)Jg zY&7m-xPo`H?sfh`pqJ+_+Ba4CFKs!c3dyie5}V< zBv?MjM(=>#qA{sZIws78h$n?>=rhZ;J^0+Qr@i<*^*r|m?D^nnuykft8UL3pPMmG; z*Bbv-7g_EsyxnG4uaJF~?HW0RJ_O7Cq}fape5P$Ik9|~Mu*x_*XgGYN0uJ9b9Qghz z_9r`8zlT<6_f6V~_7#Hf^O7Z|yN$(dJGZv>e^7pf_i-Ldyl#SD6Gja0ksF(5ylb^S z&x-sYd4y4#w~bPt%eENa`RyyZ=R@cw@a9DInS&v}+2RFlo>ZIjduhY|4ceS!Z3Yh> z-Z`(AHvO#4C#=l`wfWy(+K}&~pAT4@nQHT?UfS?|J#8jgn=94kL%p=onqX+7|Edo> zct~y9qc%Zr#5dQ=y;P668S6T%(-hu1JnWOH-{XR(;UT%1wy3?^%sllI$IqKfj`121 zd<|{MbqLPd7WN zM#B!~Pj(VckJNxu%)8C4?KtcIoJeoj=LSyWcgyln)2Cg;kREK)phuGSj(rbPQvC5w$(v=@4d?*GPIaNB^wrMhP7 zav1YN`-PqJ)D9V5r~0#We~o@m(eL;4J5#^k)$a`bUZvmT^?QYWkJImE`sMtSMf#nl z-*4%cGdC{L?-c!hQ@@k-`*r=c>-TH=ouuD|`kkoX^Y!az5ftYCeDyrVmP>@+ow~-| zKA^Bn*J@pZ?@(;3t9a*t!UA1`?;228qU&*8SKh5Ux<>tGK*7JYPq1^UAa(0I7D}1|-zF-^D+q?1Gnj3^YeB|Kp zztknyMtlFpoHFlMdoROxbPf~Q=6%!4_oRNFApaXQQn>Sf=)i@JlHEfGdsk1rEIU6a z;4WM^CyBiaz-PZJx&0N3yJH6I4*YjD{5k)xp?FEay)3;WWa#a4)z{E4&N$)>ocgu=kiTg>RvY z;v2c{exft@PW@sh#BJ=2fG5c1GFvOE6&|_(JZQ*+cWw?mKYMTdpWnZ7Ov5If;|6DI z%$sVB892lo4O&AS*9xEJt{m68N$3B=+xf?5U6ud;9t;^{>a9$jW4RkeMV)#pQzs6b zxN-{WGSsP5q?lA>l%%9fC(Icht<$*8C{;5GzOG%8Ax z@AGxu=el?H-g`gPKHopiEp zYzfZ}3Z9)u`?Y~tkdEFB-aI_DtC{$rKE8?gOyWa*d?WFx#E9d=K#=A74qlgShdtg7^mF zNBif?iLWCrze2v~GU7|lM`rxbpj%g>!zPP%_Go_;^c&{?H23U+!`Sz&e*?$GkG>o4Qk6VcEAZ~no zfcR$O2YWu>M|>l3YlEAJuO)6WxPkcM3E+9YnNR0su$+C@xdCrO;jI~3lfe{dr$Rf( z(`xLM{AQC!s_C~mU)zwdRp3z4++e^CoM`6%ESi{Y?hhg9AvE@I^frmM?X$$nn_;xvh zx*yp`SB^oBUg~gKQ#xpF4Z_1EzFGMR5g1cDbUssKiS8C}>FYUmO?d0QthE;#mQ~0z>Cunz zFT?cg@TeW{IxITZWqX^dLk7ONzvz*q`mSVO`Pes5-_zl9HG8pr)pv1U&wYK{`l;{7 zWA$w)j_P}1LVdONr238_&v`sgrP{as<#Vs@it9uPd_CyPRoiN8ZXXx*tugei8xr(r z3;U*XV>B~8O${{K|BIKi0-6uUXlgu77MhC_Xqus!5zx>_SPE+2wkUmI*Z73|jpUyi z+=h~bWm!?^8cH#=#hg`4TOQ<&;LT-`8IsE z@8?#=w8wkqOD$oa2tKlX@RIU$tv*kPQ%l-Q+Q*_Tn$W2~`2Sb(e|k+M??&W3W2n>5 zZ5l&sE?5U=rh%gDQwXJdRkP5e>frbD4Wt~Q+o#)r`Xm0uI+wDQSr zj0gV}(&_7+I^Qe1DBUjbXW4CSS#z_n46|Y1`+UmLW}%h6&^nvee;f{V(H%BPbYBVR zl-KO8?Be78nXp!!t$7;08$4+&Tjt~O^CxYV9y@=6493kmD3YV**-wEzO?lG`b4^B* zaDPB_1|)jNDjS|V31!_VUo-M82h|1ty=-sra#h`iAZxn=x^X!^oYDEbB}Xzo`uwUZ zen2;QtN)!(`Y76T*%0}Ekzb(kh_(EkQ+d~;SDVWGB((j5{FtEe=X`hxpG^i^ALR%8Gnjr(kIn}yW7gGu0woX)y6+5iu5L&>u7Ju@(OcZ zVZ_U`@FLwhGL*f?Dgf)730U}9-LU3(tRH!-!C?I_`&#+(8iV#rXv;mmPVu(toJgF^pu4OUrT)dvP+yF0OTeg9%w)~j2CGAl_nR7_L+tQGu z%GJ29aqv&ReNRnjU%d)AhQ1`BtXaHs zauDtCg(b=TSnH{3YxTYT5f9z=Xg(9ui!lX}9&SG*>c^uK%1lw_Fv|Q`P$qN9yzLn7 z%aqRiDWS~UV`Z*ljZC`#Q(xv#%ACqN*EGTmLe1sFQw@YV!Ytym33CW7g!zPa!V1D_ z!dk+5!u;phx8-*>H`jIWyMwTsu$Qo(P`H76x(Q{33PKBOa<%+65~dPn5n2gtgcXF< zg!P1tge`;}grff)mfFK_DZkbH&gQrDPs37U{>b_r|F@HN=!vOR6Ti!duOe(D6g^Fu zgnGgZ!YslZLJOgdpuOigghl*s7GJUPrzu_OZ1)L){Cl(A?@N$>+;(qBfrtEW^78)@ z`#SM5r9VvxSaI83RuExL@mPz%dI!O5om;~>hBch@1zR($t4lY3uKilZpm2P_7buvMtls9URvl59TN3D^^55&;4{YD|!XrI>+a~fah~z`HgY)tT6dZE50otzGSs2{U^ zJgy&YmY$#=%PG(F<0|xHweq4LYmMeL=*Pja_x)(+Vz)PdY+nB7fuC#t=fWdX`8#Rs zdpNew7vD>A`&8(E`#4AXUyZX$*LsA0rB_pgkKD^nTgva;+@9f_hhR-#WAvbt z+qeC!kg*}vzU>M6A~f#%O4l&{HKurvE8KMm9^3YWEf~opcp_kl+(~LDMs0@=O{&zsIm=2dwOce(N)Q}>&IYce(5E#Nlyf}7_zJ-4H&mpu8hvvWJr zw3GUKI(v66!#aGG>l1TxCD7LRaj%iKP@mEJYw{gSN3u7FOkCU3{)~TJdkfS<`|aAt zSbuWYK8Dib`xvxm{<|{kw3bd=%u*jDZ^Tn%_he6;?-=l)_56YGP!A8sQa|~s{qf+| z^Wow01Rk`GAs+U!o-N(Zh+o>dp1d8TsqdtH+WDkyAWi)@<-{I&Y z`$|79UQ9gtwnTg9#-o?!_Ah>QR|U4s?YmPx{%iScpJ&yusQeM&s$aXa0e-hGlZ`Nq+ zwRG$LOAhR6O~|9RlkK<#d29VVj%{~WY7SZ7%X87+0DY*tWy%Y-ZbmL-Q$~=_iaC?i%!1QCLixk_qJ`f(GH@mrS0`w=YNmKMyl;J_SHi>!`E-YQA=|- z!K0nQ7GIigWqh95LnEEKGiaZiX&;@tu9d!c-JJwa7T5V;>Q=6}`mFLOje3<|0NwHa zu7xU3BRQqgteG!~=3Nb*=X!p3pWRh&t;=um@vz?VAJ$oVqMx@kR{*}|0b3|zvGS%D z<`x)DKYm_Aur9AXhk8fXy&uUJ+I<$~P(}&9N!?qP=2U;H+x@<7scfrj2epUJ=GB2c zi2BQJWNGi)gZo7v$6v~#r#I6+hV_fjyt->M<(Li)FGv-y_wi6BYR5vJHSsJR>+{Tq zi|a^_+XC62BYoRwzS|;P>f6k3^N>gn4n_}zY2{0Y8+^Qb`H>Dcc)A18cShZK@f|SN zazAsNuT#NVPI{cL6G`7rdb|&+4L2mDTi?|Dd_^zMre0{e|O!P z$@LVT`qusZ;32D>ru&>1ES}v9p8E3(pMG`Ml%(hMedm886Z2K7l#ezsdtc$>Nqxon zF4+5Xu=kSrO6n#Xu6c>>S&H`y*~2-cJKw|C^VwVamfHdDBC&V))yGxNrzz*oq652H zz%pJn#?10@)%jLw zCVposjj)WMweq$6t|ROqXf0ps=0zJ><0q`;f0o}`LOr38Fq_a!Xd$!`>d9m42-62q zKgPP1wA0OAPp2Hqc+b4Bk!N;RZ6n_iuOm+1*rqXS1Mw_z-D#!xdg2-4LwtN4@ig&+ ze0(kO6mdJhw}$v0_FwFL-)iC=#PjF>h;JlrXWv#5UrW5iGqw|NA#Udpmk^&tT;~;)e=+fC#1Hpz*7A2X5+C8?3y9YdxATi_#IwZh zJmh@h8R9zMF1%LaY2sx*-aU@!pFJaao1Yn zl|DX`_)6j#AD=vR@edp(&Qyw}LymiDTJFn&qonY zQ*P$&juhXfDoJ0LW9_O_^AT)SC*Q2m zr+%dI^7Y`|l7J_D><^DUjl}xCGXZZJc-k*ddY@$wGSr%+dCBj^vk#0 zbLN*wcib8`x+9&D?&#jgLFkUY?`67E)Q9f8F8V-slHPBzyCSV`$tRoU`>m~=xjVbF z?F-2>PxaE6Vs`sUqGvxZU0X6o#JL{KfLB4qDH%_+i)w$x(Y3@w+bn$hw8)I}f_w`FOl8 z_P$NQ@3=Fb`V{<}vlVM6ZylW~$rTjyKUKGNOgfb-D38uuRAmZs1t;^LcWAQNL8`l( zD@Z?Wk4J0#1>?v=n@a~WnZc};UbuDg3HZ8_Wg6ddq0^mhRW-wNcL(q1j0y5AB@aH@ zPOW|G{J)b4bzzOfeY-&I_#$zgUD1A)t#f@Zl9NkgtZ{2!KOhY`6S!~D^5~u+_EGcYOAc>G4(|gyzm^Qv+l3Wd z`{f-IzE@2@K$hBbb9}SjW-`toTj6PZ7{ocx8J|n-(prtRlY2+awZnyOjIOGglsgK! z${vc(Quvf?)qaPOZah1EWBtnFs`oI(k&n(2*T#6)J8Kt1;@VVg^wZdLwMh~W*Ft0EhP-RNFP@%XXQ^A5b89w!?ti4`ad4)!qX$iF4Vg3P zsgN0owat>$T#MK^^+GLipI9V*?U-5 zW4$=UqaNMj)F)p@aKbg4KX{xW*&8|rH@0?6Q5n!r4$9hOd8n728~+(;)+bM(jn#f{ z^8LWd9;gn=7yiH0LG(3mOQb8tx3kyuSM5($r6+CGo!`cL0d-Y-jn0h7&Hb!jFH7Ch z!+zZL>Vb0Ef3^8bpN#Hi)PFm>!I{+50YVjX;Kkg%V}45hTl2_mdYbQ!cp0ldm_BRG zQt!An@O)A1x%0RDbJ-Woxu2$d(mNeSVCTe-`AjvMixX^IweQ`IPIKQ}200)LVQb9M zug)xK-K}E8(%dZp4@Y8?$BptxR-(YJhQ!mFfFXSzUDQB+n!H zZEaREJlyBEzLFLe^(YE3hglxU9Q{!rcoq4W9ONH$;|Y4n@fF{8z11HT8mD~Hv7~yR z-cP+nyVc6*qrS?w+2?chtZVI1+A}__ka~?_+)%yNlV5ue}Mw^~@VPgQ{VNy~#AtbIR5+7Np=QHDsVUo8_a)3HEFiQKRuVQ4wh(p@_7X~R!&3V?I9ttc6`_{UNSH>LO_)zu zKxikdAgm^=BWxnz_ zrV(ZlS_lgWD+rorPXR}5QHm~fq$^$f%kCW+>_x_XE9{utf0qqWUekpyEqIkXpd!EM zGTKw^?4ILq2>(3fDVwv7a<207mJMNUSuUSw>S2|+#vomOv+%ye_#^wbm-F7TiPF(Z z-f@Gkyd5ip_JV-cFjtVSa?O4k=0hH{fwRyB9n>60iH) zJZAl%O1I`OdHzofa|X1331|&-H|c*4(v8mv9&<66+BXp9w_})VpxqqM8fNW?%G|Gl zbi+K!W9|l1dk?~VEQXne_D2D&VYZR}-$A-zmU_%O&Pr?lLYQqa%<0g6HJ~-jEu=3G z(hc)~?<@~F?WEeI|YP!eGIb%+SY*9Fq=ug zGe|egUwh2j!b-O{Bg{)~*1wZ9|Gni%FPXs-=u4YT5i z%G{J7-7vrGF}H)MJtAQq7sD)q_RRsUVa_D|{2<*hKkYGVhE%$J5Mk<0`LJ(Jg*F?| z8s-|(PY%)z^KOsX2B!9^g!xa-#D|zGp&c2}8fM9nmANB=bi@i!x)E=TR?}%Y8hxW4ptzqsa{WC$jVZNYuwi)9#gQ1hj_PM*91Mbi-WdF_8kGOVQwM4DM&ZWuX)T(U}_Iim?y?C_d$DcKx>#)M_1-94AKqr5sx`$ zSf$&i73SeF%*oJJ2egLSO!{d-x?$eqF`L2EUav6!&6)48zqdnM8PFQ$2GWlX(hYN# z$J_{}_KStNBZj#b+TwuLFe}O#zk_tcyv}2eF6KQlkNHdtvjN(_eWGW7pGo?QLAqhS z#beF^^GzP}`!UQV&~^m0#^)N+e;1@1<{2Jy1DLw6MRnJA_Ck5?f%bm_TEi?ES(*EB zkZzb29y2qXcJP>sVwm;NemkHw%qG%T2I+=5)ML&DGvhJuieWZF`&dA0n9E3iG)Onh zml=E1-`l`Uc}%_Q6V_d{Z2_%e?j`+WLAqi7!DDuSX+G_hG0c6?-WJdrW_?9v?t?+P zVXpU>)g@g%ZCwm=GPKtRw1&Be^r=C*VSdwN&Ii+c+EZef?a*Et&>H4;(k}|q4fAsz za|@Wv-<&QT8N=KQZB0OHnALBp%$*se8|KG7X7=DNpH|;@3)`px+T#LR!)zt}O+mV0 z&i0tCV46?6oA*OP%q7qs63`mvCen+7bi;h7$J`92`Lw@@VeWzUpAYox@1u{Y%>6Y; zH_S^sX4N5GKJ8O6%z9|I2eiiLY|{T2q#Nd09;>b#L`$l@60ZfL(7&>CiGWo2$vkZzd6J?5B0yL{StG0Zw>zZlRO=5*4R2I+?R zcg7y|_hvB7r@c9bxd_??0j*)KBK^J~-7q^n=0-4ewnufpCWg5K+B*VT!`xfRoh?DS zVQ%o4n-7i7UkS55hPf8ncL%hFxq|d*LAqf+=`mZuG@thL80Ji9-x|;w=2X%r1?h(Q zd5@U|Q|G|MXL$^>4BFa&)-X#*KRZY_%m+N?7T)tOiqOxK#Jw$1p3P{dZf>{;u?Y1nGvU z?^;VgI}VP{#R>B#G0gRE;=7{(t?{{m^sPa(T+rTuR_Ukds+0Z@{&>Chl>Hiy~ z8|G+_Sp%ld=ZQ~!+dGtJ2HNijw1!zl`syIvFc0;Zx_8ce+IwS|8!EW}FQ7HdQZT;| zq#NeH7$+pp1z?&_`=J=-955FJw1&Bk^iKrohMDu2wP5P(q3Ztj80Khb?+R!Qb2jN8 z3DOO7qsQDaJUYK9%!U}|#*s^N?+s`TQ)NvL(hc)_9&-_x=F^UiVK#$#Wk73~n@GPr zNH@&KJ!T!4=F=V%!yE%`T|jG?t)!0&(hc*I9&_xfo3IY4>sub*P^$U>+IJ8s>J=(?Pmn-sCas!8D)tPch6YXbS>b!(2rAEBANV z0mHn)WA5SotBlvBpT{saAH6iUJD@epdN7|0(hYOG$6NyDD3AHA7-lP&zX@m!b1&(? z4AKpAjK^#M^H`7B9>dH+`&2+{n9E3C6QmpF2#>k9C^};+oxeYZsc(yYC7?CTDPVpn zNH@$^87I`=+rb>|`MfoTIUmf$0j*&cg85L8ZkW$|%*kNttgrZdR}8Zn%y|K=VXh|q zqd~f1Zt|G>c(+UEg@rjehB*h?n*&NMxe?m>fYvY@NuLm;8|J4xW;>X+K7Viwvl-gc16spOk$zH; zZkR0|b26AVm)Xa?`C)$_18sRgYnUsKWULL+4fA~-bKgPHnS8a;wixCnXom!}hB=M& z1NZgp?^k)uWnkL+{L?Ya7HIbbw1$}`eP@tvd|u!&8^N@>%y(j#RnY!Epf$|3M=Z_# zI!HInDv!CJcgJilvn+#8(!U&} z8|EO7IR#9c%iJEr%tE^)pf${mrAu?44$=+tFN{61At^9zE~9T5hPt!`+Is_9!)zh_ z?jYSTH+#$#ysu{K^Nlgg`OtnSpf$`a=`(|L!~BuQYy#8fGUvrGtD${+Kx>#CBbMf_ z4$=+ts~)ouOqU*N+^Ipj zVYYhAsbJb%Wf&oRvH&<+b|4YQ8)!9luV zUh6Se@t%&&WquXI6hC`E-eoHcbI)N*b1wwxhWTcXISovk%lvl?Q}@*UDWEmXb})Y% zq#I_|W0rtva~XYSFO=sFXn!8i8fGKu>w4tfb$D9tP&1LS4Vb($09?%-*%JkCQBSE@hzQow0{;qe6Y%cSj80Kzh?+<7%^Lypf zNWUjYZ}5BNTRi3(&SKkKW=eoLf%6P&gT4Qa{NF*)8HIEw_rMWG6KV+cgeJo4Jzp>r z+GfH6!ZN}t!Un>2!hS*#XZ%YEqX}6;9bpP#8fOxw@vC$DQ#lJhgD{6MpRkCqjIf5V zfv}mdov@Ek#JLBZ8`s$gookpuSjKq`o!?l_?+Sv>AIwNs=FSdeXYI6_^lXrB?R2k~ z>0-_w*j(4tfX$E@Y7fX(GT9mAXk?dpKmFc*{ljUe4Hhk48e zVA@>n?il7OXulB98s-ktKO3YQ=3d4h_4(~!+FWjC46|rNW$qIJtzp)XK0in|%s+X| zn!#QB6IaJDr$YOYfYvbQlYUE(ZkRv!m~CK=^8WY480Jc7rw6o#xta8L1nGwPEsxm& zrp@I}jbRpYR^al0)-cDAesPd)nC%|3nzI7Oc|OZxm`%`*3up~<4(ZiFx?$e$F?ENW z&E*EiFjqi(d_ZfM>q)N+(hc)gkGTa*o6Ehxcc#K|E_DR^^8u}4mXcl^q#LHbYb{;M za#q0Ra{88Gh*<*dEBE&7@6$;CTaa#;lRai5m?+;jVwiChP>9+;xhWWI|Y~cKX&E?(_!)$_fMnG$r`rg^~LAqgn$73!5 z)8=w##4uMt`?i4AFgr-UG)OnhWgc@6m^PQIh+(G6DsvM8TEoneUK6An=7S!yp7RGb zmm3EPrAxcP zw7J|L0?hb5goT5myA_I#uFU=GV_i1jOPt@7ACx71Z;<|&Pp>Eag&_S=pWa0Jjv$?T zN}_jkdN~K)dM-AEcNBES`a7Pkw{y@s2fixE{}ttD-6MWZc-MV>pA+5}U@WmR`#2{& zW?UDK3w(Y%CtR;*oD-fLX;{ZB>wGm*t^dOy4?4 zvvx_+H=U*agQx4Q{?a$)dq(*Z>U~&0^%m_qE2EG4D&Kc~KGQd)eaojw-$r|VdxA8p zSJHb2>&JJs*B7nqUiy>l$-W@}!^)pf&)81W=Pp(tGgnB>RPrX&fWGkbO`YPWJ?Y2$rb zXiv^0&Fb|=?a6z@{{ZcY?uD>&lk{rl8B6oy)S*`AUgRphstxiFR{jL}UeJ$x_hq}v ze7O}2#&vt=FX?@y^+EpUe16j_cW)7TwJgZ<2g?)a)vrj?9Z)8VH`)e8184(e<7~Rh z4Bwwy$y$uPGiUdDAcJo2bQ_=CFIfc0NnHU9N1ODdvztq#PiQo zJr}*++tq)`_m5GzPL6tCPia4#Cs~cmT}OTFeZe`biRqoDR>A^;-f3FS?;)vEpSO0= zcUtxSUs3jccmK0{|BrFs@c>Wy?r{n4Sq@Dt+@X6$ehp6!zu~`klx%!p>oL50ToT~v z+n>6(K;L~eOjidm3p0dM}f{?e1`}bmaOw$*qhwTY7_Q&uzN@PdPu~=Ne{?03^Q7^@f9AcN&+$%sZ?tMd`|hp!XA|x3>HzJ{H$`RY zy<5rcHXm0Xi0-C{?lOOj^t}GVbDe*;UiTUnTosiqz1Dm4u8)uhYq3-J@2EcWptn9n zpK$kQzSox}I=&y}?m-<$-RH#WzOIkDTiZ&1)uvN2(Ver>F@49{c&S46-E0%}Q2PvV zb-)Jrc2XZ7^%~mg(ipFs``|Tv|5tbIHBzRtHRvC0>%J>&>18}KJ=EP)y0b=lan|=D z9aZ}&KEcOjhxPqY*)+*`2I+P;%a>P0G}fl_?b@#FYE#|2Al-iCTTwo>tKl?&Q;MzB z+`(jdx-V0_Z|$R9Z49ZPZR~z1>8HtBy7l>cBfX2hW!yC`&G)jQecT*J@%+2O?pbs{ zrDVh%AkIeEy)r6eK6>E#t^1zlTzAKm)(Mlc?``>WJ0 zx?cr7zE8Yr{^ai8KyJdkr;m1*j)wPbS=)VouD3T}sE_O39NE>c_Jd{intP$J-Oy0J zY*jmSp^nq8<@Wr{;MqX>;AdjIafeK=_9x!XlK&#L5y50W#^ zwy#juK-!kEq(|GTA128s-iGRXm&IhH_WMqPoWeVT)IO!DNm~y|wd|07Mq^Ag_UV6- zjf0H6CH}wC)Bb-cwm|)HDEFNW<-Rk+C}fVFLce9>d%K_L^^`3i;6Giq{E|7&hk7VC zID37^h4j&x#2*?wxWnD)l8Jl*-HBrLGr33>{|UM1e$Xf1|NCzbv~47Z*TaMCL~m_l z-^ZxOKGdNXbxt1^a!+-1r=7L2OQ()yf+Z;;Q9k|h5Jr6j3 zsr$684h^aHZ7;T9@9J2~BA@QD6OMdn%}1605HL>Q+(cR|q1`HsVGjk~dTf4B*MSa-Lz^1J8aQ=c!xFFxrHmu}TvX^q8v zXQe#4gCu)q^jnQgri|0KUZOje&WW%)#jEBvjm0B#t2nd&{b^B|^A1hz4D;9d{NWwJ zqG^TZ>z?LTXy%;HT#9*eNPC8rg`FRSZ0ET#Jo2K1|Gnf3^Uo*$$f%y%s$;S{m2~6N`y%d6xRaId5`0`= zr|O8lGfkUW{=w976uha+_V7=VPZ&+IkOsm>+i$&kSpn&sRjgdE}cLW{iBOLX#WZu0mgw5fYWn^vUZlQrhdv4e9V z#!q^|xXNRs6ELd4$m3#nRCeaf5%i;lxkJ#|8v3rY5ng{KFWu8!cq->kx#OF=MvL`a z{ak*NJwJ^&{oXwrES>{w*^3c8XQt_}m*zHoJ?g_rJX*dM^8K8ANqKa4 zSRuMJttwi3xSKZ8oZM(-=PHnos{`fAK0BQ-S)uQX@Le0u#HPZt=D_+t+4t|`ylnMM zHp}X-?*nNZ5x(Zx@{cT!>Hfy^I8zDVdUp3Ak^W1zYfgz|JBmFoeLr4up2T++CxH2I zQL0$K^tt;~#>4C*=$HO>pT6Vr_rg@MewlCHcRat368|japUnSn3{DlF!tYnWT}+z3 zWigiL`o%WgcPhUZlSgd_P4R=|spbD&l&L$;&KSn`pGecUbi~uIp)K|QS&O`{nLN*u zreERdzP?l8?;ZSZB>fI(cbpv2J^^Nj|9?FE%;wo9A0IoEZ$bF~+~0oRTK~WBpj7c{ z|9^T(s`w^oR`~d1!}->=|6j!aX*^r(nxr8YyAJa4o(%bp15b`WSmNWyQr`vszwqY!|2M&Ri~oNP*y#Pv**<;*G&BAGlPOF6!EAcU z+w?)T-EDf^xl418`!%T_9E{Gp~$b=O_=bH!z|x0i9QG}GRB4C$^PGXC7fvv6D~WW4;4KbNAhT+fA74~^mO zzw^~yZ>FwR{;F8{m45tq2Q(k0e8pA%bYK3f&^voT`5#Rv|B9e|Jy-do!7|(}&>tU^ zzdBa_?Ve@=GR8EA9S z+WN7^N9C9AdlTmivJ<&?GbrD_Ef*dEv8-JUiDvJBDXN2v(Pps4m48 zS6#4g<%(C(2GUjKq3;xn&o9vKy0=w9^4Bujz)O+h4*v+ zT@vvpZ28vxVb29ydKs1-V(&YP_XR!nb70p#<>eXpV%!_u8S3D1UY|eDodG|DMn2DI zKknTg^;hTDGL9FA&*s`Qc$Z(mIN0rOUX6pJM1xNz8Qw~pi&x1?x}`QfzzTEi-47Lh zYitbpWJeZ3`);c3WB_Uc-&#Ix+;`TUpdUB`Ke z2g$2?)THrQGwq!RN8i8gRK6_vRTt>H?FZot6`$tuOt-a+FuQVSs*2D^*hnbL3{CCjSM?5gs)DD(1D?iv8yDs|l{~|O zJX(*?9kDIye>H=*svVGtlW9mN>{qZG=!>hz2?^Mzk;nFQB{%#|rwbv@>EwAnz|neo zydGKdbOd>5W0%LZIc?lFs%IPPe%C_Z#@`vvxAX{3FX+Rv1ChR5(a9QsYj4w^raeh z)C3luY6;^N-a)wYgj6$m8}B5XatirQO`USe+fozAJf6&_p8B@b%{R_Wt)tvMguR5a zUBgmS2`z*Tgx!SnZulZBB5Wj-{)KlU2#X1O3Ht~oFHjFcEqtt-L>>7*p2#YG*Ar@9 zjMhV%`R&aP3?D$>I4x)swUPG6tnYLG@y_^oZ|!jqdUW?;(VDvSv7(Q>L&7j*)r7=9-I$kdOvei#DnFLezx$g zK@tyZ;9+mH*R<_#l;4~Dzsz?ttxpGbxSMTyz49+YrlSIx_9g#e)y<}21#{aeP(6uTfXk!rtY8ZMgDZPyu77PZcW153d!Gn*DY^5qUR?2r1mK}t|yNf z-U&$Jv1u%4oIQ^Z^wB;S4xoJ|2lWX12Xh@aPt41aIu*v4awAA&q<19`eJ8hr@)Hh)v|klXsH^9No-og2=s%-!zm%qQG-K1oO#qty@N{mkOB zd9zQ5+T7YsY4dq!AgQ0}`}W_6_U5;Jlk$4AgYOxDoR34!qTlD|32DyiKQ{Tmu3GkD zYIA4}JDDBg}OzoG1=Z2JTHv2HPC&gY%-bdCPuo7QJ`%adwd9bxhnSZ7+ z?cLzpc(>#n?o?e7>C_yPE#*ol;S}n$ z!MDj}eY8p80NUj8fDhG^J)iu#vepvu_wwtkT5Bxe`2}nFu08guj$h^&J16nmo1N1< zch;d@eNgLedA%E8c^CWgF7o9~?x(ydL3!H4vUTF#>T`+5Z}9k+_Jdy=;6GcG+WBjO zYs;9g++RQ3e^SpjPnRdRd6stxHhweG&0kVpZ~gGz=$pBH&Xq=6KTOZtYO-lN8D3at zR{PGUEVXMJzXi-W)t{c^d$INOQx`p(SrxZ~K%k+t?-<#^Tr5*W`F3a-7_Y z948~Y^O0kto+rq0=T~_aq=$0crf0rwuKUHLt)Z>d{_*5g`?i{opg(o2@8OeGX6U z(Y%>?s`DRYA53>HYj!%{ZOsN9?XlO>pYQQ0)>gG<7y1)chQ{d!cpi@7nsbMFL*JvF z_X8GxCF+YW42|}iw3qck+Ilt5RHs4bMs+$9UX%99Z2rvjG;v=pobzkVVYlDIS3fa7 z2Hh&ZnlfEHT(2R2M=$v&DL-<^^AzlFYP=PGGw&IM?Ls;1Nu_qmpIz*q4f1OpXY^4& zJCBerE7+F|>!)=OJEIVc<{UzxA7Xe$V<1flho%&()UhKjYJVd}FP* zu}yv9JHa~K+t7t@ZFb~4+_{5J*-Nd_$Jgg5v)Fu(-S9N~iAbleiQ!a(Bi*eI`o;V^ zdiD$Tf%v*~sN>eY4{YH1K>NVz^SO`9`%0(6Z*R6>+tB`PfqbDOnG=L-yRug$ zbEu>2)#0o~`}(KS*eUFm*(=d$&G)0;UcG$Kz{cYK?8V2CMPK&f?$;oz1rwI$+Pti` z!e4K)T08(*G1n`0cD`<*8;i}C&K|Qg_q4tbzqY;e!U?VU^Y!w-o?y>r3S-I?^ws=f z(~B#yV_|wYrd;NqsZTB$fL!I*_9xe|{mAu{*C5xr@!ZGh<=WPVTqh1dt~zVrlHXWAvqOIi3%+Z&q~cT8qK=!zKT<*~TR zD2bJ!yKdrTh)!kvfHDeawRgI{g$>t!Drbwf{p1>K@U-^M5i$D`=1Y-pjq){ir!OG= z+e*g<$sX;vl{&Yyce;AWUuwh-)e$I5_~PR_&e|7&qx@TxAKKI`@=hZk`Q>A&?#kOp zUinx*9@5jt3jM9{zs}am4|_fHjRu{6h^@s}moH89lXr7YV3pqw_!j&*c?EN9+lPAJ z0CY%umVJ$(JAyU3xs;VuxA=UyS?3;Nb(wK=a$PdiR*)YI*E~1QhJzF^AfKK$-KdGr%n!Cu?Q~15r z^VK2!_xrG(J5GFU^_(5l^AKN8okP=k-}mCPN`5-CI~6_Fxd!Ji`?HL)!zN$t;o1J8 z?fu(2v*^B!%*TMiS%*kxz?>7~RnNy@cP4_xnriV>{#W>U`XKtE=C)^PUPSwZ`@%_c zjBx>dXp0R;^N2f`uk>ZdZ{hh8&K|frpBK#$$_y9&H7_^_Uh!k|XK@r~-?n@PbV>7) zkQdor)49X4?c1)BPf0zQTkX678)auDgcH(*^P3dqOoL8m$o6oS;q|o7Ug(nAXUp;3 zbt!Bgd>gm69`Y5+c62|ot>F1U>sSGQCsN0W(j7mBSy^9~-x<>f&Sv(xw*7DX@xI#q zZ#-XC-M!seo675YZ*4vsn%COqzx}V*-sUBgvkf|(RWbdM&AN`eL)0JDe-A|u>1(e4 z))BWptu>?L(KWT@#j$Z*<6!xR;ioS8PN2y;K8}k{W8!_x>og{&3cLEW{HOlTBpA<5*( zKqj(j>~odBC06gyzmOlX?CQwBkYDrc>_{F}oR<~8?sW>~QR4jsVM->m(QC=%dxKLu zFYKqB`+{=T#LCgVVM*l(Q{`Oi%Xy4)%mxoc_7nP%{Tj{|%=WVXJlH1tXVv*&u%3Am7)v-)u$@r4hw}@B2ErV|rsdqXNYHy28;GY~()o&0Qe*hlIS6-_ zf<>!!#C2w&kzaRig0mKj`M(I-DTF=zFMFB)gxLhAPqFp!_*s%sfjyMo^*3i~zrAmp zyO`&3dk~Hfp^P?WxsPvoWFP)H2>p-Q!J}h(7V^HIvkjpi823raICl_#9`-LgkD<9e zYsx!!#Pmuw<7c;c8_GLF)_)f1JcD0r*4MOf>fpw)E?r zUcWd7vvW&Ad0$B=uTWbUy6g z+PA+fVPAqZ*mCoCws5{-#1|tQu#dZ>RwwZM=MVXQ=y`VbnLbvSz_aMZbF1e$uKNwg zBcIqDR^O6L(*0SSci8CHx_&9%2uU_IzUO$N+0>Zr4f748Z@if~QeXb5&Yx2~Vz&1CFZJFxW^i_)ufEZm@I34r$I{*_6592H)~Y{dV;KXMNHft1o@}FP;xnpISH%vFhN3t)^rbs%6P|~w5XTPKiX9w%dcux6wW!x62txgH@#(lisiZ<3K{<$aW6Ivh8 z*e090C_#6A@WEvJB)=eTQ$;Twn2HW$SfAD2+57~|Cwjru*dNCfy)ZBGn0k*|@0U07 z?!W$PFX7{=A2wQb(H%YD&8ei2`ah=w@?bcxZ6#5?H^Gkiu z>-_4w1A5&zrgbahSN&KvSaW(CuXTsw)ytwbVcpQZ@zE$)^n6s`uLU?5A142 zH)V&l=J%_sqW3MdPf)gT($+m6|L+}H?qVw8o%2b5^s)CW~gVYb!j_yaE-*fpes=TEcFyLR%{LsM&Z9Gdzn zVF}?AJFLtJlqp@l139TJ3WBysdw$dw`d(WpI>LIE z?#s}Ai1HM`oBG-(t&Yf4Z7KUQM(x}OO>00Cx7AwX>5KNm0j=3{>_eY4GXff0gO^_= zImx$EUDeK#f&R-5Xild3s;-iQWTX3a)Ca$N;J~=Uve!Ai)qTh64_5b2f~$BN`X$T< zJZ7_(sqQZ^*`7oh&E!=+?O*7Bcn^{8(sgMGcj?OBNk0nGjMM1P6SGshn$y@v!(i@F zn0<&bcpi3fZcg*@!F6|c^d;M40y(9!t**V3>iIY3fBJ&0!q3ni>L=1gjpZ5( ze)N|Ey9zt{=qL5GjqjhW!o(g<_w6hGr+c|FCU)NEpU>d=Ozi0lo~f?V`^7vnoDcbY z+Vh%5zNtaJPw-6R(oEzt4SpXcZuOUa(|^_f!?U~UFTK1UUsw1gb&)N#dr&HUSvJ;v z-N&_etTpTk@Q&xa+i2QA=bWTl(sjx9Rxs6%rOU1#du)|I%;R|5(CuBraEv*iaUPj9 zQP_fBXMRm4%ejZ<-xBmD% z`q&n<>mi|{~+O^a_Z{+zD>d+Xp*RedacHQsmT2Hu7P0$@c(v=eSJ@jlXV~FDi8-lGlc@A_@`n+!U|FAadY>504wdcyQ z&tR{k{Y3ehWu(RJrqZyEL^8LW)S?lwd4VJ!(#%#ORY!#Or(_W4j!GrdWg^7N<{Ds&v z>>h79ZqHzFQZSncq)-jIxDO4~^t{@dupG+UfdT%s*ld=E|&FJ8!FK z>e5kp-O6Q6!Op;0*^QJfzb#(&Twk`~)u;Nv)tUv^wq9)5``D)u_Mc<*dY_l+XkV|h zmqvPG`YW4YGBw@Ak9TQCb5e|kb{Q8Ra~oqc6+LMlX=0B_Z8?SC7TVI7s zv2uqCgF5M*6Y*Q?X}G`30FjyYyT?B z)!M$5JJpxFIaaP@Be_cdN;Xc~n&tl41?pU<`Mvq~idy~<*l&ig|5Nn&Si`ql$8S%0;Ukda8M)@=H!|3`6fBjDU%a19d4|BG|%?%`*s=|di-J_REa|Vh&JqSIVCtsU; zC7sXB{bEjr>Gsagy}xU07|fWXGUnmCWB+s5PWHs3`G(3U6DIh=)SQERZpRtldS`w% z!R~LI$C`%j(W@!q&aIj*A4EQv;=-xM#)W5H_1=i(o$hV?J<Usjj7y~z7NQ9pfC^afu)Y`2qrDvx?!B3EecSdW zKk2W=NxScK3AS||VIQIF?|jdbFpV&WkYsb!uNtbgem^*Wj}J0*wp{o8OFmkQYpDK} z)@HUfR6oU?v?Fuhdo}ugf<4#w031g8#phh!bivkw?2on$&feWA8jVHb(`>4(4-er^ z(rf|m!W}l;+48f_n3S76&Y$h`@3MWEHq4$8**Nt<_6*7u7w@|BUAXm}y*^g`JsYhF z&#*i(-m?WGbHDy`&wegDYGw3gM@7Gdv(e3yBHR1{*8LnW`Eq{bWTbrG>!+OisY`G6 zTJ&=$=XzhxmA)LUX@+&r>nb+6`7eSW?^y>HFZ27Ui|j>Tby>+d>(hN*j)fof(~Pf^#;$vyKbAI_!@27g;)BkL z=HHrss{Gl|S9j7vpn1d{*}&yLIrn zKH#&_^Z7);r*s@&&h@QOcHy@gT0w4BE*51;+ao;iBwYZUL$S?W6c+yKL`4|Qt1kPJh=-0pGK z-k$DhO|lhAlOH19+_*wMcq!I@tz~Imq`mqo=`8F0w-LwhdBozk6USe;PjRiIE01I$ zAI|d3$z15{XBB%(gU(p^=Teo0&tbMvdMVp7INjd)S!`bD-yY=k#>O4XcgJ(x^PNY& zv(C8Am0jceXq@JLPosRH4^tK7pOG+!$n#mhkaxhMJ&9TGeRbDVd|$=Y$2mXMIXKha znO1ro>G;BJ?_q3gWNc*JMS3NlWe9m^KqI^V4$c8oy>&S6kwlo)&>H@3Xsc*v$x7un zF$PV-W~wa7=@aOx^RbaNbL1Xl^ICk_^T4yQ8Be5}J&>PNL3ExB;Q-K;l7`v}L=Cf5XVJRiRFO*D;#MScy{x z%>8G6tuqUjPwzUgcHr`9O)g9RI`SKa8{>W2Ol*hlxts|`=(9{o>z?=IG5lEi=@j(V z#>=l_ucYJXLcU*zb*fKCbwAYCNpiGxJe}2Ehp)VzQ1}o0XTofP)&Sc1T|rn)*h{F} z$6a* zacbAUd56Pj=0S7T;K+}vpltD=J=7DBrgU94=9Hk1GlrFG{YE~P?7aA^5Dt08o632H^_!wt8e>CLHgb#0 zM02_eC(O>^XHvyqs}U)`n09m`{&zYQJu#5{1eEp{$;$dcGiuT??!9Jow66Q z4I!UT*)#Cn9ShJ(7tLo7jpGmfISO4|#a;TBqd&qhKjN8a9`EpxgTuFHPx@zClMctc zBsplUx1M*>u1kN$C(K`{SFz+3;(x*Lqjv1Z|Glq) zf9zjzEANiS`M=fh`{5s%xb-{LC0qwk+v+j+SQk{i}|a zw%O-X9WBl7`*-84m+fkwPj$3>%Y7R8+}@|!V6jiryRasU`94kcdc@m_YW_<{&7PE6 zKc)V>bCNHkNBuokxBC0EZuR%~-gm3NPwQ5HpVqDZKCN5*eOkBr`!w{rhfTqUC{{ns zU{l)2H?AS_Ni+sZE^24qQHW%O?wd@d`_8}ia@Y4G7#H&L&>d^CSC(IQmdQUgSzCUK zTYifxzkGhiHV}I(d$x-A#N+mCqT#;|dnQcDFUg)M zJ({n&xvaAb@qC;M`<=;OYjzhRKRYLOJlN_p8h=lNN3C^eESqvh&qzPx$d&C=RfDU_Oj$t zRRw&6bEzK&d}y6cbD^Yls|^7UTCcM*UX0qqovC{&&`*8SWUQA@s53U6XO85)gSVu1 z-Okz>um+QdqjlZ`A_fd0XNKlyF)Pvyf8My9R& zIy;VDv<5Ww$n@%j!r#7`{c_qZ93w8byv|2py(Knp zHG1tc{tWv4tTTz;{H5RiBiX*ZOg?MB7Ua{Ld|%nt)kj)_x?a>nJ{LOqs9zZFv_5ci z0q(Q__Y81l3p59@^D$Ou&8aSg?}?sw&5g8PJq`IXZgs2oH)+=-ySmED$Hw3t(cICs zg~q;6_IvCZ<@Dx9cd|bo()hJ)hbKEenexn*G0t?u-yGm4ofWXQZDM`o3flG_&%3ql z^$BfTP8oN^>iGSj9Dhcn+uDbfvzIl38p?TJtel2~a#Xi>kx#Z*?eYiT?zVporW*s7 zfq5L5SCLnGq35z;_Iy6iNAmo#;Q8BmetkllPUxjg&-eUVo8Dse1t;F7ci6Mn(56oq z4S1^eZ@jKqdGEI8U}C#^?W66iS9H{;c8&1-T08Ffd$O($BcI9l9?G1}8ik!F)V&j_&T)z5lwue+zjl{>j-TLMuVv4QS_gJ7M&{c;B7S zLRd}cAnYKdU*Q=+IvkES@*R&pZPM09@oiNPTPOL~zT~<*3;$M^EBLRma};`GI-&gq zt?#NYX{;a1d{q5cK4Sr8i5A&AI;F{9w7esHUile1v#9lZTa!8sOvSanuC?R0`nBXS z&?`O}8uf|M>Z1qPsmmpYbBep4a(&wl?v_$ghv|CN@^?#8!)^ zuJyKPAKdil)1EfTMh@|EFB?&rd-1}^pV$5d^9ncasNGWO_H82rUDWe%Y`D~9ruxTt z)A@)n??j(hXEEy-AJxVSD0^_Gz4K+-9i7^y^JnS0k-2mD?X6xl(AT6!=1%rDYAX7x z_(EUTX~cE@@@jlL)!}mT>F)7bblm)Q%^fWsKkFmD?V0)wYg=7$=>~q2*7IudFH1PL zDc#rEA1m*8%Db9x0qM?4>lY86?B%Mfwb7&aww#q?y{zl3MEpDivSpnzTBFt6 z^RUcyIjyVcyo2nN`rW*Lb^qqJ^ieh`E16PvjZ^9`s=Me`VY@#_yX&l3Tn4JM(p7)y ziTfYaU1#!CXW=t9-zmJu|I|~T*}rnMZv7Xsu{|Fi#k1N_ zbyht79!)+y_AU+e92Y%{)`kd%EQGckv#L5NqqC3lH~a>Xy6Ndi{!a1#+Twre7W>q_*xd@YpUmK zndd8ynZ%cuXS?Ua-ay;@hS7!uRrk?-KO$G|%_)bR^Gin2hNKsk!Vw z&5PEgk)gi(<<6t}I>?p{THCdbptD~(6KdzS%odHIpXvOF{1%e=(*=4s^o$F)MrUT{MrUT}``5oGwJV=D)3HtU z(4NYCY_OAghHw1xU+W{iJvZ`3w7{=;Hj9 zFeX`fR)6ufq!-?BXd}?i+d?YH0C#IebM$qWh3Pq zDXw=R^jpiE%+SkjAMLL7i8H;d+C5FYkHuxBx@pd+at2I;{B2xUyS1nJzP5fP*Hp*0l-I4Hqb6=0 zG>Se%-%0Vz#(r0p+AwGnN2|Ie=w)a(;`@WakA}@o`-X`gz#>!7K1_?WF zUwwaB)QhetZ)iJI|K+{p)tSn0Jf6jP+)mg;Fngi%^F`Q;k~F%T8P48L*Z3p*XK|C6 z>Y;u5e0qZYi=K5KpI^8!@?jRIbsiz;8%cJXyOZDf6rcWZj9Ye{Nk?mh2{=0Wn6w9hBnCpj0`AFcQ)K@RC)4e7>DbKfxO3*c9M zT6!mb24~tke>p&Y-kiYC9}@VP=2-UlyFXG!LC1R_su8miV}>l7;4Jo6hij`|m(-zADeR*1wp?l#3tP?d3jiLGT@ns7?zx z?-Z>SIC~5)6NpO&7C)aj^LdBen+){*h^hYvGT6&J;U+Hw_WrubK=*g34jTWEw|fVt z9{ww;>GzT`{z*N3&HbkilDGRG$Xk6y@(yKdnEF*aY3^;ZI+!@RS1z17aCEMrvQ#hy*W zo@pG^`-J+{oL0XVpchT5H+(fFoRMpyu2Z-4oG0Of6zf@$-kJ8Yu4S!ESh9_pTETCPo=qw6+MuAe#g3Ccy`X_s0Bg!T3gW^Rb`ccw;nw8gQR|}bZcApKhP_C zCr9Nzk8TR@-@orEdn;=h{@+*r17$r;S+&@1l_wkc&m$uLDO_vRy!egQX_YG{s=s_W z(~X)0y_=qD-*)CZ(UUsn(2N~=k5y+YmvHA(ZJocfUwz5Hv#AnzsVp@z zci?wD`#rX@xY_$11!qU^bjYVs{u$`<6BAOq7)y34K9%_6#3j=Ql?KnU%j3{<&Oek_ z$8g*j1l<_u7DFeDKPK>?am=t}<2ApM4D#zRq{$YGz5`$69?!$go(GLH)@NmB_g&9^ zYbvVqQwilsXEff{(@w%{1#_0iye6oZjRDFtjXXE`JkoLTI}86*oJ5hMfgI8r>SEWh5dS8K$wNBF?Xt1~vN zQ#$!I`#gNSu1B6EnX>lpWV!$!A?xdAb6Uw%_6zLd4CT0Z(8t7geC{VdM{^4Nlt@0F zpDiX2AKy$oK6jFzF%3OlOjt+QPe{Mo<#$X)uWM-2TJ*Zk>-F)-tH$$|_&zW4o0!o4 z(xn=nY5(=*@sU0+fM=zJjqxzJ~7`H(}$)zCE(>$FpzXFt8P} z@#4qs0+9~u4paT6{ckD1Wt=~j&tP_2?@N@{X%C0CrhMsr+-}#PzcUDn2?MdupZRUF zeQt``RkP3a=-Whe!0dAk@d;j^KZXosH$wZIj^UVnE`%-%T^TxXYXT3i#Xhe=FW=;O zxY6?vx6cdS)n%WrO(@Uo^OmWReU|Ml@|gYE-lgp2sNTKV-p}Yc^&E)pU8C~BGTZy9 zXn(Lz+uN3qr$5{K%i72W{a@JLkD5HZ?fnSxB-^_R9o#sHm*y>!M>{s) z^w&`C8yyea7)rU&jy{xMe_%@!V!qb-X2CkQHRF>Ks zh>xus{?)zx_0G#{=_kF7q1RuRJcdg5G=}O|cSUJTEzxfuW9WNXr|WMF-HuJ#O^{z` z<7vqO<~@XgjHyrkre{CzZ_e|6+RnyQ&3WEKT(;`9&UvnbPGiku2|T=(F;#P(2G2up zbDrsx@kgR_o$ftt>8<9c`qe(7ezW{4-z(4d>>KE1v7T*a&GE~~ zXCJmjGsRY6 z`qdq8`qf=?!quIU(b{RpwqG6J)0beKp!jL{)H;uqqj96c*F`qT%}v3)gYPYb<07=> zKZw!gWx!bcUS#m3p2Nr266B?EThCUK_nqWj;qxv_$ZNQ*mu@IDNp&OqgSPqb!a^KY%N`FL0@w;wvPFaeLdSE3yszV>w@(} z%{3Qa6OEH+FxSi?3yp`GYYMBkxu*8H!?~udH@3e!`es2BIMKSxJl8L-iTZiBcZ?)s zw_bz1huHsMuB;Lodp$j&Kh5B-w1s`X9>1$i6qrKOHvC-NsbmgL358Zj5?quks6BW>jrK2$ovHh{Y)w;p*mtoP5tiySOx@qFy4SU{w$-I0ZQQXN>WFN%c-L61zGizO!jpV{a|7oNSPygKI{K8RJ>E#a zl`b{YzNYUQ&ou@}x3pf>T9evE?{&KNvrRqw5B|H$y9Gb@BjlY$zlrXciq`3FjA3); z+T}Mr{1a=x-E@%ph$qeeR4?@-?ZIoDaB=!gC_k;s8xNWfHo=4T8$>PWX7mam_UYpZ?z)Hd!x-ABk2U;+r!2@43T6vv)# z;@8eZ*T?n@bRIx$C>veluHs ze(C!6$*;0r_-N$kvM=Y#mjAJjG}#-smje%nQm*pq*-Q2eJvQ0MuQyvZR(dL0=#WL? zJ09F4miHsn|E+%HFRq7Y2HTx={OVmEE5q)68H0UR9Y#|JUIKDsNiF%MH+n}?ZKi%u z!2M7ge z%eY@aZ9eaehyGlEj5NM2k_^4>9gkkM{K7lX#S$?1S-bjy& zRTt@{_>oTOOlDL*-%8S*2-$fZu8&X``3#37)Tf5}u)fkwSBGR&KX_ss_{o6-_l0pe zod@uHBv)5&f8IoQFkTbX^=RME)K22z(AQa~?FCVLOacGfXZLK6BKVKJjGeA&0X+E454%ty-g{MX5} z`L^rrUQWZG1Aa63nkUEWrSW~wwb&QhGU6Hirp(pJWjcOGgEs@by8?bSSGMv>cs`Bi zx9K@pU+e>GGw<p=%}NjVm|0-V~|cd z8YSIGsjw(1G0iAZu&7WmQOO@U*XTw?i8m^4*J@Hq^V*H8R%Vnl;HZHbm3GZkzMuC# zYdy2)%$a8f=zj0__5I_#&ab`KUcdL+Ywxp91PfhsSnKrut$II8@At{jk(GMC{=8m$ z&{#Xj#sA~*{?dK6Ts~C>x5^6g3__s=h;K@#coYA9LE{pX3m1A;SG`0zHIk^n1qRReJWwB%TcgSTg)7i;-|BT)T zol!gZ3S{Q@j0sks%ii|Ac98aahfAIv8MHs8@zD8^Os_B*4m%+k(`n6Zknyk+5}Bf7 zwHdUy-(4(@ZjTK z(7M>P{Z$EGA)-}04761kZOYB}tHU=lduP_UKgn^bj`kA^GX7}>E#R`&Z~;Ho%8I@~ z`}YSZzbYyZeGe$MaQe8Ho`m{e&!|tllkQiDEp8D^e5ljP9E)<4C3-y;LMEeS4_z9A zeNXzW97v$;`i!<*PHPn_o}3}48w@^lqtDNYj+uJ)ZXNquoI66erRBsr#_vj>z27Cq zgeGDHp9_fXmw5N<8RdyNS`3G{{79AmQbu`V6Y^2za3jvWet^1%X0*lr))2|`} z^78Q*Trg^ONj)CFpXUsYH7*75qj3W;NPvo2-Q*v$OKzYx) z^Pe^MwPoZ$T)Ogd$brQ6m_)dn5JVWb9_Hr-`{^R$5($;-*J-nv5d3kiKp-Z z9y89Gt9xR=kMm6Yz+QY^;|7gc7UAiD&OETJ%PYP=W_h?V%_!Z(vdY6H($AgnYj@?v+~O4GX9jVv}&v|6FU+f z?VbJqCo)sKIw(U<^aZ?|qcO!J`cDL~*gu|Uxjf?}9eTEYbKm&}#@#%Bi^}qUf_9CW zeGPM)#+siH&&lI4?(kd^Pmwh_bnsfI@xWIN z*9nH}mS6O@J9OUL_=MnQ^@ZEhZkyWuthLJ?O5pPIjCQvNW==5Y8O;AyOa#ovt$~&h zPdNVAEOCO%7+a()V^U;vkbHMMml)H|Jg54H5ZfRN@u1yddFEU@x}VqHw5r>UogJ>Wiqe&e-NL+G z@MAnLrzf=gWwl%E)HgTz^LtKFKhlaWN;kv4%K6^^tx=Zw-I#80c;`;iy-@8-=Qh)S zo~7&0D&~siN1R@zan6<4iqU!oG8P|>+ey7ztueyyk4o(MJ!%`6u|03FfBEpelz;Oe zy&V#7fz>AXKQ;Jg2!6{kNxxLIG5KkN1zi8ud5UC6y@KkkRXzMd);wD97be@pcl7$z z`1_$oXhNRy5#BE`&(s+4lJB#SEi}^h#{cZ^BNV#~Nsp;NNAN#uH1jRhQ1qXAb*lFX ztM|I}0ld9WFQ|RzKRHmY(|p-2Dnq{-%16F2{)T6$ICW?obDrV!8*mbyw`TC?e+$1V z;di*x{BrnyPuKqcq+du5__rPHKaLda@0#z# zZs5_X*BLt=&~u{xFCX)6d-`5->o*;l_{dT4TkwAK^Zq_!dtkN;<^qGMK6vwN@gezt zPXB!RL~1@v4)Q6I%eu1x4uB<^*SEc@vM%jU2Ad;I($B9nqt7BV!)QX4)`v< zz3D& zNbQT8S|J zRm@b>_|wP2zzEk73|~hQc&74VKcSIw=h2k&=PUpA`1e{GXK!vE3oRmpo)aq327KMvWqDL&R35!QzI{M|W{cS9TfOaklY zD(7&o(RG8`Lr|8<*;&wsS?UAnr@arXTJ-uB+WGjy{r#`}XxP&k-_P7Ax|NnE<5=p?l>aT5 z9;uJt%(Gb;Fui=U%8#`2_-klz9ik0z_xb-hvW2BOR_b_6$ICiAC*=R*Wp9zzjP~3f z)R%0o7EhpMsc3;VzaKW@oK4D8KM~&xhexIR_g|uQi{RopudH@|iw($5;(pfKh3^jc z26z~)V;T(Z$P9WkH(A1)v8nuVxDUE)bBN?dThUYDWOmq3ZrBxgQO|SE@Q`l`iB0Y? z*}Mn*_57|38e<*~l-nApouajKi?#D+<5NsWL1p%h=r|Nwh0B$L;KF~`;D45`QvYG; z-laz*K2I=%d}x>dumyg3PD=Y?z@vMW6CJ2s#V_Gs&+`RyrokK;!Hju3N`7^^*2&y2 znuTBB>uvwRUWHmimqF8Cm8W+aILG>uuU5WPN2?BUud{Sss$-1~*U|XDy}mD|`sw8V zkjP%^Joq<_{+U+#XXFgSgPa@w2zx`xoGUsHF*?1B!>Q80B*VWa`@ptmsykD( zrtQSx)(LJtf}76GJt(?1=?1lm&bm+Xv-~quePf(Qnx=k)7^_WZ)&kNN`I{NGCK-BI z%h)Ph$stMSLyY_m!EfzSekiB>ka9%R3jBvvICe@loveRTjwpYv_I}d0Lk8Dr*hBCi z**~G-&4S~+XRJ0w>r!GlVlR2+SBIa~>kBV1{{G;hY+ZzgF69P4Wb!#YY6D%t|Hf@l z-gALtq$}|{{VX4({a9;!T_*cO#p^d$DrZmJN}K@hx1A}x<%{F;t<{?E&TGw!o?p_b zwWVtRa~ZT8f*$H!ooG41X!*NxCm(4(KgbDw&aKzpu^D~`ywS5is(i2+(@l*(Mz7yh zYZuh6;*;cEv{o2;Jg#7^>O9dCN5}s;!S%|F_L|h*l&C$$lYRJ$-0yxV zsef@s{TG!-JhDuEchs-Ko`<=>LF+cN4dP~E+vx{O8B`ZH5yc8kj3 zuhIE9HlxphUz1e!l8K2QZdQBXepE)gBUSFjxAy9!>L-3&HguErFF-HqGwO9I|M+xN zPjPXm_obgDb+T|;tvY8KPGKFr@XYO-_`4BN8y;6c#{$*CAGDaA53_RgZ_K|0pQUmi zsOKVKR26Lcm4EKx6;Qp#|hhq%)uBbkK(|Nu@W%ji)zqT^z ze)pT!M!Wj#cKQX?S01j0>-N<5MD)Kr$7cp!2tK^{l=0$+Y9qiEs^&=HtS#JlD98Z+-5VCjDqj#)a4r{UYPTqUw-yxLE7_+uJmT zH<+iXuET##b!nG>cD7p^_{o1(9=2V5V-mM441W6!W%$2XW9lC@Ci=WUbb<%#lr={i zWI4FTUb44vutc zW@rC7VDvJVC+<|fSN{;s`u8+r2ITDDc99p#`gU$rQ}XTHOzDY#J2&T=Uf<+>0y!6O zLw|i7{j%a`a-4O$X&t?exjJswu}()-jlO@Wd`BQXrca1SP?_p=w0&~y25of-e zBFA}lhCF2VAy4N%PW?!jt8{+_AD}i3Zcdz=umkvwpWTkv1`981rR^Y14F&S+# z-u1Erjd#6`8ERvLwQ;?*;eHO86!rey_zd+O=%nh6e*KtaJv4a38?A*1xW)BqRqt(4 zJz_G-!$Xa=OXajJ%U-Uc0Q|i=%Xp){NNpavP!awztbV6$trhVsvJ2sFX#MX&Y-IE z>W!SM3s;9dT4`s6^|6d^{whB18R3$ZlXke|7x8Dv{Et)hkLJj~c|USJ&x^@7Xd`s( z{YZu6>ivl4uIFehQ)uHqB?-)LtGvVipsvFlrSwUb8Rjd~dkXX3_xFX5_(#d}1m?xS zaadk$%1{0FEbU*IPxiqJFb3E|IQCcMjHf9FTu>WapRN9OcUymk&J4fe{O7-V#bqxH zzhdh1TuawBbAITGJD>l|702oMi07%h&lUHFGkvl1QY zzGk+7U9;9xeqi(&(KFYv)1qf5shn^Ma9B(EoZ#HTd%-=jOq)wpwp(SFSXp?8ug8aV zb@%F~_kBJ$FMAF9arl2~ zQreeZ?YrI~=UB(!zx!a;j8!(hr;Gl3=?S~O@ct`aeqo<0?t30seBT57esF9b@jh_W zeuee|-=J?QV%nUJTG8=I(a`{%lHGkjE$`Q`%PwMJ6MG#%|a=IiLtaj%Z8 zI_h>;pR8k+jwL$Q=-8kmogW;T@BNnnIlj&MZzbn>1JKDk*3;IDPSzJq)B%p{G3hx& z>`U_yS{pxA|0L184zgDtM7iBc@hP5d%yRyjtl5{UZ8GKghl3O7^#XpyK)( zR>M;sW08bW;n-dSVEj3e&z+&@nsGGdB^uZ)0}|cLr;vO;*0RFm&3#(=)3Hh z{yOHd7Q?Ep-_&CTlU~pP{~^C>VlMC%!Z8 zcv|sz{Qaof3}Zg671&%5-pmhOk&y$U|A2PqXSj~|3C%v=gnjcK{C)n?bwV{$}$d~8x?9GR4wboJl8|fVW7vy|%o;8YR z4Vp7;RJ#p=?K!nW-l80vo>QOPu;RVV=t`yZ1pI#m4+WF)MO<&KKNrr#9DK|Dpq_>O z8bbZ6yWWk@SDy#G@J~sV;rn{lPk&T%370FL;Ou4eU0H}TC=>b%)eU?+QsW)!7O(C? zj^Nd$whD?JxUbMXV>s+-fu4hBvPSz_jUU)sUO803W_-ZAM|~Yi(<1c~3B0eUp2L0@ zbmWAy&VAYkFOvm!hzxiSZOOXe;D0dZAuHa06 z%$ac~I8U%~$e}tH6N-o_LgZ(@n>YN#?w|gN_RpZF?WdGl&1Ga<~6s@OKydImah!{VI-0z6oNy>bUv; zG}WI3+;-1*Z0gkiiPs+*@GG?iy{`;UaHUT@U+vwhygAR|7j!LAyGQ&aiCef|p!>sg z&wf7K&(r;Q-Q$xOV}rAFBmDcBYy2ef2-l3$sMDf4%S8*NB z{BIZR*#`UTs)v4h94Fet8sBu>#(FHurPnkdBiC=$O|B&i@2lLm!j}fM`xa|=3HVBn zJf_|M9{~ShjVF(Se*v!kVW>74ALCn|NOWh@hmB8jGkB>!bf;)U@6LEkM;4{c%Gk`jL*LO=45;}N$rIHe-!bxNv@B7MAPS1YJ5JqZA8yr+QS3C^%m9l zHY#-OaiQjpgWl}0ei(f|c7;z>HrD^K>CCpOBn}0SNqOzHsQ!;~uif9@E_PO*oGx@a zTt_-RS^bO03r`qM^vNz;#uPUw?xY@mh;QO}7u)8wzwbN0Ci~hs{t5o$8ZUlyeB#5` z2rv3>w`=#qYgOhVD?=YK!D6}KYt0_tCH?dAOH}?{1C>{sU&`RU;fWH- zw2rwtF4wVE$5tJUc|F&$LdR+yT{=eYDHu8y=y*`aQ#wZORg){~n4@Evj(c@%)t_nC z>&*CigU-+DAYWd)x5i>kV|p$Z&YrgzamASD$6xWl3wtV;<$cNUpZD))hE1NjarngE zZ?ur_UMAlV%Sf)oN-kf@(}$d)JYTEi`=a9Ybp47{{ko_=<*9$X>Q7VsXEW;m`Lx8o zynXsiZ=dqiKUDSGRDVONKD4g0ICjsP1D?<2HP8P*(kHfyw%;1;U1aO5Pa$>#c6D2# zzrX|j_39(r1;17Av1fegG`q$Rwb?bXWV>B!J^JXlykAp3Tt_<9YW?N zythkvzb@eum2b21jvM9un)2Z~D&KD9)Bb#w%C1lGc$)b5S>xlu#z*LbkJzB^yG1>C z`8TbRn=W3i%YbuP3J!Dw2mBlk^?>t?;LH%5wHa{UYj7qQKJW%OBO^G}1I{l6XQtpx z*E?iOJU0|sId5h}^;~}NbRd~|y_r$Hp~%kb(VxeC<-uypaYwFx4G!TtlIwJntK&?0 zzovY+j>^xl@{TLz{hIROIx0Uir8oFa{QdO&0X=WG{g`6h`Ci4#%uty#Gs>vVQkj`5 zb6Q53p~NF`yWY>t+-FSBf!d!Hz4+gVHMXapVb31M&;DO{Xz=lLh5egOfD zzGK4J=zZ!-huYR?Yo}duZB~w=*1RooH*4NP zcGuk^K5+jRyKmL~d5ZbpCOGK#8$YRa1UY?Ytuiw|megUq#lHlZx8wOcqv!lLkUR^| z+wHmUbxEBpeb)ScC_m*g!7p@lpBvHeoaGi{9hVtf?~TM|HxM3IOcQW4gRG` zbZb9|u=bw$l3L~G$oI7#xpz;i_|_yl3D5I9zbZT@Uh_464V$)Y0d7_~#;EZ7YVFa) zd-8I$$F=51HtGAJTb-Z(EEJ5$1?2Sn+w=gtc%%M9oXB@o%j;V@#0&1@vGz2c7n8B}gQq5O1>ag!h?n#? ztf>Ju{mh{nOV4Q=(bHit=c=y5Z_xD|@xkpDKFuj;->Hq;w#0PJ$xFX9x4iZEF=2lP z&#h^#R>>E5ZVmZU*K>TI8X`}A04(ujx$um6ve@vxNVqN$FSv&n%SI=*xEs%n7uQ6* zkWH6(0Ze%DwDJ;j#fv2dbE4`x{2tYvD_)Sp6hAgyQrPx%xF2_aH+U^lofxlq2IEx0 zxLkN~4_*xiBzSESyvq%*cSm?tMtA`eygI>4ZP&FeRQ#OCeiy;@HhyThk$)>F|Bs#^ zGkm~rf!*2Bz0XO#d(rZI*a01zRv$JdtTleunYk_Tdu(T}WLjC!9?w-#?lb!C0{td8 z2VPv$?}qEhmgmZkFdiAIkH1bf9^<~M4DPcU6Wk9M?twSTe`nFKXqSQU*IeX36#ty~ z`YzEB>otJxB8m z&GKE;ZIf)_CGx=*f2V!4=?7we68qP|#)(H6uB@5cTX{D06S#-%qrOM&HOtm%llGQ& z^=~WAtx!Jxf4kquYbWrho@*%_IHsrPpd@ERZie#YWSK|S9Ad~z9Q>oCP32uSPkYlC zjqwt{s_{&CKSMAc6AWTc=G4LSeZmu1&fjz3y~PUfBV0#13U8qsJw^AhA=Ur@!|A6F zLRLO^>~kk=whoK$SX&G1X{>J*#j{DW(byNT7Z5hWIIP;Pl_wnS&xv3C8aoQt5sp>4 z+kzc=UCR44<->JUzS_!z_jK{4QTR-f5AuGbD4Sg;{o|W~r4tg}gFe^2|GGcvGZ>3b zIz`vTj_!R0i?OJWp?oX~Y<$#n>PO-^Qpux4-%w~OM+a*HR%lJYJ4|23i6-XYVwxE5 z?QXc{@kzoJKGNU8A0MYt4}3Rk?I{0DA;v~F%mambx(1g7M*sN)aN#?fV+|MPoPZJQ z$28?SmXPmgo%o09)z@xh&l}>fIntB4(vx}86Z+Aa!X>RI$v?|)6TGv#R|uzhf=$fU zIIizL(#!|?JCEDAPsMB6Z#bEwovnAsysB_prp()sxqJzH125)1>HCjWjv@6uMwsUk zZkyXxZf2xc$Y9l!L|O#U@x6fdWQ@c<5J%HlW-mBwdYaM>qTn6 zHPt?O&n4DAc|P9L&R?~!M!c5-?RcBWI$THX#NS_kK<%&>0CU9;>st(Xl=ioE5zgT{ zf<;}=$-P~$CZ}+25zg;6oS`e|t#GFtxKGhs1K&UwA|4I3J$n7n`qEA zG-IP#{<$&=;{TmnAV28ebf_<*t2A9bO7YNRx{D_{#1!6p13zzxg zb8Lg)feo_%BsTbjbOlNdRr~M-BH_KDY~Yo+Q+xtWbM0e!ET`qo_qV$qy6FX zTRUp=i`D+LRQt2k{-xGFyyHFXJgIddJ8GXFRy(X8Vol$7Z1116Z*jZFPlfBqw@}x8 z%lU#;OyS%joLdd&*tbv)+$U(QN`0|+Z2*38sO_<4jrQw>`=@sjca3*9)9wVFYh@eQ zAif1Zf^Fklc!qCjjC_mx415FfUm$!I37^FUt-sK-ZSo2D4)g=vryTl%ZD*DLi^?~v zJU)i<%~sywE)iT{eCoCSzGhkEYvTP);9{ZYUf`zXEKYWei@v!E)Tx|A%ANTqQ z;Nc@$1ZSG;E&j$eU|p;2@oeHJ}k$`nM*?l4r=0wM0pOd2RScp(U@}iFnNWZ^-YnHpXRFlx+Pyb-t|k ztaC|hqIZrYU2g9TS;g^tt6)sa>z`Z&zLOduxhL@wXV#Z;F6vCIoQ~@o#4q}rx5&og zHR)}lqf&Hk7LR>R`upH_n|!YFFwEezk1vw-4zq=+w@W8Csr#rQ80L81&{BAxUUd=$MMI& zRy}ym9v|tv=fm=E=vBSJc~<2eW{0j_FO*L#?N7xxE8rXXD%zl3{1y1WtQh*ehCkmB z!QVQy5!=Ts>FFr7kt_CHk9oEB7-8PFXgt}^c(PJ3+XT~jH5eX_JH9osgZ}Y8{ADi= z-ZM_dcR~l_S9R2n)Y1fv5o$F? zU@RHyVn6*8Y~qS|T?Kq(js4!nNBYecwaxQsdB*Ms^qeX?5v)EjtB>1n59PrhxaD>H z2FW4T@fNjPS?K6KlIO)F*Z9ph_3AkIr*(V}={UZMJeKQuyXw21*XkNQK-XeD7^!>s zH&^fDy=B(P2EZZDbHiatghNGy12D0(=N0c@XQK>ev+6qh=Tw(}7<~d5#l%m+b9^JQ z5^a4%_0c`oF~;<+hpf|s_f5jr|Ek)8C*=QQy}9}$z0YHv zo6mFc2zy;5oue-OrnfVg&O5GJTVKMPI^lU_uSK;{A^fq|q1Xv{;GcjMt|M6B>#)#^ z*cRGk1FLkb(Q&ViXLWeY&YEq$Nvg~D`sF(47VLVrBdpyi!49uQ2CxZTOD?F$_V({P-A5=F7uJkZXSw+j+VZvH?!PWqJ8_N!-0&%!yoMV1DuG@s`Ou>c!tbdy$8rxJq z_9fU7_`eIgQ-A2TwO(t#DhnOmubrgl=1V@VYwxq6!~GdB@g+}a+)jJ=GyE=a3xexy zJg)lSfL+HpxbK^+vQ5H)`wG=WBX38M$i!tw3WkCP;8-nlO===s;w4)Va4 zl4F7<`spL)_CB8;JwG&hJ|lWQPS4xB)Zce%E?Dvd@5D!38}h?^8^HL%^>U9w;wLug zo18cXcbwUie1dT1TbY>#58q9k9Q%oXs}Fh~{Mc8n?CU2cYCVW_u={kua9-iV{Tja; zuBH1`@{OzwY*$V)g44m|R9+;3H@oL`rVuiyc) zrcAhw;Cj9fnR?$6uA?&W)7!>Iu>sH1d*3o@pT7MI{?YwbtNd0`{xQzs1E*R3gMKU> zb1}Z)U+LeiOMKL&lE)Yf(3QU34#8NAhQm#^pa0eFLWJQn-#_(YC|N(j|{kyl)*P-ND}Z_K)(_(wULq zE|_tA@<;g-y$^Q%-yhbs_)fXtQzTQqRp8q`V6b;M{dKkBNvy$pVvYSx=ZH1Doph|R za$K(uS@x;kcB=)yPU{iDBi2jFLi0xnPq4vo9r2`EZF`O>jy1ghFBfaj2UFkUjX<-- z5XfLCF$d#(=bg9dwtJfWTXwqkFq@%0%%(TPLw!fv*?$dbtMm-taQU2MJT}n23FIlJ zR~^u^%i8|qCe0Dm%%BbPSK&J1)eO}OzE)@U3;5;%l0{Mf1yvmLxMYTW&(K^a-*d+@ z(05)n;O^g~sNbjohua0?cELD>HA1@Y{$78ayzD%cy+LJOVFzOT%tG1P-Uv`f4PKIkJn1;+*8B3kFF?X%SOOM1s%Ys6~U zH2!6xY!AB0My_k-h5PEE=6x zu5wa(eESE@_vv}9;Q4df z`;7V>_c1riKX8qX1Rs^rHgT!f|A@-_^+Ia{-IApJPljC%Dc>Zg5=1N4*UtdY_>y0Atn+$#?m$~VhT%OBJi7jAT(eL5NI zh3~Dg(MH(=Wti7eE-jSj`(Ul}>zUD_|2&EAQEJ0vQ^PpCUii?r@Qk?AufZo=M?TtP z%Axpie7EEI(g%|LuH*Q!pty39j+r{<=~&C5Zylb~xoTg18=+%{4)3pg-yUMkBKQig z%zaNp)B7@Xfd0qxEYQ|3&!T$tKg3=$u>WMA%1!?zp3xrulW(lpQ-CtVq<8cS_|RSZ z|AQsO@1Adz-zdfNtQ{rR%37PubL0Si;X2|yaSZqkl?L|J-jM85xv4`mByEn+TuI{h zJ-);gefotz`#Fwzffw&DkD9@U`@uJDgu}(^{ZYak-B+p#&>I+LJ z?Dv9~<-5NB8~m@A-W}{$EHkia3;27KgY}xjF9jkTRtK&Hxwfptj`%;Y$ z7OSscB70w27@@t|lW_w2ip}k#c#8ABc4j_ovD&~+i6s9M>Zf5%nKdAK7AZd{(r(Uhr=R z>2PR+9Q_5U{6DcA`atZz#BkDgbwT#e9oJX((DRhyu~4qKQ2P;{A80sO<)@{1J=ys3 zUGbtQUUQGk8!Rt;9?y-}kI;_AZ!xcd39pYfUKb7K6{_p-kJ5F(M{B0xGyLYhUbr%k z>3qPph*ABX{h^yuwuWvHgMU&m#glI2L(T&J9wgnLr+=^JtT?KXF;{cJ#icuZ(#pw?^eI zQ#tv%;0xi^t*N|s7Oze;Ug7uSHncZQDPC8-V6W~U$%(B|J$QYX&e%0Hdw#c3eQmpr z**fOySfqoPdx_5MwYgm92XzpWzo>J=sNT87diBk$FDVE%KHB48=9gl*yRF|RylLNY z>q+Pd`YvD52XEj#b*$M#nK3N=1?@A3e~@@O6u*VO-5KFRefqllWG8*r2uAxpp|j*& z1OCdn5@%L*CTIP(KywB9ep+ytTVcNQhw_O-#bv(ZB6tPCT_K+m&gzSOk3`~`U5`9< zV`;BD-P2yJ@TM>Ot#FU`o>bgZ+OsN+J25c0bB=MJFIxil>$d~>Bbu*!r;C zC1H+FJk%bHcWRvl^3YxsI@jq;TcdQw=5y;cN3!~krw-Kkk$)Yxs*N@s({;?%8k)S? znyj{(WYhfPX;MLlXrCrtHggsakQe=Qc&>Z!AQ$BC(EZDG*WpXtrzQlDe1dPxqH@j(>7zM3j1%R+YPZk?Pk5BkE5>&`Dg8;hJW{5 zbVbv+E}#ED$Z3?VdEZ9Ax7g&eNN4r{3v|jp0-f?D`{s#n-WK}E8Tmwp({*MIM!BA>!)s4kS zo#q81MjEZ`j`bE)(?6+ll$$b0Kx3wT?_j-o7>QeGcoz zZ(@O&k_j|^|NYh<0WalW-OkznX2Cv5jPzsCgkM;9Pk*|-{8sfB^Q`=LR32WCleyID z;tRcBy}18>JwgoqRh1nnJU!2(x#p1fNbduN4N}hcdF9(f?z3`GJcn=cD@kl2TlYC} z&;NOU*JAizBRm4Xq|4NA7vG4z@udeTN69mCIQR^GHyHMqb>0#Kts(bYjJJm>kh zEGL}w7t%HH_Ztj5eChq~S z#~zuS57a%+$Jle_8pC_vkFinpDBob`$#$M(XZ9tSb9_nfN7pv}HrRmr(wf=3Y5X%r z`+tka?5D;(dd>Q5V4iJz$<_%*oqa3GdftLvv;M=c>9@mmWK)Ic8%p5aT%-P5b=~KV z#vh6Y=oPVY{4SU8*tCDMy)P3hYfp|qN2BO?yXbIywimaHg&R0}?ifDL7T>TP#z)F$ zj=uclzT+eKwf4X}dyZGT;O_jJVc*}zd=tNeUqil9i_H$3ai-$^FwUgS7|vhK=MMx& zzZNLL0Y~{Y+1B}eGrzYl#| z4^X~4g3EX)3+^a`TNlAa9~`d7i`Xpn={JX){(}R3q3^c{?Rn9D`C)hV{HJJlKY`!E zPLabIlEa6N?~PNDt@b(T1N&^#nOGNocX!`0@mQmO#01PURu{g|GiogU_1Yfx z$|G+HUb_gdr}Y0gV$ySyI3f737`KB=M`C@0K94uhd*TRRLxYXiXs^zZC-&N?bfBin z?ujp$6L)!o2fliw^t#XZUUlGi+-GY&L(t>q(RcRjA>9fvES^b^_kmlja?o~P!uP=I z7pj%#P) zd}$jy_xNkeQAzFxUSfw8;>RzoPl@AX?7(vzoS~Vs=Lw*>p!T8pnuz9mgaf)pj#=O3 zhdfWc>v&%O%Cy*-wy&F&^i{=Tf@fUr(x}`bFDE!YCjU3lk>skRQZZa19a>&KC);I1C`Xg4tMwfg?5n>|dD=bE3_ z^P%W4<9kI`1)EDA|?iT;RLLdTvi6Wlt-{C;aaiz}C++eF$S$8-KfhBi;*k zE4gxx<=Un_ev#`NBDtOz=~kj+H_8^1bxT1PRHr4hwt*j~Sq-zE+xwTi`e*t5cz+PT@0({kbz|^nnjTq8XUy!AMMu_$oT-^tUTQT{-S zZA1JayNLIu`E|xWBI5q|P3RplhHyAn@l!f(m})dQE^js(iT}y%ooery_ifX>FZAns z_|PZSia+cf>;2Ny%57VCzeKs%pgWR3eZ;4ZG+!ToVEtFgTJBA zIY|5|wIhC#C$CkmjJ?e2wZ~bt+C3#|cVgVGm)CqD-_%mR)$o|%czBrzW{lTk!Yl5V zxW-Sa&$+eIVgdZI$KnT@{IE6XM(3TzKmB4`iN+Tr8bhq#K$*C8n|}JuZChq3Cp=4SqZ5p4;WaTDKDQ-*^+wJ`{+(dC$y49N{twB&AF7oL z{*lcQcj^BD(2I;`<(2a}I*A41KH(hEe3NXsR=$h;BKz}!2mf*%ra2?pIyZXny2Sgx zDK{B#Qyd@kDZg-I3=97d*QHFN@`Gn($~`KsZ&M)(#r2%V?H=f7^(^@BPd z*735AQFWRZ(=kcMOdX4LJgnnY9mO|lZ(kiNbv&%&MIECK)N>tkbzH7vfsVyGmgrcg zgE_eMI&aXC8>9c>=~$#=wT_2%6bvA7OI4b9B8}$0{B0 zq&;P0UujBs@3GY^#X|>0_I0k=F}i@fzDRl5Aba<5|6qPh&(WHrfzMuMX;h}l>OH4& zho;JXIx0sD0=)d5V|vD@oa4$qU2cb0P`*w3(U`5E4^`4j*?(B~sP&)0Km7Ta-ujJE z{SR3EmZ<)VtNPd97}alx>c7+K7o+-5Wz>H}^}!K(esP4pgR|?0bxmEK|4i2h$<92# z^hfde9OLP(Y6tq;ur2ZB9PO3p`u&RPc{%xtO()2|-l6jT>;_#=mz`37vGhNj1*hEn zSFjP||5#`&=zC7#8T+<7M3a|GjFIII zhkf*41^9XS-eYjCk9rrJAajQ&5) zd%eSF6We@W@1~dxx9Zwqt<-g!$$hG>mAmNWhxvZ!ryXd1Kzu3TD;biDXi{Dv@L%PT zwU_;v;8C{L;Jhk+zpD8le?M4M6pX$Q{UPIO!_#W*e8uyvk z1GkWT7o6^gW4+oHy~=`9WNeoW|7G>R=%DkyQtjL!p1mx(k=?XpEK*tv{RZLU?>-mv z%i%};`HSM;ixL0o#Xs=yHF;dqr>{{z={9$%U>+gf5iik~`#(F74D&~VSt=972Xm|+AFc21d7q|dqv$zHdbPJ~!`IG%4|#HY zAbE3qsprwjuR{;yj5jZ=pO|hXWlFr={WNSgX3}L zwbqWuytKVIddA*?v>ShKNW2Y?X6-ko=hi)PTRx*UDdRrpsl%nKoytu`@dSFreCD$8 zW5O8XeVS{E-ve)2UivBByWak(9>*{Est?hQ;*_n@r+6${%xR96HjB~T2#P_Tm0XBT zC?9{DI8(le{qKSGR0`H(x(C<43*O_BH}@5~ZylBRw%d4KO!k%7k2c%nt5WL$IrwFI? zP3~~NmaY*`5OcQY?0Y)Vy0`cYZp5YK%Hk(|4F`Lj_}s@}b1}%e{p(3T6yr$Vf_JO- zAJbDMy~17&6)udw#_R0uF>fe+7=4+>gzybKrIR6l{gmpyw0myLPxa32fIQ8*hg_oOGHd)jV>ITFxQCx{9(k_q z`TMA7(#q-0v^g?^ez&XJReqglxJhN{pBJ3ai#y|2>ffs}|E@CL{y4R-g)3o>r(M1U z-ZjZ~od*tktLlAI^*$xoF)hd}=E+Fg4|v=ga$7DjoS*qxf0;SlqRQU_J}TREqV2cb zoXkCZ9KHzWVd69WI=J1S|4p$brpffo<+n(1t`VH`fTMSwr$uJmXU)I!+~?ml&s4*G z*8DrqU8lo!r2njIAr}swuL_4*!r>Uh0eM%O{Hez`60D`ElWe%>J$;yLCE%ER8}Zr; zOHbJE1JT?86h|u1P8tIefmrJsLo^zkAK2XGZ(VHkj#awmp_ejw<{+mK5;MUYS`~Y z@TgPlOvcdZy`xUj_u|sQZtSGp{D<_vk5716_|X?#D4YGZaD)!N3y=4af9!SnaMf>+ z&#fqQbrEpDe#O8Qg`h&kH`N`5*M{0ojC?{hrFcU2*xoildMv z{QZ)_Mecvl_zc|w4{W$od0p;(?~Vs_Pv5EUtAlRwf3CD2KH`4tTgcHdaa3!O?kfy?Buor*BrA4$qd` z*gn7>Xl<*?Kr3To_lG0(FU#MI$Za8)9N=sRZXPdx-1G4fe95iPT4Qf-rRIiyp!Rg1 zjE_wApETL~xbowLsrzeN?xkaLy*ST`wRLR)|FHj zt}g9uI8p6+UHl_B;%Avdm#-RKH-+3@5=UUStG}A~qxPmnJ)(WHmuGDPGy|(eehvSv z`T@4CHzqK8^BlFp_143b9~11X_<-l|S8_>sEu6f+XpzsNulT&+$Kx{a+edvMIKcN- z=>ymFC-8-9c(5+7c_PiJl0yI{c;}?VS;qqmSU3=4rD%ho?vSb;Q%6@pM84 zPcKre68a$3MHgdSe0|JJD+7G_;C|~Wuqp8F(E8Z5HGS!U&$)cZCMi^Cr&f4*&Z1L$ z?xg!a;OC00pHK8F>~|{p4%4$3H{h;RA2lr3zUf2KP2vgH4fI>FZqQfsotT(;4c9wj zA+EhYpx@@+?K#%w%eD6RQt{$+(SglU_bS!( z_m}JahxGnUde1kJhfEMJiXGkb`{dE!S!F^0DAE|bPXDCDr+IFMTof?rxA`utLgn$T z_Xq}ZxU&piRciMvwOdfT#HfxNF`(o2l-9JKt}^QLLJau%GVtzI*%MWkn0u%(3$$qd zVe?ZjZQDF1p3B6Zg$MpL*tV{TDZ{mBbsvG9Loen6SLfxzbyTh)D#y3F*oJ=t_PFMUw(4j)Nb_7em^)gk^J*Or>)5Je>ZlP@MWH&SO{jnWxdUYB(SQyxj`!GGd|TD4!XTkwS;&oKvhT?Z(>KEG#= z{P|&Tj#1#)sdhWHz9*N=L)NNaO5?SM;D68XdMEm+dd^4LR3APfSH6kdd}!h~!3SRj zt|$L4!I2olVelQP=Fa=U$P31AA{gpd0*o8J(%+wH99RSVF0C1#vRm-seB-*AXMg!q zQohmJMBbin;{9sX!G|3u{{a7mO9?mfM2`EG-z0GOPQ-Dq*ZZIwg7d))yyVXVUTtdQ z0K-dK9O|d>Xfiys?MT2wV~dc>gP;DL$Yj|-^@y5WUPp_ro3`zin;F>!-^+*wtveXe z^WCPY-L=B&{qRuqeYffSuy+yrc+EU2v=QzdcKTbd_**TvyEOb5=I`u#C~sF|g)RQx z+i*DSxz@WUY}Y30c-h73pEVx<5A>|}`8+*e7d=N-*uKWaVJ{hv1EBAYznkt!)}?V- zYK$QM*1S2R?sa|YChKcLJgRj7A;$dEowtltz0QwR=N9W&q2pycHt6hhJg7cwb%gH$ zs^jlg>)qF)cN$}q-q9!D6}@9T?DZDt-EGl3`Qy^N*?PAudPl6mnBT`u4>k1F1LDfX zQF(8pUU06Cp5sTDuYuS2i&l+8c*ZzH|H}KE*W=slc~L!=5B`FBzTO!59Mgx#N$jKk zw$B(2`Lt%#J)}=vTmK|EXUS;RCDpk`9j!WUw_}0Mjx&3syg9--mJ$0p7o&Hvj9!$j z9v{7nWwb%>j*8yJGFqp1hehwwGI~#jjK)Oe9q$E#vw!qFEhD~{bQ#?l$p}9*BC5yO zbeWBb?>JL7XMSS!vGqK;Q}2K)R zbUL)ihS?{DwQBSO`FBUC_mtoHbX~(h24ngyHDNGhqe}*e1?fve3N`!WAYu_;yn8!Cv6P)O>*(7u8P`@O?RsfvZeeI z(HYKahi}&$2K4+R@!Wj}@Vq9%bE)CEG{Tc_sbf6Dx7Aulp#5*UVt&ToT&MZz`tJPP zq<>z*gJs6g63hZHl^@Ho_WSCP>!~z;o)4bVIp^Ps6kgnC$vHgF`1YLkSES_p1H)^D z;Z=f}g_rbQ@>LAEum^b`9r2MoNY~MKYF;&olOMD5dY#F6F>mX0?)T~*Tly#B%e{G+zNCRwXb%k!F`MBdm9zH z4)4V)&l?qm=K|gPcR0k^lvyf&=4HWWq~UXm=@|7pMdwus|@bGg6nPkr|PfJ^SJ$GR_U<}HEMsk!Tqc1cpKl+^-?{L+h1Vi_E!6g)IRsL&)6CI zzpXlptohIRK_0*apE-t4i}0CiaQ{_xyp0d&8hN!u`W4@kYxH}* zA8Ju&C!2!Z2HQC#O}#GDxZ{mJ0acE_bvg}x}tI(h70?iT>3A{ zb?Ba43H{oc8Uy(I^S+wk_p<6VM|DpBD|;~a*7=a?`1>DLC%y{a``CG|#>(?_G^-Du zuY+}=jGq_ldYO(69jkP7>hSnGd{?h|j4(!(ZM8N(LZ7#(wfVlV*YBjelK2~6+aNiT zgQ-@3ePG77D$F?mrwTrgNXAQ)WiOiF56^8O{#oCY^rOHd56AmXz5kWoC*x%LypHal zU!rlhV7V`&FD2HF;q!e|eE;~iZBJ+n7Vw)Zm_JUzT$=$?{ak>V^bPu-L#hn>SMUye zrF)gaBm7eV9DOYFtoYd?KIaZj#$jpRG6rM(^|6m8aaBUs!i47rTjSQz_0lb3;(KmM zVh8jJ{@iGBTHI#6+VXbN|AZjUVsA$DuC{PM&$B~p_r_Gamu9qEjN0WNH*M0LHp!{l zY@JyB9>qL7!xvY}wzzIqpT@WWK3w$9Kwo#G-G9{XS$8pBG&h*1Vk1+bsHsb@#S==0LUY!DhGVlk~i_Z;sIlejzu*eS{x- zs6waX=P(WwjAr3CDZ+2KwFiEi3_r%mVGlOpv+Fw&{3Z(@{%@JLd;XIJev?feC+Krx?17$fsMQa%e8>fsLPJ zkA2GCj;=&yxu@*=qO!MJ+2yIS+*9`asO)l;b($F$(?&-I&9sS69`LP#>u~#gQG~YT5Pv;x=<@lyO1q0u_p7V`+=o=T&*Ada@GG))EESa`u$dqvc zv^#F4af6LT29l}QbKJNGw^ti_WxCAdM9d${lzYnlDJr|d%C1b6<({%nM`c%9*`k%j z&mgyOuV=BGijkk8%<5E~aG$EPI#p*)s!q61)mf9Ovo=*H+^6cSP1PaBgHMcK!PW1b zzHpy{LA>XFlsfHt55In{7|;87?`uo(QcnK?(q1F<&xhnj4Fs@a(dilVH$Oq1g>e7eg#V6n} zzfo&6aW6PERm1e}f}7M2X@BpW<~wPNxc6;Z!_N6K@d1HexQlnQ zGH_=fqY^7gno}T9Z%a zNSUk3PwtH|1Fvc|cOhKh(JNYmkC&0{_k(^>qeDb_IvEek8^XD#O=C#L)44*RK8eL^xKsqv-veX|X9ciSVbVNRAv%^5AiTTsz zSkq2>b5$38YRn(d^S0V;Tb#H5AsNh*ZC)PP=D(U;kmDV)P2@&=M?B5?-0SWAe7j$6 z_X~9YR^h}rnzruK^JdAdS@qL$E2^A7CvKgjGIN9@ZR(qm(cB})SVsGcr#yEX#wPh! z3U!bl?~39pXZCUM?=|Ur_z!M{WOVl~$v8WPo3?jsh_!?03vtlGN!j`m+B5(0*+d7r zS5+ta^4<)6IoR}Ns_Dyq(ii8|MdHVT@EA(kjC&&SRMO-~u_*K7@;I+u^ z_q6-Px}PWhE;2cssOP1%h2rrn!}+VxIODzIA9C(2vKBIt7kqaA_}JM=Ta~%?etS=} zsjk;?*bnp1=QgdWDg*OJ2D3{4|1C6KQ)<^?tTCUwTC~EC1sUr_wHC3|w)ahkm@Mjd zO=MA#A&dLAsc)5zK07whwP}s5wM0+7{bi~47xyH&i&%HaQ8?}1{w~)3O6Bjtd*hA$ zeaBta{)5*3vW)g~dFA^@=4S{P{H1o2D{+M_z6FJWZ4z;F+&WlB~mh+AkG}y@0Z#A5q7^^_Xmsq zWhS3@=y|*3(=K|@efpT`Dl=X8v8?24H}ediz&dsMUisY3(~Zt+he+pBTC0!U)fk<> zig0NVF3UtGIcTTz4Td*#{+H3|F*q?fddWTgjr;5Uj_c3!w2ucKv1PvU&YoAk(BD44 zZ+LbU0<2A|gePs)i^ns>pBbWice9Wz6(anAa7Z{uscK<=UU#a_pgu@Es%T0Pd zTYQ;qd?5x#j+3hT`&oG4<(vnrj0ZC`KENgxXYioac<^E4!3k0O?^pY*XI&Zb;7r36 z9z13|_|+@hw!9kUZCMkvRWbe?wRhN!iGC0>cq~Gk(y8)IDSoY14!P?%_Sa#bbme86 z`_qX|E*I=`GicezXgSen(Hz$1v>&OpGDoQl_`pxk=aW-@SYwChbiAx%ImmwQVyIopUGU4<4w+0|7PfZ zTy63`mepL_vzmSAeLYh_e5)7V$XOoVCYUoBm)+KL7}srm+q{D|g-30K$G07iHsK*$ zSm(z$jDJ~^Uu7TZ??kxxUdmgA%Sf$_EDV6l2-=^U;8JaPRSU1-hF6TkWri1fL%K|_ zb-ZQ@FX6^M*Q{fVaobh6T^HdtQu?)3d6BJCC;p*MxHSkja>?v#+#o(N7tk2V`W>{f zG{N!7vvj?nFTZ|5tS1^`TswIt9_K~NBh+bQokK6)Ek?_z=-IcaBV2O}M9W;!BARMN zQ(iQU6itjn*&~8{@op;jj)b^2xphWQ0(nR8_&e{He9gW-Ufo<<(Z4wJ!*TfdaGWhPgz)z?7!kL zqi44pe`DC+j9?GM-!QKf!TDTDPVoJ1!EqloDBnfrF4&9oJLdQ2BAzvgXSL$lVEw}T z!9}|3IUaoE`;7Kj@8=s|v-*WOYIl43h5M|JiE%%FsJM&v2hQw|^YIxtpH&9ulOvqV z`UAE14cbfjfj0tsW?vsSif1W5aJbr ze!=H9LTo5`W4pwM2M+T!Zb|GnSiN}t^&5s*w_5En#-hzhe|$a6n~t>mlcaCF=iNYU z^WMu(w(<_IC>(}T-|-%6^?jW(wn=@)lHl-cE`i6I2JZJ(-^}~zc3)xbd0y%#k}>b+ z+WW&!OxCu{xBKyS?|Gp1JCgD*+xu^89mY`b2baAn6WpAZJ?!3TX|#K%rNQn8*nWANOaG2 z_cL}sOKsA|{-)d0?f%S^ZM;2YJN5S7_3>?1-}UFMb|2%P)(7`b@D3jOx(n*WdX(n5 z%jDDy9(likK9$xSwJ~?4^=!rD4E(F)oA9ZuKlHuWuF*5f@%}i$_Up8tc3pKm&fEz+ zE>PVx9`B3VJ|((#Jcdf+`!i_#U_|44GGIHe8NWOKs+Fs8y}V3yobI$u#C58qM{&K2 zGV0|merI0Y<9GVWIVzj<*;*s4``LaUau#78r1V`0vho-{tzY2DSXVZvbvxK-VvA}0 z8mL~nobx8c&Yi5WUh*t4JY(*LY0{^Hj|mm$6x8P{zs39)bF&v*pXeJf2jrV*J=SQg z6#(_;+wf6iq>*r&bS^TL&7NXaA zT%oz7`;SU;DY5OkjQRi3DB~G9s5nk)Bfcs2jTwI=|B>iG5;Kl6UJ`Sid!72#^;0+I zm4|Sd#5M_Tg~F*p=E46Kh)I(5tj@c}v*_cHFntM!M>@K|*URxmeEf;tLm##r`!e|HHt)XdclIpSQ|Gng(QAL@`+js|KzRwT zUq$WXb2i$2me0}0Fag&XuN~E`?e#g@_rBzF7+)s!`}&-xRmN#e zub0K2@$Y&)jKO36q~+%NGeKp8zL$w{ylx*{B%{~xi_#_Urz^CU*L7>8VwN~=9>F{L zP}eQuo1a+UhP>(9_Obdg-f8~1zHLum?z-x{2mV^(U&F^^u<>d?J(( zzYxmx=0+aUGncRP#@lfG2J3?lR$C4uO{3#E)G@lt1wMY;V)(Ru?`^z|#~qJb*_huu zN>4tb$9*evL_VL(8ei58ki(w#_rzxrt0MO*@wZ0xM_H`z{b!ml@D^ON;!@|o^UiZY zLy03sscn}V`L1xCiX#rpps(NfN@LQ6tb~Il5!{_7!G+t}ccrA;MS!2npcsO0x`8$|y zrt4+N&gn*WrCfw$jO>VKTz2e*mTzN?R+3L5KcR1X0&n9uXsl!u%BZg<{}8Sv$Kk9U zQ62rmCDd_$Q?K&QBiDOui9L&;Gp})+=l?I-Px2Cs@E==Uv$l?Vw_&gEdI-JbLA+nS zFw&pF%FY?2EV3KSzg(OFBlZ)s$elo4ef4Lp>_5U!%#QGK9Z`E>{eNuN z{?5M*h~Ldstjs^o@h`p(f`3L7#B=t1cu4x9f8YcS#MysY(g+DoH`^$wIP$@r++9-Y^qVQnt%(uUpeA5DMM?-_! zO8jj2uinw($vFSd`4OUlI+G|@6fbmr8rR|*^+$=WD%Ee(Grmy>c(o-olIP_f9r?Je zV;rt)&qaJv&vt|_2O3}M3h>5x!9F!=i}8Em>Mq)aH>b(Y!SiFHIYs9<(QvfW$(l82 zd!0D4Euk~SC!(49OQ$BXkMTbYKBz43Z{j^=joy@x4~MIMTxUvLXXc_V-c@Drezf7Ti(v5$OI4wx`v}1bvXVZg`R4kC+;~$e4^#5ZJ;&+z$9-YCURIfycct8t^eb!Z$k;l}3rZK#{4B)} z;uA4QR{h^*)OY($=URS`{}nHD@{7c0Px!rH+qXA;_Kfgxfz#u$mfJD;zDESZ@lNyR ze~YI#ZwF7l81ta0HJIYdvgjG#5BZ!=njbEobgsa2`dRY&j(kX3-Y%~&zLEd;ISuA4 z3elX!L>tEu6Y&iozJBrF62H$JM|$33Y*e1{HRb19dHO}-Ec*EmirzY#2l0LS&=Jbd zwerlV73dG6zmEFOO}qrUSv zZ4;Lo4Q>-3@%tg#L|=R~mKBdGWXtgO{etEG!EGc>M_PA?QOeDyot;5j+V0$k(!Xr4 z?`lfr#T~yL9V0diUzZiR*}=w$tVu|Z5wrZxXH;$=o|eJOw_ zA5+=b-=de{emit49vd@`UTF51^mVeaLPz&|1=o4u@?+l6$7yB z8Q=dK736_V4rK4H!~Q;Nt%&PkT((@?N52%us`xI4|34M?u};NxtslPP!6zde1}q1E z<(u9;#IoghaH@1O=0WUp|EG8m&v9n?-n8F!n?$bvh`d{?_~t%pD0#Q3D(||xGq~I~ zBk>1rzu4b(gWz(V)$tr4_U^d2{*>!OpHz9*>9jt1J@2E?6V{{*)`va>4yJ<+GfR%d zCuvza&TgY|EPS8fIy^7uIF{>^ewcwzR{ep-0N=`}KTw}^kIIHV$i@KQ^!uIYlm2f1 zsf_!i4#9O^xXumKC#_J~bf5GaJ67jk4a4LIJ=ZW=^IYZnq!P`8^hra}IdnB`0|V*IPmJfm9*W5r zsWW=U80l2ef~|PG@37)IDIa4Hi`-@MV%);G;Ze&0GR|NwlXY1Yf=3+vguP?jGeYB- z7|v4Q2q$3NXXUD_9%Gw3k)>?ibNJy}eLQ`=KlgTs?O1yk(~-8r;A_-Y+t(7k@i7eJ z#;N{HekjS{{!p z8wyiHjK{dpc^JliDf!J49A9U*i@v$ydr)NPbv~~5JR`^I=uYJvF>$(Z-Zrq1R^ zT+Z;wb>iz&dgu9^Hu#l}qwmk~S@Q+Qd0ozDEmj=8KxNZDi*-R+KI@fJgnuEG%fept z3|*)wE(~$?moj|V&xa6K@AlUIJ`A7gK8*G1<$T!RjGwXZd`-_710Vx(beu!JR5*uc z>M!CPU8U$Lm!tC>p6BN-Ko0~nGyaw?^vV0hyecd#%|Cb?5y#_Mvi@F%tQm_9Mb?a& z7{{e${fz-+eWkSpKcLOWOgCr9b}0SR{i*&1n2gt4wu6nCzMZO%&V6r){S!Vt?w?K` zq<<>WJV5{CKBP|$MmoS4F^su#`d-y^8Gq_?Sr6(N@1dRXS-OuY2k%rH!^ZI5tY=y9 z++Sq*;kQTn;^lVK5C5~)!fcNpJ|${99j6k1GVUHMP9=s8eUW&%!$6fq3M6r~W`Oab21EVNJDiAoQR9 zEj6&f7n+;2|26%EKO4*1rKTjtU_S%a$L=Ng>2Zncclujx#y%wPFd!+4aNy6?#G0V28G@ z!LNhg6ps{#XrJreZ-iWCS+LGESn#!6Iq36th->|NN7_U_)X!=&-M8Z(7!y=!OyG6G z9x>u|>@(A}#bfpswO5Wd-aBkBm-d1G6Z2dy(->Fm)Nycq&GI!nV($*GTwnS^Mqm2p z0s7KRc+$^G%N@sK$=5A5;#t;w+y5lLcNDhkR9YwT^(!)R^jq}3kjt*g=2!;Ghw!~o zI^L|8?6bxeZSrCGH|F5tc+=+z;+TFY@#du_W3LBH`X-Mz3xkX$-kYjV{BV(;4JjWY z8sd2K2l#*4I5=eG=u0#Y5O2DSvTW()NFFWK(1 zx1sdBFu9JWRE|D_>l^GJhgF3OyOR7x|FveUp<_Ik-<|bo2lOnWj@7@)>eIKAdx^*9 z6IhQe{R;Nlw5ZF!t(!+3;hV%r;lEFx1MUyOD|%j;%T3_{fngZGE< zYAF5aD@P~rydE-oNNo>QMw?UhY4-&^+YuR!IC(}<-1J(@bjr2lTR`dR(& zTiBy4qyHU89qB~6|J}y-lhJeUfB)v+RqkZ}`%(la-T!9EgZvD-8}!6-#`kCBhMd;} z_1#a=uJ}dYt;9*-NxJWT#-5k!yW_rMv&wsanZ|vnI-ahVrGo>}MojW(MA!NZx_-Hx zG{FO>say=8A7_^>$2Y*=x7;!ILCz4qb6pm`Vj}p@I6RcM`?7TkefL6QZ4P{7Z3AO` z`m+kb1PA?;F1+JgP~OFR4gEHQCi)fn0H3$>oaUbgD4UMakI(QC&qsA#wpl*nWtDRq z|G4d8Jro}?z9#VzbEqSoCw{)j>Sy_gDfSIQI!2#CokD*f@d$WD&)r8n%=3RhjQ(H* zC+#DgUjy0sPmO2T`TYhbZRbC;=UH~16-OMGA;Sj*!*$Ye%93H=mC2ym;0#5E-`y>d z;ophq0&RPWzqUSEde=*+d>^SSL2+sD(u!Fjy z85!PTaMCjTvOUj|VOG2VT`sS3er-im&gEJzr!~R8>jYPyZ#rDh=vRr^;`t``_2_P| zpP1Sc$2?w!HoZ*9Qw}j!O6xDW;_(T4BF>BWHV{83e?>;QrYP@39O~=L@h_KAzD;xM zx(;nfe&h>$KL(FuE2VP_40hI9jm>XP{?ilsfc44uu;t|SNx>>d2k-Go!1HoWN9@~~ z$DuzBbc+t;8E6t6(C2)M>G*gA+vk!U*Yq3_HZWY@Q_}{02>F7zzT@WgV;!b1z24>_ zyf6KX+TNbNG?bT4#(cJ^xAOsgSe{Wf zP5&IrBRTyy(YE-KZX>Seu@tdHD8B>r<9`OC|7LraML&E?<2Dfe<$Mz~uC#Vy*`@u2 z(;EAdw0wc}rJaP8_AkKnIg_Ok&1w9IhhyB*@3Zhvmr29OqA$y)+}^RtwBP!eaCX0S z3D>fB{MKBq|BZ~??S};4b;kRite7JBRN;wV zn)zIkCm2dh@z1*^F~vF5vHERRKP#sAciS%{9T%QTokIV(@Lc#4J@=U6EaThG#uQT{ zINKXjoIzdDj9)+9;G|=UY4#jD^W5!VI_Ppr$D_!m;rT>1;oBg5XioWN`P2>e4;bbi z#gm#`v3E^MKbPL)hHO)68z{gSUWe={C~*_V=;xa9Y!N#J=c6!FIgUFo)ttj`<(NZTt@4mZlXS^2ZDxGCG3o zx|!ue>Q&Btz=7N0LzeE6_>es#AF@XoAM$nWiHjdi`;cJ+_>kAN$8werd70{kyd1J|y@_M6rZVH9Khb_$G9G$?YsrDQVvFGw z#}$riR$Nig9zyB3Vtf4=bTWqc^N9oRgB9~)gK!*(@6MA@-t>a_?>8BB(s(+|fqZ$K zXY>67@f)n~qu=&DVfapm@pUq9n(V)-|MVvQLGR!f?_8eSi-(W9wJtsI?FGShSmo^P zO_9CTn!R-&)8F29mA&mc1bbUyx`NK#99=suZaaNsB0eDx`usb})XB29Z)V8Q+ZfE= zzLC*ZIbK~5@yg?(n^U|Bwx)RLuT^E%tV!0C`rHO6w^072C;R?_Ewq$vfOSg!Y}b7zb~|^$ouWALy53znE3-TV=|nab^#xbgtwd z!Ly;#wAFk`7EMFJ^~&v_m2ZgfZ~882GyI%#d*Ux>n>hS4f`zYR4uk#y8n~to`MjiW zIJ;Z^a6D?Bf>+?vTo>J#fLNT$NELt(OinOK;qcd@kkxRUe<$-s-YfCz|+O05gE7ayHb#N3G`?=%?4MT)(^Xr;WQitMU6Ke&=mx?aZQRi{XkHqK=)A7y5k3=Gm2((csPtqWc)I)4t~rH+Gn1ZgWs=g)-X)m=T!Dh;ov=g0UmVypFJ_-0K=-v3E^lW*>1np@$U zO=+5MmKnZz72n?_--L}3FWH8&lUHrN+@87-+G3rY6_S_GV35bda6LUFeh?RtD_zMF z!N->AeKueT-q zXlq7DJxCd)9auKj+2J8!gKfLLbylzqb@oHUgWQ8kn%U(1?|IM-DZ9wNpdOn0emSRs zUEdF=3+-_^@STEnEn`cr+N32q)}!$)utVXt=SBMj&K(Rfak<6<+rs-XEbF9e9jDeK zNuEkyjqpL)@3pnT@u@?NjOM(@xIRB$Q_(im% zq8IujzTEdCxJmum`&6heyHxsF^uMaE%-AzO+u)2mgZ)a7PIp8G)$E`Q`fucY!4Br# ziI+|LF8I*&%{$P(%Dz@e`|{k8-M;fo`zrsC_U(il+Lm(Wwr#wJjC8rJviSz437YF} zjQs7EZ`Ijq;>)!EhVTD%Uw>vu*@N{Y{UX+(w~AlS>~)>azzbh(O>X^+xJ>co)(V50 z$gSVtTjW*;+}+8oh>5$+a?8-d^(LMzgM$3Dy?xGAOmi!=aDt%)>2v0O$FvYOUs@Vc z_Wy(yb{o@~79_o}@r>+$`N=lmA#>@w3%~n*V;b6`yM9B;Bz@ZU@Js)!t5ttz%avKP zX8l0Y?5>_lwxOQ32bceZcQd$0-QwL!gPZVf9lnKkC&Aqv?+!C@yW(AuCw4#0anA%J zpTvf&I@`f{v+8rU{|+ne)l*{%>zuybPGNFE#yfVnFnl?#xaeX-yMb}VL8G^QT+y8@ z+7Wu3Ja)%;c1uX#AT%7rgM7ZTX=AyUVr%l2^|~YN5$vP?cknX=^Kc{&#Z7VC+`l2^BLaYpzt?1 zoEd_{c~;tjLs*?szFf$#NQ?FBj~5Q)^AHb2B-FI2@9OM3%4yeHHYN0t?kmOjtuTU4N0?8 zSl}KOZd>#IPr`LIb_&*)t*_&`<1l?4*F0=}&c<)_yi57Jo%MD9YrN$i9L~|V#m1&x z#y;pXc_yd_#s$mpQ}F}kUCr`_gz4#0C&IY6a|b*xvhlkpzsP#<-18EBjOTdraJ$<&Y1so}16=v1&avsUSS?RpXZQ1?pO=j(_&#_>D5 z>o%}1sWX>y@y&9wo*9Pu?*^PW2IBWJw1KkegM5iMb?$7di+c9NH}(_(Po7CQ%+$lK zCTjU|DXa9OEE~s$LMwm!`de?k zIvAGo2JQu^#T`-9Psy0F2XJFq{))JygRr_4I^iCq{?LaX9oD8668AkTE@(jQ&*Qz9tkjLl_OunpyKJj-t@_4&hF)9QZNvJo z+gai+wc=8yliu)FxF{PWpxt1(M0SZDgZ1*lzxBMvu9tgFU4_wl2I|+hhrSEw0{3|W z7xqb{Y1UIlNIgxF_67Yh-GdQ_G{p8-{S4>@?LLCEBXtSA;s@-H6wd=b(9k65pZT&5 z^N^0%H)36}KV%xLgM$%Y?X8DD>gFca5$+L7X|MeRFW{~EKg8v|h+MOjJO&5yAYDry zv@mL!1>9YSFg19Pe#C^x? zaA;)8so4aXI$f6Yn5>2Ki3eu|s-6-edVu9#yX_561iJ40qKz^?fN87%D1F*sg(}KSN-+?j;znE z)o~xxyP^fiNJ*1z^!O(7)&B21ig&QCx{`BmnmeOxekT817b53G9xyEXxmqhsaLlV@ zhA9hpNzv*uLt{Td{Xj;aL)??@$M5R0tOXyf+;D;k(_@#a4WP*pl;LSvr>XX0_`K@&!2UT6reP~wCxA|4GSSq_ zWYi0Os>~*@PWYL!bcbK3IHumai=*0e8|uFo$^?2>^9jK_DBDFA_5l2ETee)mK2PDXm%+mU9_Y_mcN&jVu^xCD`eEIt*)*|wTt7$X zg6jnKc#Zeo+hK!qDU~O}qz&L6!Ic|6g3O{H&zO+*=-&hW?;3yh4dT!6>x@6|2(kTN zGyVet{x2H;fdT)gjsHFY|Hq8~pn(5_#-H|t?R+`bBK|`I{&yPxjDY{G#(!kM|0d&~ z74TnW{Br{Szcl{20sqV3AM9&n{6QX2wB^9onc447zGVOLM1~$ma&IwdRP4jQ2Y-$Y zNk>xd9%zS?kq`YafA;Ew{)>%&ussvTzjq*f6Z|EwH-HoG<{1ci!7&WShYuM%N&l~6 ztgX4%Lul3#zENe?UA^e)O)5K=bM`IlkpGo)o1XR zdVepZj-Iya=uxYVf@=>PzjCb8io2nlDQIJS^PVWSx2$cl{C`1yvfd`LigzV2oY;}N zGyCxMcV^FBe`nU=N@qnGxhLxO&aAoXd*(pyx?A3*yAbzxD>(`oNqV7-#5&lz+&!;; zhkXa-{;gRrKvy|r9n<1GDh;yOMS67ajPVcYcO%Nh?`zqI05%VKF1$JOuj_QL!4unfYdjCVT1?bJ=Uo+kZy z2$yz<j^*B{|}bQ6wpf$68C)rQY6l9v+H{PA=_oKn_73WSIe^XwM zQT)z6{{=O_Q|+(k+xv;`lzv)nYkERIwSlw|MVa>n?P2bHPOq#h)tC%p{nu0-AWngS z!|w{rk@UFD@`vv53KbT4Gd|Pg+*;9{6<&?sFpk#c*JnpLM&j5*omVk#mPhg?PhhOC z^!<8#R=NJ6EnD)`*a|!>I%~EY`yRXQWL&|%%^rXJIBVSoC+qwa8*~G(cZ~fgd7tS> zAF>+t-&Hy;>OL%;i$c=5bqCTpB_y5Ot#nqRT$e%CtQfG%J1bqv98C)=QID+8i_N;% zDUgLLT>4?Y^e?T)Q8EQ}i?R1jbZ4TSPC z4^EOg@%^MMny+v^R_UeIZQvN4>w-$oU{2rP)jHY)bVhccAbm+c)Envws$l1XYqxCC zV=B{sFb&T49rq&CRqZ;;PRhzK{t>!vLw~`#r5vKXB(7=B$_+(bl##ej35kPx-!P$z zIK-7Q-Ns|{%w3#K_{n&c`?)S-x~Ti*cvC070lEok=cV)mtQ~La+&4_nW5;@z_@DO9 zJo*D(jdy>*Nh>n|>jfC`?GKoejquNce;@c~z~9sV!haw5_lH0GP?ZMy0=pl68~BP` z5Scs&VdoGB&}%8)Y;%>TaWkJB<7V2@w^9Dz4_T{t1pN-%m+rmLzMG)4kbawa{{5H_ zK9zcsy^4|!$8j>oAa5`YuJcNIJ;%Y1ZHw}W-w^22=*O|Q&=vbWZ@h>x5ow!ac&4`u zWB6bi*P3)C4HXV;5)8*Sx9c!if5g2H=E1_Z8xPiXV$(`+UL-ayZZP{`WN-H>`DXh& z+rPJ)wnkYFwk6-&i~IS=U*bvog_W1{3A@Zc35nNLnNO24PSI-uC(HMDRA!+&@~4b1 zlq}xPc7;xJhw7$0Bwkl_Qz>;}>ZVM-cd%}TZiODUwQj<~1!*f7M(x8;w5a7)S2P)n zC-i6YTrkXkGwn@<7^k+aTwhvq^*f~%n3vaFux_V{3)c0niLFaJ1u}a1%Jo0~?As5g zMQ>fdY1w^!dQ}v^XmiJJ3E7p`e0n$*VXHIy}`F%Lhc~!#^wJ`bI!t# z&hiwtpS)M030)=C&_si@B{0 zZbwTrvBYg{izTA%NYPDCIx3Hr_J(+@soq@_Z*O${99^b@Xezo2;iQDmb9J=FXc9qH zFa>XpHP^-xd2YOAVYDe;Z$f2Eo-}rNo}1p`Xn1C{t_~%0fk(8(3){M=C6@3q1%h~p zM$~QSXsILCj?)%zi`BcT(Dm^;H=0<`(Hv_*f#VGgu|yJSDO~d0y4IFtdm@S|sCU~n zf++Jy7BN=WPES^h%A~6_o1;rix_+`D(H$VcB;4kXWV>67DsPOrO{iSAEt-fnvn7au zUkcTTD4W!guH)8(6+XR#SxT{0gghU0mSX`b2H1B>!>bxU^KDK{;RJMBqD^irk!VFb zl12oLNK0%H>$N_vC4>=`=b(^)fwz|#HmL+biDMkWNEgx?IW+1y0VhQ3_U0zh4 z=eER>j2KNMqDzv_f+pnJFFVK4RIZ2#T&B3BwWHl#sQr_%cH|QX zZP1=r5^q^R zniEt&e2Ok=o0Kf5KB}TPQdUyRxQR$@N4%*XJeyaSh@pl$i^#vy3Pp*88r8dH}Z z!n(+9tt#uJ79OhEkYp!({5DO*j_-&kV)c$QH@yR0s+1R540DYrVZpYJmqJS7XL_`r zL_5b+Vwpz$AP?SYD$gR7+n|xF+u!GgW5@W_zKTT;mE7)kboox=7xmP!u2Wi9n9Y}yG=VF za*D97aSn;IU~6$~xiT#2CSpyBy?s(yq&k*%tHevlY+l(^fegt&ek=hkKnx`K_VGbY zqG8)(t^&EW_&Uxn$iir(uC=3uEbOqV60J=@BwE)POCkbjzX6oglDV*z{g~;2+ze(s z++7%ty5vjMKef0`nObONu%FIU`3$%4kY;l=oiPdI+0mkMgAk0l$#$SgK?Z+CG?~ec z+GJfK-UfQW7+^t*>gG)M4oOwtQHNeeQx@Xr?1hDN?PsJXDN>zeJ7g%{L0oI&Ev;<` zk*teFnq!Ft3`2J-Ixq@Qx>dTyUEA8)6j`YK>4vuoqx?}9NRPiH%bbbM+!gHAOOV}~%(jkAl5qNfLUVRY2d)DBez+P)!*-$JLL zsHn2Is>+#GQe0XDf1egKr=!taqL}DV0}3|-(!31<-HZlQeWjx3X6P}CtH&$|p_w|~ zQXgBaCRy7jFs!`j{BT3Q#mjrf5{Rhp<1ryFKde3+NhsscAS(6}o?w5Hdn#n0RxW?v^QjL)$mr03zdXb{pH5?AZYV zZEb0YHYH==b&U9sHb)=M=cM}VfBno6*N7~QFB@#OxA9Ya>4jxcwMBKstPqksR zHr50NT?kgFk2P=#5#H7+oR2O=n#fC^ZoEFINd?z^km>=#^2V^f)oKPiNlTV_w5Wn3 zhDuMkQ~Dy+r}$GoCELRC)ZzScXi+=Z%FoEos_KI3Vla#+K0Eg*UO&l+DstqDb-oaj zF3czLAhKhLg)#3tGBXl`u!y3osRcnrq8*EE7^*)C5g&=RwSnWAkoBypOLK0Ir8zg8 z0d2JP6wOa_*1%ZGV;7|Qe^dp(S!qu7^Qr!)ACcx<4C4+LKbz`5uOiL47r#%QPWA6o zp5`pZ@Ajus{o6{@ocyvhXWl~r|HFX~ey2Q`>c476n)BjeY0mOLr20QwoaRiKj`VL& z^{+2Xa~>*6b2i_S>VJAcn$tct%{lL)RQ~}}kS~5q1L5l@BmAMj_2$&@P5EigQ~14j zW2*n0iD}M^yfkOP^{M_tCm<|-%dboIe{3A;XFTGpO7)*JCe5iC3+?>Xss8m@z%e_` zdG;5n{+rX`H!RJ$bwR5CVrckl_D4G&nCib`pEPG3eta_Ui!{Yr7PL1y2OsP>nOIoG z-acn8ej`RW&S1QudvpMD0CM2vV6Tpoj^E^b$H~WUGBy+9<>2MyPnwJ$-1tqxZ!mrb z!T%Wimg091K9<69DBJ)!2jfpBek1T3jbA!`lMy)|i5vv?G59UTFArfy;4%RE%Qdik5>fz0 zJeeQqkWYX8Quz^2!hoiFY*@aeNdm>Qi+-tiQw)ss%g2TlNjwe0f~fz@ka!`mQh`m< z8A?3XS%rZaP)eHB0yDTsJZ3RRVBiBjngev3%oEt)&afH-BmeQ~qhG4*^#*o~@xywc zdWdJEfstSN^wuvGuSwE0iSA^<+9aNd*vo>o1J)DYd0>3zK{p?|7n^u29>3X^@+=jY zp-&rjionqD!FZ<&34{W0u24;p0DX{-FZ~kBBzwd&_C^y2MMF}j?L2EROD?U*u z;piAOY82(94dZve@-}Ei<0q&E>tvo1r7oUyDlV1u#1aT74mIW~Z1nYDExmky#*Egdo z((C!(^*!ipCT>2EHHNa!O;64TV#KW>p1=b2qG*DvL-^)$3zfleI%?TV`Dy5p#v_PB zeSBe@yA#~nB`%g+sg0&0YM9b#x3;Lo45*&92F=Zgw=@h73j!T8_8wrJ9P9b5(781< zLAM=}lpT)Ab{Q~;7t0jD!%j=`wEevF8Fw*$Tvx*RS|_MKYiMn%kHnjsWA$+?;6$jT z=9;OkuC!>x*W2kuR!x&bN@mV1E-Ha;&2j2mv1y?t$bdY8# zB9p<@npsDSx3XcBimeGJo`ilBgs;*|qKTPqvL#CF@P>*u+C&&vuxhbR5v^-YHsU*q zu7+xeau>DXzG1dR1E0zW?X+$GDv!sbIc29~a) zrNqlMuu%PvfrZY83@mg$Bx#1thYT!qJ|yuBo=OlH_Y8>_0xK0*nEuDWLgz{XGXpt0 zzc~U6)Bgwz?as%Z57ii$nG&Sxe+&$22lb@re+*3KrM*oU(m<1>X%gMZg0)FJ6EQ{q z16Y^(9}_QB|06I%pZ5IZ6oDD~v|*{1s10N5m=c1 zM_{P4V45oghK2~jRtgOD8HB9@j8CZk$HbF4oeF6FDE&`BZrO7;kxe2ecSk(t&8I)o zrCa2r4GYRi!sH3cNgEcFlQwLS$uCs@Be3n1TT(uey&}_ytCTNP|6}TOd*xk_2W>go zXwnouvtg9Wq|5);@!!!8qCj6ASmL7ul^A0@ld|ClsG^*;v2bvHh?%)Y_E zL{`|cusazO{MTga`oGCz zY*Na#;B#Plt(%T*+(#YgI0vTB!C&Ypu(9L7^rUuUL-T?8{_Yv;AOkkYVW&!S+hhh5 z9YqJ`$7Vyn*|LdURoEWM;|17cTaVqw*yx81CwQ!|?XAaQ_Zgf%ey61EfPT2SHJ$S0PC_dO zrmH>+%V(8UqX2lU`aQOz<+zl>13wFFnu>}t#G4r@cE*gFkexdwm%p5G6SH#0jTt*G zN5M+Vr;jOivPb3Qj2S<1Tvkq2Zf@?x@ndtcCV24dtYYS$H7aLp&X|cgIl0*rv&N1Y zhr}j~hXJsek6e>39`6Ygv&K)z zW+lvwj4|->W0~fJ31h~NpD->rdu-0wtXvJRI-;_gX=IPe9>ciV<0oWI95*g|%(w|- zC!%aKBMdQy^_ZPACVT9-@ngnLKwhZO+*}Wy&0-MGtO?o3JvTc$cl@}V3FF4(>2au zF_ou4N>G9|M>|EBHxFYh2#0wskRiac-;lOMbO8dkbtD@znxINkYF^8~wN1P|yZ3#N+EZHg_%?rg7YELH~2fuLw!eFfwV_qb|#ggv*(xRO_Hv>hp7 zwrEm_o>sAqmd z;tklJt&V$eo3l=zB+wZd6Fp&0xI2hNSHv{njjIEXYiKj`jlRDh@dzmhMnBrStnI} zPBV6U#<6+a)j;-Z*y0P3LN8Qs%@7`B@oJI{?D3zbBctm_-th+bs5ciO&^Arlhi~np z{SX9U>DK#$WpDWqn3`Qgl9SGS{Jn7@KQb4By0$xX$^T# zhCoHtV{cP{P8iVTn2qyWA7=ImD-oqf5bX(OphHH~Q8O(6VYo0vH+_*1e&AA9Xgzjq}{WNE2~P%%OW#N%E~KMpn!kD zVV-~4tkP1QPD{LLyY`K8el;4ubo^5GjAF0oLGYsvl2cPu-wy2w%{fDB0l>QIsl(qM z#+?fo$Jb$dLZ=v*=(=pZf02QSuFHna0F3EV7V@!m`$1f6SgDB@wk9CBh+b*{(v>m@ zE~1yRVHGCLur+~dQ-(18*&KnLtmhxQnfzE+^8^;6Tbp;PuFnc|Yz%A1s}Wq_&&Sqh z)f*V;fR7DpG%(T!9~;(WU}0+l#FKRtrXwSsgaJ+U^fzzf+$L$73H2@(tlhxE)&y!! z(`lM$DRb?41{O9CUo2^ctO?99@j~@y0yBwHhR9PYu#h!@3V{vQp*45t_F8IiA>Z*4 z{Sxct6ayna^0C(hPB$>}DWBf@rD&kYj zRbXg{AnbO5p&^2>y8+`9wkB||i6?qK70~?Qnm~?;8zw_VHi?|1j-Gk*5!obi(uM`) zBw_Ld^Rr<=IcdYHfhY40lWCL(3bvhcOUfs*S7aJ-mGX(~wP7`;PT9ZlvE^31fsNLn z6j+c4?Rck~c*18kjOF`2$h-fROcQyh+B6{3Y*|LH~+8m-*>@dkw|GtS+UI7rj?X>Zly#n=1eUT5qD`p zmC-9lB9#SYMddRY({meeBvOQZbCPCt$;?zYPOQ$XAawc9`#KvtdO9oc9=Wima|7P5 z<9$2cEAV~{@2o{Vofq+5h4(9Zkik{!(mQ|H71gC0ojlf#?pTYjtkbFy!) z)|`9R<`Q^ze38=_U(m>~$>Te)P=WO8>N=nXfP#^_g?a~@FtNK2ZtTH};$4d$_EoBV zd~iCkwj_V?ChS9G$+$m~CBuF_XeXf;X>3)x{T7_REQrLNsrcaylT;naY{2pDxoacP z_-Jp2@!SaGxmgAlt_6Rf^N>&M+aXQRgbnoyf|2c~>)j8-7_5T@RQdDGWSypDBTN!N zhi%?8&)^&V;I7t@YU?HR9y}Dz)5ywv70gj6!zh0G2#WNE&^{LrL&M$OK1Jr8f#3IO zui_2A&?6Dz&ByK!R|7^K3DZm5ZeTLrwsjA88<>o@ZP>klv9BJ*%<$N{hafICY>kN* zrk4<0WNd8f9t0N|8{4plOqyYOiN{PC!p87V3G8G&ev*`s7g^cfC6qp&W+3{Wh zjP(*WPJi9N!p7zFF`z+AJ9~ft$QGzgaOS?u#J*tzJ~2$!m#Wg z8CaNJ;uDEy!pqp0pPx&-5ZESxh3F+V8(5fL!nstJ0qQ&T*!lGmScqPtkH7}&c=kBG zzk!A6B?cH6ro-y7^%4UOOy*0rUSc0f(?c2sUj`9$`LOe3yRK9RjPY)9o?kOysf7vwV=_I;6e|1Fs&@{Y6?lxa3B zC`W907nCFRoIWT=Y*ppA`Cs$q|8@TRE_h7(R(}rX&)jW4&Ts8+&MZ^D&1pB^ zPfoqr^HF^Q&JUwc!dc(yM4bQ4*}WZK&+=2?nC<)DoUz;Cd4kUV)>;8SJhcrrT+fVC z;Fuw&eAlXZGybOdo0&6xZGV|j+kRRH;-^_3tL<12QTF)Mh5_uYd6y$q>_uDE*E!{4 zJ*V8bQTr9a?_%S3@rT;48h+;)zj^=Ae)aHMW&Dah(SD2JcdPMR`I+`R4}SL=zcpWI zzZLL%%J{9rg>HOS!|z4oxA7b8cQ5=lN_su?X!|MneIn`g(tfYQZn6M6-){KP zZNqnm_G5Qg*4h*Q_QH>D8$J?WBQXmfjelAA(QU(JkDIm?jCxbn{31N~i~XC*HeY?7 zWf(VqN=FN~mepfUoIeF8iD@S?wz!>BMDEDFbl8kM)RC8wkBf> zk!LKBXOCO;iGG}shKWu;sM$9JW5rF}{E0LDwEAtwrIO9xK%E|Edv+cF*bWrOQKzkW zsN6CmfJ9(-zBYjker~cAht3V3U7RyH`{ z<=HC_8eXoLQG)Qw;;Oc}%Z8 z(F$e*P2P42Z|FrGrO(73Kv?XD)ng?_v@D<@<{IuVq~(9u99AaiAr(Bc@@i+R+8QTv zrJtKQ8M)?>B0Ur9+nI)4UjbY4>Q)A2QUZ50NadE8`ZMy(JE|}6X(e-J7U#K@F;b5* z)o%{&BO}w!o*{yT@kDzEOrKkA2-EzH@!<$NO>AB(V;%Lex+W|Y=$j(ApPANYM-g|Q z54~hnbHeI98kdoMdN4Lg8$8{5rnZHzZ3~Oh0bP>fIn@;fl{1I1ZbR}=yn(v!+9tR% zFaq8_qEJ~Rj@QN8VcowL8#S?o7F;Bam?=Gj%PynCORH4BA|lg24c_kBPa& z!b^plOs9F`PofweR&^mki8boCb67}LMa-FXt!+!tu=TNRiwDw!5#DZMh2#~Qx@C%j zHkKpFCCP}c3as~-Z$+ahK+2w1kNC0gT^Z9>X46@no-9z_BneZuUKCyFMwV#Vp!q;; zY8F#1x=-ikRN4F*RXLGZ+)UdzHZNSz*9bV(+{cP->kD`V1K4{}YX{6(n2qUfv$|YD z+2Y`qR|q}c-GN>q3L7#}7tDfN30mqAF9XInhL3WmqRA+iLI0ziQf$0c2ION2cTu9X zWdSg0>Tm~7;tKU#Wn_W;^Qp7&9xU9&b3_NVs%nHH^%i)1%YDx8+@=Eo_ zT4w~;q$@Xesm?Yq&riXp`EWYDF#IU2EQbYj$0;kG9^p6NOfY{|+2O;p01EBN2)MUyar9?PC2-dvMsGPy!6`Y48R` zQvcJFQ;A*KViQ2J>$NHl9r*R?V zmXRJG?#@-69xd%CKXjAq_p#1L`#UZX8;&nOJl*U}`7SIdElrPOjT#lh;PgvRYFA%X zKxN7Yej{DN4#bb=UFIe5!x(lR?DNlSzz?&tc~Si4;fFx!b;zGA3Blgb0(=oK9pmR= z=?h%-A2K>a51tVM_G}S?flAp;f~C{5$0TX1);$S=e3tUUt$WvV+sKXoz!ceU> zu>{}wdQy{_Z0$(Y#U?v)#(>9{m?t;-^WE0k23e?z?Tw`xc+(KY1tv6ea*=bA_Q49`oQzd$FhE5{q`pdPI7yy-~^ zW)BA$NVjzGLMjJhoFhGV*wA5+`t`9UbkC!cXf;j+l~pC&CRC4;nW$n_8%SThlel|D z+)CCt&QJwVAJUT`H~;zs#il$oCGjw^GFNbzxW>bZ?W#0Ye`iNW8F}3Uu7Z;G)y+Z~ z9&2K7Opx&aH_!>H+&X%$|^jrsx97f+Pee(@MgoKVGSHWsca$ z+#8hc&AWB0`15X=hs%BjHyyG={rA&U$4zK<&7vS71yekI4k$H@b$&+IiFaP6u14*l z_&(VA{^&0Dc#yT~FWLm}9>%>Cur#>C_D+0aV6rA??~nN0z+_F(hHV0j>8pV{-uC{8 zATBm+vxyhBcS3NH^}7K`SIQu`$oicPbMDr-gzcT^1sKa7ws)eBz)sfdpu3s;7{0&2 zLiSD!5SUq;w&M*1j5v?LkB`0Xw~v91)}R#FAOlMefw=}2ws(SfGQY6B6U37+ps5~v zU&T;KGhf5(y%QM*7Pfa{q{K66s=FEc9y_UpF!Apfbj|2JF(ov>uT>rP;S{WRAiIL$=#6$ z^X4P6N#vvr3(85to2hFlv`3hk-Z|*h^v%OWUmd|QF#~S zL0e8%n069AvtcaX_d(wMw`7{gJGOUFrrEHd9I<6#P>%FrqnaluM{HP7j@YoE9I;_R zIby?ta>RxO<$(@d(zlwX)o1x(;c1lm?@r~$d{?RA`Z?2LwQlw} zcT86HcqeOYURG{i4y^NF9#6v-N?$jZ>uu21%y;Kf&5(p$4rsuPXI?+o&1@X$W@a|V zn%cyWw|Xblb%<2;Dv&Xd!SG5ulM^h0=v1_a(t_YZMy)|oW|ftac@*@<%vNig)pTA*Q-8VA7uDM6QOQJ|)<|Qq%`7#M zFA%rbis3tS;OaTU?al(Yk z773k1m8eIhaeQ5!7aJNW>LaiKbwo$>xL9FIK-k>!!lZ#8JGUBAOs+ruK}z6okP~glfiJED3R&Wl9-Fj8c=;P3Q8f= zi4jCc$B0VmUKGJz#ZQUUiYu9uw35#?B2Y@S7Pi+FuN}D!6={`1m7_dg>-JKrGIg=P z33oU)5g&wwt}HdA>zXPuB%iubK*eGkbc!f#&~>z~3uEsmF!vF_z&f;#SXSZHjcPeLmCL79 zRFODQM|CuW4@vBypd6H09>lC8BLakhqZkiy4U;)wLkDciAD#T>F*s+I(P4@>pr~h_ zUcuq^3IMkjP|$O8*)CD%P`X2qD`h=(m6;9bQ20JlznPYj-+Zf`ANq|AC{9ajU27B8 z3Zw`K!n+%MTUkm*YcqYBMg5!^#ieRpt|Enf^ZKbeV#aWkl}CKNEF^}M$BQGBiW?)q zJSqt>{0IKwrJA$41L)hjBx(R569 zXIa2L+%)8Y$Z(N<@184oi~N^Mh^&^*}!`aGL;D^^qAb}#`T4I^h@gU z;~)fErJ6gqivyb*Vv9jrNp0{lb+1<*S`GY-g$TA+9agij@`Ag2*+-dO4jpY6zM$-N ztqGdVY+5o{wb3-tILB~U*M>zj$1#L#dztd3hzb7j`flg1FeQTTQ&M zH4DK-^k(+Dgy152GaGihNi%HC;%-xhF#X=W0y|mjA4M0(x>_T!5Z&KH0y8>cJKke} zv0g^7Qt;UNwx zwhnKzfrYJEIM3-igQ{FT_L@a60~1}Uy=KwJz{2cM^_O@iqP=D@0I;6ODQwMRpotf@ zX0eaJ41Kbl$HJpd7JbL3v=qf;?}-&iad%*o<&yP&e9U@EF!eWgTVn8VA;k1S)2R#%pnMyiUBm{nZHT7VvHPIYk^ z?LwoHrj-|B79~^RTV1RR4wu;ouwMXY~PRIFbbNd8g|N*jWW}&RWk~T z%8z8d>vmSPjkYxHB-kQA$;^tpnbp|wkktE#j*cP83f`QyMq)lpRuRVIWiKryD5c_~GzkE&4RD6FV(X3i?D zE>Wh}N~SSxQTZ%XWkgp)0g)1V0Y-qU@KcY1iM7HRD1ITa#jmWO@~B7!XdV@)YFFyL zqOxH6%z`SkLuGLRqA>Bo@*-9L5~iRUL_KvDuRC=>&&8Fq(W-{>Q<{^l2*ou^SyY0; zSE9g?BW8g>P}E9QC%(Uzs`f7?cF=jFWzlYkIHS0#gm_gIOe^-P#F+{-4=*ZKb)or$ z++Ow>94r&Bg&SVzK?^Z+Ggg<87az*;2vt+1L4j!?jOKiWZZkhJ;%6z z2zQfl?*sQzLKPGpHVc|; zBa($1!N=9b;5_pt*MQzgEXp7JT|Gm4=6t{ zi_uBq5+O(_h=Gz)mPd)=*$@z(T;x4TNTalPdO_h)f*0$q3UVEF3YiCCfn|ish|QzA zn~Z3YNP&q&j0`~1I#K3qq^jy)t5~(=zyc?&m}fDBAdO6_H8gyq|EZpVjsViScurw) z1*Im#RYAOa&F^&w88>P2b>pT? z*l66837;D`bL{_)&X+Plc$qRG!}wDsj5Kb_gnZ+sOsFt!%7hx@rc7uzZpwtSjGHoH zxpD6W_e$fYOjvE)lnHkmH)X;@#!Z>cC)4CAIu$Te=t zgc-(7nJ~w=DHGb@W_<@ATibJ$|JZwCC55tor>{0TCg66rEhh}8#&1ZMzDec<@ z1SPe~6)dNhW1YTi4%>91Z8(aB(xAok%`f@@HQNq#%Kb5lNb-P#K9Gu_W;M^OEvXaR z%8n~{{GdIgmGp@mG)i+DHtDcc)Hz&}9=6{!wyQ&~BsXm}AX6oc^+qhb^Rz7S176Cq zMy5KLD`)tUJR-{~V30cAxrZ{S^YM#dLBq~RQf~0@W?4OALnQ1z!Tv3&Pn8)Lq0NCJ zlaIdbP9MGECK4RD!_pe+Tmzaru=57E2uN868L1LQD5(*~O6tS?U;<4qego!7nOb5C zc;A+t2QrSMfGP1qV#0(DSJSZ^yW?qa--XFqt^Ib1e@OnggbWAbuq#Uvpe+Tdr)?~Q zxf2L?H>uKM{gNxtrmnX!4HygtuXIWwyd6Ty0Sd=jZ!-_>JT$l%Pu~DNntnj+S6`c^A7!%aP7?2&M ztMCx0(L|g*PfF-u{V5|NkTZViJP9N8P1($(x}oe;oROU0v3kjAFYqYEe?VTSVS?VL z<6^XsP<%nWmF)ESS%ph>G+;kZx8Z#G8B#9FE>KM;F=WUiwJc%v<4c=h|L5=H@a$_) z%GhHcMJcKrxD{_fd!wP+)`Tgp&>l%I5JGo9w0Z+E?+sS`5~jAT%7bzOotC8S{7V-{ChBd{XnbS zFO-DUqpq#1`CFM{i_uE}%WU6-PDsAqUL}pCE4-bjtYRFT&76nBB)|zBW<2DhsEiAt zY#2qbXZLUO^$MX6>8mzF*04{5GJ$+Ocm_`R*EK4uAJGJDKfw4pHYahP5_gcn`VJbP z5!+R3*&%pFYPeO0Z9>C5l4cDz4|SU!Qd5CKlL@5bhNS@`cykkvBlHG5uO@sV)I&YW5;eSmEVL6w`PI-?Z2;pY^gu+y zrFJ2Ao1?O+9<~f%_ysJe(nl~q9P?58{n!@*Q{b2aPpt;WD;u`e`4kDFZpRjP6JK|H zNLRJ#NX3${62RdzJ>$xL2{PfHP0j@)83*c}fCmmIdl-XhQ5WO9mL#riP}}%An@I4> z5cTDm35JTZW1F3ZpgmmrsN|_%Pa$_&+fj{e2G)rgryJ8qx~{PGtsUKaW`k;ET$!7R z3QP{iSci&mxx2$yi9vxo)XkP0y%~#5*!v5+448=MYaZMhU$()xloG?>jA6{*vI*f& z)5xH12CES}DBELgZJ7`uNR%~c_JG5KTZ~mU>OxWA*JWC%`6x34su=_RLN(-Cfb8`2 zILvfO$&LjJ(DsH{g+XLG9qmaqVdy*{%n;>(#p{O-=UpY8 z$C)uSb_z>^r9-Nb(Vb4=WN@NRDqw7fFu^g%u#92W)EHLLpngy%W>C%2u&m=w@#bz@ zyznxObglXtHXqauyGg2!JwBDpIruWxTGYOJ&Vhgr!iio&qIAMBxnz{8;Zd}og&Uc% zQJ3AilZ-XTbt6esBRBm-JEet$umu-8U135+=`-}K0n%Q5ZEtutV+?sxjTfc6@N9xe zvnlCGF&%FJ_87v|W1p}dp?Av9AFE;1PvwOl-j|zR60B5gcW)o&;7=I5Q%B_0)UbHN zFh6ZK7_h5wTAzhRRhRUtX0h@Ok;$p~_+dRFP@=N6C6gLX7{QFTU}S|+FyoOvtwPIs8D@oa8>ZZVcdAAl4>qSfzqMun9?GSX93pxB7 z37NJ8@{MvcllK+1WvbArJmKTksr@y^s2rFt<(Bu3Hfjp2e!p``!kWad=Tu>0YAaYq zD}4pR^cl5BV~WVyPs_)fb*jK#y;(6-5_UYnnd2jmcCB=MM%MUQVHCd_EpKXGe%pez zhPeP5LDK1Jc`x3ut%bC3(qaA0`AJZ$FBI9ueES-_?>J%2OD@vBX2lUcL)Zi!nbfTJr=xKo(>x=d^O zq-0?VUmBn_8n97thUg6oW+#b1PWNP}iLV9?I`xrkdp$MLBQEKdgH6&YYqW<&U#5XO zhcZ6upqj{Z8)*xU(Skpo@zC-S0o(XYgzTLfG`}+FR^wur3jH%?zEBn$1%w)TFoKdF zHOdIwRsxbUwNbekBT4eiOGW2^2J)5P==72ukhTgV3_Cf?lW}2Z+%4X~X{1EFwgZZ2 z%@Z|q=hh%S#>J)Y0y9L68rG8-SO@e{t(iZ+2KnQR7UL<$c13ld4T-XRcKe|Z^Ku8s zsZoLKbcHfJoI=9*I1Wct#q)mfZo{)o{tO)X`ybsSL0rSbc8knb;}9V{_Bq2qeF-R~ z;)KS%VyiA%f?^2c)p9?rmBJi4&y1h+D2lYzqQ>;HKIKK>0qlgDS15k+=#2+^A;A>I zdx6zitoC@FqGNUT4TCI4Y$@7h(G4X-Fc&un!d9nR4YTOhXFWA0&}=eHkB`wcbv*{! zT1YDo9aPfv<#4F%4y22=@)}$n*v2@Bh9N=dp8qg<0B4M8%<)r-SIlvfs=mE&aLB+K zU4TkP!f}-g?ZZR&Xbh~BDq#v?&-(=-2OxhCTPC`CGFtC0j7Kq~NyM6>i(~bf8grg; z)%GgAeAR&5!q@B6Fb^?k_+eAVi>9#plw;?%l^m_Ky&-^ASTv&2P(q>a<)gz{r)q0x zGP8#DA+$~pmfF-A{8ROuIthOE`CBRi+y4 zQ{x^NTe7GXRt=1Z9a5vUZiZpJoOJLMn8;HN@-?gIUqq9Y=Vq}vvQy-z$;n7#!3=e@ z0A3u?4lyZWigzp+Tco2YLP%PE8b$|Wl$cnU_gGb}15!20d9xZg4^s?2%&UP#jh+^j zSYS~fHpH8}6s+~BZtb2LbbUQdFm#s?-7QXH)pK)1=eF!JrqY~g!ZSyL5x>jOc}lN} zZdsqq1(Vj((nUAn1tmw1LC{v{P-%k}JkOu%+p#o-^P$vrLrLAbparvNV>BMxloVSR zZXw09I{b>6jHig=oQA~Hq<8||z664S4_e?j)Qm023y|t{jVXE*Be66eXsXxi{g53# zkE#Kl(srrIv1zPf^oFmJakE-HsyEEx4KMw4G^4W0^*l{4+i@=djG_9QBy=!VABx2T zw@X}=IVW44+qWwo*4kxH#G(8ihBYVFki%;7WDrpk!;yB6tr64;%bh$rcmhX}p`p+R ziWx(em#sdLp&8$V^<$v@V{IG~5eV36*laM{fvLrmyUlA=Upk$PiXXotv7?k~~ zGG2|3DPcG=;V>EKA~_!~U(oxtXWED1I@3)`_50~~%6L7)_CD2k6`DdLEY(^wg2XWZ zAm1cMD>_VKg)j<}xQYgp7=`-UU!2m@6xn8=_a-cYNoyql$Ok-J58gKFaIA|ehJ!!_ z{$`}!g>oEaP>NAHhJr-5$&^aj}aI3$|D3lcH1>ba)um02QY_uFMdlZ*Ed^ogKtYTbT!P*tO9$ zZYC7aVzxwv*(yAQEYWLebIHo|v+I#^yd}JHm|7!U9dc? zPrF^F=uAgX5jA!de0`)@-jO8`?n-EH^`_-!SmNi4WgwDDrbpae=eMl^!;0#c(~Ko+ z=4;s*URw^DL6)k?d}@_e4|%=yRn6PcKz(blB4gDy-aQ#ux#X25&|Tt9*0A!=dvw|(x+7OK6NS{k ztuB~*QQShUt+&o%)P=p*G_F3G^;92Q9EQJYRJ~ImHD5DUNQq-GP&+bFJ;_)!0o@Y} zcIkPm67QDW@;W0uAN2WLt&bxCvzXLXIL{xt6`1V9{YhpYCd-NCF<3*B?vAB56Oxpk z)Mj}l=s1Kn=B6-$#t;ZeP??6zy~gpPB)*Hpgkjhj*P|IIeDX$@Sy;gLFR! z*kXcg#Jw?QOpf|Qn&=|+ZUQZ+h?yGhI{9>F3`dJu^{5&qQ{6n{)uHdlLU?_VUS3?t zOV0FVbVx^~Id{HF(~2gQiGtI58f^PWBriD&2doU5@ur^yaa1}VT?&>H2kG-1=2(K8cyiR;k{itNc#MQzlBARtO4<1#(J0j;V86!()Ck{I)8OIjS$ zd$Vei@b>KQAyVupRFAs#se#wFLE$e*qdeiX&JuyAQRy{&E9$LDxz9+Uk=ixZ$FY>c zoj$&1Q0-<>CB$T7VZ60N_QmL-sfWQH%Jf@3^?Mj(>S8g8Htz^V<2o05R;5enHGOW(W#X|fZ%hMO5FA2z zIQUsZw0W7t5=vH?$&oITAY}z&d1cvo*rZ`@Z45PU_3>)%(m8iSlR}YZ_h3>@Z4g>S zkdk%Q-YVH;sORn@)oooO_`v&SU}58w8pBEbbOrUGzt`TV!O&hIkd7DLziCRU9y(#O zHPR>?Lc%VffnVq%)L{68SfbU7qi8uq%cyokZexEcg=ATNmDF-*W08OLPEDnwlc{wl9<$mM*MhacvMpL&=jsu%I!&j$r2i!`9tTaTw(Ie1BVw58)8D;4fLv0vLZ&lql zPHDv(mbfEE_v>fIpqO{@67GH{BHg~IDBN{eKX**-{6nxN(^nni>+AHzS-`Q8_Pz+> z^wpb~)mL9qi}*7x;EZ>Y>0D95WTgF&&UvXY7^r#yI_oLC_M|*im4{;_zH$L%$jK?s z!RmH|?gXh~-Xo38IgmcXIBK!wUShdVfLjJ9d16EsX-uDaL}8(uHEQgr@y3w8WkKK7 z7WBuB>xVY-+9BnRKGG1ZL}T|QBqsOdD}&x6-CF+=Q%nEB%~rbE4opuT$U^wVH2O#! z0tQvG*E3tlbx7H*AoF#lZq}RGv2g_r4i?a+rLmtu1eM|RdSoQ)!m1Z!>V9xFGh%&? z7%>8pi{)9wKO!-8k&uQua~;7#LJHoVj*Yo0TiJe@ggEtR&Na4b&Hhq7^f3e-62}aU zbfgeCC<Vz0cLD_0Mubdu<*)$e{kH}tC zB|cmY+_0SK^?(W3MjW1z3I6fMykSHz*eTnxb{FNG8!+0E7=<4n z!sH3!V#79?cwu&P1sAd1H~u+FTc5{g*aR!>| zp`8sr%#U~y1~k=U!v;v2`5Ly13Bz~;4Gd;b)nmi&A%ExhbHgCf64GiX5 z)zjO&37aBmnnZW9U_}zoM5L`1K8!a5u%38_+089A@xtupRtU_{r|=2WtrnP}Pa8Hz zU?5QDZ^PyZ31Yzw0LwyEeivi;k zW;b`Ki8oS(Nd0rr$&;L*+^RzmsUML|A}4nTjCu1B*(7q(h6Uv$Ve$m?vtdCwX~Vjc zX*(*nqYB*-p9xuGlWUG&u@@{nPEc;?0?Oh|JV8NyWlbMne?yz z${gqKO*l7Aoiw&>8QT@u715z@pW+!lb)10Fy+_g!5AgCDjJeie9JU5LzXs#DH5liu zflOHgxw!^%bq&V6YcO73gT7}C`nxsgf7f8nu?BOQHGAT>7k&frgRQwWurap=w&m8q zrrer+@q-PyHLxAGW)Oa`6}RR9{9qey4f6jza9NA|*CPM5$bT*JUyJe=YJ~ zi~QFj|Fy_}E%JW>`L9L(Yhh*Yk7-VS#P5&z{Sm+a3&FA#nY)@`MldoB8S*{byr;pT zz5ysInXTXjMMd75;i_g$Ro{H`yZ8w8$u~dwt}^dp^PW~#=s0D?Ivn0A9NsD%-YOj7 z3`Z-*)A1{<#v8xV@&bi`dLyQKBc^&Ao3lEMy0XcHXG*Y*SX4w?jIe7AQ;Nu5zh|4b z`0GSW7?p@|t3;H$LgQ}S3V-8PWiW1)kc4MK;$}i}u&t~dCU=1w-%N;aCc-xpP;f+` zMck5U_yP0x)DqaW z1-^KzOTRK<_aKsqpUY5#2TXPAvQD3JUBx3c@3r+gb@+vcU31*;&U@fD&po~V<4?2q z9MB^SM1v{Em#D_PyjE?>zIx>W9yNscL-Upgs1^>izPGe(`}S#b?>gc7eJ{;D^UW{+ z{oYkC-}~r8Gv1kVM&tF1r}T;L(<5U@?o*Hd{neknf6G@h&W>N+@5Y1w@Ws(D9(LCW zzc}{z{VMv6&D(Rtw|{;8$@{A^yfdnG2%D7+}C)1$yJx0d}qr`$9!J4*W@vyjyRxgx2w1O>Ek!v-2BY`_vhVm z)YXeGIP1b2PkrKdA70b{xy%R3K5bop%7AN}2eUS~y(-eDOlwX!TA-f4%=;ldwG%b8vJ zYV+f}eKq?1$1Z>W>~sEb^NmGwVl#R#9@e;KpY?rC%e^+^q$lV7_0SIw_~xr~U%B#+ zH(&9`j>D>to^b5mCw$uP+5LV$;-b7!-|qhRrZ;B(`KJ5M{msU!9zXw}r8_s(&nqtd zRsOP(>jpj0|HmIs-ZKB0rEgw&%RTqMdcmfvf7mkqWeMEzUk7-Z#?_5d!GFG>(`r$=PlfQ$m9XZo>Q~-h`F=xdghGHFWva|6|bH1 z;UDh)=_ejMNkJo%X_Ld$i^3U7#{$oC9eRb26$CFnabn_3M+V$JXzdi2iIei|O z_}Q`7&%HQydi7m9zcv23Yi2AzaqXzjesuqCKb!PM<41E(eDJVO_g$57>E34!yS;sV z@$=6gzG3mLnWr8wVwe4MXEZN4<{yu~`T2R*+;`Ek({B6S`nR8bd3xExlhQK=?tfID z#zPKi={NtXhgN^N*S?rDbElJMAG~0n%l5x9Jns0(Q+D0;fc(tX z#m5}}`170A-+cQOXRf;Rl2wm<`sIT)bB}23F=^~>)qBU%$G7cVxcs$i-v8|0wHJJQ z^;4^_{_3|+OswitGk4svy@&l^?}Lhy?Nc_q`uqo{-hbQEOiRE&u5?H(vP52OjI4+(Wm1e&(vbUHtxUestA{KPSH}YJOn;zjnQ4(q;W`&tKN`+PuF%)wnsb zy7!9gr;qt}{I^-Z+WaQ=Cw_kPA;)%|s<=@Xde)aNOu0Qm^-G2}%Z9VarBU@@FPuy*{ zU!MEhd;k5;)6ai-(4%`?I^+7EO!#`|KOcGVf@^1A&~W$o^}YY{i>hDO|7+4C{VtBJ zs{DMHhw`icQ2(=>mwT-n_tZ|`%=%UAk}n24JnWK_uPe!3nRe+BPe;G{bm;?!U%2Nr z>C5}BoczgxH5C;v)x4GUN9VlC4Yeso*C`=9N+ zX+=xMKA$g}@&{1e{O)ffj-5As*MFWkdfk=3$bI9y zn=7*3p7!_;Pl{gi^$*VbW={F2pWiWTZNH2D^mgq}{?hmAM-IOA%YzH&xAcGQgx>3K zyL4XR#&J2nJ>`|(oW1XshwG2ubKwUMt~g-ln~p!z9XtEuKhOQ+9j$5mzHwUo^P=lM zd12&?%O*efY3$5D4BGWr_mGQc&iKpbm3y}Ty2lBZKmGBBKOOnlxmAazuloIfho3rT zamK7A>vx}Y@!4-J82`eQ-T(T>-~3|pf#>{tkHZ%9yy33D9asG3*w1RG4ZPxlQD3de zY@d6>nn8DFzxUG%kLvgLr5~Jr%x9;?$NzZ$vRiVK*FO5v@U*KI6@2u?6|X$mbl7VVF*Yxg}m8bsX*(ZPf!%5d3?l?!>w5;g)fAl{4 z$RR)d^NR~Idn~=-x6`(Kbnv++48Gx+uVP2{+U2*ePC4s?dFSss?9Io2R=244L90KX zdfmq3FL2X8d-B@o?S0<))r8W9cW*m&!@=1P*R)>V@3EEpl^y=})ytk9KIqYz&Hw0s z|F4^8rQ`P%Yx^NxD4&&i+ezw&p9$dE6-yy(}t?SDyMdd81lzH6tW zs{eV)#m`Od`E2D0H~;wSJ2K`j`4knLKkE6PEPnRDQ_reu=<(EFZay<@*2leyzjari zb8`LYr@y)Jrk;!cK79H)2mSTDzO{26JMWe^cG~^JV+yVx`mdi2t?78;n%{h~^MUUt z3+qRWJLSEWJ0GgOc5L7E@7+4HBx9e`o@l!Ak@9N}*yX8rt}35As`d2yj{Rs&?)C9q z|G43UlD$SwJ!5&}0}uY-x}x2GvHsD+?;iX9<%cXf_KiQ?^YMU5|8ASN&_wJbf z=FjhbaL)mo3ueDH;rCZXlUc96{iizyF8F$U#WUl6d3EXWKl+uVK5{?{w>22X7J`L9m;=gY%xUAW(>&%Zck_Mtmp^3sW?KUZ;Q+MpLc zJ8jO1lSW*+X~~T*oOJuh1OENVEl0zGcJY*R*FAkr@3g}8=NCLSb=S9M^f=>JYd7pt zSa$6xJs&=OzoC(bF06kseb7&jie38f^N;+nq4JCs2feyrk4LMAU2*1{ea79;Hsenl zzqxU2--Z7ldv6?{<@Cq@U)O!#yLVTs)~uSk%gSO{HEm@wy3;UBtqh~7#bPoUCPQj6 z8cm>DxKpov^yxvJg_EO}G?Zt3I`Obuvo6{A z)>m(jUwYx%hbMJh8u8Ae$xr-iSMZXm$;qE~mOq&_?64ocn!9n{g+GoD>3HhlpB9}S zv3b`4PZVdzPHp-<=Y^@u?ufZ^&-*nyu3Hv&=k95nue$a>#~syq*VADOYeuCub>H^v z*#~-mefR9U&YAby$Wc3=EB!rX{;=mi8GTRb3Gr6T+soG+J8QlBy84f9{Wx*O;QO{8 zchkz*pA4Gu%KdraO?kJaFRUGP{k!Atdg<&%-t%_8TsnTdTao-peR_m|sGyy>At_u!LW`6@4P_NGCRpB9v7E~%e<^H+y$d_C);!6MI=_E<=(SHA z7yUxf@7Yruvu~?8a?ihGE?ai_=682biM#!}_ny9@bKP+<*H)K@e%duTWy$c3Pk(jB zVLxZ>e)!CeXU31X@T@0(*)=j^%c8h7C2!|i%_rP_>(TW)-B-`L=B5v}Pak|w;)i+H zzH;xNV`gu?&D+#7DsADIySBZ1u6NJbf0QoR`NGJt^A_Io=O+gZdlA!*MKzzNuWEkv zrA=2)*pP7GW9u4@nElh_Q!k!3a96>UuWz~bs8RnaIqTQ&x9x73z2MFnlXjGE@lLHv zSsuLjvX6cWxP9C1rFZQZJ|yRv=qKimeD9s7uA0AR`Uy4bcTQLz-;=*0?Vz?>&+hni z>Cr>4KegoW@QUu&ec^A+ynOp38$-Svw0d*E#ToB)e01yLq1%=Q9PT}}{PpD(bu(v& z@7_3R`<<)*_2p3+-v^v^*RI|3a&8$uW$qEt>z+FGy`QFEJ^!Vh2i9!psabCw)Vv~n z)aGjk{rX=tJ*$K+jPRKdlDv0 zSl=-6u_q>9HT#``J1$=O^)m%Setop$fKhK=d&P_;3*K!Rxb3NwxT$$tQg^i8{_9UO zFS|Q<+^W*gBNp{o2?^&;_+rzsuiiL$=Gmp=BNuiq|MHt_L_M+|*s>2)0s-a6)W zSH;%DGfr*Uc;@!+W=;!Vn{ijb%}2#k{hzs))_k$^-1#?7KXygLL8a>xdU}@59Qy06 z<2vrH$a_8R)YijOx4*k_N%&JU2L>FF@#vRVtbX(JuvKMN?xNZWI};YY`s^lq_L|8t zkA2f{dci4Q|9J7?18*;x{OeuU&KdQ~g70RWxovIBw5eNDTsvB}Wc+m9?XLunx$HsQ zUO4HYe_dIB$ep?Sruc&R%}o6FasH%Q$n`eJ}56)?M#TegB}c|6EaY@mV#&Z#9p-zj3$o$z@kRc-*#M zm%cE1S^bd%+jl-udEv_N3%{x^dnq$ya>kom3SUkb<{VJ>!3|HGx;*HG_b<6U?3_2p zy!U~%{>n2R3aPpE;y1=R-a6s^Rqj`=7+iMBdF!5Rs`HMVKeV*v!-o&JCMBrqlV2X0 zadqyZ7oX~WEjsk79ghcmojvY>3!dMQ`Q?~NZ(nr%o_Wt5dU@B>jvr?{eadxrPoMvJ zLHVAnNk>fU_~Ox`^Jhg&t^IQKx;Z{i>N{%+{_sr<{Ql$kyHB2b&xlq3o_lA+f?p2& z`ljhG%^6TSJOAdh-X8D%VP;H8>nC@NJTZB}UAH!NhaIu-+~?Q!{2m*5MRfJ&KizrE z3CmYMnDW`U!+*SF*CR)Nn>6A6^X3j(mGnz~#P)dC_p|OZ`-t)&tUyho3 zuJ4X@?|w0D+GVqzE&8M2==m!qJ+tSB8Ic{A-o5FR)_I3spWan*==Vow?>g%KKa*-w zR<4fwv2)y(&zD9YcEYE3KD2hxxrao4_xr=Qp0;4%5ifV&*m`_Sz=?0&am!h!=ZF5# zGXCD_X`F+g*%pAC$+z?``HSW?= z23WZFWz{DRviNrsaBs`v-%@CRjQe0p{`rqTFD!) zx<2lyseh=#YC3t4T7#=Wy`hk~mwSd7VgJcxc6oqfW&oyKmPpl(k$fv z2{MjOuyTmB3F3bLYeMYiUo+bI|EK?N`oQ!tIRPmG3HM8_it7egl}L3+4M=TBok*S) z1FT@ANTg__M5JV-Or&h20;D3O3ZyEedZb3AcBC$(pp^rxP^2iNIHY8xRHUX&1FROL zHlz-uE~FkLR|V=r3PTDBDEoPAax>jBU#mGKT~vdVu9c zib6`memZgOkdly6kkXJckg||+kd`CmBNZYQBb6YP zB9$Y3yI|K3dmq1(X3fHDspl=aBKy3H@C-rhq@yQInRsOMVe-lPi#l#n?8GCf#RqF9 z@Axjl62?WAeF#1VOtai>k3GO1=m>EgV29en?UBwf`#^h?W3Bv^P5c&s^jizk zZ}1l)CxY~w4W@&QAoby23bR2U;UN};wxbq$bPK@S#KxEdXw6v-aL@@H6ZujFdA|;SOtc6iG2dd zI1546+o~D+vy@8*W07ABvi%Jp`@_3i(F9D?AOptzCz*sQ&PbrrOvRsLl8$q_OTQeM2PaeM{ zFdeJ}>90}e_kgTF)^?~kv%zS{WnemJIUI7G1ZkHGvV1AXb~S^%p88x46-N=s`fEVe z+Xfbb*#T0n7-W7eNV|3|hq|S{9FYD?K-$%TthYz!hX+bM*&yq$1X+LR0PzPrQgzZ_(JG=%+CYa?i!un0{X%ymg3_&pcG?L8S+ipbm}{ zzj2!BAmb|pX;%gEI@Sgzf>DQw-%ODGR-)x5upRQ&!zKREBgB6?$o?zALJY@mx9!{YdLs|=#xRll?$?-YLNAm#z;MFApOV3O8Eki_En${?9_7D zRMBUE)E9!(H)y#_>wVKip9xZ5q2)%9$KP|59JeTt$1xRTJia)IrvPL;tsw2gju!iP zkaCWeOEkBF^wX~O;nT%F0Zc%CftD*l#@(dZqZx6GlurifzX0U8ssuB@;CSh`B#?2& z9xHJ!2N`D*NWVQG%f}ukl`U?WKTZjk^azNUZgW+JE)^})q@GQ~$ zKa&JM1a&Mfz)S%jH68JYeCi%e4^Bo z2(q5#Anhta*3%BsPw+|NCl;hW17!JXkop#_w-QAk4Td8>8KgcJWE`bh-vF|__hhk8 z0@>btka5)L{C1FWM4Y1A1FH6b9G9g!zfQ}YAma-^RqPVL49FEA>+1$tPjr&hlL6Ac z7-T(-U^v(b(%yHP_{q>L0I9Fgasx>J(X$;^F<1vOzIKrDh0c-lBo(CpVlWNt1XI9- zWQQ7;`5?+b^Dj>xm5{!B0&asf#DYLNELAnoH*#XcMKL9PPT`J@?sw%8|t zJpMUaE&+Mm+d=vbJxA=~Kpx))kony@-#cIOt3cM@1X6FM>HY;Nr+`^tEtmkh&XxRV zkmXW9`fu0yp$l}qpsE*4gg$hkjH6_bxf*1> z9hwn~#b2Uk7RY)_wOk9b-k=MlT!Q9uknJf0Y2OIa&U>NMmjEU}E&$n&jhbPZQZ623 ze!gY{$o6z;dN0y`G@(-eqSVdEI|`iY9wqt{`m)g8`(8mS#D6r%_Lgh89*l+D12Qh( zN?|_8{;C3be1q~tjsqzdYq?g--s?r52vT3Jt&)1u!FcFP!Adak28k;RWE^E$ zt^*loT)ybjK+26EkCW#{p%0|L5XAtEF7N=2p!vknN8vkT|kH z`mF#te+#}v;)n$ckzWh)xU_2quMs&8WWQyA>0lkm@zAdGLkq<&9;96+NV|HFb{#rD z>{hY!fwap4Y1aVKu2biG*NR;NNV{yX2(ua(!w5RXkuJ^vmy*eyahi(QjELx*tK+kN1fGM3CjOKp$8M za@==;90!s2N_{yXk3*Ga2iOj|sZ{K}>*e=O4(LOEHAwqTkoBeBFYV6LtN_`LE-ib@ zbpL_OFVb=i=!4v?Xhu@@qlbhi#I6NCDH(4^7t@CF7_7WIN37*jmVpuM6aLFycw^pAJ$k z(sBbB4!J`!=qc%!SdjIkg4E~g{4$+i2hvZM)`xDEa`7O`rGu&-kmakizFF&gv_7g@ z^hqG?mutCH%MBp=#q+fIj|S5q7izg$%fZj+ajlsLvi;Q{{kDPh6TU_I*Ha_?n+&pl zE5J-J_*v}-WclSF%U6Od-wvjL@z04}4oJHSkao==?LwcI>scz82)PVoJ>6h3n7CC~ z0@A)oGkBX^2jW51k6;G$bs+2M27O@M3(_CyApKQ=v~SYv*81=lB|ia-gg#5lMOv=W zYz65*v{wA5fb^HEE{8#a|l8a)lt9T%qL#Fr9X9NL=Zl z4{{mEdKy5+*9Eeks5iAgQ27IyU#;b4koH!C`0;_X%K({Qs9CM`U0@FKGvAW&Q3KLn zr)K2aQa%Y}e=P@-zYGC|f;2(ll-8^vF?W-Unj*nf+k3@{yX9msO+nnCYM zxipaR=7T>zaS;`JTj=u2}*yu6i&T3~Q2dK9J=~wOps=@b@L&B#{1dKp$AGT|(rFlwjhQ$UpuvYh$n z#RrFV!NV^7d$A4rM)NodzfkZ~^@8koAK8>t+4d3(dOb{;s3dUF?+O z1@d^B^_8?Nry4hA{qujlA6^VUJl`5Y{x0~Z`)F}X#XbjYN4d01o$C0NgY?r1rh@-; ze(wcclOUIYiC{a(@n`pYo@B(6e`?eD*yQ={|Sw4LWXv5N&c{<1-iV>1tKK40qVzs{AB zA@*e;?fahxo(n{u09HZYg)L@mM^vW7mkd%a(6YHd-T%IHCG*rqWK!t}JPXxi4?-_nUPAvv0$!TbgwMvwmsT zC$laQ{}o_6{1+{idYeJUW7e@ku{VzOoAoSnzk7eL4_PQre-)srCtKG8W+LBrnfN#N zQTyLNErFirXFV7W_P>AHj{HdE2VX9BK9F|lAjfqT$m3_OJMECw_`gEzlR(B-pxJ-j z!0eka>j&okvRMZ<_qEMBuvwQe>o{h8rVjqukKP=KCk1321t8m31FC+SCf{4;{%rs2 zXYD?&n_VcM4nHYZivL28{%b+{?*!?;|9!`(Wzv760ez60LE5{nk@Ars+g}K({sn1g?xUOgs{8xBWnC-&qd@k1GMEk4 zg7n`7`oP%bVwVomE*~rg_xC<=^bGmkW$u@o`{et(&!+!<_ps|Eo&=EbWP*%mfA7Ec zzwf-S@9!R6Pvi<2r^z7C=K{@I&2Er!cvlL2Ajf^SmW#n8$osr+oGQP6+cp2`zVv^) zuHTCK8FyHoFd1aLIUwUK*K$3m&ZG0?ckBM%&;4J2=Y(A^^<{#Ih+|*(pUr(|bHBM^ zf&8BTr~BYl+HW_gj?XGN-%>%IZ`EK5=($0zU*>mLCS+dMi$L0SXxZE^?tecyG+*rF z!35Zw-)(u2dHz;veG}+|Z0;xT@BYC3-M`E0j!tI%BMBOtS$WRSoxSLHdbW8=%HP9_WKy z3(`*;$a2B|lDOkQ${Ao5*a)({t|DnqJjnJIYPk+%dpkh-3%*Ut$Aiqz&~g#TxSF(V z-7a=fnyDbmF9!=j&pMH#K*}{B<7xxh9%bH+tVEavGQSvPJ+&bF$$Pi>O9s_-9pv$A)^hMYQZ5c;egVjF zQwJ^wefNsLERgLe0&_rDspLn4tfx@RHChf`Fa1~s`k-$G*{;z0B#tDI^_6P531s{| zIzQ=tiK75yy_K4cU_Is$B^yNF1hQR08^tafK$Z)CSlX2hQmzCUN8}??Pddo<zuHiaam76mpuP|Dz$(aQ->q4n=)aB^ zT_y2mf{edh%Pk<|x1N;vqd>-$qUAi0@%P^sR)u_yn|6@pgPxLdu^{^)9ZUynLF(Id ze(+|oivwww0n)Axq+Pqt-{1YDq1ECq9;ClakpAjH`s>j7`@OFBw3Len*$)|-g__kM z>uCkq{;+5CH~?8+4#@M;>|?Cca_AQ6_hgXs{F)k(yFkim&q;mxApKW?>0t2l;x`s# zzS)0h_D7{7pU1Nlq#xHdi6HssTP_$%VS;8h(TNPlf$5*YoO#FGcoek%~3`EO(&4-xOBA zCH9>l<4=7@+SfKp?)&!Ne;VE>eiA^&Z}z=sL1ulGAluyxGLF!HOS^JFHC{mKJGJb4 zSL~L9tiSC&@f*}6$1NSCpHh(e{`)vxJEYzOknJo2d3;j;BmGnarb2Gla(J`+zQ_RS zw+y7;{_EyvIiXC}TlTfyZG9%~jtAROF5+|fKF9)jTxDKf&A7nk1noT-C{9DO4`v4Om z)9=3ax8`emv!At6+nar^?OKlbPU6i08DHA>5=RA?2)PqvoQa)Me>TW^D?zridbF%l z^+1k>9QA|rLo!IaLXhpL26L(ZQREcObZxu*C9U$Xt`bFaNc1v9Q+V5cY z#dsf)^>DL4#_ZR~K|cLff%I$kL706+X8(=Z7h(3{nEfC*s6P(nD#2K=70d(^f0gTR z4p{5N@pwS48)o0f{_gjP-6Q>(2C^UWKpyWZkmJDmL-dg#^+_Q0%R%b@Y5#D8F5jig zhy5w#6Txtl|EGNznXu!ys0G;%=Du?`WcEjtDcz>8AsvpJ12hePB4`bddT2Fc-7} zM2-YmPcBIRRUq5b2GW11Tl^=3l=DFPsQ_6|0~ii==={(?$v68);~>-jKkYv*fF1o- zfhnNNBlY^gG{~hO<7)yLpJ#x?69=;WIUviIf-K*u<*vUjk=mkg@@0vVs#@4OW<<7fkU9MXnJ|0F&m z=S~0pHD;fV*;iDl?R!AhA3Id)%LG|p3CQ~Pci)ZK$7S{n?e9Juvp>x2M>6|~n{*tm zV2LXZWdEgs8DOoJ+d%e1&@k!GB#_^OC15Jp33A-{LWD&i+tr|H_A%}6{w2==5=Rus zdQ-HV3x-23(ehTUZ_~0TRP_D#i$@}#?MedaumAp_9IY<_qoA(?6F|>!X-5K>2DuF6 z_~`C&a zrr8(2ul?{funUKMGsyNtg^Rx|koA^;tgi=TebM7YpACjXE&^F!wa)JXdHzO?m-9AF zvk=Teem6+J5eG}TM3DX~LHch6ePDQm=o3J;D+^@)zV?&#-;ZYYxmBVZ>uc8jdO+5f zK0)d$2I+Ty_nDdfhh{(A{_Z;~+N}4T>HTv}sF&^P0om`#he&^BgB)j-Ag_BZAnja- z%D77hd3|jL*)CV4#J{iocL~t5->X0#rzVi)ti!}_BuF_0q+P9+J3!h8AMRG`WaS|3 z8bRiF>3s7%V!;ujuLh}a28+S0C}~G2NdKORViyb2E)}HRzMgC7fIc7k>`79t6lA$t zkmIZyq~DCmay_jE8D}dix8SpX&=zX7EG{`&>fW2F9kkmV~in>2es#u*ta?MnyQ-h5EmYc^^2fXaTV zw%07tYy?@p3uHeiqw9 z|7W`{7kq;FjRSdn(!eb6|K0x2CHaFb7rfv&!(Zn~>ZAJ4i~k+gs27dC=2o|r6V+e; z<4;B(^&G~_DZTo9yffQj%{gp{_Mhttv}*3|UFS9X0L}Y&qVMyl^EDIXcqs>cV4G&d z{T{29GRWiVD-)K2?2lT_Hn0kE@dl4t*9qPz3Ek{oh~He?8djXACPBe>q?*{8oUhzZK;5Ci+3$UXbI(>^I!s_n4UX2kr0ry;=V> z?|&&my^Nz3M-Lkp6E4sWL9b6^@!xBfIObLAp6a{f5^Ny#k}9A|9f{TVV?kd^B$m1?a%B7 zH1B;$cvSpnf;q4^@0V$ToDDgtQpQ6r$nnsmW$Q7K&3kClAT!Q9ka1RPwu9`~xW}da z*&vUvxh|JLrhNmL0){^!ahv_l8IYOZe;u#}`K+%6%mMqqHz_Jw?pq~SNxf$Osd;Zq z0rDAFGsyl9eNxVkB9L+<1AC5>{oP;E z|2f&sAERrGE3itpv!t?wkGNg^<~gRUrG(yeG-*bL_wGIHFqmEeA}eACUbO z{ItZK2-05`SO|85KJcI3(-ZfMjI#{QA}|5vnn1QEa*N1j-?3TG%|gBx`U1^zFx`pk z$MX_LB*^w=Yq?m<`@0W+fA=@j6GLEW1#?$}(GEK<$ zAwTp*VG79exExg16_DqTt5zR>koK8i5?Bq=-u05lY6IIr9~k+vwgaiJ0qLg`ROi!n z@t*}Ut|E}}_kXXDw@&O5Kp*t^nsp%khQ1=_OESpyxSChRz7=G@2fZf8BMVgZfXv?t zvVCn@4z3rwY>;-vAnj_k+y*i}^Lsb@b&-2Owk!4xX;%SAzg3#epbv7`o5EC(aaVvm z&)Y!8-T!?~{oiww^p=z_1d~v%8LS8U@7FiaU6j2o*U$fUA7%gj{H}MTJ^lCf_kRvx zf8XyF1%EvLdD^dePge!xYUHOiO23qVd|sgc^9PCViasA?zjeGP{TbgRECkvA)gbHf zyf5F4v>WMSLLb z$^hx-pWa9GPwT_xd5uEtum5u!)yU_0)dBK+4E|8+jRV<#1)9wu&xeQ>u}=eOpQq&- zkp0{Rs`Cu(qul>F1oQks+Q(8)KFIpFg7nu4vYhu5kJS#kTIG8%2~34t4l<5Tko|){ z9HhoWDo8mGq`pDRU7!zg>}R4+1L?m6WSmx;$nhZM@-HNw7Lfj2Uy2+LGQM<>n#A;FSQ`+Z3B5c_V+oP|F_S@ z#C|Pt?Cbd$^W5CNp5HOg>zLJF8C3jN;?mZs~;2h}(LW6{n|FcVDOCFgTK$o{Pb z+3ywK=-)>HvVXJ_GW*ZGXVCwCuzt@QC3c9Pe2{*!z7;>_{dv`p>BqcB&%9SF=sW3; zSj{w$$HP3wQwf>JsS#v5Jl{(_2_TPW7MKgRX*sA<`vcREUj+KVMo^XiLHZ#cWIvRH zygoL9O8=wQgGvulZ=OHe*L$2AVaIs7LB`wvxupKjL7MkFd4G~}2_Va5g3&AwhJ*j~ z9;$y@k2cRg)oB0ypMz@A_4I&@KcY+evlQgGXa?KC+MnfkdUnfk?EhXWvyQ#5_fw^# zTsZvXfjqvApz7~mbbo_vcNWNcD?rB62(n+gv_7I+{3L+XXMxlgfh=FE^{pWNcz>1n zUB5~ENnk4S%R%b*wLhX2`f%v2-{pHa1!TO1AkU*(ko9$f^kd$0XWk>WzwZZ&>XCM& zXf6kH;jjPmY5RIE?SFl4tPAyoqn`bJer$iAYctQY?dyGSp?lTm_K6^mcQ%*;)`2`8Js`_P|0#abK^_nD{zCJ9IP?5oDfBGg39@{oH9(b5 z0~tpl$nxfWf95@E^~euLe!Hf59uDu?R@awAkmE25WSqsCTeZFiWO=Vc?0g{YGC?0$ z0p@__IWMnM;zt0& z3bo!m_h+8BuG0BUx?KPFn)P4D?*E)%k1ikXmU)~hTI4;9?w829}hB~ zERgY3fVBIk{S)1=V_Xq~q@F~O$DtBrT&grHA}!OvxQ5{`H$YAXISz6`#@(RhE-fd9h@V`L<=a5U6?}li6$>)15|HDx z0rZjQ$n!+~->VlCD&^xqwkr)}yq!AVJ6!U8ApMqu^xF*j!2R7f5H>>UNdQ?-Cdl)2 zU+)1dgP!MYBgl5{>p9u~ThFWR>p9!_kj=k62=P6bF;;e6OrEnavX&oBuoNXE*qquGLXl0U+e5$IOv?I-MD@skSDZyw0=rBcgHnr5B6N6Qfra$FL@EZA3rEZ?H@ ztqJ(+J>8GS`Gey?d$+B6|Ktb$!e z@0p5mfj_U6a-v+{&GRY+kU8F(L5?f)+)D6CVwV6ie>q6I1}(c1CGIGY-xuj1?Mgt} zwQD*2WU({vuQbmcn*H&K(6ilHAj_9)xn9fGDSi9pwgU5}P?x>*O8kwS%Nm^4ERT(% zeg8SG$jPvdw7$XLMR9&z;j%)e;V(*9u5a+s6>=(`g0uoIif~#Xr_sW4Ge2a`xA?pS zey&6cq~KB70goOE%eiOZom&OatTkF|z~zmW6*6!2-IlchnVbBIfj8j2G$ASZYi$() z{*aGVN99kfY>=w#9QwDLk^8Z~m}t_J=11i2F&fXWy#*I4^)NW{B1xFID`fnhuhh{{ z9phKK+VL@HB;I!vl3f<#um(c5Pe5>J*b@P+#viQCW zKvibcfx)a~@OMRM_=+-YqpW@!#b@YU56otTQ=e?pd%T>e~|YPO;pDW-S82# z>wbuESYxTh-(t}kD|iMPXblUQPKJ1%#@~ah{Sz@9aBsS81qY+~p@&}Uux$JM;ZYBQ zp(k94yb&M&+qObaIt&k6hh*Obn?%++@OXYa#e0L(IvPgvkrp8ZPJ)>=a$!ogiY;v6 z!e#0MeteCGV)&R4;LG?t zy1f`K@g6fPkdh^uE0ks>a&Ivj&oZSx{zO!IwHgTbLG`dv%Run9&2}NoOgqFL@3977 z(^af!^eWqW)R^3K3rzg~S!16srk8U!Ijpyh$?pu; z|DScxEv1Yl?(NI~4x)qe4;0X*9WQqQdQo3hT~SC|;>>$Gr-7KB;im zHieSU74G)TX7PItQ@A%pq4ZLP`)*Vydq`o!%L*GmQYhb}uxZR37JuY;h06039=}eZ zszl+*8il9cRoL92Q0-1;xu?Swo|&$&Ab z`d;DXq4QX7`(%Z>ISQ{VRd_XD;k9yw`Z|Tz+Z5h#oz8M^j#g-xqVQI-!rPZBymPBU zV(!4)z3NL*3B;kgwOjz57lvV&KRv3Wk1HS)(L7dowz0x=gp0=0RL#D7-s zNXQ2-zRViAJ0b-(FusTuREovHSvl6o-+UY43(A}NDkDY>aN;l6*p;{lv7$$)K8j`4 zf4mS`5l14tk#2hp-l)oqI%8u+c<^xT$bt3`^)8F{?MCCFom3z349L+r}eZR=Rr z1fh{0e%QN)`A6Y;9b*5ElY^@0zq3(YFv6~0;8Hdzej8O6yTOW>$j%#OM>U~JWGto4 zEI7o4A7aE9c4)Z$0bW%^`Bth`FGiG1K#2%D)dip%u;)q&O6duUFTKDT8EJ1GgoB8J zhqOM2u8y*&Z?TjtR@Shv=#z079~O3Gio%qI3NcF*roM$hhJ{UQRygW&g}Cn&reCRW zOrApg8iix;RG4wh87$|Upm6-jDsxtfLc&6Y6P75P^s7RmOIe;gRN<6S3P~H3?zBpU z*;^FmysR+yL}fBBnmBOkT!m>X&ZKly2{CF}J$hx>sH?gauKh`6t_VJhy6X>DST#f8 zh7^VTixh5Jr*QM*3Tx^V)_$V!uiq4kM&XT5!$#dcUEz-T3MH2)+;g?Uy=xRoA5~cY zhQfVcE0q1Iu;HMy>E(w=_VuXU&*QJy4IA~#bd~w*84ABuDEz)eq333WJuefZ&)bM^ z!eOJ&Uv>_$_G|!AqtnAsBqaLh0AYJ$azTN z%2ySZbtvRI(pc{5Fooq23M-~7+>oS@zewT6YZX@Cs!&j_u;z7zTbmUA^)=vHjxRx% zH@heT-!^yPtIFjKw%6k?;~vT{Xe;u&9S+Mo+~&^->oDrQAvT{;D1=EMKX|B;Uj&x= z9pb%uI7-@wuRp|TdB@n#z|an+$H<3rQGA@8hR@dMIRP%qo6Ab%XNvdQiRv?drg)bh ztv-KnCw}9u+=+u?k50jl6YupF{tTc!x`Fwt7_vS3U4Fjd4t^ef$7-h)4xZw&#!O+*Bd*$v z-xx^N1eez|)?E_~N~<%kSBT;G+^La4vM#z`#FH z*Y;puR?tb?p?KY|9Ps@V1o+y8m?yL#^D`<&u+)HZTyDH?&WLeZKO^(^Ud4IMDDlok z@7vap!IpI(k}Ba*jU2cL*KzO16BpVRk4QAM(~N~RF#I_9{A@a|msFkx#koeQj-4F9 zh$DYRlgBw;d(vewmg`}oyvu*;XWxL2+YrUK*Q~%?5$gN?ur@>W zLSOa7?l%#K!~XPbiE;<&T-9LUZSZKQqk3aQ{IXpW~g7+N({t%;R*6{0uFK6sK-HS!#&(|aAf(T)Q;#a_46 zVRc{>x)nvYF6>D=Qm&a9{d4}{&RcF27$>qqK`>W1xg6qMn_#rSRNJ>7onWm`Es2!@mY zYHUrsogvM)Kaa*YC64?_u$kw#Q?4ebVpMoD?8{va>vE{%gr-VWYE9mZZ({EycIJAg zb^G7xufvZF?=pMri!SRazn-o1sGs_iuW=xRTkH!8Z0lXWp1tScf0pRi+6B1n_@iIn zO+Ek9`gL~1NtkyAoA}gKhyQ8)U3SiNmo>$&SMjU%MU2F66>q7%5f?B1R+&p16`mSU zQL{p!e%PLTiDfN@>KY^&Eq)v6hp5|Y(NC53Qp}sz!l>97TG8s7@PwToBNv4ur{ux% zIh%*xeimjg`c0=O)hnWELiQ&{C1;=%Z4iAIbbtEw<2jH-|DNbWaX;rUBng-Lz1k&~ zEn;~btWx)3xp&3wVtxrsSNYBTLt$^r@5S;iSZ(TSsjd=I`))DX3WI<9jr=2HZ+DhM zb=H@#`oV7*+1ug}(Yx_il1Cs(i|@xpUpqOHJwD!{CZk8dV45+K$!H93eRvOde2kkD zlXz6-K!1+0@u;p9n<v`y3_1maMiOt!LHy+aQd;&f0)$P?VE9S)y5c36&Xl9mPF35j^}jbqo4}!RS#g~FFVHI zeaOoB(NN9kRo}_b-gLZ{s3T8>YC*4hLo!M?IR=!t)MeGa3aaaR)tu6JKXAm&mCLw& zCsd`q>O=73!TX8hd82+Bs^|UcsVgyo@P6yK@>C4KMr5~ArM{T_=Y%Cjzd0JqotFJG z46NaM8(C9p-a`nM^Ksngu!lo8+UTvA8~HP5m^17&9bGI`)2UV?V(JSRklsU_zDRWE z9AuwkO3L+Z>Yf!SKGDg09QLKqU1{`I%$fYrG}Sp~xXcFawNMpPtvtsx;pdMx!TEf* z6YJ*i{uop>MlIgO<_zcb6x(W|&A*{t6`rm?X^eUEc#hD&NW2dZ?cr7bI-KOY+Y z|JF@-8AfmQG1N9gT=(J!pQ`#x=y&^Vdd~`}b)@Si+*(zJL&I?M6G@J{YU|XidE_R# zKEfNV?a9zh_v@vMvz@jcfJEx?_KY(VjkrR*bT_#dQyUXsB)& zaUkw0AoUJ^`OPJU8(fE7t)0z)(J6jI>94!7a^l_WdhaZpM+>3L@$1!(v)qnG`L%A54DGW^xGr(XB*hcNp2uZDYfqAC&` z@WhF_$dFOEdxf-DyZ7ozWj#J%F~U`m#KSV_uhv$KGCVrq*O&B>TnwXY`Wp83f>@s# zux`99-^c4<`GDVA^_dK`Kd#0=%m^5WOSGzgD~uZahRP%VvtpECPQc0c$y~$!0!E#F zL-p%eYzhL#yycWy2jJWBKqP6ps#O_Iy%%!}?`;9muVMI4f+6%U-WCx1hwi>>VR_F!ta}UVT6P3v-K7uGW|VpBZ_4d;q*PUSv)OaH zsxM*w`#y^33LNeoUHXC-ibc>#NPCR}f9LA+KvfXxe(g=&@{?em<}c#!y}et0sC(tp zx&>Fl@?U>r-MUAHervzUyy_s0+%(6Y(AEt#x0sS}Jg0Nzse6@1s4j zX)}I@)VWI@mE#u+>)C%(qWADcoQkzVZ;P9MEs}kAIjm(!^GuexMZ_*n5Px=Omdag; zJO9QehIgX9?!fM+^-r%SU{uGd`J+OPjelrbQ@KX!9TqsG4mY!Q!m5py>UR(iF@E{q z1O4d0k&A7MvD$l}cOIm@SuuNf2V_Fvfw;aXwHK=Kz3LCK=U6_{1lc{2(rXWr^R~|7E8QQv-{uwc(R6 zddY9-cdHFA3e0WMh9AIam)}tJyIdV(@Dt3tEU*YOU}o6Pa4d`>NuTajwK7~CSd7Q` zm0=W&X8H~NRqGZh>*7H74sCr7ESLP%+KN$z4+ieU?E~fZ1{kgL8}1e8hPgQSn*+bC z)gCKhwAF98SD?zUE^zM8+VFiC?eZJ;4^&zIJMfC@9J>AE(0(Lozu(%5QHE`S-yUz; z52JX$;a-8B(uP2P3jELY+VBh*E%qDk6{s?Fd9t=>!xb=E=Qs3Mt$S2i5Ay_^tS3#C zu-y7rYb!<>MtFXFM;pEmqc8l1dj)#n5S(&TJSRP>oBjukhKx5&-z!jMILmWQn>IWY zM)7{b{(&m%xt@Y;y8bg@x%jWvR*W({&$ImoZMXtPYyF0M1v>v@1bUfgezC596O6X_ z4fhIE8Lsjiia$rE22&%9zVI9N4^&wfdDcCm`~MGE4msGg-*0WjD8mh&V_wi>^iUWb z;YH?ylGX$x3{Od>} z2YmdStV7y|LLcw9>5YV4rmbfUXc?|Oo&n2C_hBtT1amE6%(YRN=A)t0dQQcPK34Lk zC4Y+TRZfdLH9D{f<;MZ=$bNN&;+DT>?BvxGFf-@!#n@@A+738(KDRhLippe_Wb9O~ zKiUD0;2J;nnC-}SsU?oFM=ATGe#Oef*yCc+-M>LM5bgpgcs_*Wp}93knHNWbU5v3OP0w*yw6x=)IiA|-JbFRAuQc}5=bo}GI7DA9_X(ni_s+Xv^{V4H}*>d^8rx?C=xpLvR

&DFu!akv4%6*DYM~$WpFb7&I@V4y*}gbW&=WkuCuN2>pS4+ z*pb*tGrppt!L|m&C?3i4IKvD1e1p>(U&foH`s1S*oBHF`uox41fy1IVEBq?X^+Lnk z_o4K0j3e|wH#e7zdG$Noa>s`mW8j}l3f7E=l4S>hW%-()L-e7CyFWp(nX1@icMd+= zV{Um}PSJmG@as3M_dNGV+@%r+7r7s$1Jwh(4$N3lq3=S?csX5%V1*xbJS$%1o{nPw;35oso(TADx3f3|g3kk51K}K^M%0kI~&X*;des zli{HgW_&PwD>w~mjVjdGde zFkhKRKQBw}>Dys@MH4OvJT%T`$*sk_IcP-;w$!OQzmwdBOAy@6%~xTAIc;6oJqN#? zqZ!1TL3k7tX3kNPy9f9Eg6@z15QiI0bVf_=pv<0C@vMPliTVmV5x+*MzQ2#!lS7-yz9$jz3VSmyjxYN4 zwAMa&i!|s#d&#$!MW;Jyqt2a(j`h$yX^%h3ws<1^-q4lSV|6Z&-osu4plA# zde*os_dI4;0dv+lEcfaB>!_3n18iz4%Kq+Gx9sCTgV>|RbUYmj*x70RV3R`PQ>GM_LC&u;n*rYA93MU&Sc zzUw#nluZ=vP1Jq?&Ch+b;zdl>(8Pm7cL0*A+@rcrv}>t71ezoL+8*R+_qS7<08L6C zt#ml3#4s!4K_cUzkbMIhe0ILTE zqNe~JU4X}N6w6o+^b9XRuTkYd;f5(w$51RjIfaTufI1iWbs);xWkOC=L zQCJF&Yko!}}TyfjjLp0)@o< zI5AIv=^Vd#C@U8I9MNY$cd1`Ls#kxy=<}f~_Ul=G@0ilW=wTQ<>o=m4y^XFEqqkx3 zvEQf_ovMva`whcnldaYe z_*Z<3(`GvKC-`kttHfr9Jq@S2vRMHAMSdH`V@>6~W_P>&-4XDy0=l(+y*e7~Xl*py z@!NU~od;m>xZg-QQHzxBgB=_2m7RjaVZR3bTgFC~INec>$P)YnrTR;#I;cK`-qj+d zd#dA!g-$6Q5RIQ;NHVBIeVpTl?{(=2s1B!El~#+C?vor#uq2a9=d++X*6maY{&*hi{urvZUNzS+-76fY<94?SZ4Xq=BmE8I8m4=-qsY|lg=&1S zn!ovW1yPZtL8Vbdz~XG)E4zQP^J6TYW>l@!Lc@cYbu4hFTxNERvGA3Kf@($(*T>JzHvpmC+q z{gvZ1EcEclrQHqHAAa>dagpcr#YvefWLiB7we&}ph<5( zDU(F!lepEPYN>_#&AwjLN~HUA=NmilOOS5bpx!izB337L?B zr2Bm5vSi)X@lZult**E+N`0~OrJHp#XF_#SZ)x5`bYJ6)3bE7=emfni3wlc{^(yDX z7%Q9@*ejvB(O+6EwYhI|HcY?~x(C@0nv(kXb1BaKfU~3=MW2K26~8`8T{gH@;eOir zK`itiK-X&YRuI=@0x#bDo4#OlL*t1xUCWb2s!*#j?%mEIS82m>FgmiYp{h#^16^qc z;ty7`mrsGwIeiV~TE&{(qg~I0IK=P@7!~w2?7i}-bs6_Hu8rfg+YPX+>|-tKJMKGN z_hsRC2djPs`uF?Tc-SJjA?$v{bxbvkcER9hzY#CbmRg#3Kkpj(ET(<~r{en(NsjZ> zJ162tTS&n5L-EBw0ohZHO1?DZeEgym$HN=&ZpV=W9G@Efshd)KxLi_U>w$Hw6ZsRmZt{g&)ME9Plj9Rg=N zytoU%bKKDa{b$C;is?EPLvwAwmLpy20_FG}szLZl>ODc#U21FUhD*@&(tz7uMcCmm zID$s%6pUs)LBC@iF7Vc0M#=GX%z}Eh--JPHle=f8%K>s+0QIsyCLU!MbxjjG@bQ2b z-*#BHK!1stXEHw;MW-PJQZn}~ zl;#xVo?$eeG^O6_zQsjQwSv@53sFQ;H3-6a~{L{Ki;>9!7U7R--6z(;q$NK zTrm0DqftyI`N8m`C;2XXG?V;kh(k~E|5VvB$v=(RGRf~ovz#F^$FLmw_k}H$^GjTR5+nFlYO!BwC<*<&2 z&vfK^mZCkLY)Jk|{=K*~Q=Q*O?Kzt^W|Hrn@3PAMdRl8AdXhgB(;_;3fi`NOnMwYJ zUAX&=?rrvK^d$dRWT-h1wbt-W=VQzS%@~QhgL-Cv9eT)bu-E8H|3J;`x5uNDp4q>S zQim!(dS=fIGqdMsGqdMsGqcY_Ph>&994U~3nc4I6jmRuA3eQcw+J)3U0L|lmZ6URK zX1^SljctC-?bMi={otQ5v)>7wp4m4*)-(Hqk!xo5Y=)lM54p#-O5h^o7~B*>3cQd0 z^vpi$XotnPCPOim%5tTYnfaQ7omBlk5;^h$r_q`2KBdo6V-j9T}v%r?lK5Th32VZ zj%aVEb}TfL`e?QL-kJSOsFRFIpPBtVN7xpJ!1>TFH5Pql_SxsTtm~n<&97BMMm18; z?9)EP%>F^>tNb=f?H{84L5pXvP?_s@e4S!u|LBQo_Rh#KiD&gd8w>y*U4X}N6wCN$ z_UdY{XZDQ5%DD{|vg? zzU5e)1W19D{4;x{dJx%FM&;Q`eee>8|^)_e+vf9#;DKCe(oyV9fW7Q6YAfMiAS}_% z37vtJ7bJBgJgQY@W`F7m?I#ZUS$-SFqbKd{_E_|ioeEv1U+?c|Z8Y4`gq;!gbucLK z8!0DdW*?A%GY<#L-T?h3W8Q$;gK;-_J{o@{8`V*+W@Rv3-`;Mn{ z=|7-y`Alguv;X&2+nPt`W1u>iY936>%74k>*NRC&Fn_00ZVFV?JB`fjN1?^WxW{rw}IqOO7Jgp_GgQw~ zE#0nX_JvrdQZxH^p=$Q4_00Z<%P`zJkoyZYy}_B8{mmE%BiOd!9)B!gQ#7y`}Zc{#5)n<4BbCA8#l+?#x z&+L!C7e$MqyWg*GRpUd??7yzZajb^!Iioi-`^YD-Q;v;(7n;wE*28m2sxUMAF=t^f z8V!Gk(I8xA6!gI!P@XN7@gPGu=mPmX7-;Pr>(Dr z>u2SnR^`!-timp67HYbFT-mW>^A6j8NFp@_D5hx zf#XkP4?V&3L2s~A_00Z+qpd9Z*^##@b z6SVKlepC$ZHT(vH0DN!B;UCC)^vpi;Bkc2o>=*-eq~C;DW@caih72Ny59;JTCLU#H zX7=~p?X)tW&+*%+FZez)`|Ic8{V&j$^tI`o+4Faqn%S#a#{sQhVm?2n8SCEl_`!0( zq>nMPe-S%XFtfkpB>blP89&AF`|GbW`!6vx%*_7&1^BFI_QP@a(;kST!AOCW%*z@zKoegAFoJ>zVyLOau-^Sk8-)=bzah zhCL{4^mD!B%FO=7Y-xw{F3FXd{Y`6ZOV#<9M58=3}-UiQJu% zD>M7Sui&eSGyCr)S7!F>j@P*XXgwm+%l9}9mF;MiYi9NZ!PvpY(#Z8pM0-4^K=RM* zS1-X%Fk~#~qxQtm#?0({VqMk>zn<3Gho0Gw!j}u3me58GG&8e5uK2h(Y{C}OGHV($LpN)I`f{NzMntl-kI}w zp4T~N=FGh3dCt7&?FCuA>y08j7f`tAvsc8=1U&$?9J8QIeV#zI{Sy|OzP~PH0##cx1&?(oPB{=x6WP)S7-m2 zSwGs@OV3kh--jI=cDa(1fF(z^yt6lGAjyv@itZPl+n8;2_D1vq39orkeb%f}oxKr# zK=PMK(I7dhHs%&~lRA4NKZrEl!qq8yL<&}CZ+IEl>7G9k^VXr^^&DeF?siQC9HrSMgcKV#`)%-{mK+f`aRS&KE3QA+We}>LTW3 zP3|_J>*Czb*-to;m$*spUZB1)cFz6*Caw)01sWe?=j{J@EVRMrfnJZXbN0hecX&N$ zQ;eOnZ+18g+>ecB`}hS}qKgNj^uAv^kPs-r28U05EI@ zyEefi+b!Ij{mjQHzB_{6D)P?0A~O`Gc29st3pR(`d^?yq`#WB@cm3gP(0q@bvtKIC zeif;o2#G7F&VI%fX?{eVvUkGw|Cfe2`(CNwuxLtL&6nUe zbN0o~3~e#3zy%_StKyt}k@wQJl-}Th$tddV7tL~E#=|FT81L-MG;tMu9kfhCcxV6b z#VK2fO`vUYZZ~J&WgG9nlVxXJVV1Bb66X6 zu3&SN)Y;$oIGv;g$=7O5cl@2RzpgospgXLu=g*nThI97O7V?jPjZv=7e&ud1iPCvz zLzXIywT>g7ymNyH~~Wg^;Zm2>tB`M$mpRz!3` zQW#(P)Y)I$&0X2rqP!uY_Rf9}Q{^UNU-+X5jcJj0_AfB;7fwbn(~IQt?4A9HS=4_y z>|N#F*$=5tSKUhT&x%Y}cE`gx`{7-&|3?rMX{+rwC$*ciZ#Nq&ehR3n$8vY#VmN1i z$9jD9B?#Jik+dzlH0SIWe967Y9jNa0N>iH7*^gj;$vFF`;A2(eo&7c*q!fMXRnS|4 zrSI8t%vUgU&VE`B)!vBUD~%C-Pmd3rvv0i9_K?({;1nNi_AHf3JIRDK>^#{{<%6pv zB$3gnv!An-ugSq%c#ZjhPdNJ*cynWCc+aFJcJ^{#W}Llo9i@ix@KmX7T%>ZJr`Dw= z@EX;OyrKeUe_1ADCyr*`cA2VY^k$1@pE#K`DWp1SvmO zz9R0Ny)@uxXJ2z9&j}%#!4iEf)%%~$eijPj>?K-|SMD0BQS7Rz*OJZ7*}qHeoU?y} zRdx0|3GbZ!0#?=8hwZ(ypKa9E*_R>NIs5Gm(!r0EmA;fT@9fWH6n?qH>0nc>vmbq( zZAbcUn`)i?hB=wQlqrvp6Tv$BLz8)mO(HyNQ?0WvIKw@dzrdziXCKjBj9dS}rdnrz z=RlYGl})wI{_(fnO#Xh8s?L5DBU=Y3t~7fp`jz%X72w|4PwQcE{REDRi$1gWgg$eWp#quFo`sm|Hgq!cg6 z>RmIcayA!kdT#-_+?@RYc78<@$2ogRP-ide>g;7*o&6E^L|L}aWXX{Yb@sA;E{Tm5 zM42w0b`shS(%I9ZLY=dpRxK0U?Mbc>b@o3T!r4CobI$$+9#(U6_M2(7I(un`bM|wO zXCi<(i-p!c_m?Oql6aZ` z6Vif#vR;eC1`47|5;IpKS;=6Lv<2VbCC1fSI#g&c$U_Ngqgcssk&FdT^%ArDEFB^A zHOO0@RwG57z0gk~-zKOFA3OW~V0rtyXoOIUz82oaYYg^X)OXq-SGsd%-DJLqQg~CRTa0^`nqlIlc>ay2HvE&L%Rf1e z`I5&wdvmpS&R%Mw&VDzYNuB-QX5Bjbcj#2=>{pw0>+Gd)b@pA%`q9o_dY(G_bJ*44 zh1YWuu;j>=clHKdOL7-Q(RspiPi0%3y%9Y?!U!)qjy0=PXKzH)NPZ(Jx`=Qt=6rUO zI(sAk6zO&^Zz2V&vp0M%>>tmshZARKrg|n|*F| z_Kn+w!CzALZqR`^x0|!C81n48;!8<^^JXU9a)*3DbY5GSAmiVxHXTS49y2a_R+6f-nZsDB$z>kRE6hR9W zd1qhsE?4}mpgRTI9p~ok-+Rq|!805Rdfa2@><>01?i5mI36XO%lBNXe>>FN~3O8FZ0ST7a(=NnDCL`-40^V8Zl--zORg4aMl?MMpkwaPjBrC++MP1uDeKUi$TOwsX` zPo4cCx`-*iI?D4BYVYhDf9Q&C4ZkU&F)i}WelCYPybr-cUL==!@9ejgfRBewR_>jB zt$G;l1th zr2W~YIcMLk38ghb)ygaFS?Zp~fBY4Dj;C&e-=!Mw>~E!P(Wf2-O%Uu)o#dQ-yP}9* zL9ke3M9Zm>I{Vo?eIzwZeFEO*C6c7h{u<__jpPq-hEG3x$W6P9PMv*Gyh<5(C9g3b z@Cj#s%8mRkGyICACU*96UuK-WaUG?qEa%kP|0Fj-{i#x^U!D$wyrwNUamsfaLkMS+ zTv3ysI0FVC-KauoK|&GNGew@`HRvOhNQ9OVmaB(*Lx{GGbzEvU#mjUhh9R z1B+d?x+~eNO};ekZE`tQ)h3s`)!XFHDM@W|B}uju;PQrUeYCwH$<8KEdp#B0Mzzv+ zkmhZ2S01zbLE;Rysn#ZMYLYSSNRPLv)+VoD0Na%LicPgPdH(Z!I7ozdZK}1&(|cs> z1o-DR)!O7a1Kp(dZkuXt^75D2V^xSynAZCV@I_C%N83*}scMr;6vA(k`+QQPyJ$~z zIa}T)*Br;_0|}iHI66l(YLk02Xf)7sQM(whMHktXDSdi7bZtH1m^5olNoBTpIY_f^tY_cS%O_p`F z$+E6Cc`$q8GPbW|$&n4U$+CU}iMK0=hQ+j#&<7xodOAX=v&r4LM;q_S7$Itt|HZZB zz6NtPdHLVoCLf{IYLlfI&L+S6MHoyZ#BXHUCqbu3JZFlni)P%`vO{S$o zg-(RLoS-&}l?)fjGVp3IF}u&w5kkL!{OIX?Qq(33Jp?Jjp|^z#b>U;1d@{JAN)k4? zOqFyXUEo4!GgTyP@?T?9K>_3rPfeGRPny8l?;eB?_ZowJ7ma&$u5{((Yq;cAnIoAsk@vh+N)$#1Y@!<+BmBw)#rEpL+zdXVJdilXJhb1!9EZL$%) zNWwxdI+r!8RGVx>ACml4QuMAIRU30FyGd=bksm^uxzp7t`cMj1n{4=runL~9k9q6R z@N;3!JeU00bt$0UW!vN#2o|U)VUs6b#LYL6!!_Vd zDzPn6o4n}mjMe-O|I2GktJEfcUKXn$aY}XPJw`0%Xhl*VZ<=HT8gG-&;_{y-_!-bt!P_Ld+T>JD#^!z#^tR8f zHu>WTDVuvM=qsOFZL<7KeN_p55Ol=nR-63w)J#xL@Cgk0p2A|w)(P;N|4rH4bwL*h zmagC@z&qx;+-*S};@r+A?|U|FtJWLTFUHO$?`Y)OJsLD2#?B`1;d^DKYV$#F#Ms&7 zcRHpm{sgo+#?B^xa&{QVkqUQ%4#e2m~CVDkRqtByEmF z?QQZu48w-aVb>*iWV?m4$&aD9~F6eK+=Owwb$?ueL#as=(UL}_)KbKq~m-c#;v@--LZUOy*!ry|pp-SKcXdC2dG{zXuy)9V!o-HRa0X}sn<$Q+VYmE{8z$vFT`L+A(-cKC_r@4QzXQ@;uQ4C+37dS*@-Vmw-YcnzZL-{#8JjFOO+l&WUP%X~3eDjr zXd1Q7oL`({T)d#sJzSN3;x3F^ucPO_*Yhqjo%`M->+Y%cw{K_tYYP5R3YRUN`!?h+ zQVS8-kZ6^`S##eff+{GsHykJD%C}eIx$mcmVCKH1RH`i7c?-D&Vd}e))tP#s=APEb z@}Am1lH6`1CBQJ;lNDL2hj^G(ORkA|1|aEP#9A$(Sp2xiqiOES3S$|cBcMq zYUk#@Ut?8G{f~rqbKkGBs;2%QNw%hbhEdzO@6wDXJ5%4Bx$jRYG<`8?-qb(xT^PJ6 zaoX8bYwGL0YTJ>%)23Qee>(T`rp$+Isx|fdo=OJ~N`whE)tdUVt_`iJf7Pa1Q$O_q zH=q5UO|_=}f+;Tb3!7@^zB``pQumltHT7>dNe6o=E|)zOZJ|9;S-3a#jd**U;Byi< zDk2&+^=F>NYaToowTt0QeT|U;FFxc>STv@isi`m0HXTT>8Rm&I^)pE@_D5)tSM)hL zUa^Mnlj=-;RZ8)Ktlrh-fIKAJwAcOQa&zB(xj0ueah$1_1U2=tuBKkr)zt4~Pn^tl zd6pd6P*X4Kbx6EOL9{!jorJcAboBIqP-p6I;~?JY$zdUC>Tl-})!av6&eT^q;!XVq zTCJvDn&C`+vGrW(?nnhI$+TL6Mr^35-`1Wd;fVhg;0J*v478@cO7ToEg~Y=wseTHr zbM7xu@<=>MfC*{AKv}Ow;<*Z<(h@UQB3a2`k+cFAc!@EzmJSu#12Ql{Z4@gRE|O8; zXT8MiK1)XkoeNpwX+9}x>Vl%nsP%3@ldF!c@p zNCh<^7kg^DjA^7Z^#i!cPq&5N;57#OF6ujNkSpCe)2o$?LT&0W#29y}8U9_0=ieA= z!#_E?{FCFDFL}JFH&=T%_boM1Q-2SgNlpDAvu;g&Gdh*deYY^{*3?VkYU*z=>qnb< z>3M4E%d)G(^ZIiVu;j>=H}wX!CHV$L(V4W%0*l3z=T z&L*6T`3k#9O}&wSgmkNy*OG$O)EmAFcF6PkF>f6jUSa@;p2f5&lKk0qDzKv32pV~j z1j!clv7+_}x_Z%V>{KVpHuVD#3{z3U)R$n4??NJnQ^2!SVrt~)zGpAz0X)&X3;)<_ zOsmw?=kws8(d>Zl^BSp-H}##)=My{P{;Ld&ZMiubvZKAJU$uuTa8(5Ly~qSnQ(t*e z7<|d$2wTD1sm7c7O0B|Rr{KFl_Xut*(bd$?YM!>ap9DSabE~QE{Zq>3eg*WJ&#k6@ z(>_iKj%v6Lw87_AQ-3L6IzAv}{|ee0=XP`7FCKBZj~U2m#$r3P&VBzv29vuAsD@xu zbDjIH%k7S7STj(|7&}uxXEZnAQg&BR_ZT}(o$Jm+r zD<0$*E2Z7nfl|4Is83nr^jmQkKy&3;lCsoeK7m5dsAPgIFV0-RZsB9b_-|f zKY9dFV+74roP&dJL$GN%hC(79;UcxOx6mG~dI27mZZF#?iU&J5S_8G&2Yj$dbjKsh=}Aw8c~e z*Ahuw6=&*e@kwh+X%23ijH0H#+c&(VL2A++-di*h#+&+(ooGTl0U9mX?kP9-UE|-h z%{?15KhEt;eUnbSbXJ0|0euqZcBcN@FH?bW2s=T$r~F{ZD5a5{ zEVhfOsedHT31=Z%k`$V<)YKQ@2dK;?Xd|NUlR|r~a;832Ib((YAUf_LZI~%KzVhkZ zciAhrr;z=77RtH_wKw%+8@Pxq;hhp1(;{!`Phfa5?2TZc7s=(>oBDn4axESMo2cBI z`nhfJ+OLxQmLk)Y-TCND{nfD4M*e)25b50adalx`eW3Ki+G@EwaWR~!e};D+r^+Cx z>P6E2?9!a6kNE0v>Jn5}dZj%}-Q0IGUO8r-YQF`3hibg3Kec(vT)$F7Ku-(yCunl+ z`x{1SQZFM|s4=29sgaucXDiyzp42+<7B7)XtEpef%Qs{@wHqAp>1X@0X_wKdssCpZ zUqgad@EY?0pD^_&*X3gn-ZZI+O}*Tg8B=duN2vu(xT!2zQ#=+`C{=^EkYw)R;T@d) zDMPuZYt5|~_g_al`&;C@J?;(qU5Kg9{%J{nlhWUo8pxJ9dqXyo`jwLC8H2N&{XWnU z#m?Ce9Y+mfXWs*CoV}Dvy=6PE%6!iC^4%IyW#{aLnj2dq%lqd8vHoLcioiO1X~5CW z{_1t_@Pw&i-w}J7@nW ztLp4GOR{zLgN@oc`&}eEXa7mVR4|>g(kF3Y_Rjv%tJA?4iBr?2T4#R~v&+(s^kp{H zI{U4|!@!hzy-l^we$G{4aGhv-*;MQ7_gz45t3>LfHq|=&j|#cz`sZw_b@tuLI}g9m zrdnrz+IBwHst{p~NmXY*cYP*UOL03%jpopv=r6Xsvww!iYy_8JN5(k%PBiN58$ZCC zAUqefi{YI8QU-)1Xj9Rcj;7AO95ay8Yvgg+fFi?hE8=A8Z5AQiZ$+UHOOb@tK>=j?CY zmI^i#ViK92m!R7vo|~?(JtiGUy%q!B68N2g*4h7iBg5+?ZerQyp|#KbCCcw4?iXM} zS};)7qsO>1u^15jEHQH>l9db=$ywmKUSeFWr9*`_gIt@SHj0%D7s(yqd%eW$K1)Xk zeGKxnr@xb;&R*yY$Qudj!pF{j4S17E63+hYSv;IaV}64kR7JwsUtT9297E4KiN)>$ z(`8H}owL7^am#dd_<3GquBTXa6moNuB*~X5Bjbg>)))_HUYX>+Gd)b@u0(^`o7=^gMO;``OiD z>Bp%KOO9-LXKzq-lFw5V{VhEA5B7&Tdn0OtpouRhOdTg@Vt1;TZe}4fF1N)@@Lnnz>11L!KH`AG(3_Z*`hvHR13i+ zUeuVK>O|Sjz8!+jDoQx}&L#MY8tx^+b zC48ONNPWDsZ`6m6%5PzNJvT=~cC>f)!=FKvGlB~di*30HqRxK6dd@r!M|c*zrfR&i zfBBPdfxF@>DjDY`1XEzOUSGo{FG?ioCP0 zPgYZW15hKu=8)@jef4E_DlaSmb@tdf`z;ITZugKnNJv~cov!ad@0lV^p9p{Pzcl&j z`@1k4BAVs!4@4ssaE)}+_2-?3H~A9wbCNq}-*=WPCS-D=7)w@FoU^~PamJQX0bE@q zaVhHTH%Ec3ZBuv)4db2tL7oUP6}=U7r-ty;^%Y9H+(SW+$GM%e-}$M_{UT^qoZC73 zqASyZaR~2%K8$laXaC7OenLSm=ih;T_PN#BxB3ipgybTlwDI=%J7@nvE%xuJu*#mF zW-c3Ux_;xM9LEb`jg_mj4{mj*d;#PRrIDOVwu`B=zkgrKUK@rWdO9gIWvR0t($5KB zL9{$6wAU*AzIrt$+>Gegq)>XSE8k7mcRIyYv=F0oxh%F1NJYJ~U;3Q8`c;OXo6wjR zd1wF7@tkxm5M1j;a(VX7zTzM3ukNtk%DuDi7ht#_C3%7()0N%%=$!qhJh_y51;OHk zNS%GDeRTJApzR(TXK#-)p%!L@}#u6LZmu@dInOEq6z`aSB*TvsUQHEBZGN3^obG0@8fX6}A@aXT(F6X=+27dx>?uigx7oV}Dvub1t-MT@9q`EI9- zk>#Di59i|S9}`1Co&7|@J7<3rtLp6MNwRhJ1x9V1{c4h(vp=o~uM(%M z^nTL3vme-pv3ZGe45J{VT4z6np^qLDi zanAmF5{w5D8sx25L7yqs@P1OAv;T&4FUaa$Cvq#roPEV-$mQnjt4`q3W8yexFA3`G zWnG=UtgEwM#hzGCahq6jWJ8_3tp7~n9}1$iG3_KYhcL&nm~7FfLY=d}>RleJ^kj<= zb@n&QiQhnS+Fy^WP{=#`M<_|1y)?r)`+%qWz9hswWa=+Lzn6H<*Q9^NDBta`nM$hrXboaF>@u7l?)b1A#PT4Sxnx< zgZM&Ehty6`8^s0~E|MnTR$gLupQR&&c7gQp^Z+U9?1c`7j7m@!K6dsmg6FCv;p~67 zgI_hIG4De^RYk(tcPz^j5RmTZV=|51Zq8>6o{+d?oBt&n16$ zoeHezCj@_bkp#&W^|7L2&+`3m7P|{hWv4n(wzIE^-~tsToc;J+9BU$nZNQyW5}6jM zv#(!0w3_?i4|$Dgl{))}Hl?g)5`4PXNPWDse_$YYlS^T1JvT=~cC>f)7w}H5@EZib zdXWjD&ig+dt;c_*gv2&H~6+;wVks+?L&u829=MobM^}!3vKZ8K^Mo^Is3K4 z(-vO`x*^8S*-vExP>xjC7c?-&&e^XE(iV>gP4-xw{i<8&UJFQGE=W#~NP>B1{~Cir z;Re`u2_D&Q;hg;&yiYDXh~S8dyt8lnm#f_gQ~0Q6aeKzi+27XDJ&0cybb-gt*?)2a z-R&w;I|zv@r_O#PZN#wIoC+%?5AJF)$|S6J4x=G z{qN1vwwN!#KZ+!-igWhwUl!U@j)03yO_ZX}e(38N8>T$Gl4vB1clJ;5l(4Dj#h}YH zgm?D&#Zor+4WL`%+|Jowyxvt{AZSRO+d2C(n;0#S>-A*N3vq7e>^rm#1G#k$mx12# zxz*X%KaEbXh2-xvr#t@6*^j4>g$H5j=XK|tX)YVi+1F~$aV!HnRk=F*Q+b!5xnR_V zG*KGKxnzq_Xa5z4+6X%#>X8(hveemkdCEl`hG=|JXs=by*9rU`##@X9*+By5W^N6t) z!8cwcdn>y%=j{7);Y}St6~3TNHkS}}_7nMS1v6)#4=<}4@9fL>3(N&7buOrxV1I%p zoqef+oTVKRbki77ciF4X+0Ptlk7sHS_;D|hN~^Q~?OS_*QZImCOGqN4Q)fS7Kq^=b z-{Ljq13uyG_tpr5U*U(7n%LRPeVK9g#&wkXx)Q_mZ*jYxdp1=n^(d!Y=G4X<=;8&R z@Ijn^CAVVSf5|;p@lJ9)?3XKx-*`4%L!Ev7yI6Nm<9Cqs?qu!Fk|SH{>S!g= zjRt2q`{|(hik-7>SA_FCcJ`-(jkA|hxp|ZAyg{7iIQu_Ycg|j@xv@2}yjuCRsr=aM zUvjRd`~+#h(awHwX|5NDYOzGOO7;Gyv#*81ID3f}(N?sn*4g)bgSWX=BDH}{wa)&+(7E;2Hq|=& ziu_!T@$lVjs&)3)-0M;YnpAc6^CpJDgA_NJ)TkHjiC$sLJNq^BQU~~bYLH}pI%Nlkj-#OtSUXCl(O}~ls zl*J4x$oXfg7n$ElH0DgI&5%QLdV8^kyHL6zhb5$Yfv<9qSLa9hm9VCZX2nAeOJ_3V zVB)wT2T9N&2U*u42U*u4hat4H5!=mJa%4k?9Av$K#9I|a!(-Y>Xg|mhPe%$ZVt=sy zWiB@3A=5k^C-nR!yTU+z!FsNy+Y5mXM-L0g|85dhfnhwgMIh)9h#pu<-lfo7MS+}e7evKIY`YId644yx0%}TPmV7C z$Nd zy)Q@A#@xeh(%}drFNt?NnZ?v8S|@_;9V-QEz;qLL%sQ37189p z!u5g0w%W8xha*Njnz5R*;B~!5>f?ta&KOFJ%V8ZnH%CKuv>%R`!cz_5T?p>?A`?W1 zBQ{;bna6<&$G|75#y@EA(>lJoFL(iHvEZ*Hx(-L|`8Kq3bL`l-zqj zfBM`y98tAICb(2^?yG$MvDhxD!x5v7%>?HPt`4dr*p#jB1-PB}xS8B7KyBjOZa8A| zseE}=a^DH+73X%t5!aVW+p0Yd8Wm$V9I^L!hi8H2#n=r;yx)y)_Dk>&LF;4eh9frP z=neiE^m~lmaKs0{rUN-rVKkTf92VCwHylx-Wya!)psF70aKvBtbMtr!$yW-J?jK1o zKO8ZJuSkZSVLcN(vfaWBN6cPN@sA*QLPdT!Vs%qj{7azOg6(d1!x62PxCag11FiAc z4M%KhO5tCTx>HD8IUSDps|{b)mZqoY(R7xhH2LY#*YnB-(Nu)j5{*>AHPQ`7wB$X z-EhP)b9pH)3E>r>t9@=Aj>wtCz5lHw_tc#3_`BhV@{MWLBd}4P{~+P@D+J?9bJ>^< zo1NftN0LHQmJUbU`iT>suz;IE7JINvM0>4r z!x59Pljd4=5u&z9VSMG&;fVZ}PTd`4--Ox^M;s$B50L{r3jTaTV_M{gBYx%+D|{Wn zN-vU2xF3!dH%dq%qtoGtS`YL7Yxu2RV?N*$!x5#shr#{u;Yp1dj>we;)v3ed&N<`4 z)0#2*^BStRSd7(@4QsV*9UIBP_xFZo2*bFTQX8J;T>_0KF@&*%mX_-F9bY>bRF*%5 z25o$U+s0`(&`}CKe9R(RTwxDZ=gC`TP%$`e+7T?ls2a=p266#Y@`Xl=BrrFLg~lGC z`0%9RUjfJGy}_w{%#Y(TL7`{EKICnIunkL&Yz0jXnQ2H@QhOOj0+8ZgoJSk z9Nqg?sG1ch3e7z!jr0eW@ihX>2crRa;412-` zcrH6EsA)P%m(U!eQLtw{FJ)SA!krX|dgkJ_1%-Saq-OGoX_qWG`^S*x(*$d-=U8FC@1&6Gqn z4bB?1yB^e4vF%SMR~RJK@z3LIr4?q>PD-W9vYmHxJI>7V-R6+hjoJw{Ei|&cNphl= zA6x281on9xX~5B=cH0=~T1=E3EKxnF-v1o6lfGz1?aWcllUHLfYWEGdS#H!WLmW41 zcaVzes9hE6;YRKDq0mvgizV5P+Wl(OcGRvt$!^rH?1P!00fnZAkmg72%DtZsj!2wm zY^oi#tH`e~NjuW>Y^oi#n|L;cUQ*w;sdm)v`wR~yOX_x;YDewTyWH)U zEWR&+qbo(DqjvMT0FU=vg1H!O)NWhJOdvt$i^g;`9kp9DClyGqS?h@#wfl_(GgKfn z$a`TUeWqB$W0ty3RqW!s*+X8C)w^z5W8R_h`to>iY#F&KnmBH7OcHc(OxAU9OxAU9 ztSx)u2DWcu$&n2m9Fz6FBtEPl>JZaTLdQX#_w+`g?s=RhJfb(xlUs%80NB#v41leJ zxdE{IOZWk>6G+toFlmMx0J~r>6K#Yjyo`@|mYiM^&kcZ8UJ?dUuhRjQ1@<-24uDO| zWoDV67Xg}hXh)g)OO$I#>?FX1v|ymD_at$Ef@q+`%#}!1GFT)}gQs|j8T_$ysL%zF zcM{Y_v6A5;*#!Q^OU&-GbcE19Apd$ggcKbB6M7tny*!JlcqG(?j|af&fG<)>VgT%? zDq$d9pdGZcDiQ-=ORnLyK9C`vnl57+>Aq=Gq5{7kF#-O9*BI=(sPD8vu5{;Xq+5X8*?waNe94;{J6K}6Uo&ndR7Y70WiaB z!5VlzE#|F5!>@*Q_FVF3*QvmY?nUs37fFz8Q6DRsgkZK8y~0j)qU-^%6$sXP09dQXQdSeK;1-$19Er%ZN(aC`eLJ+8v*Go;M(X1Sz_!z6 z!z*9~o|~f~JK7I`)&7>s+>M~W7nvYB0CpK~IV#VA3ZI5QqZ&T|R`sQHP)+b_pf?4- zD$#WStj2HL917k5+Uj%b0NBM(^ZFjadqD?%ZXEzSgBLS55nOU5cN#3VOX>jF$>YM{ zJi#?Ubp@NUbpY(qeOv_vw*<9~bGres6ZWTV?(U%8ac(yN)?f&4nUma4fJVpI4S>}< z)8W~m`7w3_VEylQRa*o4B*tz4?9MM8-U-?rV>bZya?vo5BNY~ThxZ?_xQ4j_u%;I= zq#?KxsG7$*0QM#CEeRWu+(M9a|47t+0Bpl{y2VYfUI`xAZs7*Ndf!HnVF*U3$Pa+M zU*8o!9W+O<-R*7wY;{lf`w^=^Ydv-YV8;~YZu@Iee-RQ_P6xnlU78MxO4~BbaURQZ zl!oVV_<645P5a@sMI#k(jdTNG`%l24HiflLayI~0@ILRBmJqjt?-5B{6*mC3y&SpP&WFFDVf+BtX}evBPe7YBgdYHV`(0Ow-Jk<;ZZ`n-$1jZfN*#}V zk9!^#x1ZerSe?pl|_#yS+&Ezd3Q7(hY#Uyohi^ zQH}IUa|zJ_u*HM99`lmO)XVU>s__G02e68wPkjK|D%hW($pNrlj6bDzAvmNlq9c6t z>i}5awf55^Rg#ajlUeM6mrCmZSoTE^xm9^=bhK!D5! zV&m~||A4!@Ros+uCw8>QUm~Zd^Z1fWJ^l}p9+9;KOO9-*$2X)rsa2IkzZjh5@h=8l zq1bu+LzOw>V~@X#!i>k4Qn`(j?YxoIs6qK|BgyJKzEIP2Bg^}^1>L;-*gr*JJ-#&H zXpes*U&VSB(OQ;hk5un}di)hAjK`N~yson`jW2f9duzyMpUl}oHJr!a#;SV!5+8bx zznPNMeT$PMuHg`lLqx(4MF%Ti)Z3Ud%(=BoriYR8utS@h5Ws z*WYtdyBN;n@8ye=5_GI+Oh;3XU-?9A6}xw?C(h%4LV|HaLW8^$#?$eNHT<1a_W(>= z_K+83^{(lkng?K>`G{QZJ2z9;;_*!!=kX;$J-)1~$Cq{W_{Z{?cVo7jv*gHzdVE>G zp2V&SqP&=P5_&&msHZ0hbsqmYUdR2kC*_2w$8UZd9)BLpdHf=Lc)EvN{-)LH@ueBg zt!l$aJup92EdnJhVo-zeH(3 zVj}@2qy+@u7l?)b1U+}|TlI`(@j)P23P#eVt7%q}G!S8vA*?pFd z5V{5Oou>^+QI9Y50HiR7-c&pi>cYn!|3q*Fl_Wg=wE3Apy1@C+CaOqy{B9S7!L^WX zo|-O`?eQO3%@tt)e3;k79$zkizS9P|(w#Gv?v@U_>7gyg$4kwy^HMzjmQox3$0>@k)328a;a+8t;d(b)#DE{>qmQh>3Qn$ zFJ;Guoj>LzV9Aj!@9_;9K=Lp}(dEK(FJW6fz7ai7!hA2P%bHcH$2X$)N#2$ewUVQ1 zV{T$MsmC|+14u)L^i7?jc2cl`4#@B*O*qR z$6r>PpQ{i}E;GOhX6j;&&PazYbdFbF0U1**#-(Zvt)exz*$U zUN0R~k=*-1fBW3(@h25w%13bNPdR~DY}xAZi(sKl?%JSp1xr`(KYmf>7nl2LQ2RKy z^Y~R>aaFq;bZ?BE$A4vtYxh&2u`zZYe;=P>rfRQ(7RK0l{OMyti$4NwjIs0hZ+*_A z-O{k%K>K3sJpK?SMhz~ufzJ;X+ivyvw=JMsR3y2UAZc?XYVYwUmg0zC25Xn#k?j`F zIuz%29{-9?>A*OI<33{&n8kH(_mIoh8DSu|&S6bZJ;CNEsmJfohU0q$ z$?Y_!JO0k&ufep0cfjuTyob4LxbNJQYewkDVWX6*$DcYjw5R;bkT;b^a*?n_sK=kj z>t4;ZVFRM?l0s9Kdi;_#-9_XuqGFr$V3~;aTID?cW=;$f@eD-gC57>oPd)y~idEG`DF~7;|P$sg0mlw z-*PJ-PPMox<4){okH5YzBIofXmwNoaB>h(s_Oj&2mU?_c3KO&>iy=|aPjHsUKLb=l zvGe%TmnA&@RN@+sFQsxDC);@|pQP0C-TIK#d3>S9g&A4i_s<)T|Ah#w$Cm~i?eTy9 zEENnwG?yhREY2)v-s8V!)YjvdCE0oWu^;emMyi#*k~Ht}N6t+Jt0c}%Hr0Ckm4*2RgQWJgsn+B7 zVL-=}`J_#?9{)0S<>R7#(WY9DzhIN|_)Bc6_4s+b@5uP}Pi(67`1`iG)Sqms_4t*4 zcW>AH$E2#qpI?&411aug_EdBn?TOBYdyoI?O`*XTC2*7{8uj=WzeS(-T!Oh6&f~YO zlnx|lKhchUYECn~XBjU`7m)Z@$g#Ux&#AgU76PC`3D zZu7K;Q0MVaTZ9Mpq^=P4_=`&8@t=k{kKZTHd;G6xwR(JMhV%FnhVoE8AwDA0MhSX} z#B(0M=jGUUwtoTa5!lo~>+$=)z#Joq(RRlFSS++gy1zszM`A?*CZq)eW&J!7FI5n= zkeIm=$w~%``YJ>KKA(kfFpW`Xy7C z9bRLw@1nlb2D#FmGvj$N9UlMI9mdB?&9L)QJpZOp8~(}B<)0kKe97ZIzPZ}Fd3>pf zdi)i1CiVDh&ARpYW9U@s@h6yd>+z*<_4s#~^`kw$^gQ+W*RiX^CSP$9u;j>=_xJ|g zNb((uq8o(gp2@a)d?Ol4!dNfLXU!_r;~UW|lHX2>ZXukD`6jzbJ-(5Dj`RmFze5UE zk8k*2utHzEI!8TY-a0fqA6CV4$)8=P0xN2Wprsc{kZe&OE9!!vw-?>RPIaPekN+rw zF)B)U{GW!Ug8PUZ&IZ4(lE}13J^qM)L#tU2|H5lbtJLF{*_5`LKj8m*jnv0`{FjRJ zfn53bqN~UMt!LWieg-tv=T?v3oHw(X+;4*3_PN#Lw_}>L1V=X93i`_DR*zq8IA@ID zgPh6nw(Be5A104z0h1an1nlF9p{HT_D)hT;G`a8FPZBYHdLsV(dKr zd#^L~D(&tK>K9|@@tZ%)O|k?Z4Vn;R=kZIHcQv06dLzcp^y#x zlQS0Y1|9HNJ^oL<=w8Qs$0RUIeAvCmzw$%6#aXcP6Fjor!g>59e4>R{A-G0G-s2Bw z%j|&Et_P@(V7ueoJpLi3$YqW%903~RvGe#v8L|pzkh(yKoSUXk`rpE+-76D(D*JUU zeDi;4^3$_<5y6+D*$w|&G*ST@M}G^W*C38=?)Tj5v1D=Q@vq#^?@UOD+TaUC5?94} z{O9jKd526$8T^kFY1?4CV-yP5Z>cAuf?xz2z~>!JkISr zecdoyTzoZET)_6PZj6t~3T0np(%xAXW*+AxbQIFFgmlUVFgQjb6N6z=$IkbJ%% z(|CLQoyVWCU5-DjgXa&+iLLYa?fAW(@GjUr%GKjv@*BU7Bdr<%nXELDlf`y1_4p5T zb;8#Xy`L1Cvee^$`63_w67g$9yOTnDt#Tg!83uohu*i=Lv9Z{OnWEz>pL+bI54-Z~ zp}Zua_8xx#->WhaJHT&GXiST|$M0B<{qZ1z;a(({dGGOW7(o4}z+O`BJ$}2ITq~B4 zyhc&>W!icCuJbVQUnBS>A<}vLSs!EH{{hN=R^er=X#N}ExR=5 z@n`W{J*gI`uJuaUe}Q`ZHjUgoeoy#)s_`EGk;(S@l^O|}D%hW($$9)Cy|@l8La;(( zM60NgdVKlaIH_T3EBJdaktFr_gL#_8NDhOG@#$v|xoMZtsmHJQPY{%a*YFzi0iW>r z6MKX~V|bgSCieJpUuHbMaUG>DO!K9bJC<>S|1ec5_4+KnkMiS{bcEssm4D`*ZZfxG z+|3

~hZD{0gmmuf_tpOt^~D*Gdg!OP#$TUz7Tal4!BPS>mOd~2oHRSz-t?wtKg)Xq8kiL9!#UrTuB?4M>; zo&9%`Y-jIB7`1iwf068*{XH$2Wu(w_#hqEs{wr>`rbwIyHq|=&xwCnTzofRdsn*#q z?$678CAFJPwa&i9s8n!^qz<&H*4a;P?VSD7Hq|=&&oa)f&$6l3*|)FnQdihi>+Dxl zXFpaU?q-v!&b~V{1Y0QX0IAU$+7lIK%{%)HkNgPEXGg|3`kf^2>~F7?3C{Ce)Gmf| z_B*FC{z=d_qA?v!o&6hh4e2%AJ#o(dNfL|)5*p;a!kepb_H#&e&b}0-ctKY0diZYh z#>{JX#m>IdulQ6G$2ogRP-ide>g;7*o&9$9L`t?{Gn}*k>e*DVpAa+1^oj)i zTjDuq{{t_?kb1obSR*jJU!ZmNe-BRwLrMIWWrv5>KKGX>f0G#grXejDD4;ZnrzwbX zBxbHevXa3fsRzEqOR}B4(6*496Vyhr0fvj@KJY_cVs@XUBZQ8HO!c(5)WFhFLSKWt zo1iXy?Cdv#zg0=X*}wiAqcSw+5Hv&oF*`Kj?BD#IPbx@7PfeG}cJ^1S;xOb@;|D<^S^`kcYlcUQ&Iga^~$2)t8r?dA`6Lt1g z={)M}>zj4!?1M6rZfEZcnRV;zrEqojP0aey&R%++I{Q-W_OL8F<4l$u+49cbpz}#? zq9{7ibd!K>b@oPd0||F|(I2$fD%IH=(GUa^lcLiI=VFc_lRA4Ne+}tdUVerYtj^x> zjj*pgKP%>~L&N`oWp=wZMUp?eP6bwUB7(|ZBtf!8eXQt01TDPiDt4+9Wjp(u5Oh~j z!rA|PH#H}6I21fmC8kFHS1x-znYNmj;S0USv`U@*+9NK`NARs)BlYplerN$7$h%-i zJU2%}cC>f)WuE8om)gUfFpD|lkqM&Cetad)JPt=#58gmE-r4`V4}T%}8c>1YdJf0ZsI|)!BFDtC>3lF90p}xz*X9QY{R&3H}tcCC=@f zecMw~HuoOTpK)&Yg#KB4pqt#edojT*w&v>Wm*%^MRR`6Hv2*sz{@}&SQg#ban;1K1 z-~Nn@4Spx6SB#yr@Afl4(;>MZ2aSrcbM`$xOb2qL!daksF?P=P4?*iaR%d@5 zzj7b`K=N)u()}X|=AC`J>O?NYam!JviZ%IWO=A+C0_rRguh=lz!^KYeT`-hVHe581OW_Z^i2DgzZmq=j>m$P zpQ{i}8~Ak^#yk6GPiNdla4%3_4dI=AUrI2!M}fx2xt+7GS<2;}2YNlu?VSDCIjO)n zg!Q0Jac<}ACye0Eluyp^chG*HTb=#Buc=ni{d58r+jx8YowFZ;RSB!W>UiG3TsGY7 z{e@@4o5QYB9uyOQopbw3yF+`*cZJ-iG?J6Wb}@DKeRz?zxi*YMG&LzSWvR38y3}1n z-bD0aQfRML&e>nRli#nA{rw%HgGph0^hZ{g}_G&Ql1U(HPMb+5PT~nXAsUM<}%b zyxdEq((3FhPqqgrwF&%VLJ}FBI{ViT@hl9yD4&q_K${QvKRHJJ3H{Fe+~cY6YDrD( z?B%}9ID6wdO8qc^-@>@=RG!f9NR>(r<=b~uIIf5P4as47zl~;1vCRhf8Go=c4$Wz)^a6$ zropZJ_(q{Yui`#3({7-H6?*tb(%q{qB#VEwMIP_HbFa1#iN4xmE9?4d3kj*OwkW}q z=3(VSSV5K?+0s{A7}AK;7D}RjB%ph>g~6RcJrg)OBNeJ-VEan?;(p+n88XM(cQ!ejp8qo2jJFftL$4HmDq zSp8~fHPzwgd5x)rzS`ok>oY+^8Wy&OUn`n3r4ssTi$@oSf$W>GC+I$p_0<;l=VmM( z2^#0IzS`p9LUc^2AA>&gxpRxqVtutmu?y{K8t#K1@|xQ2 z)fR;rpELD4jt*3Y#g?G2wwQAPJ*q0n^%dD8t*^FtU=RFCSbNW9r}|f0m}7J&>^{%y zn-;iNTO1<3ISM1;lad43&Yvv<>GJQjDWd93JESh3^Bx^Cufro8z0B2r6SJZzrQVe$ShAMox#O< zHh+Q!wd&E{ei4uU_Coe9lBlobwP3*6e1}cyv0Z>E(zi4`rQEB$keWT%u;0zDI|RA1 z6Z6W6Q_TD{5Gzqpt|39bBr{UBkylh_ev>2{e^0ZTyndVb4HzDc2F3;d@dgh`O2O9% z7-B&G5$wP}t6v@l!`bc;=P=-}&-sexNWd_kBlkpB?GZgZ4l;$!msoOSgQuUukergSUdd_t@0N;^GD$1f^-Ki5opD!K+GF%v>GH*AS&yCxOrO5);8n zt_y$pH)SLjf}44XiBiXOy1wC3UYVEb2xM&ReKm<26ht#)`l!$!A$vT1EvAnN%~0O4 zEG8(wEbSvdCA2)GmZ$%JH=Owi(_(KUyBtZhO7hxnGW+(Bua>jjMSv;NH$5=jP}=6Z zA)jIoQ^7n25!nSlB}X=VHyS&C!N&BMUhe1zzyi-chzIbMk3Z!k*!SlVuM9{vtDBnsx1b^lwCW`jO)MjqK zcEa|1ZgyCFKx|)>BcdJh5q7{ue=w|+$sCg^#phbSqy%Bj*D<@9+|+Jr6<)|;YRr-& zTR|;@N?UX-$=wuX?H8N>R4aM_!J}SuK!R9a*7C`)nVugOZa$JTx25Eb;3@gYTM1w1 zH717D+?{Iw5$B+2euVGw8WYESaAlrJO=!UfNnzSolEt(mk}N^XAXjda%HG?W>rLrb zb83O@E!^B3bCoY!O{{h4UkkPMoK7|SmYFda(p}R2~NEUZv zw(cRK=sU-%GBxFH%tWF$W<6Qg8?#p@v2JgCo*l|9XSfo$nk7fJ^v2APZKVFBBpS<_ z-k2HuHwnk2T}FeWSv*DHG%JkeG+!=JI$E8i~tQ)gI zpvM&_Zp=ED%mkyPg)e|#RY_zb=#5$LcX*AyXja2FcunHQtk}t6@E#2de}(TA&EvAC z^u}z@Iq5+5O?V8`EG1bi)*G`~!!s6F0oCwWZ_J*%o+ley26W z)9AlH!uEJBJIvphnPXI#zFCsRgpS6W7PuR;D^6liiiEHVyiQVMditOT-8;vmX9l^~ z(Xz}Unc6O1@Hg`OqTE=}dyk&cG$p$kP06LtD$kYD#*=ljlqOp`qiM)|QkN--78!g= z6JCtg*Sy2-6VNurwm+Tx=BLyk{yy@RU^AmBrBY?t&U^GdN-f{598c%E8BL+4g+`XQ zx+6i#k9|Z0c1BYgaP*Ak<-K@cEusRJXsJ~1f6i!1Uo zW+sVqY>r8_GnyNBr%gN3XV_FbqdB7+FLxB}`8L(gXfDg7gZh%%%BI>G%^mCAJI8Ld zsdh&5{F`vGRrpvRU{mdk=7W#B)X_H8&S=)J!^gO2XPQ)<(d_&;zcWN}t4WPk)1GJx zTYg5f;{_Rme@)h0W%iUBwy>L+Pe=e<0n=l8L|<9psf* zCo^SDuj1Q0`q1_@yrZU~iQ}erB|)clWnHIsWnHIsKWD#gr?~G}a%4lNc4hqli6LSG zqOW7xNoZ-vX`cQl)crC+%~yEUFQkE|zY6ugOwe4@?S)6DeKXvm<=z5w)4uPp?WTRl zP!pZ@l_t7r-%^*Rg1v-(j!Z8~(1TKroAxc0n+l}PO93kd9x>2P`<`-9CKy2CR+g_k zw6mxECCXkB4+=0LEf^^4#~c#|$Fmp^WgeiwT!~~QgGEvee6E*pJI!AGcnj~38!Ge) zNI`@g@hwK~rw zOuzSAo=c=LyP?o- zo++7Qewm=!34FX3-Xt~SpA^r(yQvNT{NzuuKb1{dLNvC~{d=}D0US3`b)@fhE z*T6P;UMc3SZN-0q{q4Er&#qH}73G%To}a}uJdz;UqCQqs2f?LY)PSApMA_56*CDuB zMOintIn&RZ$5;}P!vWx7Dv3;s%#Cf~x5HoG3aw@;e74t^R$0xauo2@GCeC~C^!3*R^8aD>(1=cvX{`!3j> z3f>odC8)LFb0oS>`>x{!WhVC>pq@UrPWyJaDPwaF2aWW(b=vp*{i)z93H~x@uFtL0 zzCBl_f(?Q{0DT!~r42rYZn(MUh4=3}KspLKr zbass0wD0xjgce^4x;(~i+V|=bu4-LCx5d~^`|c@;W0BwwfgX*qoA#Y~65rSn{5)tz zjNP>Fir@Gx9KkC^BA@fU%b2sVdYr+vSA!M#Sg6X<4--L&ugtGUPROX|Zye8zui^3x^1P6w}=_QThTMk-+A=mXvT7hwOtf&H4~Zrb-b&J$BihWn>u zS+c6)rhPZP#Y@+vl#1Y5B8f}UY2WRycf=uA ziAOXn)r+GN6@c6w@&*G zYR&NtOVJ5fY~$@^!A<+t9m{bl2RqyI^UP(#P5VybrQqSku*;O|wC^P~xP_HQcY^d# z8p*j7nId%Bw>YyRMmP-7_@vO3rPIDEr#Rs}L@Sa)d#!TQzB7;Ed+bv5=ZJn!3ga%W z)4nzSb`_0E^Fl2ayBnmUe%e=t&`rd%;TI${rbT|*_uGl=>Q)E}yhtw3e%d!JKU#Y? z>|W)5+IQZ4%uzf}@+3v3E8Cr=FJ?$bFw|hQ;p!wRO6?87x6_;(Wg3t zdJ6WZPIB7!OU4sZk02POF`{v@``xr}%Z>KHr(Omx^b)DGPWu-5)k)TYwrM2m8(6KcQ_P&FVpOzFp!;)nt^H=%PHscdY-f1 z)@qxMESr)13F4*P)H$8V7T%3|sy8%NctPP4s6-s%R9a4uKDlUR&gHjb*4 zzq>V)-NuKNn(zsau|M=Pwx%uBEcG2<6UbEIduj~&>?THj4JQ4$>pXhUX9LbxA7j6W zlS2o6QV+BK1X)M3&$w;uF&W+&W>f8;&skI5pwDEJ zs)IgHH4lU5C~g_4Q9kX7*0JRWeadn(DEONMjuweV2Yu%36Lj71rT}@Apb-Y%Vi^A0~H`dXsoFD6WkXqFhu929z63I#iizFX>hL;$hZ|P8>^&w3Y)JCzA;Ueh(zQs$- zuC;W8(7up|JuM(b$2x?LgG^6Q7d{^AcoY1dN)lrot*+p_r!m{0KdB-y){$ux27f_{ z((~*tFx|;C(v5X&zJf2Wp9-(+H3s|c>pOIiD_uQv{zuZ8H&v);#xta53~Na7{JWmo z@K25||KvF4OCCSgVLl1mSclX^$2#7kGwE2zhi2W5b&R4@=_BroPnUH&)**%KSVv{E ze)L#}^gJEw=*+GT)2H&|U@SSZ<;OYjd>qo}y}Y*+tYaO9zYbgJdB2#q4h`Q7`^j_3pIxT{D>{sz z*lDiekp#&W^|7LI2x@v!ZFZ^?Wsh|4 zMpxizI}S&f4=<}4Ki0A9dA^4%_*_s!!9yjwj&+ndH*Isb2X*whb*!V_CH#DaCa7MF-B?F=?j%g`t3cPp*o}2O%TI9` z+ym4n#%`?RQtpD}NQEOnV`A*aIxemeT094|z+)Zj`0X-oHCL0oL6CI+NP_vXj&1U* zOFLi(6Fjor!i{xw;90P+czNz+S?rad_7L7XRrt%)ZA&t?__IN^1e-&yV;!sSWBy_X zmA@R+%3~etU=S$0nbf<4#Ff*rj_3G^$0w!fkHW|NmnJ{m{^l@vMl^HaZ-_=J;2P;3 zaX)PkA86}fTaw(3b^JVw(FF;y8~nFO;;Oi@jxr1ano>%g&IdnBRw+8x@z^=8w)Nl* zL?dDRSjXdYGd9FEpaKoy$2va$EU=a61G+!X?Z!GLb#oOM1DY7;c4HkE_hqb(juI{a zEsk@$v5uR#HI&=x@KewhpIgT|{^q@t;cp}#)ST}4yRnXaSBYDwK-XunJLhp}ntplx zgYk5-s<7J1b*!T@-zG8_jLRV%ltyxz+ah$VBe$m$_D1yZ|Kse-18u6__t!q>Tz8wV z;RxjtSLRH~cui4Ak$KFVxxrA#oMg_FAybm15;A2fGL%YDN`=s%D56k``aRFPhJ7}D zKY#rG*!S+eo@c#l+-t4(*=z3;CQ4dX>lmAc4L@wGMIfyT6ZKeSw2mAl%xJS0q$6Qs zF!EWgqj*lkz6j>OA-2;xJ}PK9d5e0gI1XJEQW*YmTE}l?P+#dFG;kyi^G@q%TMzZ! z5m+~iJFTO{=jf_K5In&`(v?knm@V!Lu`@8T2!vNcB&&6Jl>u)9^pS(PIx#kk*3s)6 zl!cQZTy`W@Yhr3f>v#i$UnKKwc>aYW;nuKQ+&?;~w`fGl0%#>Rkj| z6kFk&MezDh!9@NOMbQTT<@J|;1~;bJ>ahvk#CrXm8U7TaPGk;vWxaku79sQ%i}()- zoZ$6u1N5GSjn_XBPx}(Q{wjdQ>u0K1yzx5zWoBf#aPKU|je}OWFHtG5(Bf0x#m!fE z&Hxg$*Utjn==J}$JgV}7bPo={AG7yAz5dEzh}TbR_=&z5$VQf?wM!xu?e%vu-ir>-E3DVD0taD{SrcZ$hx~`Zr-~`v9aB{T^Y?>%Z?Ie3^@O{?eg( ztH;m7V^WT2N(td=ufH(%085&;=}_(UPrv4=BD7FLhib3CC$?~>;RV5HGaahE{w6h1 zH}vm&=}_(UuZ7Acp(Ayu_WGHUgwB>w>-A5=o|xwVtwX3k1m*E};mUda8(QIO=?FL+ zg8kRYv0nd6)nn=phm&n=7_Yw&WKkN;fyU4s&3gUiVTHY>ltYZy-xvYn0})m6y6w>Q zv()Ot)+~%SJ+jm}fN)1h=v__P^DAEsDwGMl{wk&5^@|;6ZL7@RKlJdU)i*Uusvum8<4QS~BBk3pnoX!I4PW4!)0cf}O* zycobs1m6%)d;JQ^YbOM5#j(?Y+O-}|D~AyHH32cHfl)j^i@-lE;IF666k5`hv81Gw z#!ZDo;%c8+qvMI*4y0xX)mAiRGAR!L?%*g=wHlp9^bsJ#9J&P|*6Sxa7099xYRm^- z{~EwsEhXgjf4my11Pb#h&|{Vn^7`L&i$TCZP74}vf-O!^4sjLrUtWW9c&PX%?JqkqbT zt=BL3DqwFp{L27u?g_ph*fEDQeqx?FXwq*WM9SLI(MTd`uqNFELNP}wfl4)`M6bUF z2=`c0$m_oupQ-u=mc34Z`&f!EC9+=skT^Eolk*htX^tbMvR?n|P4Fv5jXfGQFGp4P3`|07;CmDu+KYT;sAuYYR4n2y~a&_Ea4di`xuqG~6NPXRR3#kOAm zgs<_+2jSNMtqo!uuYVrC;3Tm>0CXUTZM^;qJ5B7VsYfB77M$rlDxoUk;x_4nzHr<^jHwvc>M+O zAtZ@C3DEQ)w(wlvUW^cmp1Nzv-wqF0NuTaO|A^4n)Y1-d- z{YM)hYV;0teH^-S&ai0K>wgN5y1gR6N?6=_{mFQ9T5kC|KpwED&znUjVZHu-aF>MG z2c%(PqNHWL{@lk6aTZ9+!bCk*8L$5crd+YO4Wxr%B73Y!|DT~)Fb<171^-XjXTZD^ zVmq%tb3?<)RteG%4qX*e82)iy|1Nx&#;XWIO-JJJ?7aT-M^RtRfwi@`^ZMJ}3D@^w z1dp_kbY;^X#_RvSKIW!bAS@1%tk*vY?{h}p1oWk9M zXFi^P5yvd5OD&wh>*u;myngXWa-|N3ug~8FNvVu1{7^Sm*Q*MFJk=96`mC*pi4qK;w?cxAnQL1rOzu|@oJffKy`Hvw(8u<`nnB|Gj% z@|^%z~7T z!@rB!`=4HaHZa8Nr!^H{SQV*cY5GYuq@un4w#c3F`tQT3_4-G_yz%-Q;M98ka~Q0> z{yM_eUjHft8?XPH15wowiAKLhnDhFlwTY?bv~ymEYOjB2GTx_TXa-~pTl!p8SJ4RD1n>kt+!uq(imWUlG6J zDxs4k)O!8PpcYR?aw`$)H(|`pxN=_qd3*Z1N|#GpBm39*wH*xORO=_RzFINd1DyugNu= z-IwdTV~lt8$2ioGg*U{T@_)v=C+k+kyTkh`6Fz)|>_+#1Dlc5{{*#O+yl}y6tN0GQ z9s@bz3YbQY*o$!S-bip+#&>_df$*RNEKA(`hg04frET0kvF zR4JjXHl3gK>JxnNRAl21n=1cdDfxQof74U-`b{T5J*Ir>T_Y~={SYXG~);j06@ zxhHrBVEr7<_=$Pyph;sunBhn?l1Lh?NiT!2(UE>Zr5aMA9PuFtUszH|ju_PqTSsBp zI|ulRrT9`JD@WviC!#qyYh#?mAuZucsjM6^>``OqPT+MMhxu`G#Nahp47CFGki%U? zJ2|4mi^$BAAdGh;F=FM25pUqmLt}YMfG@Wkw+SI*15Z^U{5GK7gtxNttsJoiD;e$#;j`#sT1lE-B&46wt%*Iq!j%d*(s_GH02B>xr+sF~c z0ZHt(fI0=SjU17sm5DtB(8wURkt3$ysiI_UE}%sLY&Ib*>1yDOfVKs&kt2FOj*Vo@ z+UJ0d1hA1K)>Sj`ML>TAu#qF)co^R-Wb9l}4)Wp9m0Hor5tlDu|0CfFfT}py$`O0M zK#Sgo;5LLv}eF#AlFw z#I30UsAdq`$Pp>gnBschYYnKQi*4nIj5{$l3_$P*8`HGEkt24FM%0sSk&jeq?536#NBro;uVlG!rj(wAVf*a$`K>F$Mhgl z7^Dheq8_V^98nhQM;UGI1*vnG7>s;&6T+?dETFK5f;le4c5+1j%x3gk1bkJ9BPDWj zM3r~3$bA=t{f@+8-pLVF-@y~sZ-M<}aVJOg7zf|~8iKRlZR;S&tbO5PStj)7!XT6h zk*pkXbOaU;bpSo!V6IL~n;JP{Z&PeScnE|i9f{=+W?xmw$PulkV>q4;)&j?5mfRQg zJ3`RmMx)4j;9D%m$q^&g#$)@r7sQh+aEmsw?mTjw2I%NRC+fFuqd_d`_4nazv%- z*inQR8z@3Wwt%n)hj>}M&|a1n&7n5u1eKD1*%zXTm-d+qIx$2C; zCv48$i<>cPhb5Rx^S8zF4HF*MX<0k54fQ%OYnS(UGaCt`6xWAF!nn-v8i-mKM>4Oh zgds>Pgm$rre^uZF31cvz(H1rmMzv?qmxI?8E}(oOVK7ycjMwppc4P1?+0Xfpqtc0=tN>s7eeD4q= zVJt?wmF1UwAz^$r3`=}myFMg0*G&ki{|(z(XN%45%k|x581L$sXYiP~(+%;O{Gaje z$@V?ogulZ(-5PE$vKyTMsz?~T|0LrH5(cxa;_n_uZ_iR|8<LiSjHask0>rK~u)y?Zi1ZbW)?_+H!g#V)Ofk>r0bC|nPe3DK^pB{u2+VpP21gtk)H=a%TDc8@ zr3r{h4UFP>Ed(~QfZvEVQ)o$3#*)$%aDPYP;A+tEL`MUe9zwMhZD2Af%K*ROC{nc= zoknygkdGYN6d_i^AbK3guOZZ!4xV-Ep;%y9&E-Pd(!mBOwb+weZ_F#O(M8<8oPGpH3z9{-jjH~7ca z#Xq)Ve#XIE&2c!xw=zYU_b8YXD`6Bt=dlvT?Q*UqjLUMazZp>gFDhFJgNa)SW4WB) zC}FVYSqY;Rs@l7^306Wll6mDM41pd(@M9M8I}lGPg=;He2x&3`7C2HtoN1<&Fod)Q z!F$4_t}th8zJqGA5{A%^gL=l%dof`vVF>;&uuM%&p8badytyZML11Ma&iILW>Yz#W zKxpAeG?GXftVz8=80tu?QK^QMC}B(kVZJ4WB#bNz@Ed}#?5zd7%~E_Rk(DqORE%oQ z=fF=mj+Dwu7{&2%OR;kWcnm|6w3g5OI0>WIQmi8K0W0BfX$@AilQ5R-Li5)Ip`jy* z5i4N~YOU0-Xb!I{@LrbVB#d{k(dci&V*ouvco?l)38TRk+_!{Z0Q9npZ6%EI_+q=n zeh1JV7u!l0+y21Ysc2d68$jQ?*jB>W@hy@gd<{^vnN3^&%3s^a)wLJ}3Eu*!FkyBD zWq$;)=qwYvI-oj1Y$IV@{S7}b$DFqV)H#5Sgpu<(lk=f~Mg_2uFlOGSbk^npS{%Se z!nhx+56Sr^K-&Y@NEmhdM-^Mj`vTC>05%dvuV_TWmjM0kU@Kw#g@w46(j03u9J*W3 zn3FJ8VM*nc16DhP`?^~g2_s);kXnM!-jbYzvF9In)Xd!=K*I=2lUoU6c^&gX+F5|+ zJJ?7V@dn7;Dulj8gbm_L=B$Kq3g6s5%xXUf{OEsi@<*5Ald9j5a|yU=VKSiY*l$J* zCUc->8ng9nh{Iw%JjU5nq>=*hc|<8^kse#=M63S_>9*-rs;c zEVNDcHWJ1!aD}+u_woZOL|9tMN*M1!g7YdNxVDXH+TTbRIbK85mcTkYe6$Q3M#4Cs z6~4n@U{6}yN*FKT#*tfo7La8Y^?5JpB&>u{{Bc9v2GU1iqNHUdjD2|YCl-GI=~9@e z$0{RXTF{g&s?yT_p31N=sRDm&a4QIVtquP}R{;UprJOypA7)OAHBP0-_oTgQyf(Xz^Cq zGzbaf90}$#n@Iac38N!+Bg_VA7Y=_Xv-dwGj45D`MwpW@j_!=8uW09S z9jYaa=^sR;9MLH{R7)7k=ERhw`JxWh62>z#@d*T4cuR+B38VK6vkT*69jYaaVi0OX ztoUAsY6)ZSJ-DYRVf>{-wS>{QnBk_NPO2G=qPtf(V^rk;uPj3S{V0!L3s+9Uxbt94 z;N~INFHVk?Fs4q!uO2y^#*7UkVN6TM=jahSl^p44R>G*AH>%icRyf2+81ExM{3fC* zp8go_gDka9A=D@ZjZs66kkGqEqO(CMcmp?%{kr6O_;AIffvu1hxK#=k$oY**0ehZR3gW0(Z*V89|8OMp$|(f`O-Jwo3;8z_ zPicv3s}u-n0|NFqQbU|+rd0}r^fiKi4U=wVt7@C4QB77U5PHVWSOnpaJo&|#uvH2K zF9GZhhnETP=APgUfwgrw<0s~+gC;!;!bnG=kwns9O_~M5GDljDN;RZJrQj_Pc3DzL zDfp~UOjU$s?+D;imZD2!m4dJF?uBsv1)iykEwz-&Dg`xKz~`l%BEWBV9OlO<1yhD% z#=i?#bB9Z7u%ew(Fh37Sy+9b~NMgh)1^Y_HR6aD6HwE}i%W+D<``8mul<;eS))KBt z>sBe~J~FCfe*ox!i*1#H=ASAZ`!t|mU2Llq%)Jl$A8Fk0icR1+beFVB!Qt=F3kVkj zREDsmZIyxx^Dqh$z8g^EAhy};koQjXF~U6n^$lVhrC`XLreNa$O$uP66wG+juy&f@b)boEU!>(E9;wl!ChWaFxI(0sR=jMk#nXH};4!YpNR-)HqDRj8f3HLrlX3 z0Tp$yRSGK4!s@9Sg6k7v_xEYcDFyYP2i^`?pAhcrZef&y3mdUs<<6X^Ey*bb^;((a z7Xx~Uu&(x2_zB1iKSp}vb!++J!gfHr9Bh<=m-y!SVT685B*>gq3O@J_#b(j}2A-k& ze{k|gUw@bn0>LQ=yd*iyfGMQe>=2)d(X9H$i(bJU_KUN zJEfrW6K3?A1pN6BM@r64I19;Q0{(Y`v(xt zTO0l*O#N0Vh>pXmk9K@aYq@aff-}e}1*0M52&EL@>LH3RJgXFpoPl4B0p7`RWP<+# zwd8(Ouww3*8VLNUFh`UEx6TuR6aQKy>rd&3-e5K^G=+X+H!ieBm+>wk^}m?|URkeSknA*yLlD2CzzJUe?SQIU z*m(Wp2f$+B^}h|FkN`g2KH=BC7HFiAsTm79R&q4_^QGBxtXn1-Q}c zUxBYTO#*2%4!;|-_dmV=g6J$`uE|~di{UHyxF+0 z8>iOm&)LU${o94Dz5WsiHeP?nBJgyOt!OKRIj=vwo1ke$tAe^K_{8`fK3VVV`3tUwDIE?e!n&15cb^T-dEcwb$PgI==Y#U+Ylq^$*7H z#7O9Q9jd+ljQD1hgl0gU1YZA(+t3BTD~eG65tPTTge&LuKMQ@DaKjMnr;=m6{#y7P zeQ$@8ZEP5?U*RWPX!I#^q@!7{zdF8R%3ia`A;#-}8v)`25moVFt1!7`sdW^g#_O+( z8ghh$-qrC<@%mqSIPm&k?FX-4>=>_~0oLp1x%K*aZoU37sEP8pu8bp@7uM_Nc_Re2 zw1EFifOaC<3&=o+P9DJnZ$~fmcXVwg59;|L?dq`vZPL zjaaXrMKoUj9}h>=e3jtv7!KDd5LolzNM0_W_WD;YjHrW%Q3gOo z2WsbeIIY}`z{Ui`qy|Ruyb}WZSipacHdAOxQ^t}q7VuO@N%Z=Oz5rxR2-Q}!fyt!o z0{pR~NY!d|8qt$LesSnpgjlbi=)XX+qgzPEeWJ#E;Pn>-Eo&^BcW>_B`wLZ$ia-eILOh2uCunoYybVcm&U|kiVUH%DuR@UcZoDL%>!?s)aMn zv|hiE4j}l4FliTCRogs{YO-Fx(EkNB)1xL&{yrvby?((90xRk8PXfHTCwMJjO&ren ziFxXvN!>vhCMV}Vbw9Ov~qyKZoU3S2l11Ygm(bi>tb84 zKX(O8)P#=%`oYDvUjII9ysJp~A3(7Iwo6*Ce?%Sr04(4FfQk^7w5`|Q@pFhLglhn* z8^ktV|Mxvj?Dl}V1hI|RpL$bFXKfgu(E)6{{?S;FO3vp4S`xs<>wlo0G5!{yw*%OC z{jZL|tj4Sz26QZdjn}`u4R&l1z6|JU02{BrPTi=6;{%Zi9J<`r>(9C#tEX}Zu1<*E z-={I>^|x;Z%T0lG4&lD;7RKxU@&ZVML3q-VoYx;Mh35dw-E2V56V}yky#5w=TU)&T zb$~WI*m(Ve3!q=`N9dPCg3MX3za*xxKXCVZ7l2>=FHZjGo(WiBF$3{Io+^YxGGGd6 zy#8o1=H_+Vh89ez@V4YNPst6CT~ zo&&bP;@0bLv(XF~>wxUCsLz{4Ct3m6-h55=oC^VTeOF zmRQtdmGSz&>x$ooCGmEU?g|rwk4f$N#PD=Has-4^)`tHxZhq_ae}(-4%wgmo zz!@>M>4G!Jdi@h`Hk4Zdmk&{V;aRW0N(uaCF7TF)BNKec>mSk((;)DnVNT%nb6qB0 zzj!3M=2ccI*J-7tg1fwZ91o86-oZ$7R0V-=@pFS3x!o3F}s`2`XieDzQcvJ2(Dm>?F613OP0^I2JKY}OWqd{7Y!@q^u`=4I_ zkLVQQ_0yV)-~19%$z}_HPpN39s}9v(|2ui`i#`k;qC>UU|4Cz|B+Y3$RD1pJ ze2h;Zko%Gj)n0%82aVUiMTcsyKR>2(@#GKaQ0?`vT53X1=}_(USJ-G?SGX#n_H~7) z#^I4LlDiomhF=`z@k;@BUjN@iVglC+!G3OXtk>W5U!^)ZoW_g|qrflpN`3 z*6Z(oUMcpPSq?E?{~WYi*>UaR^i1_e=Thnm5L_RUjWl}^QvXkmiaOV9c3-Z`)+&iN z1D^M8qxP8?FCePB$I$lG+~-iw6_8fgc4374x9z4iXgi-*0ngi_trH_A7{6!nco@IK z8w53k<&KU9QQmvtjVv{g@ZJNOVewF9&h(b_=nb?Dth zGiHZpnW0D7q=8C_#1u8pp-12tlG4HnVp8izaM z8>KM)AtD{5(KbxS=o&?O#}xDY6M%CB9~4mQ8hhH{$r=KaM&d^>aA;7A2g7M46@h64 z#H0pB@w_qu>sr9?PMayTq$y)bX$QE6qj1(V=y;+-fJ_LX+KM(XnUn>9Uv?C!T8&O4 zx*5oBhxS2;)isD72J&MFHRc0d<1fHT=s8lhkgic3d(GKBZUI`%GD5n>r=LVrH6V=~ zD&0v6X?8Od!P_X&2Z8r?9D!Z;bsZWz!_cs?r|=dQbd7lvMY~|mAYm|h{9A#>aU}D~=^6q(h~VB9@*gLjQUupl*AUWE2$uL+5r3&5{B4)f!5jf|Lryc}cU_27`!^rbae(N5RchaaNw?gXKZBZ(2KYh0d< zI}gp_wFBPSa-6O)rM#zpCp;9;D8jR8-Rc_e-J^8ud4LwX*jCrL^%lstjJ*lab{E^~ z8V4$2U5A$Sz5sO8#kRUea$g9ZjC~2v-$88i>4p#BHcIT=PvQQ;p*ysF?_ow#RL8Ce zs48K}x&5uom$Jrm)|vro6Tn8-XrIZzj{$ljfQ_y(BpF|0W!9zxniIfA*VqHmMBvqc zHUzNIHF{!GIa|v67|@{rHo8U(&j1BJ3+Q(TTU}$|D72^#-6a=}pxK?S@yHrjE)J|p z2={fjFuF!p%roA7AT+lmr)!M8$0Xkm&;Y`^;*73Q=^EyA_&nZZKr(&j9gbesr}6s- zI1+H9Yc#$)qLV2HxH>68R*bIkDym6RX%6_ouobIo4BKjQ`vmY2){N6NzUip6i8+84 zS`$v!D7w^SVgsP9L2RRIyz`zZ<{>~|2eFN=F#@-`_(#73x)Q`TyBYT3`4}AsFDF)P zd2#4gvbx5tg#nd8a1}yQc-{U+*T@4O&ASg+8;3v78{6(?sFe%-qd%~L7Pq>_G4vc6 zFeU?8U{Rm9x$a_C*T`@dIb<`g2WfYhC}~+;`@XxYd*5Z<;n{9VYA)io}?quVp`1>lp8!c1FT;|}~j0H~Sj!f_&U1Jso);ho+2y;Z&s8ntdwvEj7?!s&6k-;F0#v$$+ zFSJXg(-u!Hh2?i^L(xLSi^(;N3dkexL7*6eZ0DL$5WhK5ej)xOjd^|wmW|8!%bH2! z4#McoX&2z?Jo_NNC=2&t8NPy)G;`cWta3XX#_23llq?dH=Iq9~ck|@q0Ou82i}TE< z@R~-_q8HEyz1)*9|KUjHm1-c!NkG4(o2 zcp0!a*_6;13$jp3%Huu#bwqRW125`0l8K5pVZ%XEA+PKlypfH9c{PF8Bj;t-RK=w~ zqdtp!kr$$hb>npe)Xl+n^z1Q6C6)8q-v)P#@Nht59bEAP^nj#FUPJ7w8-Ox-3ji%8 z%t9*-SMwTG@YE2(TLA5Fu~RO>V#A9ikiVK8YQWu=H8yI=uvqQT*N}Ur7NAo%Th@lz4ds9z^el6E{C&HRe9+s-92fe zHo&?${7osrP5qI45AUz?QC-8sfj<-G$Q{rf9k@}adXFmhOqKFFvKm`hANkGN;l8Qp znrGm#p!eP=|4GV5{$ngF|9ybuy)#JZJX7P9mHz~Z!Dx0Ig7^mnPLThK0J`16x$bUt)D0LKxM(;(KlmDLTs?=`U>7qlm{P!{zQY=UG2_35Czpr~o zm83aUhidun1$?7u61mHCsFweJOEX_9*{nmg{P)@0W+TrhI#kPl&*egm@l~H6bf}j9 z9>|E*A4C6^P%Hm^H8ZBJBDwsiDgRrP$1e%o$$t;ci3(gZ1pB$jvGQN!C^R33)0nYg zX6O!*w8ztp;Yqu`+d?ICcy* zV#P5Q(THQQo%mHwnEnZo&e3R2renmh9Zy9S^PGeMF*Ai5l~PICc}@!j_`jAk$JToiePrt0KP2 zio#R{TF){<;@FSfW2!Zfo(`4nB!x8MSfNU|tDgiu-f;wW-Pd(!Y?ngA#uh}eRL$_k zn1v#MF=x=hm^}V%L2jsu>3?j;{EXwoF_{UBIL4eskZ=m(kUaZ!1H8E> z_#MFNIh^qm^VC6;+JeyAk!U25G+2{Hf-udIrlV2~DN!6-2ErSbl(3#lUUBFMzS9lM z-d?~5Eyb4-S#j*_>X_!70e;DGq*PWMTk#uy$B%ZhJ%{bkICROGA197oJB@+&c3?Ff zF0H|ecH&s(f@uEcAUxa76270-tvHqi zZ>31=4S=?~*j60-5}($P*oOdp?P6PTtn2uwDo*3S1G?g3TXC!^oV{BJ=fvVRFAkly z-So5RNu^_#2UM9byMp^D$e}VOc2hvDg4kx$Ppcj#YmWdL9Kc2#ThIYrpJ`76G&_Ke zIF@y$(pg&tXk7psaqMVENcD{U5ui^4*ob4h??ep}{u$7P05;;-ina#MG#5S=4qa|5 zjvc;=HCj;wmm|b7`!wdnu{`s!x~dPXWeE3mw=m+^%UJk&eL#5BlAJhp2s>RQcM}0U zOIVuReiWqZHT@cZ_X?ml9Bjm~GuzQ8-$m$tB0=V?ICeKA%U^K!d#8Y3_%BZWXukYP z{Yg%yc~~gmkPMhYnoU3J^T1&)39M2WH{w`%e0folxess~Qi7})actjD5uM7TfS(Lo zvEo>kX4tO6oXiIPyfx#*u}1A;+Qd3Qo2>~aj(t;J>DZqF`Z9=Z#IadeuuC!d&e|VA zY$J|co)J~zJ)~e^k_U(B-bNhT{BcxqS?!etREe;(k`>3eqr+>2;FdO~X@4V*O*{j< z53s=wZz02m+4S?~W%Q3pz@}T=iesrqF!{0bz5?Vei~77-bP`q^d+|0%0wf*;>13EF zX<2b>&~SYFk;K11%JjT#EU~D^DkF}mF~(vMkg9}=0r*acm^M z-XomBz@H9rq(n{}`(qGps^>vi?noS-oj6wGGxYl{z;;;NiDR|!QS!*=2>!uB(v?kn z7;$U?o_|FC0wHOEEx+8uze#MF#9wtWY( z)C;VEjwz|xO+Tfne*J_TO#wdBa-2B!+ez#`g5}6-fVL85-_z-YHvRPO4$=V-j#wN1 z3EWOr9NWA}ccsYhfd6q6X4;Blr{S9LI+6!7-)%VbjV$F7o)yQw$7>VSfH!g+nczd> zSe|W4JqY~aFh|5Ox6TuxOFWWXbv}c4kxB+JJia@xID!4c%d@hc>qm(cYVwcKO*oq0-afR@}&*Q z!f(Xt<6+_nh*4~}GB7@!T$Yay_a1^fX4+MZ}f zAiW$qBtSb5eGF4;w0( zLNyiuLnbbcBlL_#bo<;Va3+EO0hAGik%&4s8qO+k0YJqa{05Dep@;1&yV$~>K z1|LV%TqL&$6n`({>OS>)>D%x_Q2;g)&`CD`7+q&7jed&2V>qOm7+nhF^GsD9ftNQm z?FuL{)P~Sl7n=4ElW})|k~@H?y8|#ve1S%YH^ZiJpdmD7THKtg$ zdjL0c6e*Ow4F=(d14!uuc(9|06?+?O!bZu+Bw)`uTq>;biT!dLFcUig9mL_zrWn+CJ6ANHSnT9-k4g3ek5gVHGSY+x{tX;_Y2Y5!5LGtN~9Z~sX z3nE9k-!>Ik35PR^s_;%9l=EhtkEXyn!JlM(L|+`K^_a`8-m>CUY-0FV(Epznqr5UYIr3z%?r)>Rtr4B2Wo{KL;xb-3U`K zdZ`qeubmm+G>9ej_ZqCk#WHzv`KUJ)NF8}}`J~5K$c8+-9ErkU{*{N9qlBgE@G(i! zTyGSjcy;9Q<$RBpJ^k=$vG)_w_C80*5gf_9QWfO6)T+ z>ais7N@0$SG3?&*w37W$#Rtc6)5Mzfd=(1>2{CR&btKv!(Ff85FRUBE^YI9rVFABR zfVL<45|Gsny(d6B5PcWOeuv%{pk0Zc0CL`;*RQpPy?O!;ENB^#UB4~k8aHD1mkJLz zu=|;SPV$T9SUPp0(V7Tsh(qR67E%i2AN>zEf~Z?WVU@u= zQA9lhc&4L>1-pJahqtUrc@^*mM-eM_{q*b~nDajX_PN8Qt{S)c8B6{Q9y9R=pa?45 zwV8G!2wmTBdeI}DSEckr9mU(+i^)4SrtT`|M#%7P+=!=OqXA6ck0Y5E){WqK7XWkjTSVYZ0d&`%1E=sUTyG3w=&t>KznFR( zz$Y$7N@tv!uDu(`kGMRGBbgVjYxBZ;14ADUL8N`c{hOSkz{@#~WXbk#!u0?(aqtIB z!S?Thaiv(co`459ideAyyZ;B+a0ALDz|T2~Sh4+k`FBvzUIn(n;Zk9ZKdOt`&fqZ< zCjni+;TlfX_zbNtJz1BJ?RZ^xH*0*hre>;?dr(ugKi{O+_;+K1%+HWujeh`EylQCT z+BlMV<<|HDwM1|a3nkR4UE>RB7zj^0(ib#h*Z6`z4{W)^j}o_Q{9gE?+_%ib+ralZ zj@Ynk{65%lDV%SCpLHCuW7qiGUWJVa%9j;~l*4BfRUsojK!!EGD}{^kH}PxNCT zUpe%h0PR5Z7a)H)bWebGC7KEO$d5yk^sgUIhn?OVQy+p>5fuL*Mil@fRv2iJ`W zNRm!R(MlrA=Eg}Z0S4eYemNChN9@OQ>)aB6!ET&PSORRztt4T-Wau9b625rLVLS)I z^&SGp1kmH;km~pXJ+8kAV(4-5E<9{I4d4$KBV__k%{cihknG4$97i%Q+&IaL5(vG+ zBD&)35`b_6K+PR2xv@he;hum7IQSBc+aYq(27JvP0h0hf=O|*q4w3Wf}KQ*)Z-$*bOP#TV8 zUf5Zk=amsy*8;u=>D-_biM9mN*`ZkibP~~lKt?(=XMj#8Is?d3hhELhO85npTVvhGRREV zOJ_$V;ffnzKP^c3;vjzP5!a0gloUXB!_03*RXJSu2x91N`29NkzC3`DE=EdroSJS} z1IQd)F2s?{3)c;Ku?C?#EFu*j?u+Cc0)E_aBuln068;^~KMt5!MvY_&U_VryiM zjK!m>{0s@E+y=;%w+i;w(I&6llq=Bt2>#MS3H4&9Tp^tW;ZH}ppGNGID|l99-h7$1t=>{Wzu7q zDs&pXoRePsEt}>sIal$U@Z1}dURMBS(p!KO@4#g>9Lc<}lU{|E_#h+#+Ynd^z?XO2 zwG1}^ycC*`r~fRI-uTV9;TT|sjh3qrV+yWkGCD8pq{s8+2wY8%)!o`~x@1ay)she6xw zM57%M*b9d&MOjE~z3LpqclUsv8;QC>33FplT*rsKBXeVA+(zap8-v}TlrT5`xlHHp zeP-iekiUyvp?WZXCkY%DKo3gq>{aR*uKx;R=t1ej6Zq8>0J*l<7%4A-V+N(uKuQ5A zk0Y5EZcySyeS|i(h;AP{Hxlj+=n)4?ZtQqO_$ffs9Q-Sd+wrK*N`-x05%n_QwT>bd z?08fOw*@Kt03UJ`v0}%gM@wQnIt}ci!=1$IOu)?_jQGNHABIM~S?)Fx?49GOyfREzlqY zkF!uho!YrtNb^B>$&o74h@Gni-wbTG!_$e|xw^-*=%mcUG2lNrj@Yns^$QhQsv|912xx!_|Qe}|#b5%+gSSFpv(*Tvo| ze^+!BFBT$;FXBk%m8u}ndm7q=;CC(L-;Fcu6WoBWx_lD7uUu3yz&nCJC&^jI=<@EC z|5@~rf=Ue|{1^VHoet)^TmIo_i?JA}3FiY;Fo5SB2Ye*j1W)NUGjCM@)g&x=t0?fd z(JI(R$cpt^1L|sF{e_c?8P34Ondq@BF>T^W;A1RDY4}2Pa%OxXh9;f|wA{kRM49F& z;+5#_9q>JJa^42Mj~o`!?~EW-@!u0j=2|pI4U^2bz|T56nlqvgYB?4w{)Y5uei$|3v?4hrj zW6RP1%u)q+!|u4t-mnaV(o`LGb8N}A`@c%k?=e@B5jd5SFigc;^yWyhrO|&z<91k6 z0erhpqRCs3g$A}mYN+z=h-WL{)CO!8E3|4g$F~znBNLFbn95arY!AudhW|{evKz~G zG{C7O#V}PUvQ)SGCkY0tNRhYP#LiUnJPk@`sx=PV1*EQJe^mTRLm}kY;|P2XCIr!o zK9%ghq zs2?1U6&T@9@aOXYHiLRG>`tsp_#FOR3}7>;rw_sJ#xieNq4DOzq4Q=3^>R;O{{mx| z22|O?;X&QIXiPK(-pX>^pnev6EW`v~@SuKtISRyNW&vMJ4vXklLXaEOs}zpu zoNfaCuCt>#W>9Ze$fR`y_^Ipcm_fZEJ}4(8{ug*Aw78Vmq-6&6_0vq976E=cIYEBp z7L?wR!YtRWg_mR4c?N$FbROB1;yRD~;-*~@Oj(X%+7-cExiFna(@f_X%{H+sg7Lg~ z1KC*5tnkWp9)b2D_>hJCHaK&gC&zmc#Q^Ut{`^kP6h^n5r_@C3_#vESAI1V41~#4N zCA7;Z!leL}4`9=I9!KAw$-FfJ)ReH~&32w$UE$F%c5gs~EFA7UAK}&$6H|fDvK-fW zasn0;uLIg-;c(}vfh2@;0QeDdSVVsSf?en7(8?rp5%|B(j^>!o)48fiD=%8I2#!QM zrt{3%Z|u|neh)b;u}RBxp3`_`N9wdQ@V;R?(s`tJq%h0z^?0&?1?kIRnI$a;$%F-| zMEIM-dhHjlVO@ZZ_6@ubJ4(r-)O9poxl!s;;wYtdpc!Nb5tg2sW;)tpwx8{2FY)50 z4>8i>NamI6XaZG0aJq&3oyfK8XlWO*Ee`=+E8rc-d6m&^M;nnARhI}42J~bAn~t`k zyHY<9o(<^v05%=%AM9UP!@R8nw3)Ev&33fHfLVp!r+|)GINZ_7;j^G(;xh27mg73w z!9B)A9JN~rholhhXv-R6Hx84j3cMaUETVq|L9U~9``skd5qK|WM{`U^tFpt`83TOE zb#_cg+ddSsA4|L(_?qkNn2vS?lcUt>KH!JKcBJ1(??_>ms`EZy=y${!46|H}Mi#;Lu5G*+j2t|PBbisO zcL_8d!3!+p7sQ$CT@7x9M}h!vJ^pMV=Uqm(z3U>DUCjx9hCg2guyt&H$IlcH{tbWr z3}Dl{x;2Zc_nEgGAH$c$q4Q>Y*Q1m0K$x-10jh4{aPRsIzv3w-S^#fnIj(oz1XxTA z1T@mZ;ojws#v+8t%mw};IV_@I6+y0dUHjW4vlaMWXGe2P?^<@v*f|dT%yo85?;7%G zOlLQW*3O1QN^H_Hz3a9frcR3iuRu z7g3y$&)G?cyCE0hWfnHf8@?f&wPoI?tEH*d}^wV#43|Wyj6T&=|6J2)mkxKzjuNq z{=N@Tt?(J%L`>^V=tcCNX6&w8P6N2nKjWKG#yx3cD_q`|Ds(Gc5gLr*(VsQQ-33T$ zHj$%A1srlLNsxFed`kx-M@<06o8U9Zz!!+WRGfJ^IFC@woByt?;fp>Kp z0eKjQFSX)ErdqAu)?al;@?A&51~Rq~G@CJsJE~CG0rZ=WCT(=cu_TQQ?VvrX0}eTv z#C^l6(3QrxjS%OILyl=AegQ91qA;01b%o(`eJPAQj4QOfGozkJDhh_p2sI*ADEmFk z;?bm94mp-2NP3yhcoNh&GakZn^L7{DVvz2+pM;k`RoY+QVsJedX^*dXO@lMO2$Z~? zI`x)Uj)E61>V1wKs&j$q{r380gtYr|W9;}R@@HEe_w!KPdVK5U6GmZbCZ6nfPp^xY z$TBv5e!G4X;}38oSMrv?&R>wL^s$GcVEm4V1<~d6eP$TE@F$%oqi+%Hk#C$E@B8ov zs;gTDFZ?T)UCB;I#x2J8fl;z2K>5E)_82geLwUnNm+W$6_^Y18T^))mC0ofT2_=(V z`02Oe*3H;>Dc(+|L~sxsDVgkV`V*s{N`JFI8O1Wh6!&HRZW(lL{c`Bfc+fi)V*KgI zr|;rDB`6AI58aS&4pGt~C4lMOQF^Od+MUUWdpYvquR3neP+ZA(7e=806Hj&)=`_zp zx+2X-kmj;bJbCTLrMW0bQ#Oq0H2;Zg85fbbM?!HW&Cjn(Q+7n9Z=Qf&&|_i|JdTH3 zeGMF`D?SDF`A4O{wu!xWM;hJ{h96$=bHm_;-zyXRsr0${oNLC$&9lc8wUs)S!3%#p zHZZHyS^vOIpPh!?ngf8!*v0``lHw>5`0M`r2v=zpb0hAE*xW68gkQ{9eEWd03KaTW ziNq(dRO*{0;l0nUo*Gr3SmS)#K#bSMxZ(3k|H+T)QK`Rv$_N)8#<=!H!tg8+c*n{( zr2h;=8B}VgUd(+IIl+NfXHUjUi>Mw_Oh>%tsP|lZ-F3 zll&bxN1#PbL@YNp z1TR|N%TZ6iCYjcH2gbU~k+)yN9%jVY8Hypjd@F)(7!lIc-&pgUj$~Yq&lDlv@1b~d zXYtn8Dar2Ov?oW)J)C6*oB_lr^<`q-B&DJVy73;~(*!v@7a7_&rV3!_?U@)a*lQ!> zMi&~8Sw-(6NgG=h_3=;SmGAMxPKdiC6j#!m&nUsx5MQ=fq%ZBnQTXfI@ZlM(2zP=b zbMH&IZ`!qMB=s%#g%+Nz$i@3#FIxwsdFl$(+{gP9|AdWH!1{!fl9k) z7uI6Ay)?{6y!GEE?}lZclvak3@cPe;C8zF#joZ9O@!~vfL?G;o4H-+UVpyQ>-BER4 zQfMe5LEA{3Fb92m*d8oMiZVK51)~bjRO*3#q$No<#Pw zlwjoGnM%EeM?sl~J%bTynxzC|1#-4*CnJ9IgaMzD$2#GKeg{%io70`midC@r1jL8ER{Qu z$DGiLM358aC8dt_0Z z`r>L<+n_hF<-<~(fGgvUD%)T(e1XA{Ri#jeM@@m)HU)}5gZUkEv2>$g{AZ9a<9}M6 zr(&$}?ZqOpy06FRET=?gUyu`)v&eFcq^`vi=a7@9ki*$6zQc>2HuZ<_Bta7G-Um&@ zEB$8`&Q#jk9B%%6b{l=U1UA^%=*BDM3AYAd-PT63Cy9HJ1o5m-#!kZoQhQX{tJlTxM&ll_*IHmErSp3 z{4G5=(PzY$d9(Gs)?4@f<2I9_-hYGOv8gtS)^|~N-Gy_XG$jjl;Tr^xfAI_T8Oz>{ zAEM`QeJ3JGS!5}BJ3>_Iyp1f&wFRDP5kkpV>3bWpF2>@U&>W~Aw+vY*$|qA(rwql2 z*&$Q^n3^3z$ye!*!fnXbw^cFhKtcQL14Ei4)U|IATprlSNShl+WT5-UMhdmz^@2;< zR}0ZgO2!tC)4I!T-saVsHZ_YXi4F(n@;HxsGP9D&p6^N&jJjSi8q?Dy^TjIdL3gKYsaz;lC-N}u@o8~im|UQ&>zDUFc& zUmkDJpLksuDUAb3YKpx}CO?&S-x5$RMdtOy_>1r4?jmIr_H>i-KbLU2 z&wa?etOO_O7O#FN(TLjm^jS#=0x^qe=U^`!FqYHN;DeJ%pFO$!lVH z*Y)?bRT+@o)YuAhUq4}a(%L~=q!k~4Dou?wT&2sr#PY5ybF)+|)Vv<~@b?W+Qt~7F z&6oUz#|}+);2I&Ac2)DLn05-4_*92*%WsQim>y$y#(vO2-fd{Gma$f`TKL~8_9w>K z*7CQ_1DG$`N^ooW+b)*W`{6;Vy%)KLUeGEQhxwdEk1AE<5Z7q!W65*x$3IWL9NRvU zJPRM_Kw!Bo49xKQil}NINm_tUI<@zcvSk3~Cv*RJ&WF;eQ^5J2(gwl zdOkwF*n*I8J+=L{Euu(wAul|C9SnBxi*_9}8b5o0prqZ8DOI#v3QkqW0X_PwqTP8O zQ#l8NQMAW0T!7zabzf{|cKp6f%<%j19Q-w46z%^R`6)#o-|!kX`{U7pw*Lh4Y4}5U z?yH;|!6-U33Qnt7Rs2n1x~*dMc*@M?oR$k}(!2Nav}G-v?rO%o$Oum(W~XOy5>+*Sg0oQcRAh!&pNqep8RIpa`0fu9TZ@1$(Vg)5i#?sY5oGH! z#W8fH<;Y(8B$_El_A=nd8IV+fFKPJ+T0?3cY#MUVymCo z^?CvtU}5tO*Qb8Vpt85^H9n@!F#Sn@pChFYBKr}XsVqY2`2Mp>T_$A}0^f3!Y(jYn zj!gD$$)}>)$^itPAceW|zdwOF!ALi`kmuN+M%wVA{9Y`?{X>xx7^J;&zu@OUa3u3eRS@V) z4c&|2Ru7}>W=Nuj-u03Eh);1kw$g#77$IG2Y%Ud%(H2{eo#l(o0t78 zcC+J<6pRUZ7Mv9AiP2WdP!V`da##lcBC6Xwo6Z>R^SDW-HSn&^j^@bb-K^2}Iifnd zPXZr*ogH~Log@0p3B0Y#>@ETR>UDPH8FxI|7wbZ{wYLlS$Jg1Bz0mohyD{E#kE!<~ z@UxbqXI1ur0+V5Y?u@EEe;E8cbdzG3V)V|M_apMa)OC}$4;yMk7=DP1xi_YY1M=qJ&q8tzF}m$0syKEa6W)M7 zTLaj1lSb#G>T4!`2+-GrC2`wL4&lKg?*Z?3{Q1Yi;cn8jM@*Zz=~q+^4r4;LZmZ~9 zc)Tel?gUiF!r^X`;}KJacEEd(!!r0cBSF_qVpxbvPDcWt=j2)app z4PKe@N_OuJQl7zhK3cM8Fx2&tp)Q)qQziRKXn{v?+Ru%8g*lAI|9Vj@y!QWN;byVW z03HnTaQ6Sl0;fyWwPqD`_EP1uT)?{<9V?<=bo=-_Obp$&Vz)TnS8KKnPeUr@1?r_R zmH6%VBgO31`uv9JJD5skZ%6i81EIs^)D!7Yo^l|~US}Ln`|-5yB%D^(v*>i34usvI zIFfl`fCqR!1%Y!d;Li~>m_uI$vcaO}ll*!LeZ4cjAr0gs9EZtRh^T%eoT*HD25sH} zuV>-<9F8lF(NY+C0)5esiH#H#u@DZ)oL>SAJ%47@^Jl{kqpBj{yBviH3r}Uz)8{a_ zQjFIQl+L6vH+uH${Qv0s@<5xa_x-ic*~i^P4%bC8rK@}5n#X&PYaTL%&T(blrkgQS zL^5Tb5;7|!id3i!l_rUZ>Z2lwZ-oY>!Bq5no_DQ%&ONt&f9$p2^*-+!_q*RU?6ueG z0V-GuU`hxZLs{uPANw6GU3$;)=wsrxR^Q&jEiD{^{>ys6^a0I5OJ%1I>`sz3oIYe9 z;*}asAG#l8a48aNup497^f^bq@T*F&ecyoPY-0MQPZh^p_Wbc{@arR)yTKGkRcweQ zWa&>_d0&sfD_+Eclk~-tQuV;S;MAD0;GY0=E+v>D zX9+k7x^^qndM)5>F%bq5IZxM`K8rphnEN5}5yhArUBS}D3eEzUa_)A#$musp{? zOxH@1)Vfv!@fuyr02v&L#Eh;zT1u(6nqwCzu$nGtyI+E?-N4!9uxl?~`!8L4mSxtu_5w+*Yp;^jy0#aj(Y1F#zJ{dVz?DRgr)#8- zf_c&doCAW!b?qXMYaW`QYfiROV}S&bz1wjm9YIiMJ~*DPZ5e2*sqj|^+8`#eTqLxv z{cjk~wT8bl(7u#lhMXbbBW>r*Mq3yZ}+^_SF4y@66QJ@xG| z+|sW1kJn5dSWZ(jrAX?U8PhjbGZR1t|3C&z%`~rpULrb;_aJ&_3_FyjX6~zLt1e^? zM+kAeni==8DV?_X#YUPJOV>=VCB~-fx3Jydgtu__vk4Y|K1SoLsFZJU`Xns=r%2G$ z%ytw_YDT6hq-K~;l|0qKTbQ~Sy^A^p#NyY)Wc$B+vPU08ne|)v6sE<@Teyy-ehW8& zG;iUHARGLRP5`bXdc3!gbOg-a9^mW{H2xNj0`i!LCcK3T!}Oad&r+bzP+~WNIz>Qv zZ{g?VF!u}p>$u*HNt6)@{T4os(LLih0p1UkV1}IE`B*rIrc6&Z`mIto02e?_Xb}by zIqxkzj7}fJr9z|v#h4pi!N*ZkDtHcH$|Nk9fyHliQ*p&a_Hd?9Y!E*L9eWPntAH)CeWPSmrIG(O`!ql_8 zNm|zq)lYZ}e=KZNPwQIhy~eBG!oklNVf_|fpPewAEiE_7|gJ!mlthM)fDzjTeC)s3#j{y;6*=wWiTuJLD7qia(^Zbs7Ea3#^> z=^E*Gz&z{$&MZOWy7mo_A3Zcd*UsVOo(F;Wki7!9k`^GSGYK3|*FGxeSEJ!i1zII0 zF-Ih{uHDsFNgU0AMkv7yIXxkfplhRERVo|sxR?kN7CBGXs$lAo;TA$1&y0-qDPgNz8t9HckbnWUHqdr>K#+)}^ZP%8bGhVH0?SC{z zQ0v;ucN;UOb*%-~d5T?|{*+k!7m%RQwLU1C=$cf8=o<5h0TWhbXQtru2WPI%`0yc0 zwj(&;lOLF4Ggs%|MRVZIT-_9pnYsF%9&hIAA6QnakcCX*N}?||b0ttZ*mXR}3CPqG zPlR>8^UWxy)LCTM>Hs`KnV`V(^UVdHg|92W5FQ3-bR0G_SNCB_QBlZS^8qa;EQxzF zS3bbI8G0+A*F89K=IZ2P6U8y$pL;T~3C>ebnkaq+^p^)G&Rji#87C=25maOuTv7(- ze@Hntb9HI}CbOB-y1<)IhB-AdX6EXx9{4?p+3f~=K(2Vq%+jz`dV-TWATw7T=Rj9deu5Ii8dbKTR{xsA8G`SD z#u|+z$#DgCDG$qBhnqfe82;og@VSd(NG}cJT$=?-FMcn zt|I>nfv%*)QUrBw1?5?zT94Vv5C1E;-iS%uCKB2jS!nAS$7kSuO9^Jk`5Bx9Ycw8< z9q@dtq&yQvMkNwMpNU zfkGNVM*L;FF*O-r}(t3Q-IEUaAJG;auz;$FbXR# zg7eZ*m@hp8y5M^LcYLYw#|9b$ko`bWMGQSIK)MWf5Z1qHVKb()^uu+q*!Zr>%1^gYL9|=q1 zo|??Y0YQ8REbKU{3gQwtQB4-1iIXToz$<$)v2N8fn@kif0Cn`>L^U~%1u0U7LBPjQ zhGlTlk#bB;>IalgW&!XOv3RtMQIktg!G1Bj+kwBCD;}dJA7jQ;vimvkv$^6iYVu(w z2C9tbFW`CbaC7FzsL7Op*ouHPR|a@_Pe!W=bs(-LDZgN)F1l5Z7r@K#uWps>IjScV zl14*7cdPi%ooVWlL7JxSHjwj?)M6$_kJr?Zeh$o6JisXZ^fG1Fe%w-HMnUdPfou$*d4-?UdpYoe2kG@T}3 zisN;w{?|x1GUn4*weqG3((Tpe7N+^q?bXy*6WXg4NG3IpMmOi7(AgS>@E(6m<{ zp=i={OI1jF#eAyFJICXfF^uot4#o|UY+M^NL`PrCF~0j=Jf^)mNsrfFO6UEEGU-M+*hG?~k;wYe#9-L^1w!CS| z@CWdJD8n*1JCSnC5S7O6bCT2IsO&p&>AKJ|#t?PKS|-VEec&x9lOrBui0*ES4|6PW zFW`f6#bXT7XPs>w&otl*a>Zi|QKhj;@j+OdfWPR;XhTFD5JR;0O{huo#P*mV`S=QC z3x<;mL#_U0jrJgb>3F|QQd^@BNa{h}VUWfeeG0NW1U8!StiD^5T-*=vQ$20n})4Kfsh`r}(1w z3?+*-s(VPRQ8#^?fLq#?4v8$kripI(JzxR@FDXCi$}+^MqJk*7De}-J77XvyxJNa?ww$b(hC@2J;*!RDZv`$ z@oO~Y8m6MqdoGPa8f)|tiYC@bszR(0^Qn@*!ai)t2Ooy6wcH@O_E-@F`j@U99S5#% z`Hqv+y7m=Gt!rmN8eKaNawd|Vk1L5DPuEC41LhVFa4rfO*R{8R9Q4oxT|3qa!)G98 zaQ#GyKM>UE3Ch#8nw9XW3VuHda4Rk?@t{a(UF(@&NgU;Y)}jP6`Df&&4UCYb8&Lu4U?5FWk~j zei_%bbD)i`-6W}XtvHr3nU=3K$lwb|%;?%zEAdYe68jS@M*;M7Z8`?21(Bvx7))_I zUHg1_Ld$p8T?x8YU`&FpRk~<|wXS{EAVJq2FJpA=xi>`DW+OqPYl~4d(KV?G(KY5% zCBKQbI{7E8HAy+k&&mbEKNdxxf9YDgcHnAVo6X{DU0Xs@>l)W~8C`n@smLgP-YxY0DXoM%#iauI0?Fz(aNuO0Ddnf!aySD>Du-;v1Ss?lMp#WG3G{B zuqb}@pSFCiV1ct6U%vX*tI!77;VzMth)6Q zbZy=Y6IM@N)yB3444ZOwAz!FXmyw{+wV^1Q=$cf8=o<5>lJj8$sO05YsF_#p5M4Wb z8v^}H*Z4!2(Y4sgnFSm1*Ds@MJVevz+8U6(P`~|gCDG&Q8tHLhPV)d~gP?I;dkV-p z4^7augNLy+3CJ#7?@{7;1a<0w@^r1oC-`Lx{*$=Ak4ZEZ39W0ZR_i!!fL8#;l*~Cr z;Y-l9*KSidc@&>MVj@gfBZ+3D9ao$Z|V?F!BtLkB;Glbs#S5R`BaRZy2LB%hRRsNj|=0lcJ8l;Fd zJzGLF{6La?pZrPR^5cVW+KfCFbeX#}rw@1%w9)YANooy0g3=fb{|sdC8WK0w^o>n= zFM%eA-g%X!HX5F%G?xC7$z4wL)&geUtL^Rt4POPbl|#c1dMd3oyv#QS)zItUHjdDnQ?uxp_uBmu zs?VGE+D4Bzjwrqe4S&Y%*xnvj5`D38gg~9a?&(2JY2w~E;=?W2ZxfI;7S2S<+%2#f zM+_Z+ViA4{&gwX9#t|DZwN!P?a>ZlD5oKR9+1&(ud#-rQI3oEGOXv9`;GgG;$BZLxf!XDQuzm%8*^|-Z z2nHQ9uH;W*r^S|+Y0av*R_P0nqgW*9ZOAs#c_{EZ$@P1Y=A`B9<$aV60g zQxk#4gFW4YoDIZ1HCY$-t7?F(wQ!!L%r=3Inm7?GJ|X-jocH3eQIp04(3CRqQ-J=D zuq5uO$*25L6kO|XLeK|+6V;@cqjVHyf#2oH#MGn}zO+ab4FR?G;6ycfzKJP=3w$VL zSOzB*iN@6A&Kf3}8Ne6C;?XijO?sm1BWb+={MB6X7&URWn|MA3ej-;qMok*v!;Hl9 zJMf#i;xTGc?QvW2L0HA`@Jr#+^)3tHsRMB}Nx5q##0rKVEepf*uU3+~rI=PSwo!P& zM&FXFdt}@*+_aLvf}D<|<}x{YyjGI*S}>pY0Ozux@mBH;AO}1&p_ME<8e6jhIgRTF zO8kwWPIpjVE7=pvuR6kSp#b@DX^DX%p!2BK2t-CwjJeT9nwwXtAm6o=IxpbmN$n46b$j*WO4C5;_NvpJCai9+qL|o|9@%AR7YN2S-UP)C*d&PXJ%;P<@A=-6k+z`n&JTXI58q1$!hNz}^j3K(49?uZ%p+;Xo ziof7WqAzBM1hUIv{u`G-&fCO2L-f{qzuJvZRtR`y%6ufSF+{1)EA;{47J%BuVPl9c z;NQMan0S9cg9%IGo*}AnL@7RP>v2E}Jvh-2t!aZv3P!OR_%=@_W{5`Ii`|zQ#Q{K{ zdT^p4I=ao2;V0l%D8n*1TM;Z~h!iI2C7B>9`*vKqF0_m>L=BJHI<1<(8&W1mJjM{Y zScER|bOG+>ipLnD7sr`mPXIn6S3JfL4I6~BDOl{Mfp7F=bbCb|5JS|c6xF0_Ui~@m zoAPlrq0v!sHIYvuI)k2`@}sp=`h+> zXOK&)J@ES}b5vlXCd>ZttBZt(0vZ*EjhZYTflca|_&h*Q5|+e0H95Z%advKzf@HYb~LozC|G%hKF^BGc(sY!m+xFk~t zcw@>ir$)x8$#v`(DA|1gc>i4S7&Uomm5Jvu;InhZW7NbQYvNfC{KZ`H7&RHu$5MO{ z)(5~3doo&0r~`2|N$Hpd!&5L^DGi3_U+oq5CVA`v8AZy>{ zQ}uBr(c`sOq}zkp)dQT)g2vmcAwb4@XhM5+1BY>3LH-v2T|tSi2OBK<5Tedj}pv~^Ak7;?Nvz(4=)4GljeyqkjQ!M)dGBhVYpHd zxszhdjW*KU3Q-05uB9~SOHm|<~z;wiKYqC z?bY5J2G#A=;w{Fj+pC#AGu+bc)u*3pG-Xy5PLph^i$a?As$vDxUP)C*d&PXJ%-67s z572<|SHhha2qWg2USA%l4SG{t!S6|TZEk}xLaV60gGeiRI0Q)Tua=s?+8KUY1 zu^Ss>cNSIC=JsNQifH)pQ8-R;B-f@m?28- zhSr?P>;rx%7LS%OhUhTbMoH^i;J@UG#~7l>XC@v84=ov&l-Q(Y4AEByO+4wq>rf^~ zevBddd7Dyv5LO4^5l==NBIx@ZT-ktKyYmc>dL1aaR`8UfntiB&}(|M%?Adv{&4}*|b;XL4J>G@rdm86y$4~vXK7?ruVE=MVh+J7&@Y< zJFIU%JGf8(Uc@=T>7Rv zQApF&-4QlTom7Q1b=+=LWmd-4E3{#qtHo^?YcJmC)<+_lKKEyD(V!U{_8~o<4I9AD z+ccy&8&?v2F&ie(TCkt@AZG}1&xQ@&kFGW#>s>e>Qf92c#)g$^=Tm(MpM`Ti4jUVG zbh51`GI6UaLh_QtJsb8V78~mroJ&UG0vhVU zi8kz^BYs_m8Ne4&hGlSCB3R6Z4eDr;c>(yVv3RtMv0>GUnY2Czej-;q#)cI-Wa9Z9 z_|07L7#nsG>v$#4#qeOu;mVmGW5e>{mtsB$s~+%1o{Y9()B&+!`x`(_lBagZH<%yp z#SC@9@R{mRtA80XZX0C`*+W5~G8yfI|og4~Amb}~(RJVQqM0GOY8fb)Z( zaYOb!kV_t#V93(bZ8aQ-gX|^aO8ON+o$26shAhw)U##G-0JK(2;t7$^hOG9hO5$h( zv>PRuA*UZ>&H2Yw1f#%VfFFyANWzr!4B2*&^e=_TDvB{TDsR=_X~>E<$7BPTpW_lk z7Tem5+-9sPleBEcC4Mnvvgune3-PA(e1o40dS0#}hHP+aF=Pw%?IqmODz=InvO1uR zA!|oc8?qv^&BI9_S^{LS0OB%+?3)iP*#$TXmh(6BV+ePaE5$4cSXo5)9d^{fw~gv!6GoWSC#UA6cN$l<*Acv;TwyjUoFMMT=L37&7iw ztTH=x(3=C5svS3Eti8A))5mieL$)<%pM71CD9i%WC9HYd!z?B ze-ZZ#*{f|ZHxI~~3uh5!@;pJ<7_vjp;oo<{FTi;@4jV)ETLoL?hrD$V&{4vYxM#?g z-;Vu$P!ZMzK!12}q9JRy8b`n~iUPIp65ujXn6455ZaH1jG6g6e&0Q>>U zunbNiBp5Sf)z>PW%qZZG#p2O2#*kgadUQ!^8SwSF;xUG-S|(;}nccm>Kgbo2F=TJu zY4ZFH@E>!oPsz+B}4&SpX5hHM*<-5#1?$of|B zsSF^;aD7FIZ3ybL2jv;ED|kjt;r|`i&6q@2k1LpqZo6eUqPN+pn~N9ru?&mJ&vB!>WVe0g5Ltrt?Hz2 zBXLW+m=(81*FhU=RH$pr8hwg*O}FYxkinHm%vhtZu+77cF4+GAEN2hXH`b{0d7S@7 zCQnTe$D2X;8oN;EnDK70&)6GnjTTf-utqQ8%@bj5js6dR^@vw@tIlFGN}2Iq+DEL> zBPgV?M$e&WVvVFK#2PW5D${MFt{H6@-UYlGWpc!0tkIdLO+2lE z-=8ZUV~q~>!def;GZgr^T=5udWL?MFBi7s^;LAK2-L0Yyh&9>{6Qq(0;E(2%{trmE z>P9`N)xWF}w_i5aC?82}jksmAu}0-U8f(;S4(0+8OMYBQ^mx{YbQv%!cz|=SpmA%| z07y#@O|V82pRm*iC`3=74^rYj1a(e<<5{E8&9Gw!{F8ysjY*sr32lvTVowjou^#Al zN-#stUT_kuQAR5Eh6j8+Cc;1>=UJohK1(s&&k*^YV$6+x1!eQM;7b5gs@^WvsBiIHEN}A*|?>Bn;o}Czk)W_DCxnNH5!e0jWrq%GI)3Wm^GSv-mjh?XsMB4Io+AQ zu}0VTVE-2~hk>cjW%2q(hmC>JeWS`BCG?Ga9~)H9XD)r*7$=tJVnUp+D(unkn~twN%VNSMtTmIOFh7`=Ms(U+GZd-JTyVqmbuuI3&lP(=|7w6vJgfq$kCg8^z^@JDB67cc+uvD`qmS-v=igv+Wb9e zqs=!+@)@QNsf?T(ZLSG2cm+wDw)OKh*urWoHUUKRPEnT7Xmf3>9(jOFo)@II#5dX; zem|jY{a}XCSKYR@#a=GbdYak!VMcwmHV?)p%p7fN+tnIPse^SG(B|Vv&}j3MD4J-q zRE20W^NDrKP=e%HD^N4bnn^#dP9p^Rmo{_bd85s-6TS;J;%4ai1JVXf5GiUQh)atwkjQ!3e0V4N(Fm6YkxCR} zZgd567k?G}0bt4}J>I`*HOD$vg|DK5xqC+OR%GeYEAATh4g3t~JR>(6!Z8 zg04MMGeOt#dW3p46s!QTA(_`P$<4up%S_Eso9w~0dl|)~xA1Bb8V1MXAPCepYKkoc|9B~cEIt%AK zWtt0Y`f&%(S!yz23rdj0OT(rgmo~*#ZJ2mjKz9+A#Jzsp)JcFDx*?#}9-P>ZD;LC` zaE!tQp6$uR`f=qj?JiMF0W{Bp6Z>(K^5V>BCbJRv%amazodICQ`f+!5GRYhS{=Zl} zTE_I_E}t`LT?BqDS3IU4HxjL@WVbLLS}9yoVw0BX$2CMtFL|yFyb)z`BfO7Ew*6r0ZGK70u&nLZcH`lQKEK1l7vnPKsFQz5}eFyfh9^{lG?y1Qu7*(wVWaVv!)(=-wC4r5a)XMg&O@u>$D#u}?CfSp* zG>VD00MwSSB<`t6$4Qv~9lKci;na#beau$uBX%%9@)De1<2Z)r2|_SCe4gQm}_y+#LgFhs};qr?h|8Wg+ACe#+L6D!Og4_r<$W4<|K05<5Q>jW) z3s|#qmoV#FRepg_-R$BVfCm2C-`AbXy1@Uv`p>C;4rQjJQuE`_0R)&lQU}QP0wk=` zanAmL0CZI9c$}?(07KX5_J4&JAmKBq)9x1pprcZ+;U{ARsMw3m@M!DButn)Ut;fcaa3x#pQM)RvvZCB z`@8@NKdC#-@bi~ADmD9Q6uOGv>7rA(t>vc z@<@S>N?pbsA*=ZJ<<}{6@&Z&x_fyoB|IIsprXc_wmAWZOQW)Mw2bkssNZ6RhSr$S7 zIx6*oBLPM>)d6;T0TNya=eN5NfR0KX_#4Oue)XHKrSH7}3BN`-11wRPjFBgQ1*rTC05&JOQAkTyF|Ix@& zp*lP~pkJu&39xan1b3l}%E<^3n_K2bZJtFCF|H2M(imFhtnh0-A~T~c!I+5 z1zXqVSrb9a?^lJ(VxeT^s#}4kR2=81WmW#H)COPguQjt(mCLfnY2a7v8&Tyi?rd%c zE+&Kio3s;1hH_N7K{|gR8&9dqP13=DDu?Ce|Bx;c;-0rvu=O}R#Y5xfz+;K0WGGKw zgz$-{Z0H8XZ1JRqK7y8235X{YI@TI%-t&kjJ@mj+2;*2yyW;ne&=aphET7dHo|>T@ z{UMg$VutI6M#30W35utF=)y=uUDz4{Br}v31K27>tp@Nk4b`s&v0@evm1rJ%4Ez37 zDQ^2bcU5c&K9$DrbU>Hv1%N@Tz2S7)5i`;0v<= z-4y6?4^r8qLx{VZ)WXJC+!C#+rbp2tR)1Us-l2e0yum6bp?XvNeAcIkkuc9|BWu2| z1iL{<9*Tsm3n7(#n6>}1;HBFC2R@4VdPwlb#6?wN`Eqn56PUL*M5qsiVtF(8n#IV( zV8I`a;W}vdv#5<-0xio0wVH@mVuV!p>x5{ZbVbUe9kc@b`&M7c41Gdaa>kU^pzD=^ ztf%Vz6pK?M&n`op`-tS}kTaudP$g_yRQ*XtQkF=L*lL7;{LM0l6T@V`g6;ULNBx9) z#sbAFhdd}yKiq;3!Wlejh)S>V_;rwhGSAzp#teBo0>^e+s>V#xc3}Su^jv3=b^>>! zS5jj(>HLBB`a@<8>0sddjp&KaC0!)Y3|lYPm`A#JAPbsRV?ODUfj9ai>;lqd1II8a zP-78K{YecpTLu1;)X|X2e!LP&Rz_+#c%P{bHR#=M@wC>k0;-T1s|k6n)Sy?+-Z>o4dyOQyh`2mdp`_l-OUs9qz5ib1Ly742gp^eF zd(Q!S$Ks&~M`92uR5z2(?zRa6A6n%=|B@(>-F7iDSi+)MLD=UU<&y}qI}`uRVs%v^ zF3K#au*@oZHhvIEa-&K`8>mzWR z33o#*Qb}2dx*t1FRBt7je(%3xosDi+^>%`P`(OBA93)e{qu_QYuh3$YOs;4qvg9?q zoj8+*ZT^_nVT!P;$Jq_ii-7$NUCMRv5P3OO>e&uJ^H{tQ9u|Y?Qw`4F4)_PU^v{c- z%#BJt*b5mcWbsCLOAMC4sb9W=a@MzaBZH?1=?9dfEUWkc4p}_!;>Q@SpX~)g|7Y=d zARajMuV-6$3R3^U>IJ;wf8bHOSQ5K#E#O9st2smQ*I40s$v7jbYHb8A+_@phYV5)k zZVbaxvj!Xa!aZ>QRn0JCFZ}t#=n*xNv$8s!0JpK6mDK_RzM4&_XN3pXSE^=9=Ctr} z%C?bsJ5si-#M_**?IhkolO8&N(@~{P7;AN9gy&BiEK5=xs*+*P|mOF)~Yoz0z0>R zkF9ED@GVz?U8_KcN!x+1Rw-30le7~!GYkCYr1J+V4D+j6El39guQF^)(nSJ08MYPa z;(;$1wl(RJfqEFm)w-8-*}%yF=r*KN13f>$i8*cA4-W-g((Op!9T>F@G95@)2-Ikf zI6IQA82F(f;_OU1J%EfLZ& z3w+Ob`jM_4xR>z^AYCJ{iSZ02T{Do(c!rU#r3S692%!ng^fJ_!?uF4jt06OzA@>sCAupZoA2yeaNK`1)nJ!?8-i=k7(%+V5te1Ebu6eK5D+_WIZd{wi*! z;I>!>c~yANU|ZEL%SV{KrV-ANOOp3GZxpH0K`I4t8ravo7C9f`+!n2`<47wlV zvGT96a0e4`9r>WSI{@!#3i!f*z}XWYL2(YtQ~$@qRrY#Jqm~~cl~5)Ni83K=7lB^*4(7Wscngdl zj_)_cIL1_g_4E9yPH_&OFs!Ow(^hqEW6%+KPovkfB87v5{8gUj7&fqAFvgkBkW_)w zn2D;gj-y#SFagn3k$#Ya$CC_R#OAnA3P ze&SMF@|uhCWVaZJ@OMf9&ctw1D8M<~f>MglH$dt)AH(^&nOIczHdaXyiMx1=`(W#O zC{YRFW>;tFCratVlwj%ALjy6#iUYFRkRwGMwDBgwyuuvyjx+y{AbMM3cBz||@dx*@vQpQ#R_Yk_)dE8RymM6ItpfEk5DS6FMY#w@X(+CAo1bi@r9QX}@R)e=>*ywlCm7niIZ62@ zi>FBFyTZuA6p5{PC=D&3Z>l6yQuU~f2iX-VisegEkJ!FB)&srq9QOA`(r(c;d=5*G z@;S7}9JJqUfM3ULH}VCZxclUF49eY^f8zuIxAqXu+m?kA=XGzkz@{6nYK1Pl`)5n^ z5#8UxDd5h)?C-7azWf-*xsTq5{-Rq7ZXvfHdPIfYp*Zp*+5HrsLyEZEnlQ!neT04D z-Rq!>x#w4)AL%}{(o(m%ec_gHlVS01cW2J^tCH@#dbTR%UMb>NrQIEft&BUc1NxV4 zE5A?O;r1zuvr*ku82aDoPDN#=x-I9S8Fbgq$2qs|Lbz#e320)-jjqO$IQM@Ttygdl ze1Tr3TMd7f7rw{e_?a_4`e)ceZa)zz=|EBBsZSb?S7ve%S4 zpxn!tFZ>YiQD>zND%V+u6*s{4`qf9uU0uho4l8%ZYqmO~+;5j-J4ofW#&bQ22~Z!N zpzjYEhTk&`(vpU2-t?RP}JRR!{|!_Bh)5n6LdN9+dTUclGasJ*QsWi;oaaE@0Zzd~iYCuMQMeP+Lf1?%o zFScgl+u=rS%^@AJF9D6%tJ{$8-b)$HStp#?_?;+fe=Y8U2vNLC=7AInVo<;u5u1tI$ z+^FG@j@XBQM(l^Xk>3CdFS871f^hnFC;xSEv-=a(e7X@^b6ye2$ACs`9=H^>_4gkh zs}!}%{>41p97z7QY{swyZq#r{k{hCaU>#Bev#z z3A${LEBN8Xch$Pm560=t^Jr9WSX6Bl`V=1-d^auXO#aa2-7x9@h^Khy!4k0i%E!l% z8hR%ZP(DjMRYU$g5cBz1()yu!1AzE_jG$#`iVq=dAJgwV&K=<@U%wn;$#FfNCs=GU&J@@@BpLl-sxO&YMs^)xO%=NA;jTXgM z&{rLOZQafV_2IvvOCO_5g{0SNhi=`AG8Gn&qsFv_0kwSteLWD!eXkjE=DxHA>(Sg} zNyxeT;)fiK@0f)(9;$3by!!cl!+rB0J8mqRXdhcdHEx_o+T$MaNJsUcWmyeTX+p7M zpzSN`A2|TYyj}_43*Gszu?e+ULGC5kTEE*3b#A+P4&vl?_e3KbO=t)!k&@hT_;J;7 zKm7(foVu?*>PHj$=60O)H@;1~_Gm)e^ny(V>xKD6^ocqK^ z{6OyBjt}vr+z)$U#g@D5UaYKiKmQ%I?Y4UxO(;v1<{vT;rRunfmA8I7hG_0N{N9g_ z0bWzT+Yh^s+wPKe?4Y^tD3t0hq>VW0(cY>n{D69fPHK#J9K&i?M_D&o-9o z3=R~!)qVXWI|f6iU=qXKg_0L?^NnH0;F&kEw$**TmO`oWHfO1R@8w6S2BF7P%pHji zKyi0)hC-#Pweie!&&l%=r-qbU&9FU7B{Ui)&w%%TK-zui1%g& z<9!Gvv)p$F<8^VH;8TO&J#~tDvJw62fcs`o#`_6sD9P=Z%y{#oQ=ZqIUldCX-Rl9y zyA?{9->r`+tO9Q7srZT3{k9eLWY%(YwN%+Z9%rYvwSPO(oM8Lz^)J&zdw({FvBQN<@z!>J3U5Ofp;hQQzKQ#?{22fyg+4xpSGcQq zW`-WXH(K8V;#nAKdlog*O+3p&$@qoe*IhhMhkUz`Y7c)aM6fBezbazuDXDHzJy^et zSl-QoddNdL@mt!T<@qt;w(@24&+@iH!BQ&C!azBr&@7;Vf1u|X$uhR--fw7Ml~F_w zfQH%`#dr>#TlW(_ylL!?yWwh7hcehN$Z@Z&@k5y}?V`%{oTk)1<&Ik{J-Q=(`O@6} zCAPGMVdJ@E5&J8+DMjlisg@ZJ^Gv(Iw-|b4jHiK7feMwdHUESgu!(kHSuyY*Ek6S9 ze_#nF3^OMFI11VxIDQnxos_;3njDxPg#2VK^Qanl{tWojnCJR|MIFJP!DpHoIE$*! zm?i6)>oDDnvCPN-Bs~FF5SShp*5dJ%3+Ku@}J^`irUl0v6Y+!H)?AR>4^OS(1<;9 zJoy=qP)2jc3a8fu@^^^a?{T7 z4z&COZ~lzxyN{1y;6p1>+a1}84D7fM51|tqiGl8Aa69wm892B!xc4)rfuF$+XGD5E zgg4{SA{kj%5NqJ;*?_ysxGuo)U&aHZ?ZAr-9F@_Hv=gZRCHUP*=MOY%g_wJg4nhsF zk|`te2@KCw;N6E2dE+B!itWJL_$rXmgzcfD)ubsOTK+(zcaiUAlqnwAcog!@NtX;X ze-!bwV0p?0=EE3gwB$RG8dyFA3AbkLgaRMj37LCI*9;8%7V)&xDsu|$Wk$3c%F;Bj zW(4S-tgQ}#Lol2feW;Rs0|U^|WVoz@;emoMjv4(Jc2pqJ2mJn|M+d55ypb`0^q4@^ zyO35kPre#khmRs7jbSei!MlOcS`s}@EyV0d5m^SM{j( zzb5OoO`C!4h)Kx%n{Uc_NK_ey&I=2D2KB@&limVg zFF|>FOxo!SB~$qpk3#wlnqSpr_!J^vCy1$hzhf)AjC(rH(ChX71d2|uiHKQM`8d~< zF{mC&!ib9jEky|dn`G_CqcVof+=`8LJ*F-k-uVvD)s$$9JZfOZerk%gfCmqbL#+Ds z`iQTWtzVbJR5eFi(jz?0JimTjKIZEZ4E*>6>gp(;ZjnIn8RX~_Zth<^FghRTFP}yO zkQ%t~2TFT_bk)G}<*1;OtdIJEg_TjpQ_Ov4;Fnh5e@(h+;6h%6{f6eYWnlZWpwEzQ zqhIU)<7?d^aQYj>`4cHhKs?h z(3;P)8>9ABk>5I#GCk1U&az#&QCo9JN9<>SVlorvAZjPiri|v$Kt%2ET)OkcZMcM} z=F^SXnllr04^}j-hUu4Q*?h7QyAfDH>OsVA15&=W@^Cbn-wmsj!gv}^#zT|A3Ve-G zR>lZ*)Vta2Ww7qvCND1I4}VS;nCGbR)Lr^bwkm zFJjk4y#`4lLG6M8Eenvtv+p9t<+)=~`9~N43NJs2j#C;7GE^0se24ysdHV@NfZ_&Lf?&bqTHJ@(8)|}sj<{1_E8~`_J zlg4C>aCm?R-uJ@HxpsMmMbsYjA>9dZBQ}rhh}xRp5RyPe{;xyiZ~2Jnz6>{NYYyp% z{R_~Dy%IJ!YWF@&8O@f#jAV;XI239NE0U37aVn)| zsO24aV~dKXZfG1PgfohXr+(=1C-9D!kO(qEH#);}yF}0?^aZ}pWR#YrR$W4^8zE}F zDy&n==O8d{tV? zlKHLEqhbG$(~^)$|1Y^0r$ElOBGa^7Q^<7wFS+^{r)LDLiz9V6a4=*>cyg*zZ7k5v z$YX7Vn$XJ52C~FM^_RhP>31Yq^^xJtfOZgWhsx2Nk4kS{M*Mj#-({VTj{tw-#h}tp zr2@@owTJEg9^9W|NTmUoUCGFAHG5Bovr(%>aOoOl=hI<^RE?kTX)L3Tg~iT_kI`QV zLUm(;(!;EA2b+ev*3;c|N7jEI@ZK>QR-=h*#ADE*469pSU0nYo5PCd85I^W(K%Nn{ zs-nZr9QfA&-<&8ju~ret)U#gfW@O$>#PNcS#@CdH&BH_@HrKvHg~ob(;qastd}Am= z8SV10k*MANOS-+_Vst6A=JNy<%m$16>64UM_!VF2C2%q0Djd=g`%}<}6Yp%)=CMIp zhQqfwY7ah5cb~WqohPdKbR)Lr>=t_ABWPDxyHQ)aWMJwSjd|4mu_$Tn^5lxBefI^r zVYm^S2X#bk&F66(7!bpa*t>ot|G}S_>@c`d!y%1Ns6Zoj7T)2gUFK)XXb#`%sNMV* zx+}!J_bO4%ryH>~XR*-3fJW@S;%@tkq3FWK{!N;ESW(bfhC}(Nq16r2kKLquo6s}i zMr`u4#Esa~1l=|s)x(+Hs6FK$f|{*4nw|kZzRXywla-?I(7gL&4X1g;yK`LTlYo$`*Je=ej zYKK$50pE>clwrAt2Vh#sErj>ScHdow!Hj$V1RGO3-DdhQwS)IfVQObWYg;V;kPMD=Qnn|$ubGW-~R4WB!0xBWoQ432ZKC4~EH9vd@*?-t<6~Y9Xo_G$OWgel6FuSAViP^#*JYxI zvpeBke7grOx)Y0RcZ&dLcfxzdPeKe<1Oj_ygP6(IYtew(5q{72+ftmH2sDj^3O!u` z;)i_{DlXlJ@DU%o4<$n!Muv~d8jrG}!X=Twr@qZYu_7{bM{&gag^%krs)nvN26Dp3 zHnC=?(%nE#`q&q&8=8TZJp7e!GHiDJ&?Ac>c1k=gLpQKCDtubLfpiXWh#LOZ$KP4I zg!*EtGW?y7PpxmL)*(djy?6$OMwNo+oMd!x$Sw)bdGQRtPhsUm_-Eh$p2EJ^{wY#W z7I5if*!l%m5_EV zq2(|5IViFCjIKe-hO{JM`U%U2VFGoZzaM%od^9Bir+Ff}MV@9AUW$42{ef|vbu(u9 zf<8vq5^|klvh13u$E7&_<$h+$-!BHr@GYJ-s1YNWZZ#ejPz%Fv@!2xZX{V=4*{51z;ur0y?xX9oU6A;Ld1t+`XAh-8nM3>$?ji5}<1 zCdkxb@xyPEu^7k-57mHw1%a(#zT*Ko9F6ln@L>)#?es%h3An0xjA;BSn9 zAFF{H!|XkR5DQ|VM9~R5@*i&cqQ{{#w_8yxie3*P_BeHAF+o*{y)J(%`~8Y~W^6y; z<1rEG7&9(ask;TaDuGMg^u*Ui$lQ#{$%tLc&4A_cFAdaRsO5^X;J9>>qRlnffAg=k zKS4)`Vf&2q^^4kMcFc1v{DMWzSv>|8Q`VFi}|Z~HEoOKOyV3h;TkWGu|~`hE7i zji!&c5%?BQMom1{8|l}xx7N|Q^}kKX+3cwj-Y8aZ#HLo`lRwZP$*3^UX9FW*^UMtl zJIj*RE{~mv+P{ix!CatifQtnY!r@sOX!AvWQVH_g-p=-*BiyL1Iiw@@D4-F$K3*ey zIvF*TZHYd&4fcL?WU(0#r{-^>nQ<2K{&{WtjCH+c&`29-I= zmiiX_E1O4^P3wc^Ih^66u?TTCFdX*DevdMI3fB{l4eRp6H-42Fo=NLMTsI*BPWgwI z@%yi=mT6jmocMY za+E=lYJi(3iikm{@i1}?D3=A9p^0*m^Bi)GC^s20EB`|-9%+M9_%Q5m|4(WCp=gs>7nzj3bcyt$mTqDYq^;4Ls?bF1bi{j>q z6_o-BEtbnPK}m^6Y$_%eQ$a3BGAa!8n81kGJRty+T4|)U%T4kzu_W#lxDlIY0$}P) zINbRklT0E%rULm*VB50nmT;rC=8(o(FrX2;dL{C&ij3xPcXbS3D$^Y)ZfYIIp!sz1 z7pHKB2+ci>Blh2LCtI!4F_Re{ARR1jsIA*x-KTm;`c#>rdofWF9^qTL5(Yn1su@&w zq;!^APLbe@t}S}*U2rAQ<2(aN)s|6*vwh?Y1~kHhHR69qkm=wq^^kbOrlwkbpjQ5a zKG9$1^(9E{@g%kWnigijEl&>8tpQsY%6oLx<8r6msJ>tvP7{d^hS!bHX zV?VqII6-DQYHODaEF?l{qBb`rj~JI5LSwE=+@ImX{M98#^SR4))E+MKfqLYB0yoS4 zTxiW99kH*4>Au~7GBfH^Msv86Fcx*8Cj(>JknXt_L^Yo-hU>!lTWD%FhT_aV$*8Se zGBCugMh>?k#w@eA+y)kl;9Ams32wyZuD4NJ^SQSzz5>II*az+@Wpkke9)Nb9DGMdBvL!F@r3$=5sSl%qENEZx2xBt!_;GJ-AU@b4X+E7bq6Z z^&o##cgkoEHyn)GE79kR+P{eV^gyDTPZwWmgmXdYm%>bun-WHh%e~~V_%54nHr$BK zt@EO`=5vEQ458s-B^J~d%NGYT{@rk+hC>?j*FYoohN0v?ID|5q!(j~uXv64!C+^a* zL^Yo-{+bcaX`z3fgR12qCo0q4_znO@#O9u9QJXv5VYQ#Q+%_y~w;M;dCtOsL(3*b* zGMK<`NcnveC^PR-Cc6l3)Nn{guvUQX1oWQJlbA>u&EePzRWgb08{)2;MO5?Y;s+4n zye2d^nZnxqxs)f3DH+fan>%ntZSH0U-4&OcP@#7+k8TgR5u1B%LCb~DowcI&0+Bqm zfc)ndGTm)(F>Nm#(h>U@=!m@>gFDm!MwD5G!{Hvjw>(Mrgt&875!HOU5nFRU6M7p^ zSXzkX?nAN{dBPs2>Q z2j9Rfib{DFD^g04tP5HT0UC9p>P z9ehM8fZNnVbQ{G)otT5xY73SC_vtjczZYKZc8+u|=M4#4aRg z^OqQdrs-mh7BZD(=Mk55R5%#xK@y)2g)?*$X>uYqciD>Csf$<(QuEuT7Rbiu{>B6w z5#-)a_y{Q=*%71S?#GN!>?(Gh;p$L2IMG-MoJ+igB} z4cdf~*TeIYc)CoH;5`u0PF(wNCDG&j`V=*oQHMAA$oUM{2@lqYzptOjMO@cBL^K#L zZCWN?+H5^D#%v}dW2JFP>!1aTjHg^yKp zSn*g>BJMEoqxQw^@<4^Y0vG)!k*6E6e-|_f)0{!p5_*3-7@1~kj;1ezkB=0u(k-}? z?nJnFjYOU<-Woxtyv7(btzA}EmYs}DWtsN-4{62s&0#3+;1;!KGYj0jDq_DOibOU( zRlH7-K5(37cJhE&Dc|b2x))7>Gl^;s3zs7+Dcd0{P zbqNZ}&CeqCJ5o@x(U(agxR4;H!LS%pK(f(6S;ZJT?PESFitD~3xfGgv-k}4>pxnVM zVt*t-$wsZ?t%gO&N0EyZ;htsa;D`v>5t}>ZMeSSAxCXgD8Tu9il8x1%O$mkwaxXG0 zEftV#d^|!)v7(~_Med~tHx$DNSVYLqk|9)<9okPpC2rjV%sS~T8KGp^{lLL+THMhG ziIUEer6pPR5pW{*MsdIXh$v~SP&rJ#EpGjf$=5V@`a{1@@}OyM`-d794(aJu$w#ov zJ=}*K3QoZHFAD!{oAKJo(y;JAPC?j#-Ip-beNgvN4qzH8Jd`hMkwC3gFgU|Vr%aKk zDj;Zk#M2d55H)fCWrCQ#IS1A87nR{J^SKQ| zyFEc|o0kPcHMID z=ofFPeLX%2K-n|6E_<@MEp(+#`%%3W{Z%nr!zXzwQojvX(r7r+vs2ZWZU2vwZGUC3 z?;$S5k|`>&(-RN%hmi7jETVff{!R&z=$N2=%n+sn00v1$gq&>k!}q|J;YXy>`>lvo zdecRy^eLv&o415#s(6}Ckr0%83sD_pTJ$)B;Hb8YEj+o%shQF5Z!|=GTGEL^bjU=!dX5}e6$SRF&s!YA5-r|WN4!f{${0jY zAEGTh@dPz&bW5A(Ff7S8mMQvz36TmoyvzebRn;5PM;gco%qejM^Yt83^rMBf8a*`8#A+APmE0A|Zm z8_G`ih)v;2)Fa`QhQS>1*bk)HdlP;fnQEG;u zMR5tN5&x5dQ~`+7P1RO`!*=%}sGMc<0} zvmn~n6Hh4mxO^=zKK6=E*~y;Ve-xcK);2;SD56%sb@E~SX4L+HNdKuYR&DRdEQr^2Pgb3d#N zl4MeqaMi_?M33_u9M}|K;XFQa+TiMlOJI%o9~7iNxQjg`t}%M-EVU@3=r|=-b*kmZ zq`d!eU8(<%vv+~ha@qp_pY^^|O-Wvd2sx4vqL5oeQA~sog^&z&j$~3!Nm6u37d1`v zHU`rex~L{3Aqu(Qq7ZV>aXYRZk{sdxU2E;=}wqt>1VY89p2~+_!y0WO2OVR&pgPh2xb#1C10n|j6%w9l0pn*n;f8$Sd zsxs(smuSjAfRTV@dro@yl;%tUs^grTrbOY8zqFEFuVYjf4Yoy7SvAh2p&A?`8}Z;N=`h|Jx@%3+(D66Y>*e0i*4FB&-s?9Qg<_rx zliolBjTE=wPgvW0FF*0^kEV_!JJ+muy6wJ>S~m4sHU#5#U}nt7YZ?U5t$3R~a-FES zPXq77xLbDQ!P=M((?p9-e+}06F(&RAnwS37^NK+5YHzU?KtftducCdx$Y^kk;CIEG zbEQeB?>&ix^wYNv{|FLF?MZJBvsYic_(jri^X)BZee0!E=^D|&-u(vSr95td{WPtF zMv5=vPmtXTDH(u61_@7)ohLgxPBeFg8)Z#>+V{CRz{&xjy#uU^xfKYoO>rqJwb=S9 zZW`9j055q94LVrc+F_(<`RN1sb7+i-05vbY%JaI$>3>*5q^L#V1qoV4gJa|cJj+Tt zoNrRRr8bdby^$1nX}%Qu$9kp|iuo{1mTP$$DW1%q=v2+?aDiybYO>yovppw0%W}RY zH4TOnZqd`mBE7&6cLwR;KS3eYFg}Ikb7GnT%kxu%Yv0T%t>O-e z@wQZ01f}_0G=Y)P;5oKE86*4PWY?v`2_`Q6yg1k&Tj-qP;<~|*G*e$VTBl`bq<9p6 zqEnSYhpwV28_C)nXM0Y1hUH|)Z2>r8A|aZ)@-mt`)09S*dH&bTjWsLeWuhgrv3eMGDmN}-sq!eosWrIF&h z`4gS0c^%q{rhHA-_i;8Y`kF(4bcMI*7SbDovom1i-Xixc8zg58D6$fcCfgM}nTTT3 zyrjWXFXU!m<<|$~!7;xrTmDaLXL_vFEPZ2wW+Klqr~8#vucCXw$Y^kk{D@;_&knno zfS#R|2t1TpEFq(cl>Ai9>784)sh{U(ZftWy-W|kk#oJ^$ty3 znOb+d0V!@5WYzm2axyY?EbE}w&37QOeJm?wtPDE?-GK%gDgK^6(W#o(p@C>hU*Iyp zvOOo=!g5BCIxWu0lU4rWX5A#lTu&F%+catc_>aak1!8)+{^!T|9$vShiu-nq_XlFq zeAa(pWIUMWyd*Pbv|1Yt+81nk6x4x)J@|i;6rI7RgG~tX5(x(}y^0PeoYCMp7Q9vT z!48?){o=H}*U{!}eOwqn=c?f#PL_`mOsah76uIc4GSKuyCske+mCH8m$T&CEnzsk^ z-mGUrHygUC@=Y(k>pwT85y)}mx`1B`7d=IamXh`%Fil=uyjCw%-eNA4*1KJSdq7qG8f2-GO{AiwE#t4Y60yHb@YlJCHfkWE2*G2 zl*{*56h*_~%~ul0`AbqZ09jE|?+wLT`!1`i-QwQJ%wy*dqXH=lv!$JzDLUMKvtAxs(fHp?yvx|thT`Ltjx23cAxsR zMNQ`Ox)`uU;kS#aO-EN7E4-tk#f57zn^PQ$H0LJ{tngmsjs&uzEUm%KEI@;Iw*b}I z&jJG|Tpi`22}HjF{)uX zQ`~r+u8m8T_pFjE%E_WPN2zjEEA`us)Zu$7uEKfC7hDKuw4Gxks-M-2nV? zIa4(&v~=pvgk8*`rCP*ro`CAJ7gK;~(XJ10-Unnw`C7qmTY!S!w*W2u+ydHCb=Z$i z1OHkeSA#HOD}BV8m@5_IHet9{+T0Urpk$r zx>2Rd`%ICtD~BY}-m_)m?c_F*#+-y#OLN#B1KWF~b$ybb(&ZOJ=^j~l7}2N0n6v@< zj7L~A&5;K9gQuHH**km!0v~Jv6}y#+&DDxE6|Wh79agiZ_Jcq)e5zNiseNBe&8uZ1 z)a{|Z-)p&Z$f1y0(Jv!j2>DWVAKae?daGg!&%Na8f@t(HWpD(A}K)XD0r!0_*`__-rt!;a@K#sf!i@Tp8 zq8hrepCMYI!IRR_W~w=WlBMcYO3NyU*21RT_bt#jD_>ZEtPK_@%8G!QDrf2#eh|;T zoBCud39Z@P0%f||(LF*mi}+H&2bQ-lZ|$jtzBvfrl6H8EnU=00WgUMhn{mDEL~SlhqG2I$aOM0>s9QXiT*;KvtBu^}v%Bpa)*I09o%?KrO8vqC_3QKOM-`qCnotZdt!{^ul4j%#fj5Iw4j=92h2;N@v3w0cHRNo(nh&{93+njy;Q zq8E#z*{~mJEnQDa<0V=Nh23k8HS71Q{mCL~w@KFp-@4E1l zs_vwm17t->y@84~l{bV}gVoNkt|Db*0ak_RX=OBl#3ukRPeY-BvqA$K&;$-Lb=@~# zTEETW&?B4+As`mBklb3!TgpfBxSo~uFH*R%rAEr!T6>!XXl;!J$f~n|_NyL^Mt=eS z3}CBjEXc3Mg8XX4k=b~ha)4^*qccPce(gmBPjwjY29m=;I?_BggN}}~v+WVw@3eeU3_3lut4xh1(?hto} zJjQ#NKn|-$^c;RT7#oaFUvk6vUST3&{X11Y;jllw!lc0Je5&`y3Ony-fKT-ma zR5_n@`?-alo<~DTdkFBBXee~_svu$Gy((YAtBmn{=ekOkK*O8KFbj*POG!BXnWAXm z(Q1-Z*6)(ifV;V@XmKX%Q5Hbf6D&Yh)&j`-UJIzK^^zgl3Bm(_Tn!6kt$bUxW$$tf zTW6EeNu-%RH{)Au=9 z|FVkNIF4gXckJl(s1wt`4FQv_5w;5c(Pyx2y)1Z@1`)NrxnBD+zHbS1w{p&5zm;HbR$Z7-v+E6WPpwl5bQ+BZ= zrh*F5yRoR8_2O@7O&H=s44R?PwIy3czLIwan{m<@;%t zcO*Nc3~WJOCdVQjJh!l*|&mJu0P z0AcK50TsrHTDb{Cs{t2=S2Ir-%C|9Yc%>{h`DCq8m>VSGo*&p-~VLeym?Dt?NcJK*JMC4K^XtUzb1Wo5JnID zYtjQlM zWm%YFRH~@Ow?J03b|%2TSO5X;VF9w*SO5VYWr5ZnD!UD|@ zvU=l0zY_h+)A@}qFhyE+uXHM^EkS&sOVvRj9|>U6jg#)G6sxX9QMCHxSjauWxUc{V zjk^;DSCDu&;6m0=5OPHj^6@*ck*Wv+`(H5vt1$nqD5JhvGeo(b#avNzN^E$SlkzD* z+xTlT8fF1xG}Z!Sm0Lhpc2SE@}kv5cUqBOUaoz2%0fHuoRd-vKLq+03u-?Ex|6NE z9|CEJ+5UL4W{8$sJccJjIT?G!RPzXk%YdwCVRo9amP}5OnbN z8AEWPDG|QTcO+{>Wj%$G22vn~3U&UKl$OtGE3^cYX`Ka-=~4@j^`Zq-dDJyDIvD&D zfm~g3!bMcd?yC{JNpL!b$qMO5%0M71N=hLCYuB1|G#o5%`#AEZ7GTwi`iss6qrLH& zOYU=kp8=^5;5AqJtKXP1r`WJxtz3!!_^+~dU+TrV*sob ze_bew)pj1I;$XQ@?j&Va0am5x2i;$T(Z=eyjNA_Z7mBtNUQ?y|GG^}A%%|7IqE67! z*C77&`M8!E3SwCm#M1FxZWLDq6Me`X4dO_YQD^EIq9v`tL^nGlHb2L~q!d6RqxBu**^QQlQ0O(N!3@!IZ<|A}Q=7GBw7w=qpIgj|7G_4P zxToL3%#^z=38Qtt1u$9eC1@)1e&R>L&u5z}RHP zUPA6ufa|D+(&ZbjoGOhtJLR7)2-4;2Nf^R2@JYhgS5`~r9Eo0lN1g1`jKkPe`Z*)s zbY-1f@E|i~I!+iytM!uw`+dDNAUzI9H0L#Pb=2{L6shq6BB}g>1z^#Lnp+#x64Jb?rDg7Sm%C4dQ^h^ ze^AuS^zqD4uCm&+#RnEeT{u=7Nn@nyZrB|AiZ)mq#%=6F(wEGosQLS3G1pqM&b1cM zxt4UUKA3AQ&^vlanqTMxvI(4K%5IiEV5aPA0TldT3-p{RM_Zr=M+!>=$xJD+w7xT? zrv*x9%7qr_K2ru*pv10pD1L_u`U)|)@jj2jO7p6&14BQRTn~oNj3ddd1bkqq2GFBZ zMPG&Ht4YmK;~g$T_2bFD?0XiOVR?kiRa=tU{mXFEVI`~;{hD&eizVu0G+%+=@YSt~ z^8@09sz&r>wVqHF+vq(Fif|$`-V~G5?Qps^KCPK{ylq$2`i}3W@ilULY{Is$v-bzYVL6k}@eTB45b1OBA=p%qLX@#a2*MkvE z6#daV(@`}{e4((4l+OUJKKN^cs$80mwZOEDL z*YGo}ZG5!@eK>Q|GHP$ZgkbXLtv7z_Nz)J^3>1T3g z&(wB>{oIRcU$jX6dN&Kvb?K7+@#Xn=ikm7&j$!Y&E+`x;IJ@Rpm(~ZPTy6C&wS^F^ zF`cM^C|ViUQ}6zmK88(|b~+b)>5uD`uP5Pip4lZqcbn<*?}i1&U#8U`AYJ~&FwO}F z_>QJdPPvT5&Chw$N3Be{k!1-8oVOt5W|Vk(L8&%hW@#v!Q79S90isztR>VHrx`r_M;SMZ^wOXz^h=3XtwfZrNTsB_WJEYkPm0zZ8SuIwsq!R?m%Y_>tq``W&d<=_wXgou*F$-t10}m(E@meG zSLj7%YE~e_Sb?C1#`D|26N4XRwBu_jl-M zvbFLy+SGj{+Qdb_RQ*UDA6Qk`KTEFaCc&8q0L~yr9v~8T)kkY*c9}6uqIS zlUeVgqb~)abf>(laMO6jWJ|>!lJ#J=M(Gy8nOtsqSJl%JFf;Ch#SaY=8Q?xxk2ls% zE^!|$k91*S^U-*BTiXDWI_dflMg9_s>{KV0u3+K0+2ZQ8cE1d{x*s3B1cbiy;LwS_ zpzsQ0>K|(rz|~8gz)B`ruXzQESlg&hcnv(Z=z97gGxa)b*1U;)l_AqFLoV&=tGXOH z8PSm~RX4+vl?iUS?dk{D5PaFlZcX<6LX8fsuQ+B&cuHZqT0eb%;stQn<-_7$vj6sW zEPY=naRp~HKGt_g?BPy~M<;i?VpY^Lh$QaN~Dl%Q`(!0(;cVlS1OUxs^kyo5*>)g9#NPRaT zYBq0RJ{}t4y^%mEo$`r+?7Q?rY+vsyhpYGIZ$6p{boh zQ(v~GrpuQx+-#}vvbEJs_j*{4w((|eC$EM&QYUL{9LGA2n~qqpesyC0s~^?ZH^8WE zoqUImrQ4?cKnQZPMD_4SfBg6V-B9^0+2#`1?@GJkNdz3D?Xz z`7A$94_WKu{2q+5zp+@0o+qcweebGFoJj~5r#Ui*s{~Kd`S>S-_Z3-Oc<&1i$c#Y zFf z@TX8n z^)JY^xQ%@cVyi`KaU1(}23Cuq0&VR5VRWKeHoy?q4Jz=DOD~Di2Nmb7ANAwRWA67g znpAbAuzlCY1?ru3&T@4N1;&=ETPQHLT-`!}ST4p^wAq%crkS@|sUCk9|9bH3As*Z!hbxF(h_MG`6^mTP;d0FV|>d^8lgQ%-R%LmYb z`b5}fxbk`!TyKM8*$1&a^(HiDFy;rYvB8*cT=UH1d}Hh8vH3y{Qp{l7@i|7VF31S; zXv>p@A(0-JWQ_(uV`+X?H2eMMr>)%Bojt;Knr$N#Whd4%Zz8cNNAx4OV6g-b87-+NRc(`0=YZqXv97;Ex4ntR*7;wI~Tr!HB7B)4m*qsEt{rnTEO zjF+TAmfJOSE2+DR)iBNG8ohl(*ISHJ^D$WRzl3-f_A#yU;+=wJ-=U!^N-UJ74Sl9S z2xE6ZQ+5h*gkX2VJBK({xMMB+;y6Mvp*0Kn2=&b=2rZ7sLfR$d(NDE;)&n8aO zgd0sLx~8oYyWAZc5@wTNce?)!3AH5byar{MVD(OySCgk!wQ@Y)<@J72l(-@Xd)-ZKSXl*2RjXH?rySiSe1r3@b5R zJ}y2}nPEky%Wsa)RAyM2>GIK>sf>ncu_@9cn~?P#jr5U0jCP$2x{NNU3YDPKAFfaS zogq%AKcMluLUS$&CaJoSj#k}F)yX^0!C+=cP`$HmuQ3j;cUNf<_XL*ciS>GIBVUR! z;LNZ6zD9m+Fl|_!Ou{2IJ*$!a8cVADyoY4$a~!QR<;+DGz9o3IkqU++ zlgmw8x%Cg#jwjdtq1y4}+CNlVCs%#AY1&H8=8fz3a6JE$SQvW!m|Go93S8s$;H1Dc zUL8#eT>H}JFdS!{aDGGwO%B2sS|{0K^Wv-{YDM4b>iH%In&^mB4WaNApT-r?t3|cD zVX9kTHBkKzR(yd~AzeNzw&Dw{4yym`-(iZwFFi7YgP8QfZS;3J&|S>kRjAPe+k`Dy zSQ9-ID#>2>$W;=3gy2u7BHnAyZKIV+dhHLkvR(4GvYoJa@E8k^IzK0R-ngsMMy#<~ zulA#b>tPy>Cf*1Ls^){aj7Yz^jUUXEqSW2rau;o{%(`t}w915|hIVJ@M^h%?@7#O`1fBSeADHi})QBssEs+3zYB1-gc`yi9wlRx6io&pZO^0MpiLGCxaDwFyiO`VsY@sKN1HHMYUTer%092;L)i z^hieyO7`AKGX~xxAAE=xaJT7(H$YXf{dTbBi`Pz8k>B9l`18Vw3cusS7Jt-v^B zD=glhJ~73Ij15j=Dg(ENal9V9-9H``MfytZ?i0R}NPjqDsvLbhzZBmwt=Tr*7Vn79 z*|F)d7U$$!`P-jLS+P4u1u#6)7|tZ44scm%$YiDO|5nOPpccR9M@drk3YqUEs2VcV zI#6q671v1Z64al_toKFCRiD*W)LunbGlede;}}-G!DV?!ZygEV&KLD8vtQ*=(GQIp zcGpDXu3Tzme*``fiit*1O4?|ki~NrF6M?RJ#uA#~eK_zDY0zh~C>BEwy}XRmwp!`K zp0@b?SSRl!_kO_J?u0{W_H0z7Jyx2@Hg)wbk)w zC>s1H<{e95jvUGpkEwpC>6fOXX&|>VR3E2TW!XT@2)y6bwJ5 znKm0oF*xZ&B2{mavKGjSlIrlQkiTIvQeP3>2skGVMVZGj7BfWA&;Eh^J;z;c4R-!A z73~RRMX9_x_s@q(I}*DBIVJ_wQJVhz4Eb<4d37!(<#He^N~+bVl&kmT;2aG4oeJMb zdO6^|tRYjZn~+qkNDGX{2l3VB0y38-s47uqSS!bYRR)$T#A-0sZH2}A?>1hKJc)yC zaDBYC{VI%CeK^|2tNsp6GF~;CBBn|huk9_)cvb%Pr&3OBiMK~m_!(ea1bAySWUYDJ z#_M*Vw)00f;>C>p%}EtcBeU5>7yT{L$Cjeq z_vB~rbSQUus~$IIk`=jp4l!vb&hS9CK`9;QY*c& zUA0iS?P~E2Cp&=IE{$|m(gG6{Y?orW?NW@#WE7{usa~lbdqk1`U}d|H;z|q$ap#`) zx<`1=qgP5Xv<`EmD~F^Qjf+r?o{*IIAco{|H8?d|1A9;3oe=)q^ek1=Gg;oWTEQf9 z2Sq$4O`1|ruT(Gn3A&Scog=ALlW(n7+ObKk6vJzE(f~sJQU{da6`0g&03=qcBMEdh zmH5A`l~Qv1Ppz&X#IJQyP=$QTej;@P36lV~C>n|~%Wqb*G=y+1rlR=cScMjlvINMA zQfW;qWZ$+hd7kK6AjhP@EGf;S_|&zBlbfYYO3xupR+QAO$WL&Z0!Dl5f?dgN4Y-skYyO6<*$l4RnmfR=wSjIC&DQ9PoQbW`?0j2OZE$z`mMS+2_H{?Z@Hdb^`dKhriwri;siJ=|oF`9Fu~6P@2yNMbR2K zc|VLMWjw%(C;U|j_bPhnX6a*HDx>hoQ{}mSDg9MLK!~ z?k<5N$vqyxv4y`bfopoeT3ZI`hB*oLmAokTMa-ijumHbvpyY|4FQg zwWL1?cuTZij&(CwpSG*Pqj zHF1B7qlwDj{#42X?FoJw7k&~LX9HeE4OzeZI7L^fLqIJ7)iv=dGDjz<8Zy-S<*Wi^ z*ORfK7p7*9_V?4upz3SADL(|$vjl>!&%GG_#0#I0mCLRe zs&QYSMOeuTv69M;50WNJV+$11)Ab4UDpJlCoFgA!3r@dO$IEcPp&l-|YvOuzBCvHm z;)P-977N3^!8$8Bc5t$cvOrNN*Gepx2YEi1>J6quJ%niSSzPLW<5C}pOWm^JEKv#? zKHyIpuAFFiD0hxXEz;_jTGN#icZ%y|!tSvl2)hLVYh+wp+`g?AzM*|e>2_YlSt(DP z$yaRfJ;wN6LGHDHYl()e>qjugDrN0iJTeQaYjc*&#ap5#i~2ouxH5VxWh~32R-eaI zuR-y3LKQX)fohv%D=X1D+E{i{5zfBRbi1siAq zRWP0TtfTEugfZO64}^p1v@7 zmgsvxj!A*dQJQ6cVTTMSw>cY0i8d-HC3R~uJcO?0=}9R0nI#O7#rzRkJI;@BMJZ+|M~xTDza z{wFT{aWY;6yowq!ZTbs_q*4UbPN2HY`HajB395z+buUo)X&9SscHuB*00h2nZ1Yo? zZvKUVjHeq-G`gQ*P%AC)@SX^TPdDAj><@Tt+(_r98_lulrXP)eOdjB#i$&SpW5erd zU&iI$10G97y#YxUW%|CF7W~3% zD8AC{|2$>|POkXhk@7Q;6(v=b#=&+poQi+u_zQ4O8j3Py6LlOadIm?{63%kGI_=3l z7T~)){(5x=kAcalMEe0bCI!_|nu(9&pAILl&L~pG0a;N}uTJ+0I87&712`uQ@r2(b zt&XCvxSY*gQk`c=c@@ZtQh9Z5od%P&ME?uqm=sh;X};Wx_gj+cZ2Ldd2*`?(YIPRN z*lHG4U&s1+G`V4iIY+~$V9!yp8aZVqM?fIDj7kF{+rs~9*brYa#G@H$vqAKsxsc31 z+hN{KUct`rKPg4e<24LkE0aPu74Whh=I6>{s~zUXl%g7+)UB$LSEP|w<6qdd0WL3f zvd+otPI*G^V(ixYQZeWa-Se?9R5tv6&t~c{(1z3*WM2ueFyt>Xtd_>#U|GqWDJ?At zgHbE@R$_0+aBcQRJ|LuTP zavQLz%^HZ;0-2T!`bzn7VHABrQEuS(0Hq_~_0lsV>Xl5WXUx;ncAbXHT5=`xZT#@# z*-#8gsQj2FNA(T|EJ`&;_DjRBU+UrgS>-`oVgh^>LTlZf1iJo_CHk|)hf@0DL#++> z9#m>Je0v(-FUj2mcvJkCX&{w&Ws>c`$Flj`400z!KJ(X5iIxPq{*iS5tP)D;l~8#; zCgY!_wY^fO_vLL8vX1#K9!eU+W_QUq^_pf{si|}1x>?ryyOrVS37yO58*ofMPY~#; zh+B62pH)pMy=vbR>Q$tr^(s2&8QpEw>7Y#NcEE4cO^L2R+S z0o^MJ-6b)d{@_qdr-??_jsRa#&P5=j2~G!gZ*{IjitJ-flWt>+HXtgxsETluIhqP& z*50OLZ2$@T;?lXE;(XLRN6NcE!iAL)Q3}h-cnjz!4{zO1fg6eL@OvKWDPK;HN4loZ zmzqQPS?T)HjL4%xAj%BOm93?0%kruD`dG(L0`H=&7-mHavI<0GqUO%4LVle`EryYH zYfPlF^=4~QX!fKE!cpc%Em{#~h!(Qjnkec^(Y}m+f|QkjHCvIgqKvK7F&5BfKfHhf zei5!|)0a@9>Vx{^`*tQF)ZZ+{|ft@cp`(V>O0*B=3hvvJ0l_j5yB_e_&9q1<_~Nzoht?tHLu} zeJ#($uWL7GATiDW-aNA0M@Koij-Qr^^5QGPbXb|SMonKNaqB{9V= zmQN6D6&WtrjbsGD&eO2fZJNnzEP`F0v~iELBO;9r8aBiS4Y5DM_!>kP?B!(snPAT& zuRtK*rW8Go*FEss@rPKj4;An-!PY2?tpxj9N>Po^+tjI6wx5lb!Kab0(_R! zkfBB_W@_a?=JqmB`Hwq=U&!30C`Ju)`&60mDnAP}GZoM6kI75Ce8CKsy)GS1roEo~nCvtYxYj{(@`tHQ8i?!`;>qJo>E|F37F%FfP2ceOw<7Fe&4>`%Eg{wG%8!qod||1pB4)S{Es;u^5?@5bX| z|Bok<+?8Lbs<-~>DB27=U)+?#?ry+kt05Cu-PNioBcF<*BY%!HWht32C8!!QrJ7)< zdu4cb15{Um&&jOUFy^WuP<)-cR^NAz4KF3@Fo~@g=r4C{Jd#NT`8#FQ9w?R?VsHlRpJ&r_{jT)@M_jC9AP+0w~ z)8gb$#DqTttY-h?yA9SBI4u%O5Ub?codjydH;PBcItvt8f8taLXHxLf^#L9;Hsuu)K~y$NisSn(n7pPdLPIi`BDTw;Nu zd`05N|4eSbBDb*==yJOQM3dVlPJrTlgC?5X1`w!~W;d}zfr61A+ukCnpc-WQT=VwJL~Zh+ud4eeF$z3P`ODQ0mZn4N<*f-pRl;Cm76+Y6@HBs z{a!L3N>KeOOHJYmu=;@I)p!||IDzRr)(%ZHx|;~p%9#&F(Euo1JKiR31K_pEJGLYi_ z=WTg#?E+rCfwa9T*7n;nGJ$+jmGz@wWqyxkeFPX?x5DB#$W7Lhk#z~UF6*h_*+j06 zq$X?iQcPs6+4-`bZgFI-{OwPr+*`~hFDZNx8BYUVMGcuC#+t1AgSrw_pHn_0^P2=! zLxy@As834AMiSLOJ(X^Pl>vNF?xEy8n#_BwK6vpE$^pxwXj8)ZC@4+PzWK0x&Ju`lbh$pH|*rP}p2V_O5oXO+cz+^hnc|eXyZlgeTl&0ND zMJ)MK!DPKa%9{X(p!`)%l`@X%%mc%<=u6T!0WLMImtxgOXLN04Qlk^MqqC0w3qMCm zl}+i+OQ~1+#-n&9b($tZRV9Ne(@B)K_m#>7wOq;8V>`kh|#rMaq8x9{A!fJ;!Um7SJ=x z-~P%Yp`f~YG~6B|19(Ma=ShyWi|Kx_yqAV3mL80$R+x*>38dHov-QHoQR7LXNR*{w zEz`L7O4(8&JXwZYE<4$bDogNte1h&;Ln#AnrmqDh;zuT}0F8J7`JL8hxirYi3i2k4 zqWYIxU&EpV7IjkdjzkSAWpDT*(mEN*ywjjcf+uX9{7Oj;?hNr#D&zi_S2Y#h9pD#b zt@Cz=@zFqj!AuI*avoW~s$T3>`=so*n;DYspk54kH+d*$NZOd^qq6(-4LqbM#7)!< zq)Y^|qVzf@E97MurtTnmAK>gX6lG2}CW`+1ydu69iw(*1q`U#}8!!BICbOEu#-j*XrmJ9X^FifyIotj|vGmKcU{;@_PSdSuDr82<|feQcJJ(2%r(spbb zH$h!B6SJbpQRXQ#E8l?D=JG|m!0ePpw)T~DJ2jBJ z$)c!krL%|sQq}-G@5^5mQib$5hEDmM==XrL(@>PT-k2!*%4x_6Cf>6< z?1CHte%*&WXVQkAya0;=1Mw_;X-u+^DLz)?d{r41G9E9bGFp!(WpH;> zqYvS@0q`#KP)?0nj8`>!jr`N67e&ptjn$~>ZtMYptSG(qNQLZhDg_=y;!%LJ(-7`0 z#zfJt-vLp=#5?UgQc3}S!-c=jhcoztUBC575A)1=~<<+o_!UB3iQtBXtR_d9X579^7a@Gc z5B&ZERq&qeMoJ$bE6Rf6va+iMv}dpBfG1$mrlF+Y0C<~XZ@e1$?qsel!Ey`rFEA1% zH3PDMl&CJCMWnv4p-5%-aa=;4Eh!@~h zb1y!(P;JSZEQ;zDstqg(EYvvo=3A(jPt$nLLU~**l-A=(DIaKhJO+-p11@k6<@9*W z1hr6QDhf4j~E`yQ#^ z0p17?4H2G6?pUc+;fc%*TS&M5toHdKAGbl?k>r4SiB> znqq=Il++Ty8{wgxU^kddT9QA137;oW0~hSyNErfTMd@88t;>> zY}ATHdh7ur_7$Igw|9zu#iypz{5}*ZkHal+h?>Sloms%a+!H#JWam-^9-13difVk+ zv$9s&6|vrhkBjR{GOq(%sOn;=sI{`1>huJwQ>2$Ww}J6sf~6s_s@yx|M4j2}^u8}G z<;jFQICX*2Ppn=C_nU+=TplMURv)RVaL-pOEn0BqlayC)Zzg}hYZbc&axo27tDWLn z9RS8rTVeGodgVmzn*Xw)F9p}@aT9p9p?{a!+L?deXQge^noa*F8~O4Dl)L(w$?(J@(m3Dbyvb zP$?8CkHZgeXq|BAU%%&CBjU)`z{wN{R# zIwQgIqwl$3JfC1`2&|wKL(~Vwl;SY>SIT#Mr#cTxUrBrd?)M3$JBKL$vPGP9fwk5S zT^sF-fdaf1erME2M+Ywr>>k`-_0~HX+WuZ%3{Nrhe7a zvU1*gv7O36A&wQQl{Hjg#V)bVOrY>NTT~!-+UjgncPqJx+Hu!dE1!bm^@J++e1SJu zJrk_Y!T512tX@TLnC`ah#@!&euDi##4!V2D(5>&Q+NL!-Uw2QkIJ&F+?N6;7d@D}G zN#UhnTm`sfV~?9!xe}~a_?`Hm9}h-$E395cZ(9}5qKc*9dKEtf&xY5)!J&$0PDrlQ z+NL!-zlvX4oGL1R`$OT=czZNq*kHeOv^U^YbWfk0?5Dw8?FPRe14XJmh}{97Y}An^ zStDz5l=&-mZMrDG>pAl+Y96nVuOMYKkQHTt`ex-=3+Nj89ng*ee7t8#zYp*V#U42P zCdh5fK47`bo&@8S1S@u{!6<@NonU$fRI&*Rk} zUPW9zd7<|g@G=`(sVtOX0iWMeifVjLqfWJQ$prR^@Nw(-0-0|EE{oWCs6u{XubKLk zj9&ro3=Jink!quzF$#{EvHY1X%A{8_lnmD1BYS~zIFJ?PLk+U>odvWt??SF#r3&DW&Z$2>YvTR&f0f7I=|+_L1 zWp}Z4(EX%510-b|!>njQR)JCrBtGWNmr{%ON&7w~QW<%(H7WKn|A{cBT8o~=pBbWs zloWFvO3^-N?s*W~9l(lKF8t^@NLK2n7SLv|eu4te2W?b7s`;2}YFCwdC|@xW0o+K$ zeay!ZqAq*i7U~lEL5uzYhx|oUsE^6wDN_CoBo(q!G}TMVik66N%F3k{h<(h5S*%nq zliMt#xV}2-+D0A=@RnSO-iVx4A)&IY{K#?w98Ygb40Ue(knb2i1#5M}@RL=G4! zw67KVA}MPDe(j9EEI7CdwLo7+(3g+%W&x-^@}hQ$MVzBy8#oQ%TO;Gqpf5ml4%<@W|@KLR=V<#vL(kGK>AVSaBXBTo}~^E4b>sKY=L=1vEr z{Qy5?P9FWmkCc8`q-)b^^?(7c5C4gH$HM3Ao4!?mt0CV<)O}Gy; z;kIfS6D@?mmNIg6m~fXqnJi^GrZpQbi6_>>7H7iMg6t2TaeNOt6o$R6?r)Ou9pJT4 z1wuq>C()swHN)1)szx<(*R_1T1Er7o9)|>rY<;J1H?<(8tNP^SPTUj;hT50r+z<{6 z!in42mWvQGdSsAM(pou#9dR+Yq62K5JqDBy06THhh!^11b>}%hahplrWKmQ8)uTqil*k8S1F-+-kw_7 zsU26*u;^r>?g;WJfY&{C;p1m+z*>`FT>{47t+09(ePr738QRcn?^qk21kbeL2u|j0 z`IYxXNZYh#=d__+`WcI(4a(pCRLJqtpM>kX=#k)uKD26*dZKfW5-b2hsguw1F`1;eI! zy`{H4znYY;>dKc>Dn-gkeUgN0`=C^FEmxIFFYhx-S}Rl7c18QdO7%7?`1*rc0{6C1n%9sTY4Kjs`qY5Bdg&r=#Y8(|ag)rnm4q zopY3M@HtF$t>Yoo5sH(5tSG&*tC3z9^CJ_CNu>M51T4aF&wSc`a>DwIgi29dg*xqDud z9mU=Acy3$W^O86(f~r$qlcvG%j2TE7>i*R{IcntV27G!tv0F|eBzhXORp^sza( z#yuj9H&2$SmZ#%9&oi!DQ=FzL;tP{(9VnXsm#q6z;)ZULy|rF=4^rbpqWZVi^EY4m z@C!FESOEj~i>qHzZ||M7T@+O#Pa^xJ`^U5AfTM!!wPuOzcfb6^baW~MCCGlCShhj- z`-V8KlP3GtAYTPABEGZRoD?eGmt-3{?vz?-O^Z?s7{Hok`M8$j-EHGYnil|WXMz(rJX zFZ3T0-2gbfhjJo19}7N1lyG^AqUe}5v51-;&HX>X{eNIrD;IN&R|-ZaEAR+%uK-*` z!Bs65(NeAXAGo!SguDghh-hy_RGXCd5S&azI`73ID)eL<5vIgtvIH^{QH}h-@Oy=* z&$Nw?*>d=O2w!)}(yHn3Q=C5=e%o6fVxI57b!LbXM%~g;PuRJl-a*Q}02?~~x}tv2 zh9hAxIw3`=dV=&H0Plt17Zvxyk?PU)2fZ*2@)nTO3nlcz(xkkjI)+|Q->A433f-ng z1h=VWvJ$eOs7D`7K_w8M1$YzHUx_v;$1bzd(I+6gqFzbLH9%IBz(sV|5zvn#dMDuY z9?FU6h+9-dN_g@J?Dj#ih@K?n1t2R*?;;x5ksDPoI?+U_`iS(Mj*UeW9E@TSJ+C$Y z0}+)$-U4z&bU7l*Cgt^klPRit0>vUK^gkLAoP?IiJjjBgmUiIeho~#+!*H>ABJn*M zM~b@!#fqvpw8v}OcynOt^TcD8r;3{Ac=Xtb_}o*3&lB%}(&D(d*&1R;oXit_j@5Se z-Flwbk+pNdJQ3WEDC%*#pjJ*sxSxPjV#4hR-_oR%JmD73^WdvSvsn3GXXg2Ku^dK1 zIzA!yO6n5oR%AW^EZ@)l4-8uks0`Xepw z4tWd6k?5O9bZAmuOO{q9Nc9$pwYbpzX+&@&StjEkGcB%=)_o}GV2Fm zsQ+;93$lx-H!1x9e)XHbE+T#FA~l%kO@PyTC?}$a@l%;0N_Z4?`y#3GEK(i-vZC}Z zqH{0gjfz8J5xq$I?|_RaI10rgTBJ4qgMr=}@*tug5m67K-X&d+4vAFVBDH zx?bFiQp6YZtW+%rrQr#2v;9fA+(7qt;{ITuzXF4TfgZef^iXG8RIlpLc#Q7}^OB^1 zJk={0;|syJF^!^u@#$@z*yK|%0Ptk@T2L^#-5 zCLcj&qZc1n9AHv^QDVTGsO~+qNjVO9v?$sDvWw^_QceJ}q699Y?IuBgCei+Y(|af< zqL)lWN_hA3DC%^0ETVCwOa*X)=dX*X3+@^Nz;F@GCH*77MHKvTViDb~HU9%G8Vz|6 zQ4J!Ros_rFNkK&FlM{=m&|POlaMxKTOCbv)+KFSm)L{^x3V0JWlpOb*NhHcFyNz?I zXZbT-w4fVC;H(P|KVlm~%1uC4ln+hK%5fIZGoJ+8keg_>NQ(pQ|3++~TCZLkVbBYOW((oO-q_cfICeh(s1W}Wu_7uNf&NSJU5&yP@3@BP7~j0Nz6WFyCIbGMQA7J{NGIYsh;42RK*A&O%k5B<*d$tD>Q#D(@5FgJrEsz1vk0 z>quC{(^<#B->b5jlOGx?4e<>_yc&V8P7rtKo_9~@ zj(~dcS?KenNO>G)!C`a4;rs#)b~|@6Nq=-Zr>Mq9Z|7=dDYsOuj*h#2IGHyAF2`_7 z1y%>D(*rEm(7V8RJi*cs9UnUa>MfO>YR;skl`=WQssu_OJ8QuGETN1&5o)C)T{I7@ zQtP7Mz-WHz7PU~*$eUhgg^nph-2c0lrS>uLvi52yOk0zCvJz7K8cX|24_Xw5#{2x# zcypL-eOWug@&=-nd6#5YkK>CUig0^79h8p%7mvR_k+Zk{q{JWC+fo>;pk>K9XSgC$ zds~kMNBfSkz1;-!J-GAq0`e9d1@^WC{9tcCL=8p~?QMda45`^$ZCJ9@uw`xa@VsTM zw>xKVJ)X0-9?#iZ9~0Sxqp@#Ao_ zVb>gX_ekmVC~7inzmwH&4YRH0Exeg3mhj}FjJR;i-n=DGrF&P@Aj{z)}-pHay zr`TegX1sa&Kv#^epqY0yF;uc255t^gQG{u4o$H?pxkj%l`jc@L;3}n86{uuy668iS zhB90Nw~~@o5G8;y^mF&1;j@S?1)SbPIh9<`&BAn1!nHqh&=Bs{$hETM(o(x_ZL!iF~p|a zdY3U-!UabhP-m(0^g^Nxv}*xxh+aq_2&FykAzV)2=7N|`%1j_DO5lQcz8->DNc362 z={=MaL^rJQbWy^d&qYxm*tsA+BV|316{UAUJUuIlMuXvkIIL%$AT*LMh|%}ig+?NX z1r`rmg~hU&Ml4JO@pp(#5NfR^hpT*sXfR&r?KstX@Lg{!!G9Jg)LTu>|C;>&O>dRj z^;SO)uaGPC&f#4WKLK1&dgp+kUm{`iFob-3Ea>QLtUZtwC2&EXhfhFi7ZMKwoZdq@ zL7&Ef)^t(ARl71sVCRB9os@HdtSG$;`knnad<4SE^Wu@+(zgdTBE4hP?8oS%5>_53Ot z(ieQ6hZ^^yMSy8satEQQ`JX3iOIdBkmNFctyQNfW*Es*`d6(lk?}ERt7kZN04{$r4 zJJ%mi`@aCoXQk<2g!Y$;Mnd~-R`T{@NVUB+ay^!~Ir|(}p;aK8laSVFcYOpXdM@t~ zAg}2_$nJ-%J7m7#IHosb>Q z)_%-)VX*UI_Z%rJfvhOKvg5OulUX|^GHZHnBJEM4ksxiH5Jt&q-3qmBq{Y!TJzQNZ zeCik#b&a*{WQa|AdL%np{9qPs^MDS!uX@AoT+m7ZZ-}1rBM7Cv^n7X!Hy6ZcQpN*W zQ34l4)!_(Y2GIq8(|afQt*#5jiK^$js1fgFDFP3o#qB;@8SrD5b^dexggxi5Qpu?_;Q}*TH`>?wa`~`pw zyW~bdQ}e&M)h^E)b}rShKv8NRcK#{v+A}dIY|nkzy-e=AfDgO)*JWztR1~2EEFX4F z&QIE3DjEsxw_)cU&#=>u=YwR%&qyd;awmgq!%pjD!>;2CdBe_Ys>5!#f3Z1-%!l1W zN~Xh3u@l9yVW&b!hMi_pmt@#^JU8qDf6hOw(s=Xu(f`K-pnIOQHv!icJ-SERmXJ`f znQxq^i)-7rq-+8>=-{uaM}_RqZaCGT4;x{?={=OwwyqrgPZuRTdp>@KC&k*<5sH%l z{J;3C?D$0Sa<-XZxXdP!o)~$J1Zmr_Yw-6%Z9B~3Xq$e=TO&`fc_@XGYtO3?oAmOI z{Ywjv{XLs?AT7b zbUV9P?q>+LgOksEZ$oTC(M|8~$5ER|Dxlh^@pdJp9Uv4o0E7bR?ZaTE=Qo!g@GNx2lj9fZFwh+}!J ztSS-2T+$OkXe3_{oAojw&-HBoTZ16pf+{=$m>%Q*rRNls}$wHog zC*Lj8rIauPaLW{bfXKAY5?nvOa?3OujATKeksuATOuppCGU;Z&MkdmNB}ofD0og2* zwLljH_q~*7nSAA~mT3uOUqJT%aP}tfHdW#K_}XXS9=Xuv~&OzVr|NFb2&$@f<^}Op{)4QhU zti87$nVNP)G>%M^mfEAF<0Rb3L>PH-Ba^<5j7&!VB##PZL7+3q&xj^AvDP(o=Hnpf~NjL_vP>B%TgR6ornydEEpE(9#*nS)<_6pzx?0lGeNi4KX; zCG6K^$V;?9*cKu1W0@__<|MxXcRpc*yX z>v7A>_KdA(d;J)}VZ5LBD)j3<^*+!&aJq`@`+3v68yGLkKWzKd4M?~?#T(?B_tK~I z(272#$;P9opDu{0o1j`})2Emxne79gNA)S4Q}(IA89Z5rXu3}=WHk0EO1q(1nue9& z`V?X0#q}wDAL&y@|0ItJrB5-FbG$jI1kj;Ee!qJ34U90Mtwb&4>3JrH9o zV(9w#K03x+um4cIv^B*rjHtZwARd-E_5VOP)YV!LeWLem=w0mngpzy)QQcXJ0eskr zMlo~Gs4Sf|AqQq|#d$qLrFo+czzCb+(K~6S&4?*BLBddMf>|;wVm$_;4h@TFZaW$l zvA)hcjxaZZx;{|1$ou1O%r*@*0Q$FWAZ;!Ogt4fJk07K6gkO-R)E!^+UWMG_l+*6Vp79bbiQyBH(Bob*OU2F!~rzG>kud=RZ(iE8OF_D6q!CN6| z-P;>Nqb@w z+=Rndeehqj?-UQ8>+eUBIlen`1E-aeWX8b7D5K|MsDdKhwJJiSCL9ht;XnJ+Vy|K$ zj4Y7Q3+dJfe;!Vc##96;cEUa?OYeqEibQ_0c=!dv$*^bNI7FBZr&H&si`1!Qa5lU$ z%%%P=Lbkx+3s?BBQ*VJ`{fbNdON3v8)2Zv>+oj%xNip?y;$iAViy(swT{MwMvWq$RAY>!lERPX%>Ql?$&Al%50|@^UPN%LZJXiLmOp0Zn zD;`eXzkrfkkJx$?%hS`X7M6ItVG>zuzRHO=XEJ`uayh9Aus)nlhdvQ~1)__+UdU45 zQ9E~Z0yx%*MrDa}ht5gV+%eS~MEY$eBCLkf6+)l+!E%p3FL0IhY5A>^dQa^^6(Kdf ziTDB`-^1ZO==hIJ&GHtChx?wlF-6RUXl?0$kMzPgaR(o0f85fnpZjr3-?|^SGzW+u zx7I^lKB&9n$E~Rz55xL8B9WeOx*#NX(6UTSo*ZkERg zI`w;Tbm?K2dU2pl;dJU$1S#92?`Kj>y{vd>S8JMp^G9rLSA7xFtU{M~ykQbqZ-`xe zgVW0kTuvqdoafS^Pekis0AB1>MumI?QH;`9z;6b4#)(E%2<=MOLyTRmC%^O?BBX!D zRtSC0t{wxfvW^zJqTVkzq3T;%yD9?(%v zvUa6uEoWEy*4dRNxnNiQq3%EI>M{$$jQG}ei8?wuhFzi>9t&ohS`#Twhs**vT{y1hQ8-2{bT3ZdLX|Gu zR)l;EH_KxLUATh$wH*?=aHkL+=wk~PyDjKlkx8*|CB(x{Q-*9$c0?!ur&A}}gVd?z z#6V0&F7@gNsRxIz_~E}!{TIZa>rzia_((WiwNw;UwH}jV>VMUuhgI7O74?zRzZx;6 zYWYGnTeS?7s$KaSt9Bq812GCokN7q^hOJsd0zvqnfKqX7?EbOBbFfl(P|%*2H2bq` zx3NCiEbFt~%LffKOep*g^i6Ht>Q3Gk3SB4XjpXym{+v8A;2sZYC#W2JE@1{4 zJL;Xj11krlrYDa~ePLp7I1vI2nZkf59(M9+sOu7KZ6}`yG3n$n+>!0%njvzXT;IA* zuD6irsZL^w)h_Mt}S>Y6`T_` zgSY&>fGHo6x-C>cJUR=f+k!q3eFCD3y{qULMMVq54w6w?;ZbBo^* z5eCEQwxG|oMM2;y>sDzC>U}H=wiS=rwwO&(ILwInFKy97JS^=eXp24&tu3{ar@v{7 z7|y}Ag=Q99Tj*QY7MdGCTa1OeyS7E!K<5uVr1>w>TmvCZzdXS-za6gRJ1MN{!78p~ zfT74L?}wQ3CUILJ5LpAXWMEg zKA~5(k(h zEakwL5;0KX{SF0bUJt~Wg&3Md>8E2PMZO5q8X@%=U-H;TWo%;h>Kna`O(uDaKte}l z%`uT<*xc%<52(|YyBesRb2@?F?u`jo@)(L7M4fZei_#5PY368e>*q5_9fQ+#NuT68 z3G0kB?|o1b)gY=ViKZCJ|8wnEPcQZyC82K}C85`Tpd?yAT{InL=UfG(Y=e{i%e zVWR(_iaXvbhEJhFRP?k*o~C-+$6?sYg|HfMdf2Knh5U&9#V7I>9ZJBC6A*8<7l#{f z3{D;)54~huN`v<0A^#5x8bS8DUd`UJn7 zn5ExG9%RUx;McQ=VRLbB9%Pu}oj||FJ@s&1A@Au(^Il(uAMqcz)su6GvB-lsl;ye^ zLs1h^-Aqs4{V*q&M_k?T6(LmzPFo~>QhTlYv+0Xs+-e0;ZISB%{^u-NPfv@^BK57a zNL@ZyWG|?Twnz=2it)0IVHi7Hp)N8tcC%*q4bc^fp|OS1^I%=96mvXb3l%pM{0y8f z6n#>t46@96427x&QC+B40ZO6nHr>?I^NTB#zIBDt(+$TCsEaO?;k#L=<}ioP05=kI z*u&Irn`jCI7>dR<6HURuXL66<#N9+Q)jPQWhI}4?dLAnH@Fiazt1UX3=Oe6-JkItG zLj1#5@L8BtOYxNiS~FU~ERQ--JF~pY;vvO%Fb!#Sf!LU6Q6b+L`kxdZ#WltE8hj=j zhB9NS>ziVpL0(d%E_Ng2ESxKhB*0M1?lCdc3tks39?R~%D0f)KO!YdF-HRKB4}8E0 z_r_ZJpV&PLzT+8ouL5p#Wtm(uKXcCDP(5WZYE3Y@%3j6)pO=-kLpk1wUMf$Pj!?;_afvt98Lh?Klt=n-W>6C#7tie zTiY~m5bUZWBIpH7!555Oan_<8$pVIg^j|B{M%fC6^6%a79oSr(6XbxxQ zCr!FwvY3z5zJQb-GloGzhA^JAvYQzON-xWe$*f&qlB`E|BHk4jZ@rC25xeAJpo_QI z+kpHeJZYCa2LYaj)A^xKM4!Pjvu$9xB=J3xXoLtlYq^HsmNhPU7%1_6fPyqH_yfMZ zjTjudy}8|Vj3njG&NV_vecrhxk68=oB@ZL$B~OZEV*qv`XyNB+(6l0L!Xp-#_10H@(}`N?pw92>k;q*kJnEp+?{Q)nK+vF*V? zDfCfkk6lt(FCpH;E?zwwk0Q1`80g|HmU*%dVw9K4dJ^EXa5_KqiRf!m5ho>yMMz?S zOJXTR#8hn7*d7d&c>UqQqko9;5n|}}_)Et~QtnXIQH0dzoof%XjM44E2)aFnA{!gL zJZmvycD8j>@I|+<8A`vTdvGdex2X`U1VPO%G%|u**w8P6UyI=1$Y6>S90$-XZ1iJC zd_`*PV@DK<(s198_&}`Fa41HDEN6Bi=x)myii#dCXBK-S$Kx;-^puv?_zmDqINcgt z*HCn^S0C9q3aQ#66@CeC6NA%I^g+r#cElAFhzq>^AD%StN#rx3i>;EbkaZ_9rg%l( z!>=GY?HOp)^e9NzhBVead;){gBQmT1d8zYfEE$pYPfJFarOux|>cNnQ-|3;6HnG|} zc^WDI?W=}G2{Ma?7m#E@GVR7Nde!J)K4gK^HgM`QcFJAI;CjgFPFZhcRB>FVWGE`c zb;`zaj~Y?%$Upo}4I<)ar>7f${&2cN$w;u;H+UD3T4Gmgcncxn)_Jy5GLXVqYoaLa z0ttt>Y0LBzMlcue8yk-zwo@|D#ary9AV0kjLwCx*00v&R`Jqol-&!5ryQ?iBq{g9dT)f(=bh`6W+kUPB_rrgIZLvUjJ*v$ z>jtIq-E4athK!gOmrJfa7>azj_V`Bb(H@iGk$-c%s~{WdIX!;?2#m7jCo92n;B*;M z8wM#oGbBMm3eA%Rwmldqh326Wd@CDz7a)eN*Jc1yoL>4w^g|RV&HEh6zksN&pA`V1 zJSlQEWCB9uq>QT{vnbT{!w9;5_|Don-iO%f=X=U_yuCn=z!?iOJN?DplmN;Nse01k zeuYFXEbp|G{`>$R$uw%*BbodWkvT`MZz0!Xf$P<1Yebd?h*~ui2rx8yHQHY8u^M%& z2D};LEK2Y6%(HqpE}Mod5MXGuo;0h+&2}5S)|fI9p0-W24-#`_n7QY$*$^Sm&5>3z zWOSZGqwnm*1p*9>PAjwABhRiAW5onLqnw^ctez<2D-d94w4OFrPn7Y^{1_{G=+VqQTE9VJI!{l|fk6toSF<>spCA zh|VvW`hNB*5aez&)q)uTK3*oEe6{_}5w_Et45rQ3$-fRcT;#og(YyMv@c@GUs~ti( z;`f42Jy8SX&;qNV9Kr*wxtrfAADG-|suZZojV#OeK@UeiZao`&fyYwW)Hd?V? ztyq4{55H4e!1Km3)k@tUcM9-_Ui|MK0)}-D!M_g8AM~$jLjP{@uNVK<;@<@SF0U+x zvoDIGbM5j*!`t;wkN_WfH7|N1W~vF1Wng%CG#s^iv1p*VsUFK*3h{mo5>Wjl$b93yN2$}qEbcEHUKrpWO^RPy* zvvi^yTiJTt+`pUcvj{4yX*N*k!># zaHvmZcyc8(P>@|DLsxb$FW2fS=~ag3zF_z<2%cf)c&9YdPmn7Jy=9T`5rOMAfbt?71>D<_fHial1!1+KL>O^SZQJR5BaWr8D$H#O$*|s2}OPhs8EMR zrvj4Q8VD-PV;dJbMHhm1Vfn}6sKmsxjI{l9Krz)mHj;YUM3TJlE-e3etL|-?JBUcH zT*Fj_dr75c4--Mk$Gfon<1O-82qpAFhku0rqVN2QB#-X=!IX)0R+#)PElS2h+LNwI z28G*00HztPeQz2s<2NtlWkPwmo7g}ulRC*|@<_S7K2I)FHpyk`mvWi*n_Q-6T*T-z z3d?0?8M(}ADVN!U7y0o1(qiE_ueMx6UI)2m@Sc}zg2((63+MG% zImN;SJXTAwaAA)XQY?J0iC4_TD=zW!!A9DF;y__M~772eOaMaBH3!tkOHZyychA}gHcfc~UGgZv&ybtB6h~gFKUK3gN75N?c?nzYU z84(MmUjQWqW-OurmnH>fvjDz$oc|~=4?l{j#9Sc43oKg(;;S))2E&CvW%hjEFT@e3 z1zdO-?~;gjIwT6`0FNQ_Y{@~nxRg&wcMP#hF&|lTr{nBa_~T!d%zUNuLqB%`s`Ohe z0%jXf=ICbRK5NNzc{3?hR-%ayff@>FgzT9*lrOg9kmN+mMCFQ+R3zl)|qonD4Wx)#N05B3$I`5GhMd{h*$9HXnYlP_{&Jz@4HU_n8ggPiiKgiX~RUCi^O#Ewjj9N#q)R{ zd1}f~>>5#z{&NT`ugaCjjxF8Og|8?zk$V2sp)Geow%=iNJvNO$M`n@T(H+W$SDfxC zNwcI5P3?iqy?S&IK6*#l+B)=7US?unyiaw6N`D(2db26?&QCs$*$PGU_tK%oe?&=F z4EV={j?|%#*Fw%V=E>yKva=*KX>mDd=;8&z_RWUkjR*}NL3zS^aHllf&ufIWJmKRp zaCi-6D%5@#86NJf^WkNY4yUxyQ4C){O1H%8@rzPa8qNYIeJAPXc|hLvir|0&fPUps0v?U2bgYxR{(3!z7TNTq9UKd>V%L=Zy~=X*R^2W2dG7r`5sYPcUql*ArRlgP*WiG{89c>2PXaKVV7!3GCqnm-zs}*&VFa#(TkF8$ z2ack$hEdCI1nwgsDm5^I{!<7%Z-H<&>I_no78ywqFB{^~@g~eU*`T8tP!LGD7*uP~ z3dU2UF5sq4M5N($k>{2r=rX5FHL=Vhn23?`PTOv;G$XUTH;i8)RIFF(I(@ zz#6i)QeKPXK6eHp8w;NXa}|VTW`&EY182U@ zpjD8jp6xBrc=3TFwen+r4;*36aAESe)Pr_h*t)o|9Sbmy^2r`O@SV)$vUd-B&zyJ# z`{L*4z>oQ1JYKs{9HK&&R!BfS4DyIe~SMzhF@UfUcp23U#us74*P+hWkpp` zEbmuZo|mh`il7SIdY8s7$N zzrz_nI!`HD=z9oUc0yDVEi^z2#f7mjgws{f43%nxnqEh%EcJvLDFcCOR!G~TuunI%${ zwb97uykARUIkE}ZUWZF-u%eAn*moTd9C{}qaLx&dk{Vq628#L?V!<*I&Ea`Dl}Zn% z%|gSaeI;h$9r}a|0V+ngF16R>;utS_UY&}gq=ah$s_$ZJ_yOO`znR!i0P5mm*T|3; zmfX@9$HMq&%x$#-cY z9s z@~VJpM&KFD+8Eztn|2#ODG`|4k-$V>FKp)7Qr-YS&qrXcKLS&I595760#5@p$HB=X zh67&c+u8^%x*EZo39%E0DXldAo-hBGFpC4gPRHP3Z5Eq=2EOvO$LiF(0)gvRNY!|S zu-FTCH_5@I*aHi;O@B?4qtgk8fajt8<3V^CPIQKUEl%KxNX8Zu)J&e${L?W51 zarhIYo6+C#K~D{2(fa^@{%$gP{5XfGMp9-P@cERX&6z^>u7+F`@=u(HUxwBL+a8P8 zd=kGiRPk4@@7KwE4fs2XM6x0xjr{K(2lF^5?kPr{^hV0Zi~G40d04&lZPGS#0Fc+^^cM5_7Lc5b%cAcRuld~6Q!TEox zM8YEXz|g~}z*WKR`|+S2@WW0Fp>S z#9N3k%@&7~-4$>2&P^MKY}$gXFSjsY>F&35N+IHc|^)65 zJ-M@csv?9s!G(u2d;cTTgP~tDJ=BKZMQ{`nv`Eduh^A?g;mDn#Mf$>PX_3WHZ)lO; z@LF1A3xhQ+(oLi_EpiCKh89_hpUg)gE&nZqIa;L0(tsLFJ>h~9s%eppOMOxfe<>ZR zX_2${;=5#&t)oLVE%L;2Pd&iUwmMYPBHQYCnilD;Lp3eZcZ*+B9WU!pO^bZ@lL?)z zLp3eZ20d6Pl+_YyX^~y{<#P>^+mF!jIFu)R3U`hcc>}{a;Xh*F@E*!oS|neGfXY_L zMyIsVVQ7&o*h*1pY08M9Sz2V_1w1s2>TTcp$- zPBI`vE(4_y-iqWtgp22mF9gST5wu1PmYbff+7j z{zS)x^g}w93to;Bs0oK*)N&AkUlS0O8W=(U1qA+Sf$+!F8KfpHGLj;hiedtSlejTl2+>kNYQ&&g zi&ik6BFzA|b0Si;8l6bA7mz^?{R|3iU_UvW@uTyUqJ{o}K*nOG;9)9>78;<13PGT}6Pkt!HbT+7NPP&jutG7s z$Ri^`IzhAdG~j+#BrGMeyhyFScvlT&UIRYU$w;XzFY?fEqh}59El!5{QI;1e;De4Y zfSqx;v<55M2!(xzM__~VCj?Y+TXIoid68f}^g=X;mm7FNE2Atg^6|TP;UD2@fF2U5&&xyvU(^AYB;yo)TDS!s&w5Fuch8TwqlQ zmj_fO0vldraCvYtgqs6u9f1um(r1y$`7?m}M_|K?^!?4R*izmEKvN^I;Y9|5DHV7n zptTORyhy!5n0xmi_z)qQf0)va7numo#ybn_?-)F+&BE{^#p1ExjK|!P4Ni{)mKSM| z$s}J2P!eHj@*0L0c?~0s@FGnBwQ#WEMSgz{=GFzF&k~7b&hjF!)&d#8qK^eW^=>kG z{9pYAvW+q;fp4S?Ghhm7c##UVvE%v-*w?YR;YCJxo=)aBz}G1f$%^4c+Tm3`l1jFc z*uTITr_%X0d0!JHoV9~Sfw^bUc7^VzIL%KFH$xM?fWx=|F$tr`x{=Q z?i(|Heo= zUgTM2WO9|p012n7LJGrwju%;y2HqnX0u7xIhj7P>48+5EUJ9^I7I(ZzDI5^-4MOl3 z3yCS4_AtE2@5^y6ZY~6t#t2znWI0Yp`nCYt=V0MQbe}f7NWLeb;|v7;bV4kDbZUkd zS+x%8GL!)Z7u7W^FR}*bwb{pgWr0_+GOC8*MIM?GkO9iq6wu>@T?dWjMe3|nF5e8XaWbdcih?~M@&i=5>}-kgn>$N>M@$;bpB z!;8H12xd&opjqK`sYOP3k=$2s5;A>S6TFs1xd8QsMOg>0Wl_BH zjzw81(wap{K(Jv^9>uofK_u$0k1)rg+=o|eY@?nII#jbL+xzHp_@C3Ennf8s-cyq1 z7#*rvlri|xZ4@=k)1jJ0$qtfH4wtOcp_)a>wA&mQ`9y~n|B;7Frq(r~r*)_~T!M}+ zEXtn}YFU)AS^erSB$p!z)!Z262`2(~EXtT3O5kcSa5xiXEQ@lZQb0ZCa4Iu842zNn z(-)QYrHmMwWl=hf#dL@2ea#_;MQMO`tFY`_VMwmy>4F0ga5f};aXUgP<)&HaT(jB3 za$k7~BUc{ZBF;MSd{bD)iN>m>bj8 z>OwQq**ITk?Z`OMY}fIp0Te z+u`DQW62Nt4*xZ=#O;C}zWB$&V}3 z(Ch00Gvvp*>5ly9gLEwU!6F*+qa)Uu{h<1JM0$xzhcF#Oe*AJx7=}^HegqySASyL5g8s7z{KEp_SEw^cOQnebLNVGeU{tg|F5KDd#9Rp-$3~JOz$d9)Hzh^~a$d4Lt zdy3}q8PKn-L=5>+wmxP6AlDsA`55wJ>=Qoa&kW1V4Hs1h&U~Fgs~}B1Tm30K$#kR< zR`4J=m@{0MJT6V49T&DPE^NmFjN`};nWD@=5az^^AGfB_uMdJ`fFXHugf?*YkofgM zkgvtB$qy!O$&aSuk0w7f;X%u@gvaZsYVR@%cnvO|caHE7D03B*A5Ng~Oya>WA!-Q^ z5vmA*2c6I!z*^E09wPJ@1bW8`&4W6l^C?8KgolWaf#?(`zK981!b9+-z}7l^c?56i z3BCu|*A8d==scxpp`Rge!wFGIw9o)8bWc@`U2wVz+M-g8P&DCD1p;-fPz>SGW{yv- zhGwrF;4W4qEG4pp#}hX_E%O5Ku}(%xWeJa(%kXG9^(+Lw(#bGCj_|nW0}Q-7fgN1Mj@<}QGZ)(u9swL@k=RcG>g{4%!sGov@N!Zr9}Va=7uymZnRDQMRD_oRS`mqD z2#+pjF$xm?2+*gI*oN?^eITG?e-G$1PJKc5;; znR&pMQHB{Xg*1dmqkY)ieE@84EN%#o_+p+;<_zGA6p3WT5FVl3_+B(q@z=m(qi|8F zSi)n&3Ztet@G_L48b^2}G%y)$0O(<>!Vw;~>iBdfx&rDMiERjvE+;&lfl+|QMPeJm zV=#_{azW=U0<=65+Ylau-h|l_{t(b!7uymZPre2tIf>wNHl}HRLwK}rf^E!AU~$Q| za<;H&mhgx>iun0~6}7k}JU+aHshagx1IR-b4YRZ8BrM_aU4J9k1w#E}1tl#@c$9ev zkMvUG1PING71U#uAw1rjWk#C~5ZV_j7#aC2;Zdi%8QFe-7 z1}icF0<&U-EaB01C5&MupsfxT!bA6ILwNN10`$T`2>j%PShncY4B@fv6xJgDKq}n> zw#YJsSi)l>eu5Liqag5mt&Af)PT+Jd<$VtTYDU;~&{)D_QF>&%GX$QoI>P-}tA_BX zcR^c-Z#3Z7od`2+36FiKJl^}31Aae7BrI~4@ObANyq*B~Nhc!{d<@~Sc$`oD4&1{m zsvBBlgz!i%djy2XOs^~++V->nUW!jN4|{;@d4m;b~g zkVt|={@G7>Dw~%BX=X^tP#f#O6Vnm_q5i7770)a1@1c2GB(d8ww*Z4jLl|K~ew@N1Ncad8ppz4lxu)=s~F8 zmkE@@1g|n4R-OU@XG7AtMk1urQMR>CmdzfP`^tM6@5X_vIKT1f9q~5*XS}LM^!bfe zcpjVC^Vb8p)jr>Ty}gEa9LKNW#m%>jee_-Sms%l zKM^a7=rI%q11yC>zojtfw-iPmG|@2JkA#cojioT?pN_x<76=!Lps7UH0omrzVnhvv zv8Zf79Rza1p{0pB3gf&DkEJl)n2BB=tcSAeXIa|Mauh~I#IO_wi)bi}H8}&S0#rYM zNcG_2t1%rzVKjNvr35ZG!jG+H* z1ioj1a6Re_Qj-=LNs-TSd(??=f;8x8q8EYu6N73kTETdVWJa^*hLgm@QnebLNVGJN zst#>}5KCbYZ33iy3~JOzD2(2K2V0RC3d4t2hR{4F0i9zdVknG{k^|};ARjoC@-Y-f z75o(GKM4GUlaV@b=Iabv1!?NpK7SLRehVDQ*g|Lu<_v5FlgA}1Y6=&&E-q}x0*vD* z44I+~g~6Oy3gayplcg};6~8{eF$6|s&uyKY$+zaT~V*pKv#5NSh&dDbBTYy$ZVjBvB{F-EK zH=unH*qqteI~DI|VcI_cx)6a4h4B?$#3WhsH^E#6X9{L040WGR!$kmf2wPgh9RYQ7u%$3c?ZfW!c?6FpMDv$U=qQW}pTaEO0Jb6q4{Nh9 z6vl}C(7yu$A6p^!EK8X_Ci&BVek80L&79fTyjXmO#(uT5{YEa zQW&-HLwa47Eg5*jyUFD7-@a%GZNb`rt&f1gRxpHg>e<9MgTQhp#PUa{W+;sA2=;A*)F)1o^`|U_@!Bfg$9>-cKWAkeh4Bv7%Or5j5+i*2HeVtFvwCEZ4z`N`g#E#79$cCIZI(= zzy@nF@C8mrCioZ%Bma{=wI29Ku`-&%IP8}L7?msH0LD28T!xcf7H{+}OP4@4SV5NG ztqq03kX=mvlG{LB{5c5=rz=h zfK~8XKHvkWH+;Zocr71rn8BJ4NE2zz2V6w3;R6BsKKWp_&g^`fNZSX&9|TH6QTK2y;wf zt`60Fz_zyyAFx)3YCd4Ybn{@yUJ12)K;|HN29i6A(C}+0Pxx=#IX)n1rcdCEk4D4c zGnBD>Kz}f5r5sLWMu*`8QgPgmO6yZb-XdrDfSj}ZY7(k9)ggut$c=WZ(BOXI1BzV_ zs5A&T8xl*Mf{;pLQ99T1qPDml$X4YC8Slo(KfnhZyCdGG{~539EBO$wl6NqDP_pay zBNM_0@a1}v@hCok*;b(%PhjdvSF0+`Odn||4q4egQNU$cg?jYGs1Rs$3loLq1NiRC zETYHo0rE0T^KJ|JEgwL?If>hIPDJ*?8XZmaA0QdgZlYN>(prla8BdV{fbVl6QnebLNHiHp zLx=81h~)!_wg=K91~uv=VD{1E#{LEFZAv4f-`7z{D*d;9&=;sdD>ni#wm^pcPtf z;4rG)JJbdw5L`U(95*1)F9^PBq3|){!L_)z+<*vWYl~k!;Us=|4qz>5xd9QX3W0}X zh0Z{o(ODglEH@zH-5~m$6aR?`TW&z`(ZF7J_|Fl%r6>4Xz&1FX@uTyUqJ{QB;J6c_ zl4zj;TIdo4)MK`Ee2JM6islBw5GZ7Yv|XC_T+FGBEi^QH)c`+eMZ!`d%MEP6D?ddh z1^81=MoMM5fn$YyTINOI0BnuJr8QX5jvGkEn-{#@5ct9gi4w~V zjE+MuM00rOf&XS@95+zvDLm;JKs$vkH6@Hc;`4}h5;W#8QPpFq~Qks!K3!R zxxkjj;)Wa8m0*(D4){}wM6zPJffY)p@*Ut`VzpRqpk6qjbDJ&&D(J+#HQd4fDGv8Y zM(+hwim-GJ`<{!q4^8ZPfSN>No8t{vaehH!cLvlw65DVCi{HdY7qO=IMgkfeiEX%n zhgJp@GL7?3fR?)0mK*p0eaG91;5{~`X@A2Flv{$m>MAlmqPUoV7|v~ zsm=2o|8_E6J`a$R77ep6=_D*SP`&}Gu*)AuRz@~Nd4#}S$~cjC^8&eEo{&CFYrLB zwE+7(M}~8Hgz)7DREDtYpt0P*!V5^JE(Drd9pMH{$8ZDd2kYARbp_nVi7?Za8`!=? zTbpkz;8`&uVUe@kK&Eu)F2J`s8JXZ?xPeOBJoN?eGqEzl4b*t&I9_PdFmTZeYOC>e zL}SCro2S{+bgPS<^H!HMcLh8JpT5J9(s&G{I;88v$v%xYdY`7_$rden+4o2!B^dYz zqgQ80ya0Dw0@7qIfiS8FR@ULNoV{pO4#dSm#90X^$?)cmWP)tW2WgN zcK~AN;p9c*k;2@TR&7s3?cId%kZoH2`Ctz62j9VJFaXV=aas5(|J6;g`V^8O^IEKD zHIqz+HNWxrIYYou}3$vmVUOV3;tof1M`0W)5$8|!qt=KPT-r5a?zB3Q3 zBc1gfo2&+gsgf^;QTVK9f<>T0zqIt*;2Rr>{FXr@$x#R^MwQHgm!~jJn8e!ixmVEY8~lR!%BJD#55X;R=anVD6#T&d zDRg>e*^0q!{;%YQ{8n&>5o0?9cltB$fLQgqKO@dAe-7Ss=#1aL;o^Cx?iXl}h6W<| zB@2av@PUwjFQ9@4{CUs^7~svpzXg=Z!{{|~^?>Ft{S&hV)%}Fu$G`0nc;Q9l?`!`p z6;!1OAH}~@5qQ>Vz{mYv@H|K%sPp~?bd#{;t%ktg`FBG(tI*5Y1y%(oux3YUq`LqW z7yN(WZTzC5I`G<7MrrtWe_Oz!q8*?v7B(u%v_uiF`TN#4GA{rhOBoh1ToCzDHEx|j zGB^DP@md~9W+CvEPLGy(fprlGRJ#z+Y3&C7#cg_KutMSjB`O&`=Ye0jO%GpA7R(Z8 zo5R#;CRjuQTvUD{b`xZ=LJ!>(Lu&~sV`x0fAJs)A0?%!N62-GLFv<}TS^j8#yQ~~^ zDl-=4rBQCghQu1Bj3v$}dFPBW7lsIDlttvm7^N07Mp+E?>Ws29Z!RG-f3b+Xb4Dpp z#%>^v-~S78Sn&x@O^6 zqx=d(w#Z~d3*?8BB8Jx^WoMNBkV&Qr@H&)XPK}H)$^i)`t@gmX-loSGDcKzk z{MFm^7^7^MZ0a-(_&c$BA~Q{pSq@#OMngNuuS@tigk}DcR*)FRh?4p6J($h*BL2^C z@SfT?T|J1X{&8)JZ4%oyMUY*#xf*5l1{ z$mAfnc-}b!6zDYs&$LiDFMQ4b`(z9%26$`mZv$nTFuFCsiQl0dgb(1~R}t74;I=wJ zRhRIu_;)1&8v`72F`!yNotLRQh)y`2H*0_kG0d=Pz0!cHS~%7K)1!lkiWb1zSQ%%4 z6R}ni70&`1YT;M|+=r1$WTpatlQJw~xH3|92KXzgL6X@B{6nWl%NPS(jtNBc90&f> zZF-CW4#UVKdTs&FfEJe$o3xAp_Qfl7W#xtN-#CT*3 zbjBkm+3l2CQS8M`sSn7FF&-^ujHeCT#2QZuZ&o22>zNhaIpY!N69gZ&Q1~(UobjaL z#}Ed1zu@0x%5-9MYdl>rdc8(Cz9%_Q2OHx_$%76}xD=qI2yBdJMR8OC)Ok$+wID2c zv&Pd3FhAnrbqCbn!m-Aa6J1?YOaMOB$~fb>=R`oOSP5vOg=3B9S=gu~^9AtZlwlFW zeUY*=p3M)MWUc_e<@9J7V?4EBsG=tUEm;&UT8}ZFc^I!HyUD;CQidfqX&K}B9j_Lb zI_(I&XRMyc3>jonWuCZ%O#_T)?K2VMk=3j-9^nbB@l1}M`re41`m~rao@dx5)_D5! z<|4B3JF~(&XFLL>>y00Q;RFg#hmbR#t{6KQ;FSbko-#uj-5Sq7M+52;!i@nnkHE%w zmSbezO899&&qQEjJoo(_P%lEAHwMrI!jd;@JYz6#4Q1@N0KIGBSmSA!HKT;LBq5i1CPZ1esK56Mogh)b|gh%+yEFOnoD; zU)TlYES!AuNl$&0h?@FB<1k`EN3Ca_4sL~vj#~w=%>+^kPVb2&3zUe~(PASAl2GkG zA(glRE0$2beOL%^8h#N$vIpi=EgMvZhIyy|@m3|Cs)g@C)%y%fQD*Nw8;R*iB!)`* z`X6sqV(Wa2GzITn;Qa*~i8T|6#JjNklSrkPPS)%PHdL*-rOQ~^*RBtSwj9-iD&zgW z#yED(ER{o;{8H2kDTN!mf0Erg!7?KJ3gS?!`$_5cEUM6C3L@HCgC}k zGK{EjJU`FK>pJ-IrtVLl;;t+7JHgw13In ztTEqQHG}G7AQz}zcDZ7{^f~R&aRq1p(FN-EwKer6XLqAxVBVn00HiFOd{|BAkP^{4 zvT(1T`QYe?4$kIA#}3_ig}2tmUIWSgVuiWo3iFhi{wIr;I_1%0Ae;`%Ddt7AavvAw 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%0DI9GU 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

K)y58{arDw4U)`}J~l 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 #iVu_NrmfX*10 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�cQ(bVov48PqtQW&zTr$EOM zebGQ(2ja0M2piQ?NV&0=D27AQd+!2POrv@VsWJ#nf~3wcr)}PiL`L-#dUsGCxAgAJ z*r=X@zX0qti}&{N)~?|10$XZvrcW$Wx*}}>VXr08NFr&VBAo)^nk7x&XKR zdJ!Db1PKexEOWNw;c`D%cB=rcYbc)7$f%wzM~4)rBk&%UBegQB=QnFy#Tg2GwB@io zP96Qt@&j;LcLuP<7MI>&Lu=BFp|ry&%z6;ETap+ts%OI)VP_z^!~GrjNyD+K=dJIB zoneHNzrp=4j+Ccp-Kd_aCqgQ9DL~~3vpcNnS!ZHMrM??b6Pwzoo+a^{8B=Jy8=yyQ zYNL7scA0t`)pKw^U9`f0O8Br=Jsg|Ac z{WlJFoZ)9+dy(@D@R8)u=X52t>iK70tf%FSvM{RWi*jDx2 zev>ZaZ@@1EI8r04dj2^MgDTr@v;_}wCQkEK^&A~Vd)@-|QpMlgx zQ;kQhdbVo{f9?&!lL3-ZJD?Dx5 z4*aJeN2#7SRix_qS2?JjAuOeG;EUO!msxz4{Pfm6>tcL1&I~aEwIs@0y zV{9$Ek`x(J?s-bK8IKKVn^)i`NFooufoprIWi_a9+&AMqt~$NA?8BPzo!t0PXdkr( zM-dKn{K1t5|cfos0{busK$TyRacu+nnl&evibvRNOa#{;ARFK_>J!}wf z5Y8NxaD>1Y5aI6C3BAIiVCGwjyZ!M~=0zRS-TZ)ykWxZWDrAwFIon2^=|rmlsp+E> z$Rdjt{2Fz}5p4^kqmRA;IWn@WY4xa6j-`GA$RMIp>Y{?Kol_03CNk|fAkz%0?naA7 zkHNt9)*ZEhj{&bV6i1=^w%xA{d;{cwLA8NfTcd8j|Mjk>{0Z1We@NZD7m%$}^x8q> zaduTtoku>vH%)1uviuU%NZmX^x7ycL1+W&M3B&QHPg}i8^c>w>6*+ z7B=eetM?=;xIdt$Eo{}{7Evb`>g0|CG?_3fZPnp#>qMOt!XE%yW>d$GAw#1MAIDb& z<$?9L!1r2?QHL{b*9ABS=rUo+!KlL}iYG(ofp6uV^KmhXgq?cjm=cG({bzXX1CNQL{q3aD{<7T<<5$owx5q z^uMXYlCxHanaZfci;%s05IOzE+!!+Iupn0u8-Za#ypIG

1saDq&#dPh~Eb#j?v+ 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

-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

5@iA9NZ;ftIBN3*@9jBF0vB`5Gk#+|n0e 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

J)$rh0n*6fJ)S)f#Zj@mioPx;Er%AIzCYzDK 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%0DgLv8?$Pl&6qsk9Ajtfe45G{rH~7~J5}ah3Db%lj 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≫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 TF_FLARE_OFF) + { + self.count = TF_FLARE_OFF; + } + t = t * self.count; + } + else + { + if (self.state == STATE_SLOWINGDOWN) + { + self.count = self.count - self.cnt * t; + if (self.count < TF_FLARE_LIT) + { + RotateTargetsFinal(); + self.state = STATE_INACTIVE; + self.think = SUB_Null; + return; + } + t = t * self.count; + } + } + self.angles = self.angles + self.rotate * t; + self.angles = SUB_NormalizeAngles(self.angles); + RotateTargets(); + self.nextthink = time + 0.020000; +}; + +void() rotate_entity_use = +{ + self.frame = TF_FLARE_OFF - self.frame; + if (self.state == STATE_ACTIVE) + { + if (self.spawnflags & TOGGLE) + { + if (self.speed) + { + self.count = TF_FLARE_OFF; + self.state = STATE_SLOWINGDOWN; + } + else + { + self.state = STATE_INACTIVE; + self.think = SUB_Null; + } + } + } + else + { + if (self.state == STATE_INACTIVE) + { + self.think = rotate_entity_think; + self.nextthink = time + 0.020000; + self.ltime = time; + if (self.speed) + { + self.count = TF_FLARE_LIT; + self.state = STATE_SPEEDINGUP; + } + else + { + self.state = STATE_ACTIVE; + } + } + else + { + if (self.state == STATE_SPEEDINGUP) + { + if (self.spawnflags & TOGGLE) + { + self.state = STATE_SLOWINGDOWN; + } + } + else + { + self.state = STATE_SPEEDINGUP; + } + } + } +}; + +void() rotate_entity_firstthink = +{ + LinkRotateTargets(); + if (self.spawnflags & START_ON) + { + self.state = STATE_ACTIVE; + self.think = rotate_entity_think; + self.nextthink = time + 0.020000; + self.ltime = time; + } + else + { + self.state = STATE_INACTIVE; + self.think = SUB_Null; + } + self.use = rotate_entity_use; +}; + +void() func_rotate_entity = +{ + self.solid = TF_FLARE_LIT; + self.movetype = TF_FLARE_LIT; + setmodel(self, self.model); + setsize(self, self.mins, self.maxs); + if (self.speed != TF_FLARE_LIT) + { + self.cnt = TF_FLARE_OFF / self.speed; + } + self.think = rotate_entity_firstthink; + self.nextthink = time + 0.1; + self.ltime = time; +}; + +void() path_rotate = +{ + if (self.noise) + { + precache_sound(self.noise); + } + if (self.noise1) + { + precache_sound(self.noise1); + } +}; + +void() rotate_train_think = +{ + local float t; + local float timeelapsed; + t = time - self.ltime; + self.ltime = time; + if (self.endtime && time >= self.endtime) + { + self.endtime = TF_FLARE_LIT; + if (self.state == STATE_MOVE) + { + setorigin(self, self.finaldest); + self.velocity = '0 0 0'; + } + if (self.think1) + { + self.think1(); + } + } + else + { + timeelapsed = (time - self.cnt) * self.duration; + if (timeelapsed > TF_FLARE_OFF) + { + timeelapsed = TF_FLARE_OFF; + } + setorigin(self, self.dest1 + self.dest2 * timeelapsed); + } + self.angles = self.angles + self.rotate * t; + self.angles = SUB_NormalizeAngles(self.angles); + RotateTargets(); + self.nextthink = time + 0.020000; +}; + +void() rotate_train_use = +{ + if (self.think1 != rotate_train_find) + { + if (self.velocity != '0 0 0') + { + return; + } + if (self.think1) + { + self.think1(); + } + } +}; + +void() rotate_train_wait = +{ + self.state = STATE_WAIT; + if (self.goalentity.noise) + { + if (self.goalentity.noise == "ambience/chopper.wav") + { + sound(self, 2, self.goalentity.noise, TF_FLARE_OFF, TF_FLARE_LIT); + } + else + { + sound(self, 2, self.goalentity.noise, TF_FLARE_OFF, TF_FLARE_OFF); + } + } + else + { + sound(self, 2, self.noise, TF_FLARE_OFF, TF_FLARE_OFF); + } + if (self.goalentity.spawnflags & ANGLES) + { + self.rotate = '0 0 0'; + self.angles = self.finalangle; + } + if (self.goalentity.spawnflags & NO_ROTATE) + { + self.rotate = '0 0 0'; + } + self.endtime = self.ltime + self.goalentity.wait; + self.think1 = rotate_train_next; +}; + +void() rotate_train_stop = +{ + self.state = STATE_STOP; + if (self.goalentity.noise) + { + if (self.goalentity.noise == "ambience/chopper.wav") + { + sound(self, 2, self.goalentity.noise, TF_FLARE_OFF, TF_FLARE_LIT); + } + else + { + sound(self, 2, self.goalentity.noise, TF_FLARE_OFF, TF_FLARE_OFF); + } + } + else + { + sound(self, 2, self.noise, TF_FLARE_OFF, TF_FLARE_OFF); + } + if (self.goalentity.spawnflags & ANGLES) + { + self.rotate = '0 0 0'; + self.angles = self.finalangle; + } + if (self.goalentity.spawnflags & NO_ROTATE) + { + self.rotate = '0 0 0'; + } + self.dmg = TF_FLARE_LIT; + self.think1 = rotate_train_next; +}; + +void() rotate_train_next = +{ + local entity targ; + local entity current; + local vector vdestdelta; + local float len; + local float traveltime; + local float div; + local string temp; + self.state = STATE_NEXT; + current = self.goalentity; + targ = find(world, targetname, self.path); + if (targ.classname != "path_rotate") + { + objerror("Next target is not path_rotate"); + } + if (self.goalentity.noise1) + { + self.noise1 = self.goalentity.noise1; + } + if (self.noise1 == "ambience/chopper.wav") + { + sound(self, 2, self.noise1, TF_FLARE_OFF, TF_FLARE_LIT); + } + else + { + sound(self, 2, self.noise1, TF_FLARE_OFF, TF_FLARE_OFF); + } + self.goalentity = targ; + self.path = targ.target; + if (!(self.path)) + { + objerror("rotate_train_next: no next target"); + } + if (targ.spawnflags & STOP) + { + self.think1 = rotate_train_stop; + } + else + { + if (targ.wait) + { + self.think1 = rotate_train_wait; + } + else + { + self.think1 = rotate_train_next; + } + } + if (current.event) + { + temp = self.target; + self.target = current.event; + self.message = current.message; + SUB_UseTargets(); + self.target = temp; + self.message = string_null; + } + if (current.spawnflags & ANGLES) + { + self.rotate = '0 0 0'; + self.angles = self.finalangle; + } + if (current.spawnflags & ROTATION) + { + self.rotate = current.rotate; + } + if (current.spawnflags & DAMAGE) + { + self.dmg = current.dmg; + } + if (current.spawnflags & SET_DAMAGE) + { + SetDamageOnTargets(current.dmg); + } + if (current.speed == -1) + { + setorigin(self, targ.origin); + self.endtime = self.ltime + 0.010000; + SetTargetOrigin(); + if (targ.spawnflags & ANGLES) + { + self.angles = targ.angles; + } + self.duration = TF_FLARE_OFF; + self.cnt = time; + self.dest2 = '0 0 0'; + self.dest1 = self.origin; + self.finaldest = self.origin; + } + else + { + self.state = STATE_MOVE; + self.finaldest = targ.origin; + if (self.finaldest == self.origin) + { + self.velocity = '0 0 0'; + self.endtime = self.ltime + 0.1; + self.duration = TF_FLARE_OFF; + self.cnt = time; + self.dest2 = '0 0 0'; + self.dest1 = self.origin; + self.finaldest = self.origin; + return; + } + vdestdelta = self.finaldest - self.origin; + len = vlen(vdestdelta); +// if (current.spawnflags & MOVETIME) +// { +// traveltime = current.speed; +// } +// else +// { + if (current.speed > TF_FLARE_LIT) + { + self.speed = current.speed; + } + if (!(self.speed)) + { + objerror("No speed is defined!"); + } + traveltime = len / self.speed; +// } + if (traveltime < 0.1) + { + self.velocity = '0 0 0'; + self.endtime = self.ltime + 0.1; + if (targ.spawnflags & ANGLES) + { + self.angles = targ.angles; + } + return; + } + div = TF_FLARE_OFF / traveltime; + if (targ.spawnflags & ANGLES) + { + self.finalangle = SUB_NormalizeAngles(targ.angles); + self.rotate = (targ.angles - self.angles) * div; + } + self.endtime = self.ltime + traveltime; + self.velocity = vdestdelta * div; + self.duration = div; + self.cnt = time; + self.dest2 = vdestdelta; + self.dest1 = self.origin; + } +}; + +void() rotate_train_find = +{ + local entity targ; + self.state = STATE_FIND; + LinkRotateTargets(); + targ = find(world, targetname, self.path); + if (targ.classname != "path_rotate") + { + objerror("Next target is not path_rotate"); + } + self.goalentity = targ; + if (targ.spawnflags & ANGLES) + { + self.angles = targ.angles; + self.finalangle = SUB_NormalizeAngles(targ.angles); + } + self.path = targ.target; + setorigin(self, targ.origin); + SetTargetOrigin(); + RotateTargetsFinal(); + self.think1 = rotate_train_next; + if (!(self.targetname)) + { + self.endtime = self.ltime + 0.1; + } + else + { + self.endtime = TF_FLARE_LIT; + } + self.duration = TF_FLARE_OFF; + self.cnt = time; + self.dest2 = '0 0 0'; + self.dest1 = self.origin; +}; + +void() func_rotate_train = +{ + if (!(self.speed)) + { + self.speed = 100; + } + if (!(self.target)) + { + objerror("rotate_train without a target"); + } + if (!(self.noise)) + { + if (self.sounds == TF_FLARE_LIT) + { + self.noise = "misc/null.wav"; + } + if (self.sounds == TF_FLARE_OFF) + { + self.noise = "plats/train2.wav"; + } + } + if (!(self.noise1)) + { + if (self.sounds == TF_FLARE_LIT) + { + self.noise1 = "misc/null.wav"; + } + if (self.sounds == TF_FLARE_OFF) + { + self.noise1 = "plats/train1.wav"; + } + } + precache_sound(self.noise); + precache_sound(self.noise1); + self.cnt = TF_FLARE_OFF; + self.solid = TF_FLARE_LIT; + self.movetype = 4; + self.use = rotate_train_use; + setmodel(self, self.model); + setsize(self, self.mins, self.maxs); + setorigin(self, self.origin); + self.ltime = time; + self.nextthink = self.ltime + 0.1; + self.endtime = self.ltime + 0.1; + self.think = rotate_train_think; + self.think1 = rotate_train_find; + self.state = STATE_FIND; + self.duration = TF_FLARE_OFF; + self.cnt = 0.1; + self.dest2 = '0 0 0'; + self.dest1 = self.origin; + self.flags = self.flags | 512; +}; + +void() movewall_touch = +{ + if (time < self.owner.attack_finished) + { + return; + } + if (self.dmg) + { + T_Damage(other, self, self.owner, self.dmg); + self.owner.attack_finished = time + 0.5; + } + else + { + if (self.owner.dmg) + { + T_Damage(other, self, self.owner, self.owner.dmg); + self.owner.attack_finished = time + 0.5; + } + } +}; + +void() movewall_blocked = +{ + local entity temp; + if (time < self.owner.attack_finished) + { + return; + } + self.owner.attack_finished = time + 0.5; + if (self.owner.classname == "func_rotate_door") + { + temp = self; + self = self.owner; + rotate_door_group_reversedirection(); + self = temp; + } + if (self.dmg) + { + T_Damage(other, self, self.owner, self.dmg); + self.owner.attack_finished = time + 0.5; + } + else + { + if (self.owner.dmg) + { + T_Damage(other, self, self.owner, self.owner.dmg); + self.owner.attack_finished = time + 0.5; + } + } +}; + +void() movewall_think = +{ + self.ltime = time; + self.nextthink = time + 0.020000; +}; + +void() func_movewall = +{ + self.angles = '0 0 0'; + self.movetype = 7; + if (self.spawnflags & NONBLOCKING) + { + self.solid = TF_FLARE_LIT; + } + else + { + self.solid = 4; + self.blocked = movewall_blocked; + } + if (self.spawnflags & TOUCH) + { + self.touch = movewall_touch; + } + setmodel(self, self.model); + if (!(self.spawnflags & VISIBLE)) + { + self.model = string_null; + } + self.think = movewall_think; + self.nextthink = time + 0.020000; + self.ltime = time; +}; + +void() rotate_object = +{ + self.classname = "rotate_object"; + self.solid = TF_FLARE_LIT; + self.movetype = TF_FLARE_LIT; + setmodel(self, self.model); + setsize(self, self.mins, self.maxs); + self.think = SUB_Null; +}; + +void() rotate_door_think2 = +{ + local float t; + t = time - self.ltime; + self.ltime = time; + self.frame = TF_FLARE_OFF - self.frame; + self.angles = self.dest; + if (self.state == STATE_OPENING) + { + self.state = STATE_OPEN; + } + else + { + if (self.spawnflags & STAYOPEN) + { + rotate_door_group_reversedirection(); + return; + } + self.state = STATE_CLOSED; + } + sound(self, 2, self.noise3, TF_FLARE_OFF, TF_FLARE_OFF); + self.think = SUB_Null; + RotateTargetsFinal(); +}; + +void() rotate_door_think = +{ + local float t; + t = time - self.ltime; + self.ltime = time; + if (time < self.endtime) + { + self.angles = self.angles + self.rotate * t;//self.angles = self.angles + self.rotate * t; + RotateTargets(); + } + else + { + self.angles = self.dest; + RotateTargets(); + self.think = rotate_door_think2; + } + self.nextthink = time + 0.010000; +}; + +void() rotate_door_reversedirection = +{ + local vector start; + self.frame = TF_FLARE_OFF - self.frame; + if (self.state == STATE_CLOSING) + { + start = self.dest1; + self.dest = self.dest2; + self.state = STATE_OPENING; + } + else + { + start = self.dest2; + self.dest = self.dest1; + self.state = STATE_CLOSING; + } + sound(self, 2, self.noise2, TF_FLARE_OFF, TF_FLARE_OFF); + self.rotate = (self.dest - start) * (TF_FLARE_OFF / self.speed); + self.think = rotate_door_think; + self.nextthink = time + 0.020000; + self.endtime = time + self.speed - (self.endtime - time); + self.ltime = time; +}; + +void() rotate_door_group_reversedirection = +{ + local string name; + if (self.group) + { + name = self.group; + self = find(world, group, name); + while (self) + { + rotate_door_reversedirection(); + self = find(self, group, name); + } + } + else + { + rotate_door_reversedirection(); + } +}; + +void() rotate_door_use = +{ + local vector start; + if (self.state != STATE_OPEN && self.state != STATE_CLOSED) + { + return; + } + if (!(self.cnt)) + { + self.cnt = TF_FLARE_OFF; + LinkRotateTargets(); + } + self.frame = TF_FLARE_OFF - self.frame; + if (self.state == STATE_CLOSED) + { + start = self.dest1; + self.dest = self.dest2; + self.state = STATE_OPENING; + } + else + { + start = self.dest2; + self.dest = self.dest1; + self.state = STATE_CLOSING; + } + sound(self, 2, self.noise2, TF_FLARE_OFF, TF_FLARE_OFF); + self.rotate = (self.dest - start) * (TF_FLARE_OFF / self.speed); + self.think = rotate_door_think; + self.nextthink = time + 0.010000; + self.endtime = time + self.speed; + self.ltime = time; +}; + +void() func_rotate_door = +{ + if (!(self.target)) + { + objerror("rotate_door without target."); + } + self.dest1 = '0 0 0'; + self.dest2 = self.angles; + self.angles = self.dest1; + if (!(self.speed)) + { + self.speed = 2; + } + self.cnt = TF_FLARE_LIT; + if (!(self.dmg)) + { + self.dmg = 2; + } + else + { + if (self.dmg < TF_FLARE_LIT) + { + self.dmg = TF_FLARE_LIT; + } + } + if (self.sounds == TF_FLARE_LIT) + { + precache_sound("misc/null.wav"); + if (self.noise1) + { + precache_sound(self.noise1); + } + else + { + self.noise1 = "misc/null.wav"; + } + if (self.noise2) + { + precache_sound(self.noise2); + } + else + { + self.noise2 = "misc/null.wav"; + } + if (self.noise3) + { + precache_sound(self.noise3); + } + else + { + self.noise3 = "misc/null.wav"; + } + } + if (self.sounds == TF_FLARE_OFF) + { + precache_sound("doors/latch2.wav"); + precache_sound("doors/winch2.wav"); + precache_sound("doors/drclos4.wav"); + self.noise1 = "doors/latch2.wav"; + self.noise2 = "doors/winch2.wav"; + self.noise3 = "doors/drclos4.wav"; + } + if (self.sounds == 2) + { + precache_sound("doors/airdoor1.wav"); + precache_sound("doors/airdoor2.wav"); + self.noise2 = "doors/airdoor1.wav"; + self.noise1 = "doors/airdoor2.wav"; + self.noise3 = "doors/airdoor2.wav"; + } + if (self.sounds == 3) + { + precache_sound("doors/basesec1.wav"); + precache_sound("doors/basesec2.wav"); + self.noise2 = "doors/basesec1.wav"; + self.noise1 = "doors/basesec2.wav"; + self.noise3 = "doors/basesec2.wav"; + } + self.solid = TF_FLARE_LIT; + self.movetype = TF_FLARE_LIT; + setmodel(self, self.model); + setorigin(self, self.origin); + setsize(self, self.mins, self.maxs); + self.state = STATE_CLOSED; + self.use = rotate_door_use; + self.think = SUB_Null; +}; + diff --git a/hook.pqc b/hook.pqc new file mode 100644 index 0000000..69e69cb --- /dev/null +++ b/hook.pqc @@ -0,0 +1,304 @@ +// ammo fix... fix :P +.float grappleupdatetime; +void(entity rhook) Reset_Grapple = +{ + sound(rhook.owner, TF_FLARE_OFF, "doors/ddoor2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + rhook.owner.on_hook = TF_FLARE_LIT; + rhook.owner.hook_out = TF_FLARE_LIT; + rhook.owner.fire_held_down = TF_FLARE_LIT; + rhook.owner.weaponframe = TF_FLARE_LIT; + rhook.think = SUB_Remove; + rhook.nextthink = time; +}; + +void() Reset_My_Grapple = +{ + sound(self.owner, TF_FLARE_OFF, "doors/ddoor2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.owner.on_hook = TF_FLARE_LIT; + self.owner.hook_out = TF_FLARE_LIT; + self.owner.fire_held_down = TF_FLARE_LIT; + self.owner.weaponframe = TF_FLARE_LIT; + self.owner.off_hook = time + 1; + self.think = SUB_Remove; + self.nextthink = time; +}; + +void() Grapple_Track = +{ + if (!(self.owner.on_hook) || self.owner.health <= TF_FLARE_LIT) + { + Reset_Grapple(self); + return; + } + if (self.enemy.classname != "player") + { + self.velocity = self.enemy.velocity; + } + self.nextthink = time + 0.1; +}; + +entity() MakeLink = +{ + newmis = spawn(); + newmis.movetype = 9; + newmis.solid = TF_FLARE_LIT; + newmis.owner = self; + setmodel(newmis, "progs/rope.mdl"); + setorigin(newmis, self.origin); + setsize(newmis, '0 0 0', '0 0 0'); + newmis.angles = vectoangles(newmis.velocity); + return newmis; +}; + +void() Remove_Chain = +{ + self.think = SUB_Remove; + self.nextthink = time; + if (self.goalentity) + { + self.goalentity.think = SUB_Remove; + self.goalentity.nextthink = time; + if (self.goalentity.goalentity) + { + self.goalentity.goalentity.think = SUB_Remove; + self.goalentity.goalentity.nextthink = time; + } + } +}; + +void() Update_Chain = +{ + local vector temp; + if (!(self.owner.hook_out)) + { + self.think = Remove_Chain; + self.nextthink = time; + return; + } + temp = self.owner.hook.origin - self.owner.origin; + setorigin(self, self.owner.origin + temp * 0.3); + setorigin(self.goalentity, self.owner.origin + temp * 0.6); + setorigin(self.goalentity.goalentity, self.owner.origin + temp * 0.9); + self.angles = vectoangles(temp); + self.goalentity.angles = vectoangles(temp); + self.goalentity.goalentity.angles = vectoangles(temp); + self.nextthink = time + 0.2; +}; + +void() Build_Chain = +{ + self.goalentity = MakeLink(); + self.goalentity.think = Update_Chain; + self.goalentity.nextthink = time + 0.1; + self.goalentity.owner = self.owner; + self.goalentity.goalentity = MakeLink(); + self.goalentity.goalentity.goalentity = MakeLink(); +}; + +// fixes the grappling hook for FTE servers so that it will lock on when the player is on the ground +void () FTE_FixGrapple = +{ + if (trace_startsolid) + trace_fraction = 1; +} + +float() Check_Overhead = +{ + local vector src; + local vector end; + makevectors(self.owner.angles); + src = self.owner.origin - '0 0 24'; + end = self.owner.origin - '0 0 24'; + traceline(src, end, TF_FLARE_LIT, self.owner); + FTE_FixGrapple(); + if (trace_fraction != TF_FLARE_OFF) + { + return TF_FLARE_LIT; + } + src = self.owner.origin - '0 0 24' - v_forward * 16; + end = self.owner.origin - '0 0 24' - v_forward * 16 + '0 0 58'; + traceline(src, end, TF_FLARE_LIT, self.owner); + FTE_FixGrapple(); + if (trace_fraction != TF_FLARE_OFF) + { + return TF_FLARE_LIT; + } + src = self.owner.origin - '0 0 24' + v_forward * 16; + end = self.owner.origin - '0 0 24' + v_forward * 16 + '0 0 58'; + traceline(src, end, TF_FLARE_LIT, self.owner); + FTE_FixGrapple(); + if (trace_fraction != TF_FLARE_OFF) + { + return TF_FLARE_LIT; + } + src = self.owner.origin - '0 0 24' - v_right * 16; + end = self.owner.origin - '0 0 24' - v_right * 16 + '0 0 58'; + traceline(src, end, TF_FLARE_LIT, self.owner); + FTE_FixGrapple(); + if (trace_fraction != TF_FLARE_OFF) + { + return TF_FLARE_LIT; + } + src = self.owner.origin - '0 0 24' + v_right * 16; + end = self.owner.origin - '0 0 24' + v_right * 16 + '0 0 58'; + traceline(src, end, TF_FLARE_LIT, self.owner); + FTE_FixGrapple(); + if (trace_fraction != TF_FLARE_OFF) + { + return TF_FLARE_LIT; + } + return TF_FLARE_OFF; +}; + +void() Anchor_Grapple = +{ + local float test; + if (other == self.owner) + { + return; + } + if (other.classname == "missile" || other.classname == "grenade" || other.classname == "spike" || other.classname == "hook") + { + return; + } + if (pointcontents(self.origin) == -6) + { + Reset_Grapple(self); + return; + } + self.health = TF_FLARE_OFF; + self.takedamage = 2; + self.classname = "bot"; + self.team_no = TF_FLARE_LIT; + self.th_die = Reset_My_Grapple; + if (other.takedamage) + { + sound(self, TF_FLARE_OFF, "shambler/smack.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + sound(self, TF_FLARE_OFF, "player/axhit2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + if (other.takedamage) + { + T_Damage(other, self, self.owner, 10); + } + self.velocity = '0 0 0'; + self.avelocity = '0 0 0'; + sound(self, TF_FLARE_OFF, "weapons/bounce.wav", TF_FLARE_OFF, TF_FLARE_OFF); + sound(self.owner, TF_FLARE_LIT, "weapons/retract.wav", 0.8, TF_FLARE_OFF); + local string newgrapple; + newgrapple = infokey (world, "newgrapple"); + if (newgrapple == "1") + { + self.owner.ammo_cells = self.owner.ammo_cells - 10; + } + else + { + self.owner.ammo_cells = 0; + } + if (!(self.owner.button0)) + { + Reset_Grapple(self); + return; + } + test = Check_Overhead(); + if (!test) + { + Reset_Grapple(self); + return; + } + self.owner.on_hook = TF_FLARE_OFF; + if (self.owner.flags & 512) + { + self.owner.flags = self.owner.flags - 512; + setorigin(self.owner, self.owner.origin + '0 0 1'); + } + self.owner.lefty = TF_FLARE_OFF; + self.enemy = other; + self.think = Grapple_Track; + self.nextthink = time; + self.touch = SUB_Null; +}; + +void() Throw_Grapple = +{ + if (self.hook_out) + { + return; + } + KickPlayer(-1, self); + newmis = spawn(); + newmis.movetype = 9; + newmis.solid = 2; + newmis.owner = self; + self.hook = newmis; + newmis.classname = "hook"; + makevectors(self.v_angle); + newmis.velocity = v_forward * 2000; + newmis.angles = vectoangles(newmis.velocity); + newmis.touch = Anchor_Grapple; + newmis.think = Build_Chain; + newmis.nextthink = time + 0.1; + setmodel(newmis, "progs/hook.mdl"); + setorigin(newmis, self.origin + v_forward * 16 + '0 0 16'); + setsize(newmis, '-1 -1 -1', '1 1 1'); + self.hook_out = TF_FLARE_OFF; + self.fire_held_down = TF_FLARE_OFF; +}; + +void() Service_Grapple = +{ + local vector hook_dir; + if (!(self.button0)) + { + self.fire_held_down = TF_FLARE_LIT; + if (self.current_weapon == TF_FLARE_OFF) + { + Reset_Grapple(self.hook); + } + } + if (self.hook.enemy.classname == "player" || self.hook.enemy.classname == "bot") + { + if (self.hook.enemy.health > TF_FLARE_OFF) + { + hook_dir = self.hook.enemy.origin - self.origin; + } + else + { + Reset_Grapple(self.hook); + } + } + else + { + if (self.hook.enemy.classname != "player") + { + hook_dir = self.hook.origin - self.origin; + } + } +#ifdef clan_progs + self.velocity = normalize(hook_dir) * PC_SPY_MAXSPEED * 2; +#else + self.velocity = normalize(hook_dir) * self.maxfbspeed * 2; +#endif + if (vlen(hook_dir) <= 100 && self.lefty) + { + if (self.hook.goalentity) + { + self.hook.goalentity.think = Remove_Chain; + self.hook.goalentity.nextthink = time; + } + self.lefty = TF_FLARE_LIT; + } +// Seems that when spy was on grapple this would cause a serious bug making spies not able to use gun weapons +// Thanks "the skip" for pointing this bug out + if (self.grappleupdatetime < time) + { + self.currentammo = self.ammo_cells; + self.grappleupdatetime = time + 1; + } + else + { + self.grappleupdatetime = time + 1; + } +}; diff --git a/items.pqc b/items.pqc new file mode 100644 index 0000000..440d298 --- /dev/null +++ b/items.pqc @@ -0,0 +1,1584 @@ +float(entity Retriever, float WeaponType) TeamFortress_CanGetWeapon; +float() W_BestWeapon; +void() ammo_touch; +void() item_megahealth_rot; +float(entity Retriever, float AmmoType) TeamFortress_GetMaxAmmo; +float() CheckExistence; +void() health_touch; +.float healamount, healtype; + +void() SUB_regen = +{ + self.model = self.mdl; + self.solid = TF_FLARE_OFF; + sound(self, 2, "items/itembk2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + setorigin(self, self.origin); +}; + +void() noclass = +{ + dprint("noclass spawned at"); + dprint(vtos(self.origin)); + dprint("\n"); + remove(self); +}; + +void() PlaceItem = +{ + local float oldz; + self.mdl = self.model; + self.flags = 256; + self.solid = TF_FLARE_OFF; + self.movetype = 6; + self.velocity = '0 0 0'; + self.origin_z = self.origin_z + 6; + oldz = self.origin_z; + if (!droptofloor()) + { + dprint("Bonus item fell out of level at "); + dprint(vtos(self.origin)); + dprint("\n"); + dremove(self); + return; + } +}; + +void() StartItem = +{ + self.nextthink = time + 0.2; + self.think = PlaceItem; +}; + +float(entity e, float healamount2, float ignore) T_Heal = +{ + if (e.health <= TF_FLARE_LIT) + { + return TF_FLARE_LIT; + } + if (!ignore && e.health >= e.max_health) + { + return TF_FLARE_LIT; + } + healamount2 = ceil(healamount2); + e.health = e.health + healamount2; + if (!ignore && e.health >= e.max_health) + { + e.health = e.max_health; + } + if (e.health > 250) + { + e.health = 250; + } + if (e.leg_damage) + { + if (e.health > 95) + { + e.leg_damage = TF_FLARE_LIT; + } + else + { + e.leg_damage = e.leg_damage - ceil(e.health / 20); + } + if (e.leg_damage < TF_FLARE_OFF) + { + e.leg_damage = TF_FLARE_LIT; + } + TeamFortress_SetSpeed(e); + } + return TF_FLARE_OFF; +}; + +void() item_health = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.touch = health_touch; + if (self.spawnflags & TF_FLARE_OFF) + { + precache_model("maps/b_bh10.bsp"); + precache_sound("items/r_item1.wav"); + setmodel(self, "maps/b_bh10.bsp"); + self.noise = "items/r_item1.wav"; + self.healamount = 15; + self.healtype = TF_FLARE_LIT; + } + else + { + if (self.spawnflags & 2) + { + precache_model("maps/b_bh100.bsp"); + precache_sound("items/r_item2.wav"); + setmodel(self, "maps/b_bh100.bsp"); + self.noise = "items/r_item2.wav"; + self.healamount = 100; + self.healtype = 2; + } + else + { + precache_model("maps/b_bh25.bsp"); + precache_sound("items/health1.wav"); + setmodel(self, "maps/b_bh25.bsp"); + self.noise = "items/health1.wav"; + self.healamount = 25; + self.healtype = TF_FLARE_OFF; + } + } + setsize(self, '0 0 0', '32 32 56'); + StartItem(); +}; + +void() health_touch = +{ + local float medi; + local string s; + if (other.classname != "player") + { + return; + } + if (other.is_feigning) + { + return; + } + if (other.tfstate & 65536) + { + return; + } + medi = TF_FLARE_LIT; + if (self.healtype == 2) + { + if (!(other.tfstate & 16)) + { + if (other.health >= 250) + { + return; + } + if (!T_Heal(other, self.healamount, TF_FLARE_OFF)) + { + return; + } + } + } + else + { + if (!T_Heal(other, self.healamount, TF_FLARE_LIT)) + { + if (other.weapons_carried & 4) + { + if (other.ammo_medikit < other.maxammo_medikit) + { + other.ammo_medikit = other.ammo_medikit + self.healamount; + if (other.ammo_medikit > other.maxammo_medikit) + { + other.ammo_medikit = other.maxammo_medikit; + } + s = ftos(self.healamount); + sprint(other, TF_FLARE_LIT, "You gather "); + sprint(other, TF_FLARE_LIT, s); + sprint(other, TF_FLARE_LIT, " medikit ammo\n"); + sound(other, 3, self.noise, TF_FLARE_OFF, TF_FLARE_OFF); + stuffcmd(other, "bf\n"); + self.model = string_null; + self.solid = TF_FLARE_LIT; + if (deathmatch != 2) + { + if (deathmatch) + { + self.nextthink = time + 20; + } + self.think = SUB_regen; + } + activator = other; + SUB_UseTargets(); + } + } + return; + } + } + if (other.tfstate & 16 && self.healamount > 80) + { + sprint(other, TF_FLARE_OFF, "You have been healed of your infection!"); + other.tfstate = other.tfstate - (other.tfstate & 16); + } + else + { + s = ftos(self.healamount); + sprint(other, TF_FLARE_LIT, "You receive "); + sprint(other, TF_FLARE_LIT, s); + sprint(other, TF_FLARE_LIT, " health\n"); + } + sound(other, 3, self.noise, TF_FLARE_OFF, TF_FLARE_OFF); + stuffcmd(other, "bf\n"); + self.model = string_null; + self.solid = TF_FLARE_LIT; + if (self.healtype == 2) + { + other.items = other.items | 65536; + self.nextthink = time + 5; + self.think = item_megahealth_rot; + self.owner = other; + } + else + { + if (deathmatch != 2) + { + if (deathmatch) + { + self.nextthink = time + 20; + } + self.think = SUB_regen; + } + } + activator = other; + SUB_UseTargets(); +}; + +void() item_megahealth_rot = +{ + other = self.owner; + if (other.health > other.max_health) + { + other.health = other.health - TF_FLARE_OFF; + self.nextthink = time + TF_FLARE_OFF; + return; + } + other.items = other.items - (other.items & 65536); + if (self.classname == "medikit_rot") + { + dremove(self); + return; + } + if (deathmatch != 2) + { + self.nextthink = time + 20; + self.think = SUB_regen; + } +}; + +void() armor_touch = +{ + local float type; + local float value; + local float bit; + local float rnum; + local string s; + local entity oldself; + rnum = random(); + if (other.health <= TF_FLARE_LIT) + { + return; + } + if (other.classname != "player") + { + return; + } + if (other.is_feigning) + { + return; + } + if (other.tfstate & 65536) + { + return; + } + if (self.classname == "item_armor1") + { + type = 0.3; + value = 100; + bit = 8192; + } + else + { + if (self.classname == "item_armor2") + { + type = 0.6; + value = 150; + bit = 16384; + } + else + { + if (self.classname == "item_armorInv") + { + type = 0.8; + value = 200; + bit = 32768; + } + } + } + if (other.armortype * other.armorvalue >= type * value) + { + if (other.playerclass == 9) + { + if (other.ammo_cells >= other.maxammo_cells) + { + return; + } + } + else + { + return; + } + } + if (other.armor_allowed * other.maxarmor <= type * value) + { + if (other.armor_allowed == other.armortype) + { + if (other.maxarmor == other.armorvalue) + { + if (other.playerclass == 9) + { + if (other.ammo_cells >= other.maxammo_cells) + { + return; + } + } + else + { + return; + } + } + } + } + if (type > other.armor_allowed) + { + type = other.armor_allowed; + if (type == 0.3) + { + bit = 8192; + } + else + { + if (type == 0.6) + { + bit = 16384; + } + else + { + if (type == 0.8) + { + bit = 32768; + } + } + } + } + sprint(other, TF_FLARE_LIT, "You got armor\n"); + if (value > other.maxarmor) + { + if (other.playerclass == 9 && other.ammo_cells < other.maxammo_cells) + { + s = ftos(value - other.maxarmor); + sprint(other, TF_FLARE_LIT, s); + sprint(other, TF_FLARE_LIT, " metal\n"); + other.ammo_cells = other.ammo_cells + (value - other.maxarmor); + if (other.ammo_cells > other.maxammo_cells) + { + other.ammo_cells = other.maxammo_cells; + } + oldself = self; + self = other; + W_SetCurrentAmmo(); + self = oldself; + } + value = other.maxarmor; + } + if (other.armortype * other.armorvalue < type * value) + { + other.armortype = type; + other.armorvalue = value; + other.items = other.items - (other.items & (8192 | 16384 | 32768)) + bit; + } + self.solid = TF_FLARE_LIT; + self.model = string_null; + if (deathmatch != 2) + { + self.nextthink = time + 10; + } + if (coop) + { + self.nextthink = time + 20; + } + self.think = SUB_regen; + sound(other, 3, "items/armor1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + stuffcmd(other, "bf\n"); + activator = other; + SUB_UseTargets(); +}; + +void() item_armor1 = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.touch = armor_touch; + precache_model("progs/armor.mdl"); + setmodel(self, "progs/armor.mdl"); + self.skin = TF_FLARE_LIT; + setsize(self, '-16 -16 0', '16 16 56'); + StartItem(); +}; + +void() item_armor2 = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.touch = armor_touch; + precache_model("progs/armor.mdl"); + setmodel(self, "progs/armor.mdl"); + self.skin = TF_FLARE_OFF; + setsize(self, '-16 -16 0', '16 16 56'); + StartItem(); +}; + +void() item_armorInv = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.touch = armor_touch; + precache_model("progs/armor.mdl"); + setmodel(self, "progs/armor.mdl"); + self.skin = 2; + setsize(self, '-16 -16 0', '16 16 56'); + StartItem(); +}; + +void(entity p) bound_other_ammo = +{ + if (p.ammo_shells > TeamFortress_GetMaxAmmo(p, 256)) + { + p.ammo_shells = TeamFortress_GetMaxAmmo(p, 256); + } + if (p.ammo_nails > TeamFortress_GetMaxAmmo(p, 512)) + { + p.ammo_nails = TeamFortress_GetMaxAmmo(p, 512); + } + if (p.ammo_rockets > TeamFortress_GetMaxAmmo(p, 1024)) + { + p.ammo_rockets = TeamFortress_GetMaxAmmo(p, 1024); + } + if (p.ammo_cells > TeamFortress_GetMaxAmmo(p, 2048)) + { + p.ammo_cells = TeamFortress_GetMaxAmmo(p, 2048); + } + if (p.ammo_medikit > p.maxammo_medikit) + { + p.ammo_medikit = p.maxammo_medikit; + } + if (p.armorvalue > p.maxarmor) + { + p.armorvalue = p.maxarmor; + } + if (p.no_grenades_1 > 4) + { + p.no_grenades_1 = 4; + } + if (p.no_grenades_2 > 4) + { + p.no_grenades_2 = 4; + } +}; + +float(float w) RankForWeapon = +{ + if (w == 65536) + { + return TF_FLARE_OFF; + } + if (w == 8192) + { + return 2; + } + if (w == 1024) + { + return 3; + } + if (w == 2048) + { + return 4; + } + if (w == 256) + { + return 5; + } + if (w == 512) + { + return 6; + } + return 7; +}; + +void(float old, float new) Deathmatch_Weapon = +{ +}; + +void(entity ritem, entity act) Respawn_Item = +{ + local entity oldself; + oldself = self; + self = ritem; + self.model = string_null; + self.solid = TF_FLARE_LIT; + if (deathmatch != 2) + { + self.nextthink = time + 30; + } + else + { + if (coop && ritem.touch == ammo_touch) + { + self.nextthink = time + 45; + } + } + self.think = SUB_regen; + activator = act; + SUB_UseTargets(); + self = oldself; +}; + +void() weapon_touch = +{ + local float hadammo; + local float best; + local float new; + local float old; + local entity stemp; + local float leave; + if (!(other.flags & 8)) + { + return; + } + if (other.is_feigning) + { + return; + } + if (other.tfstate & 65536) + { + return; + } + stemp = self; + self = other; + best = W_BestWeapon(); + self = stemp; + if (deathmatch == 2 || coop) + { + leave = TF_FLARE_OFF; + } + else + { + leave = TF_FLARE_LIT; + } + if (self.classname == "weapon_nailgun") + { + if (leave && (other.weapons_carried & 512)) + { + return; + } + if (!TeamFortress_CanGetWeapon(other, 512)) + { + return; + } + hadammo = other.ammo_nails; + new = 512; + other.ammo_nails = other.ammo_nails + 30; + } + else + { + if (self.classname == "weapon_supernailgun") + { + if (leave && (other.weapons_carried & 1024)) + { + return; + } + if (!TeamFortress_CanGetWeapon(other, 1024)) + { + return; + } + hadammo = other.ammo_rockets; + new = 1024; + other.ammo_nails = other.ammo_nails + 30; + } + else + { + if (self.classname == "weapon_supershotgun") + { + if (leave && (other.weapons_carried & 256)) + { + return; + } + if (!TeamFortress_CanGetWeapon(other, 256)) + { + return; + } + hadammo = other.ammo_rockets; + new = 256; + other.ammo_shells = other.ammo_shells + 5; + } + else + { + if (self.classname == "weapon_rocketlauncher") + { + if (leave && (other.weapons_carried & 8192)) + { + return; + } + if (!TeamFortress_CanGetWeapon(other, 8192)) + { + return; + } + hadammo = other.ammo_rockets; + new = 8192; + other.ammo_rockets = other.ammo_rockets + 5; + } + else + { + if (self.classname == "weapon_grenadelauncher") + { + if (leave && (other.weapons_carried & 2048)) + { + return; + } + if (!TeamFortress_CanGetWeapon(other, 2048)) + { + return; + } + hadammo = other.ammo_rockets; + new = 2048; + other.ammo_rockets = other.ammo_rockets + 5; + } + else + { + if (self.classname == "weapon_lightning") + { + if (leave && (other.weapons_carried & 65536)) + { + return; + } + if (!TeamFortress_CanGetWeapon(other, 65536)) + { + return; + } + hadammo = other.ammo_rockets; + new = 65536; + other.ammo_cells = other.ammo_cells + 15; + } + else + { + objerror("weapon_touch: unknown classname"); + } + } + } + } + } + } + sprint(other, TF_FLARE_LIT, "You got the "); + sprint(other, TF_FLARE_LIT, self.netname); + sprint(other, TF_FLARE_LIT, "\n"); + sound(other, 3, "weapons/pkup.wav", TF_FLARE_OFF, TF_FLARE_OFF); + stuffcmd(other, "bf\n"); + bound_other_ammo(other); + old = other.weapons_carried; + other.weapons_carried = other.weapons_carried | new; + stemp = self; + self = other; + Deathmatch_Weapon(old, new); + W_SetCurrentAmmo(); + self = stemp; + if (leave) + { + return; + } + Respawn_Item(self, other); +}; + +void() weapon_supershotgun = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_model("progs/g_shot.mdl"); + setmodel(self, "progs/g_shot.mdl"); + self.weapon = 256; + self.netname = "Double-barrelled Shotgun"; + self.touch = weapon_touch; + setsize(self, '-16 -16 0', '16 16 56'); + StartItem(); +}; + +void() weapon_nailgun = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_model("progs/g_nail.mdl"); + setmodel(self, "progs/g_nail.mdl"); + self.weapon = 512; + self.netname = "nailgun"; + self.touch = weapon_touch; + setsize(self, '-16 -16 0', '16 16 56'); + StartItem(); +}; + +void() weapon_supernailgun = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_model("progs/g_nail2.mdl"); + setmodel(self, "progs/g_nail2.mdl"); + self.weapon = 1024; + self.netname = "Super Nailgun"; + self.touch = weapon_touch; + setsize(self, '-16 -16 0', '16 16 56'); + StartItem(); +}; + +void() weapon_grenadelauncher = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_model("progs/g_rock.mdl"); + setmodel(self, "progs/g_rock.mdl"); + self.weapon = 3; + self.netname = "Grenade Launcher"; + self.touch = weapon_touch; + setsize(self, '-16 -16 0', '16 16 56'); + StartItem(); +}; + +void() weapon_rocketlauncher = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_model("progs/g_rock2.mdl"); + setmodel(self, "progs/g_rock2.mdl"); + self.weapon = 3; + self.netname = "Rocket Launcher"; + self.touch = weapon_touch; + setsize(self, '-16 -16 0', '16 16 56'); + StartItem(); +}; + +void() weapon_lightning = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_model("progs/g_light.mdl"); + setmodel(self, "progs/g_light.mdl"); + self.weapon = 3; + self.netname = "Thunderbolt"; + self.touch = weapon_touch; + setsize(self, '-16 -16 0', '16 16 56'); + StartItem(); +}; + +void(entity pl, float typ) PrintGrenadeType = +{ + local string st; + if (typ == TF_FLARE_OFF) + { + st = "Normal"; + } + else + { + if (typ == 2) + { + st = "Concussion"; + } + else + { + if (typ == 3) + { + st = "Nail"; + } + else + { + if (typ == 4) + { + st = "Mirv"; + } + else + { + if (typ == 5) + { + st = "Napalm"; + } + else + { + if (typ == 6) + { + st = "Flare"; + } + else + { + if (typ == 7) + { + st = "Gas"; + } + else + { + if (typ == 8) + { + st = "EMP"; + } + else + { + if (typ == 9) + { + st = "Flash"; + } + } + } + } + } + } + } + } + } + sprint(pl, 2, st); +}; + +float() GetGrenadePossibility = +{ + if (random() < 0.5) + { + return TF_FLARE_LIT; + } + if (random() < 0.5) + { + if (other.tp_grenades_1 != TF_FLARE_LIT && other.no_grenades_1 < 4) + { + other.no_grenades_1 = other.no_grenades_1 + TF_FLARE_OFF; + sprint(other, 2, "You found a "); + PrintGrenadeType(other, other.tp_grenades_1); + sprint(other, 2, " grenade\n"); + return TF_FLARE_OFF; + } + } + else + { + if (other.tp_grenades_2 != TF_FLARE_LIT && other.no_grenades_2 < 4) + { + other.no_grenades_2 = other.no_grenades_2 + TF_FLARE_OFF; + sprint(other, 2, "You found a "); + PrintGrenadeType(other, other.tp_grenades_2); + sprint(other, 2, " grenade\n"); + return TF_FLARE_OFF; + } + } + return TF_FLARE_LIT; +}; + +void() ammo_touch = +{ + local entity stemp; + local float best; + local float gotgren; + local float gotbox; + gotgren = TF_FLARE_LIT; + gotbox = TF_FLARE_LIT; + if (other.classname != "player") + { + return; + } + if (other.health <= TF_FLARE_LIT) + { + return; + } + if (other.is_feigning) + { + return; + } + if (other.tfstate & 65536) + { + return; + } + stemp = self; + self = other; + best = W_BestWeapon(); + self = stemp; + if (self.weapon == TF_FLARE_OFF) + { + if (other.ammo_shells >= TeamFortress_GetMaxAmmo(other, 256)) + { + return; + } + other.ammo_shells = other.ammo_shells + self.aflag; + gotbox = TF_FLARE_OFF; + } + if (self.weapon == 2) + { + if (other.ammo_nails >= TeamFortress_GetMaxAmmo(other, 512)) + { + return; + } + other.ammo_nails = other.ammo_nails + self.aflag; + gotbox = TF_FLARE_OFF; + } + else + { + if (self.weapon == 3) + { + gotgren = GetGrenadePossibility(); + if (other.ammo_rockets >= TeamFortress_GetMaxAmmo(other, 1024)) + { + gotbox = TF_FLARE_LIT; + } + else + { + gotbox = TF_FLARE_OFF; + other.ammo_rockets = other.ammo_rockets + self.aflag; + } + } + else + { + if (self.weapon == 4) + { + if (other.ammo_cells >= TeamFortress_GetMaxAmmo(other, 2048)) + { + return; + } + other.ammo_cells = other.ammo_cells + self.aflag; + gotbox = TF_FLARE_OFF; + } + } + } + if (!gotbox && !gotgren) + { + return; + } + sound(other, 3, "weapons/lock4.wav", TF_FLARE_OFF, TF_FLARE_OFF); + stuffcmd(other, "bf\n"); + if (gotbox) + { + bound_other_ammo(other); + sprint(other, TF_FLARE_LIT, "You got the "); + sprint(other, TF_FLARE_LIT, self.netname); + sprint(other, TF_FLARE_LIT, "\n"); + stemp = self; + self = other; + W_SetCurrentAmmo(); + self = stemp; + } + Respawn_Item(self, other); +}; + +void() item_shells = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.touch = ammo_touch; + if (self.spawnflags & TF_FLARE_OFF) + { + precache_model("maps/b_shell1.bsp"); + setmodel(self, "maps/b_shell1.bsp"); + self.aflag = 40; + } + else + { + precache_model("maps/b_shell0.bsp"); + setmodel(self, "maps/b_shell0.bsp"); + self.aflag = 20; + } + self.weapon = TF_FLARE_OFF; + self.netname = "shells"; + setsize(self, '0 0 0', '32 32 56'); + StartItem(); +}; + +void() item_spikes = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.touch = ammo_touch; + if (self.spawnflags & TF_FLARE_OFF) + { + precache_model("maps/b_nail1.bsp"); + setmodel(self, "maps/b_nail1.bsp"); + self.aflag = 50; + } + else + { + precache_model("maps/b_nail0.bsp"); + setmodel(self, "maps/b_nail0.bsp"); + self.aflag = 25; + } + self.weapon = 2; + self.netname = "nails"; + setsize(self, '0 0 0', '32 32 56'); + StartItem(); +}; + +void() item_rockets = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.touch = ammo_touch; + if (self.spawnflags & TF_FLARE_OFF) + { + precache_model("maps/b_rock1.bsp"); + setmodel(self, "maps/b_rock1.bsp"); + self.aflag = 10; + } + else + { + precache_model("maps/b_rock0.bsp"); + setmodel(self, "maps/b_rock0.bsp"); + self.aflag = 5; + } + self.weapon = 3; + self.netname = "rockets"; + setsize(self, '0 0 0', '32 32 56'); + StartItem(); +}; + +void() item_cells = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.touch = ammo_touch; + if (self.spawnflags & TF_FLARE_OFF) + { + precache_model("maps/b_batt1.bsp"); + setmodel(self, "maps/b_batt1.bsp"); + self.aflag = 12; + } + else + { + precache_model("maps/b_batt0.bsp"); + setmodel(self, "maps/b_batt0.bsp"); + self.aflag = 6; + } + self.weapon = 4; + self.netname = "cells"; + setsize(self, '0 0 0', '32 32 56'); + StartItem(); +}; + +void() item_weapon = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.touch = ammo_touch; + if (self.spawnflags & TF_FLARE_OFF) + { + if (self.spawnflags & 8) + { + precache_model("maps/b_shell1.bsp"); + setmodel(self, "maps/b_shell1.bsp"); + self.aflag = 40; + } + else + { + precache_model("maps/b_shell0.bsp"); + setmodel(self, "maps/b_shell0.bsp"); + self.aflag = 20; + } + self.weapon = TF_FLARE_OFF; + self.netname = "shells"; + } + if (self.spawnflags & 4) + { + if (self.spawnflags & 8) + { + precache_model("maps/b_nail1.bsp"); + setmodel(self, "maps/b_nail1.bsp"); + self.aflag = 40; + } + else + { + precache_model("maps/b_nail0.bsp"); + setmodel(self, "maps/b_nail0.bsp"); + self.aflag = 20; + } + self.weapon = 2; + self.netname = "spikes"; + } + if (self.spawnflags & 2) + { + if (self.spawnflags & 8) + { + precache_model("maps/b_rock1.bsp"); + setmodel(self, "maps/b_rock1.bsp"); + self.aflag = 10; + } + else + { + precache_model("maps/b_rock0.bsp"); + setmodel(self, "maps/b_rock0.bsp"); + self.aflag = 5; + } + self.weapon = 3; + self.netname = "rockets"; + } + setsize(self, '0 0 0', '32 32 56'); + StartItem(); +}; + +void() key_touch = +{ + if (other.classname != "player") + { + return; + } + if (other.health <= TF_FLARE_LIT) + { + return; + } + if (other.items & self.items) + { + return; + } + sprint(other, TF_FLARE_LIT, "You got the "); + sprint(other, TF_FLARE_LIT, self.netname); + sprint(other, TF_FLARE_LIT, "\n"); + sound(other, 3, self.noise, TF_FLARE_OFF, TF_FLARE_OFF); + stuffcmd(other, "bf\n"); + other.items = other.items | self.items; + if (!coop) + { + self.solid = TF_FLARE_LIT; + self.model = string_null; + } + else + { + if (coop && self.deadflag) + { + dremove(self); + return; + } + } + activator = other; + SUB_UseTargets(); +}; + +void() key_setsounds = +{ + if (world.worldtype == TF_FLARE_LIT) + { + precache_sound("misc/medkey.wav"); + self.noise = "misc/medkey.wav"; + } + if (world.worldtype == TF_FLARE_OFF) + { + precache_sound("misc/runekey.wav"); + self.noise = "misc/runekey.wav"; + } + if (world.worldtype == 2) + { + precache_sound2("misc/basekey.wav"); + self.noise = "misc/basekey.wav"; + } +}; + +void() item_key1 = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (world.worldtype == TF_FLARE_LIT) + { + precache_model("progs/w_s_key.mdl"); + setmodel(self, "progs/w_s_key.mdl"); + self.netname = "silver key"; + } + else + { + if (world.worldtype == TF_FLARE_OFF) + { + precache_model("progs/m_s_key.mdl"); + setmodel(self, "progs/m_s_key.mdl"); + self.netname = "silver runekey"; + } + else + { + if (world.worldtype == 2) + { + precache_model2("progs/b_s_key.mdl"); + setmodel(self, "progs/b_s_key.mdl"); + self.netname = "silver keycard"; + } + } + } + key_setsounds(); + self.touch = key_touch; + self.items = 131072; + setsize(self, '-16 -16 -24', '16 16 32'); + StartItem(); +}; + +void() item_key2 = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (world.worldtype == TF_FLARE_LIT) + { + precache_model("progs/w_g_key.mdl"); + setmodel(self, "progs/w_g_key.mdl"); + self.netname = "gold key"; + } + if (world.worldtype == TF_FLARE_OFF) + { + precache_model("progs/m_g_key.mdl"); + setmodel(self, "progs/m_g_key.mdl"); + self.netname = "gold runekey"; + } + if (world.worldtype == 2) + { + precache_model2("progs/b_g_key.mdl"); + setmodel(self, "progs/b_g_key.mdl"); + self.netname = "gold keycard"; + } + key_setsounds(); + self.touch = key_touch; + self.items = 262144; + setsize(self, '-16 -16 -24', '16 16 32'); + StartItem(); +}; + +void() sigil_touch = +{ + if (other.classname != "player") + { + return; + } + if (other.health <= TF_FLARE_LIT) + { + return; + } + CenterPrint(other, "You got the rune!"); + sound(other, 3, self.noise, TF_FLARE_OFF, TF_FLARE_OFF); + stuffcmd(other, "bf\n"); + self.solid = TF_FLARE_LIT; + self.model = string_null; + serverflags = serverflags | (self.spawnflags & 15); + self.classname = ""; + activator = other; + SUB_UseTargets(); +}; + +void() item_sigil = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.spawnflags)) + { + objerror("no spawnflags"); + } + precache_sound("misc/runekey.wav"); + self.noise = "misc/runekey.wav"; + if (self.spawnflags & TF_FLARE_OFF) + { + precache_model("progs/end1.mdl"); + setmodel(self, "progs/end1.mdl"); + } + if (self.spawnflags & 2) + { + precache_model2("progs/end2.mdl"); + setmodel(self, "progs/end2.mdl"); + } + if (self.spawnflags & 4) + { + precache_model2("progs/end3.mdl"); + setmodel(self, "progs/end3.mdl"); + } + if (self.spawnflags & 8) + { + precache_model2("progs/end4.mdl"); + setmodel(self, "progs/end4.mdl"); + } + self.touch = sigil_touch; + setsize(self, '-16 -16 -24', '16 16 32'); + StartItem(); +}; + +void() powerup_touch = +{ + if (other.classname != "player") + { + return; + } + if (other.health <= TF_FLARE_LIT) + { + return; + } + sprint(other, TF_FLARE_LIT, "You got the "); + sprint(other, TF_FLARE_LIT, self.netname); + sprint(other, TF_FLARE_LIT, "\n"); + if (deathmatch) + { + self.mdl = self.model; + if (self.classname == "item_artifact_invulnerability" || self.classname == "item_artifact_invisibility") + { + self.nextthink = time + 60 * 5; + } + else + { + self.nextthink = time + 60; + } + self.think = SUB_regen; + } + else + { + if (coop) + { + self.mdl = self.model; + if (self.classname == "item_artifact_invulnerability" || self.classname == "item_artifact_invisibility") + { + self.nextthink = time + 120 * 5; + } + else + { + self.nextthink = time + 120; + } + self.think = SUB_regen; + } + } + sound(other, 2, self.noise, TF_FLARE_OFF, TF_FLARE_OFF); + stuffcmd(other, "bf\n"); + self.solid = TF_FLARE_LIT; + other.items = other.items | self.items; + self.model = string_null; + if (self.classname == "item_artifact_envirosuit") + { + other.rad_time = TF_FLARE_OFF; + other.radsuit_finished = time + 30; + } + if (self.classname == "item_artifact_invulnerability") + { + other.invincible_time = TF_FLARE_OFF; + other.invincible_finished = time + 30; + } + if (self.classname == "item_artifact_invisibility") + { + other.invisible_time = TF_FLARE_OFF; + other.invisible_finished = time + 30; + } + if (self.classname == "item_artifact_super_damage") + { + other.super_time = TF_FLARE_OFF; + other.super_damage_finished = time + 30; + } + activator = other; + SUB_UseTargets(); +}; + +void() item_artifact_invulnerability = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.touch = powerup_touch; + precache_model("progs/invulner.mdl"); + precache_sound("items/protect.wav"); + precache_sound("items/protect2.wav"); + precache_sound("items/protect3.wav"); + self.noise = "items/protect.wav"; + setmodel(self, "progs/invulner.mdl"); + self.netname = "Pentagram of Protection"; + self.items = 1048576; + setsize(self, '-16 -16 -24', '16 16 32'); + StartItem(); +}; + +void() item_artifact_envirosuit = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.touch = powerup_touch; + precache_model("progs/suit.mdl"); + precache_sound("items/suit.wav"); + precache_sound("items/suit2.wav"); + self.noise = "items/suit.wav"; + setmodel(self, "progs/suit.mdl"); + self.netname = "Biosuit"; + self.items = 2097152; + setsize(self, '-16 -16 -24', '16 16 32'); + StartItem(); +}; + +void() item_artifact_invisibility = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.touch = powerup_touch; + precache_model("progs/invisibl.mdl"); + precache_sound("items/inv1.wav"); + precache_sound("items/inv2.wav"); + precache_sound("items/inv3.wav"); + self.noise = "items/inv1.wav"; + setmodel(self, "progs/invisibl.mdl"); + self.netname = "Ring of Shadows"; + self.items = 524288; + setsize(self, '-16 -16 -24', '16 16 32'); + StartItem(); +}; + +void() item_artifact_super_damage = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.touch = powerup_touch; + precache_model("progs/quaddama.mdl"); + precache_sound("items/damage.wav"); + precache_sound("items/damage2.wav"); + precache_sound("items/damage3.wav"); + self.noise = "items/damage.wav"; + setmodel(self, "progs/quaddama.mdl"); + self.netname = "Quad Damage"; + self.items = 4194304; + setsize(self, '-16 -16 -24', '16 16 32'); + StartItem(); +}; + +void () BackpackTouch = +{ + local string s; + + if ((other.classname != "player")) + { + return; + } + if ((other.health <= 0)) + { + return; + } + if (other.button0) + { + return; + } + other.ammo_shells = (other.ammo_shells + self.ammo_shells); + other.ammo_nails = (other.ammo_nails + self.ammo_nails); + other.ammo_rockets = (other.ammo_rockets + self.ammo_rockets); + other.ammo_cells = (other.ammo_cells + self.ammo_cells); + bound_other_ammo (other); + sprint (other, 0, "You get "); + if (self.ammo_shells) + { + s = ftos (self.ammo_shells); + sprint (other, 0, s); + sprint (other, 0, " shells "); + } + if (self.ammo_nails) + { + s = ftos (self.ammo_nails); + sprint (other, 0, s); + sprint (other, 0, " nails "); + } + if (self.ammo_rockets) + { + s = ftos (self.ammo_rockets); + sprint (other, 0, s); + sprint (other, 0, " rockets "); + } + if (self.ammo_cells) + { + s = ftos (self.ammo_cells); + sprint (other, 0, s); + sprint (other, 0, " cells "); + } + if (((self.armorvalue && (other.playerclass == 9)) && (other.ammo_cells < other.maxammo_cells))) + { + s = ftos (self.armorvalue); + sprint (other, 0, s); + sprint (other, 0, " metal "); + other.ammo_cells = (other.ammo_cells + self.armorvalue); + if ((other.ammo_cells > other.maxammo_cells)) + { + other.ammo_cells = other.maxammo_cells; + } + } + sprint (other, 0, "\n"); + if (other.autodiscard) + { + TeamFortress_Discard (); + } + sound (other, 3, "weapons/lock4.wav", 1, 1); + stuffcmd (other, "bf\n"); + dremove (self); + self = other; + W_SetCurrentAmmo (); +}; + +void() DropBackpack = +{ + if (!(self.ammo_shells + self.ammo_nails + self.ammo_rockets + self.ammo_cells)) + { + return; + } + newmis = spawn(); + newmis.origin = self.origin - '0 0 24'; + newmis.ammo_shells = self.ammo_shells; + newmis.ammo_nails = self.ammo_nails; + newmis.ammo_rockets = self.ammo_rockets; + newmis.ammo_cells = self.ammo_cells; + newmis.armorvalue = self.armorvalue; + newmis.velocity_z = 300; + newmis.velocity_x = -100 + random() * 200; + newmis.velocity_y = -100 + random() * 200; + newmis.flags = 256; + newmis.solid = TF_FLARE_OFF; + newmis.movetype = 6; + setmodel(newmis, "progs/backpack.mdl"); + setsize(newmis, '-16 -16 0', '16 16 56'); + newmis.touch = BackpackTouch; + newmis.nextthink = time + 120; + newmis.think = SUB_Remove; +}; + diff --git a/medic.pqc b/medic.pqc new file mode 100644 index 0000000..8a5edc4 --- /dev/null +++ b/medic.pqc @@ -0,0 +1,127 @@ + +// Medic's self heal function + +void () HealSelf = +{ + local entity te; + local float healed; + + // Only medic's can heal themselves + if (self.playerclass != 5) + return; + + // Costs 1 type 2 gren + if (self.no_grenades_2 < 1) + { + sprint(self, 2, "Not enough type 2 grenades... get more\n"); + return; + } + + healed = 0; + + // Leg shots + if ((self.leg_damage > 0)) + { + sprint (self, 2, "Your leg wound has been healed!\n"); + self.leg_damage = 0; + TeamFortress_SetSpeed (self); + healed = 1; + } + + // Concs + te = find (world, classname, "timer"); + while ((((te.owner != self) || (te.think != ConcussionGrenadeTimer)) && (te != world))) + { + te = find (te, classname, "timer"); + } + if ((te != world)) + { + stuffcmd (self, "v_idlescale 0\n"); + sprint (self, 2, "you have been healed of your concussion\n"); + dremove (te); + healed = 1; + } + + // Gas + if ((self.tfstate & 16384)) + { + te = find (world, classname, "timer"); + while ((((te.owner != self) || (te.think != HallucinationTimer)) && (te != world))) + { + te = find (te, classname, "timer"); + } + if ((te != world)) + { + stuffcmd (self, "v_idlescale 0\n"); + self.tfstate = (self.tfstate - (self.tfstate & 16384)); + sprint (self, 2, "you have been healed of your hallucinations\n"); + dremove (te); + healed = 1; + } + } + + // Tranq + if ((self.tfstate & 32768)) + { + te = find (world, classname, "timer"); + while ((((te.owner != self) || (te.think != TranquiliserTimer)) && (te != world))) + { + te = find (te, classname, "timer"); + } + if ((te != world)) + { + self.tfstate = (self.tfstate - (self.tfstate & 32768)); + TeamFortress_SetSpeed (self); + stuffcmd (self, "v_cshift 0 0 0 0\n"); + sprint (self, 2, "you have been healed of your tranquilisation\n"); + dremove (te); + healed = 1; + } + } + + // Flash + if ((self.FlashTime > 0)) + { + te = find (world, netname, "flashtimer"); + while ((((te.owner != self) || (te.classname != "timer")) && (te != world))) + { + te = find (te, netname, "flashtimer"); + } + if ((te != world)) + { + stuffcmd (self, "v_cshift 0 0 0 0\n"); + dremove (te); + } + self.FlashTime = 0; + healed = 1; + } + + // Flames + if ((self.numflames > 0)) + { + self.numflames = 0; + sprint (self, 2, "The flames have been doused!\n"); + healed = 1; + } + + if (healed == 0) + { + sprint(self, 2, "You have nothing to cure.\n"); + } + else + { + self.no_grenades_2 = self.no_grenades_2 - 1; + + WriteByte(4, 23); + WriteByte(4, 11); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); + multicast(self.origin, TF_FLARE_OFF); + + sound (self, 3, "items/r_item2.wav", 1, 1); + + //sound (self, 1, "items/r_item1.wav", 1, 1); + //SpawnBlood (self.origin, 20); + } +} \ No newline at end of file diff --git a/menu.pqc b/menu.pqc new file mode 100644 index 0000000..1048fe4 --- /dev/null +++ b/menu.pqc @@ -0,0 +1,2233 @@ +.float oldcurrentammo; +void () ConcussionGrenadeTimer; +void () HallucinationTimer; +void () TranquiliserTimer; +float (entity obj,entity builder) CheckArea; +float (float v) anglemod; +void (entity targ,entity inflictor,entity attacker,float damage,float T_flags,float T_AttackType) TF_T_Damage; +void () W_SetCurrentAmmo; +void (entity p) bound_other_ammo; +float (float tno, float autoteam) TeamFortress_TeamSet; +void (entity p) TeamFortress_SetSkin; +float (float tno) TeamFortress_TeamGetColor; +void () TeamFortress_ChangeClass; +void (float type) TeamFortress_DropAmmo; +void (entity p) TeamFortress_SetSpeed; +void (entity inflictor,entity attacker,float damage,entity ignore) T_RadiusDamage; +void (float inp) Menu_DropStuff_Input; +void (float inp) Menu_Taunt_Input; +float () TeamFortress_TeamPutPlayerInTeam; +float (float tno) TeamFortress_TeamIsCivilian; +void (float class) TeamFortress_SpyChangeSkin; +void (float teamno) TeamFortress_SpyChangeColor; +void (float objtobuild) TeamFortress_Build; +void (float _p_9330) TeamFortress_SpyFeignDeath; +void (entity spy) Spy_RemoveDisguise; +void () lvl1_sentry_stand; +void () lvl2_sentry_stand; +void () lvl3_sentry_stand; +float (float tno) TeamFortress_TeamGetNoPlayers; +void (float menu_no) DisplayMenu; +void () Menu_Team; +void () Menu_Class; +void () Menu_Drop; +void () Menu_Intro; +void () PlayerObserverMode; +void () Menu_ClassHelp; +void () Menu_ClassHelp2; +void () Menu_StuffClassHelp; +void (float inp) Menu_ClassHelp_Input; +void () Menu_DoBindings; +void () Menu_ShowBindings1; +void () Menu_ShowBindings2; +void () Menu_RepeatHelp; +void () Menu_Spy; +void () Menu_Spy_Skin; +void () Menu_Spy_Color; +void (float inp) Menu_Spy_Input; +void (float inp) Menu_Spy_Skin_Input; +void (float inp) Menu_Spy_Color_Input; +void () Menu_Engineer; +void () Menu_EngineerFix_Dispenser; +void () Menu_EngineerFix_SentryGun; +void (float inp) Menu_Engineer_Input; +void (float inp) Menu_EngineerFix_Dispenser_Input; +void (float inp) Menu_EngineerFix_SentryGun_Input; +//void () Menu_EngineerFix_Tesla; +//void (float inp) Menu_EngineerFix_Tesla_Input; +void () Menu_Dispenser; +void (float inp) Menu_Dispenser_Input; +void (entity pl,string s1) CenterPrint; +void (entity pl,string s1,string s2) CenterPrint2; +void () Menu_DropStuff; +void () Menu_Taunt; +void () Menu_Yell; +void (float inp) Menu_Yell_Input; +#ifdef clan_progs +void () Menu_Clan_Prematch; +void (float inp) Menu_Clan_Prematch_Input; +#endif + +void() ResetMenu = +{ + if (self.StatusBarSize == TF_FLARE_LIT) + { + CenterPrint(self, "\n"); + } + else + { + self.StatusRefreshTime = time + 0.1; + } + self.menu_count = 25; + self.current_menu = TF_FLARE_OFF; +}; + +void () Player_Menu = +{ + + if ((self.menu_count > 25)) + { + self.menu_count = 0; + } + else + { + self.menu_count = (self.menu_count + 1); + return; + } +#ifdef clan_progs + if (self.current_menu == MENU_CLAN_PREMATCH) + { + Menu_Clan_Prematch (); + self.current_menu = 1; + } + else + { +#endif + if ((self.current_menu == 5)) + { + Menu_Intro (); + self.current_menu = 1; + } + else + { + if ((self.current_menu == 6)) + { + Menu_ClassHelp (); + if ((self.menu_displaytime > 8)) + { + self.current_menu = 1; + } + else + { + self.menu_displaytime = (self.menu_displaytime + 1); + } + } + else + { + if ((self.current_menu == 7)) + { + Menu_ClassHelp2 (); + if ((self.menu_displaytime > 5)) + { + self.current_menu = 1; + } + else + { + self.menu_displaytime = (self.menu_displaytime + 1); + } + } + else + { + if (self.current_menu == 10) + { + Menu_ShowBindings1(); + if (self.menu_displaytime > 8) + { + self.current_menu = TF_FLARE_OFF; + } + else + { + self.menu_displaytime = self.menu_displaytime + TF_FLARE_OFF; + } + } + else + { + if (self.current_menu == 11) + { + Menu_ShowBindings2(); + if (self.menu_displaytime > 8) + { + self.current_menu = TF_FLARE_OFF; + } + else + { + self.menu_displaytime = self.menu_displaytime + TF_FLARE_OFF; + } + } + else + { + if (self.current_menu == 4) + { + Menu_Drop(); + } + else + { + if (self.current_menu == 20) + { + Menu_DropStuff(); + } + else + { + if (self.current_menu == 21) + { + Menu_Taunt(); + } + else + { + if (self.current_menu == 22) + { + Menu_Yell(); + } + else + { + if (self.current_menu == 12) + { + Menu_Spy(); + } + else + { + if (self.current_menu == 13) + { + Menu_Spy_Skin(); + } + else + { + if (self.current_menu == 14) + { + Menu_Spy_Color(); + } + else + { + if (self.current_menu == 15) + { + Menu_Engineer(); + } + else + { + if (self.current_menu == 16) + { + Menu_EngineerFix_Dispenser(); + } + else + { + if (self.current_menu == 17) + { + Menu_EngineerFix_SentryGun(); + } + else + { + if (self.current_menu == 19) + { + Menu_Dispenser(); + } + else + { + if (self.current_menu == 8) + { + Menu_RepeatHelp(); + self.current_menu = TF_FLARE_OFF; + } + else + { + if (self.current_menu == 9) + { + Menu_DoBindings(); + } + else + { + if (self.team_no == TF_FLARE_LIT && teamplay && self.lives != TF_FLARE_LIT) + { + self.current_menu = 2; + Menu_Team(); + } + else + { + if ( (self.playerclass == TF_FLARE_LIT && self.lives != TF_FLARE_LIT) || (self.current_menu == 3) ) + { + self.current_menu = 3; + Menu_Class(); + } + else + { + self.current_menu = TF_FLARE_LIT; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } +#ifdef clan_progs + } +#endif +}; + +void(float menu_no) DisplayMenu = +{ + self.current_menu = menu_no; + if (menu_no == 2) + { + Menu_Team(); + } + else + { + if (menu_no == 3) + { + Menu_Class(); + } + } +}; + +void () Menu_Team = +{ + local string one; + local string two; + local string getversion; + + one = "ÍåçáÔÆ "; + two = "‘\n\n"; + getversion = infokey(world, "MegaTF"); + if (((toggleflags & 64) && teamplay)) + { + if (TeamFortress_TeamPutPlayerInTeam ()) + { + return; + } + } + if ((team_menu_string != string_null)) + { + CenterPrint4 (self, one, getversion, two, team_menu_string); + return; + } + if ((CTF_Map == 1)) + { + CenterPrint4 (self, one, getversion, two, "=== Choose your team ===\n\n“.. Blue Team \n”.. Red Team \n\n\n\n™.. Bind my keys for me!\n\nFor full details on this patch:\nhttp://www.telefragged.com/teamfortress/\n"); + } + else + { + if ((number_of_teams == 1)) + { + CenterPrint4 (self, one, getversion, two, "=== Choose your team ===\n\n“.. Team One \n"); + } + else + { + if ((number_of_teams == 2)) + { + CenterPrint4 (self, one, getversion, two, "=== Choose your team ===\n\n“.. Team One \n”.. Team Two \n \n \n—.. Auto team \n"); + } + else + { + if ((number_of_teams == 3)) + { + CenterPrint4 (self, one, getversion, two, "=== Choose your team ===\n\n“.. Team One \n”.. Team Two \n•.. Team Three\n \n—.. Auto team \n"); + } + else + { + CenterPrint4 (self, one, getversion, two, "=== Choose your team ===\n\n“.. Team One \n”.. Team Two \n•.. Team Three\n–.. Team Four \n—.. Auto team \n"); + } + } + } + } +}; + +void(float inp) Menu_Team_Input = +{ + if (inp == 5) + { + TeamFortress_TeamPutPlayerInTeam(); + } + else + { + if (inp <= number_of_teams && inp > TF_FLARE_LIT) + { + TeamFortress_TeamSet(inp, 0); + } + else + { + if (number_of_teams == TF_FLARE_LIT && inp <= 4) + { + TeamFortress_TeamSet(inp, 0); + } + else + { + if (inp == 7) + { + self.current_menu = 9; + } + else + { + if (inp == 8) + { + TeamFortress_TeamPutPlayerInTeam(); + } + } + } + } + } + ResetMenu(); + self.impulse = TF_FLARE_LIT; + + // autoexec [map].cfg + stuffcmd(self, "exec "); + stuffcmd(self, mapname); + stuffcmd(self, ".cfg\n"); +}; + +void() Menu_Class = +{ + local entity AD; + AD = find(world, classname, "info_tfdetect"); + if (AD) + { + if (self.team_no == TF_FLARE_OFF) + { + if (AD.noise1 != string_null) + { + CenterPrint(self, AD.noise1); + return; + } + } + else + { + if (self.team_no == 2) + { + if (AD.noise2 != string_null) + { + CenterPrint(self, AD.noise2); + return; + } + } + else + { + if (self.team_no == 3) + { + if (AD.noise3 != string_null) + { + CenterPrint(self, AD.noise3); + return; + } + } + else + { + if (self.team_no == 4) + { + if (AD.noise4 != string_null) + { + CenterPrint(self, AD.noise4); + return; + } + } + } + } + } + } + if (TeamFortress_TeamIsCivilian(self.team_no)) + { + CenterPrint(self, "Your team can only be Civilians.\n"); + } + else + { + if (spy_off == TF_FLARE_OFF) + { + CenterPrint(self, "=== Choose your class ===\n\n“.. Scout \n”.. Sniper \n•.. Soldier \n–.. Demoman \n—.. Medic \n˜.. Hwguy \n™.. Pyro \n›.. Engineer\n’.. Randompc\n"); + } + else + { + CenterPrint(self, "=== Choose your class ===\n\n“‘.. Scout \n”‘.. Sniper \n•‘.. Soldier \n–‘.. Demoman \n—‘.. Medic \n˜‘.. Hwguy \n™‘.. Pyro \nš‘.. Spy \n›‘.. Engineer\n’‘.. Randompc\n"); + } + } +}; + +void(float inp) Menu_Class_Input = +{ + if (inp > 10 || inp < TF_FLARE_OFF) + { + return; + } + self.impulse = inp + 100; + TeamFortress_ChangeClass(); + ResetMenu(); + //if (TF_FLARE_OFF) + if (self.oldcurrentammo != 1) + { + self.current_menu = 6; + } + //else + //{ + // self.current_menu = TF_FLARE_OFF; + //} + self.menu_displaytime = TF_FLARE_LIT; + self.impulse = TF_FLARE_LIT; +}; + +void() Menu_Drop = +{ + if ((self.playerclass == 9)) + { + if (sr_dropgrens) + { + CenterPrint (self, "Drop or Make: \n“.. Shells \n”.. Nails \n•.. Rockets \n–.. Cells \n—.. Type 1 Grenade \n˜.. Type 2 Grenade \n™.. Nothing \n\n"); + } + else + { + CenterPrint (self, "Drop or Make: \n“.. Shells \n”.. Nails \n•.. Rockets \n–.. Cells \n—.. Nothing \n\n"); + } + } + else + { + if (sr_dropgrens) + { + CenterPrint (self, "Drop: \n“.. Shells \n”.. Nails \n•.. Rockets \n–.. Cells \n—.. Type 1 Grenade \n˜.. Type 2 Grenade \n™.. Nothing \n\n"); + } + else + { + CenterPrint (self, "Drop: \n“.. Shells \n”.. Nails \n•.. Rockets \n–.. Cells \n—.. Nothing \n\n"); + } + } +}; + +void() Menu_RepeatHelp = +{ + local string tfhelp; + local string class_help; // if you have class help off you probably don't want intro menu + + class_help = infokey (self, "ch"); + if (class_help == string_null) + class_help = infokey (self, "classhelp"); + + tfhelp = infokey(self, "tf_help"); + + if ( (tfhelp != "off") && (class_help != "off")) + { + CenterPrint2(self, "Press š to see this help again\n", "New Command: 'mega' for Mega-TF Menu\n"); + } +}; + +void (float _p_815) Menu_Drop_Input = +{ + + if (sr_dropgrens) + { + if (((_p_815 > 0) && (_p_815 < 7))) + { + TeamFortress_DropAmmo (_p_815); + } + if (((_p_815 > 0) && (_p_815 < 8))) + { + ResetMenu (); + } + } + else + { + if (((_p_815 > 0) && (_p_815 < 5))) + { + TeamFortress_DropAmmo (_p_815); + } + if (((_p_815 > 0) && (_p_815 < 6))) + { + ResetMenu (); + } + } + self.impulse = 0; +}; + +void(float inp) Menu_DoBindings_Input = +{ + if (inp < 4) + { + self.impulse = TF_FLARE_LIT; + if (inp == TF_FLARE_OFF) + { + stuffcmd(self, "bind q \"impulse 23\"\n"); + stuffcmd(self, "bind e \"impulse 22\"\n"); + stuffcmd(self, "bind r \"+gren1\"\n"); + stuffcmd(self, "bind f \"+gren2\"\n"); + stuffcmd(self, "bind v \"detpipe\"\n"); + stuffcmd(self, "bind c \"dropammo\"\n"); + stuffcmd(self, "bind x \"scan50\"\n"); + stuffcmd(self, "bind g \"showclasses\"\n"); + stuffcmd(self, "bind z \"inv\"\n"); + self.menu_count = 25; + self.current_menu = 10; + self.menu_displaytime = TF_FLARE_LIT; + return; + } + else + { + if (inp == 2) + { + stuffcmd(self, "bind s \"impulse 23\"\n"); + stuffcmd(self, "bind x \"impulse 22\"\n"); + stuffcmd(self, "bind d \"+gren1\"\n"); + stuffcmd(self, "bind c \"+gren2\"\n"); + stuffcmd(self, "bind f \"detpipe\"\n"); + stuffcmd(self, "bind v \"dropammo\"\n"); + stuffcmd(self, "bind b \"scan50\"\n"); + stuffcmd(self, "bind g \"showclasses\"\n"); + stuffcmd(self, "bind n \"inv\"\n"); + self.menu_count = 25; + self.current_menu = 11; + self.menu_displaytime = TF_FLARE_LIT; + return; + } + } + ResetMenu(); + } +}; + +void(float inp) Menu_Input = +{ +#ifdef clan_progs + if (self.current_menu == MENU_CLAN_PREMATCH) + { + Menu_Clan_Prematch_Input(inp); + } + else + { +#endif + if (self.current_menu == 2) + { + Menu_Team_Input(inp); + } + else + { + if (self.current_menu == 3) + { + Menu_Class_Input(inp); + } + else + { + if (self.current_menu == 4) + { + Menu_Drop_Input(inp); + } + else + { + if (self.current_menu == 12) + { + Menu_Spy_Input(inp); + } + else + { + if (self.current_menu == 13) + { + Menu_Spy_Skin_Input(inp); + } + else + { + if (self.current_menu == 14) + { + Menu_Spy_Color_Input(inp); + } + else + { + if (self.current_menu == 15) + { + Menu_Engineer_Input(inp); + } + else + { + if (self.current_menu == 16) + { + Menu_EngineerFix_Dispenser_Input(inp); + } + else + { + if (self.current_menu == 17) + { + Menu_EngineerFix_SentryGun_Input(inp); + } + else + { + if (self.current_menu == 19) + { + Menu_Dispenser_Input(inp); + } + else + { + if (self.current_menu == 6) + { + Menu_ClassHelp_Input(inp); + } + else + { + if (self.current_menu == 20) + { + Menu_DropStuff_Input(inp); + } + else + { + if (self.current_menu == 21) + { + Menu_Taunt_Input(inp); + } + else + { + if (self.current_menu == 22) + { + Menu_Yell_Input(inp); + } + } + } + } + } + } + } + } + } + } + } + } + } + } +#ifdef clan_progs + } +#endif +}; + +void() Menu_DropStuff = +{ + CenterPrint(self, "€ Mega-TF Menu ‚\n\n€“‚ Drop #1 \n€”‚ Toaster \n€•‚ Drop #3 \n€–‚ Holograph \n€—‚ NightVision\n€˜‚ Lay Mode \n€™‚ Taunt Menu \n€š‚ Yell Menu \n€9‚ Nothing \n"); +}; + +void(float inp) Menu_DropStuff_Input = +{ + if (inp == TF_FLARE_OFF) + { + stuffcmd(self, "drop1\n"); + } + else + { + if (inp == 2) + { + stuffcmd(self, "drop2\n"); + } + else + { + if (inp == 3) + { + stuffcmd(self, "drop3\n"); + } + else + { + if (inp == 4) + { + stuffcmd(self, "holo\n"); + } + else + { + if (inp == 5) + { + stuffcmd(self, "ir\n"); + } + else + { + if (inp == 6) + { + stuffcmd(self, "lay\n"); + } + else + { + if (inp == 7) + { + ResetMenu(); + self.impulse = TF_FLARE_LIT; + stuffcmd(self, "taunt\n"); + } + else + { + if (inp == 8) + { + ResetMenu(); + self.impulse = TF_FLARE_LIT; + stuffcmd(self, "yell\n"); + } + else + { + if (inp > 8) + { + ResetMenu(); + } + } + } + } + } + } + } + } + } + ResetMenu(); + self.impulse = TF_FLARE_LIT; +}; + +void() Menu_Taunt = +{ + CenterPrint(self, "€ Taunt Menu ‚\n\n€“‚ R U Threat'n Me? \n€”‚ Come out w/ pants dwn\n€•‚ Hey! hehheh... \n €–‚ Do U want 2 C my bHole?\n€—‚ Call 911! \n€˜‚ Kick'm in the Nads! \n€™‚ I do the a$$ kik'n...\n€š‚ Pathetic Looser! \n€›‚ Nothing \n"); +}; + +void() Menu_Yell = +{ + CenterPrint(self, "€ Yell Menu ‚\n\n€“‚ Cover Me! \n€”‚ Over Here! \n€•‚ This Way! \n €–‚ Follow Me! \n€—‚ Incoming! \n€˜‚ Holdup! \n€™‚ Go Go Go! \n€š‚ Lookout! \n€›‚ Fire in the hole! \n"); +}; + +void(float inp) Menu_Taunt_Input = +{ + if (inp == TF_FLARE_OFF) + { + stuffcmd(self, "bic\n"); + } + else + { + if (inp == 2) + { + stuffcmd(self, "impulse 250\n"); + } + else + { + if (inp == 3) + { + stuffcmd(self, "hey\n"); + } + else + { + if (inp == 4) + { + stuffcmd(self, "bhole\n"); + } + else + { + if (inp == 5) + { + sound(self, TF_FLARE_OFF, "speech/call911.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (inp == 6) + { + sound(self, TF_FLARE_OFF, "speech/kicknads.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (inp == 7) + { + sound(self, TF_FLARE_OFF, "speech/idoasskk.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (inp == 8) + { + sound(self, TF_FLARE_OFF, "speech/pathetic.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (inp > 8) + { + ResetMenu(); + } + } + } + } + } + } + } + } + } + ResetMenu(); + self.impulse = TF_FLARE_LIT; +}; + +void(float inp) Menu_Yell_Input = +{ + WriteByte(4, 23); + WriteByte(4, 11); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); + multicast(self.origin, TF_FLARE_OFF); + + if (inp == TF_FLARE_OFF) + { + sound(self, TF_FLARE_OFF, "speech/yell/coverme.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (inp == 2) + { + sound(self, TF_FLARE_OFF, "speech/yell/overhere.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (inp == 3) + { + sound(self, TF_FLARE_OFF, "speech/yell/thisway.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (inp == 4) + { + sound(self, TF_FLARE_OFF, "speech/yell/followme.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (inp == 5) + { + sound(self, TF_FLARE_OFF, "speech/yell/incomng.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (inp == 6) + { + sound(self, TF_FLARE_OFF, "speech/yell/holdup.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (inp == 7) + { + sound(self, TF_FLARE_OFF, "speech/yell/gogogo.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (inp == 8) + { + sound(self, TF_FLARE_OFF, "speech/yell/lookout.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (inp == 9) + { + sound(self, TF_FLARE_OFF, "speech/yell/firehole.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + if (inp > 9) + { + ResetMenu(); + } + } + } + } + } + } + } + } + } + } + ResetMenu(); + self.impulse = TF_FLARE_LIT; +}; + +void() Menu_Intro = +{ +// we don't need it.. + /*local string mtf_ver; + local string mtf_website; + mtf_ver = #mtf_Ver; // #mtf_Ver defined in defs.pqc now.. + mtf_website = #mtf_Website; + + CenterPrint (self, "Welcome to MegaTeamFortress v", mtf_ver); +#ifdef clan_progs + CenterPrint (self, "CE"); +#endif + CenterPrint (self, "\n\nCreated by TeamFortress Software\nUpdated by Up2\n======================================\n", mtf_website); +*/ +}; + +void () Menu_ClassHelp = +{ + local string serverinfo_tfhelp; + local string class_help; + + class_help = infokey (self, "ch"); + if (class_help == string_null) + class_help = infokey (self, "classhelp"); + + serverinfo_tfhelp = infokey (self, "tf_help"); + + if ((serverinfo_tfhelp != "off") && (class_help != "off")) { + + if ((self.menu_displaytime < 20)) + { + if ((self.playerclass == 1)) + { + CenterPrint (self, "ÁÉÒÓÃÏÕÔ player details:\n ÷åáðïîóº                 \n “‘ axe \n ”‘ shotgun \n –‘ mac-10 \n çòåîáäåóº             \n +gren“º flash grenade \n +gren”º conc grenade \n äòïðóº \n drop“º flash mine \n drop•º disarm detpack \n ãïííáîäóº            \n specialº jetpack boost \n"); + } + else + { + if ((self.playerclass == 2)) + { + CenterPrint (self, "ÓÎÉÐÅÒ player details: \n ÷åáðïîóº                 \n “‘ axe \n ”‘ sniper rifle \n •‘ auto rifle \n çòåîáäåóº             \n +gren“º normal grenade \n +gren”º flare \n äòïðóº \n drop“º alarm \n drop•º call airstrike \n ãïííáîäóº            \n specialº autozoom \n"); + } + else + { + if ((self.playerclass == 3)) + { + CenterPrint (self, "ÓÏÌÄÉÅÒ player details:\n ÷åáðïîóº                 \n “‘ axe \n ”‘ shotgun \n •‘ super shotgun \n  ™‘ rocket launcher \n çòåîáäåóº             \n +gren“º normal grenade \n +gren”º nail grenade \n äòïðóº \n drop“º spike trap \n drop•º proximity grenade\n ãïííáîäóº            \n specialº reload \n"); + } + else + { + if ((self.playerclass == 4)) + { + CenterPrint (self, "ÄÅÍÏÍÁÎ player details: \n ÷åáðïîóº                 \n “‘ axe \n ”‘ shotgun \n —‘ long-range gren. \n ˜‘ grenade launcher \n ™‘ pipebomb launcher \n çòåîáäåóº             \n +gren“º normal grenade \n +gren”º MIRV grenade \n äòïðóº \n drop“º launch airMIRV \n ãïííáîäóº            \n specialº detonate pipes \n det—º  5 second detpack \n det”’º 20 second detpack\n det—’º 50 second detpack\n"); + } + else + { + if ((self.playerclass == 5)) + { + CenterPrint (self, "ÍÅÄÉà player details: \n ÷åáðïîóº                 \n “‘ bioaxe \n ”‘ shotgun \n •‘ super shotgun \n —‘ super nailgun \n çòåîáäåóº             \n +gren“º normal grenade \n +gren”º conc grenade \n äòïðóº \n drop“º infected syringe \n drop•º heal self \n"); + } + else + { + if ((self.playerclass == 6)) + { + CenterPrint (self, "È×ÇÕÙ player details: \n ÷åáðïîóº                 \n “‘ axe \n ”‘ shotgun \n •‘ super shotgun \n ™‘ assault cannon \n ™‘ 20mm cannon \n çòåîáäåóº             \n +gren“º normal grenade \n +gren”º MIRV grenade \n äòïðóº \n drop“º spike trap \n"); + } + else + { + if ((self.playerclass == 7)) + { + CenterPrint (self, "ÐÙÒÏ player details: \n ÷åáðïîóº                 \n “‘ axe \n ”‘ shotgun \n ˜‘ flame-thrower \n ™‘ incendiary cannon \n çòåîáäåóº             \n +gren“º normal grenade \n +gren”º napalm grenade \n äòïðóº \n drop“º lava pool \n"); + } + else + { + if ((self.playerclass == 8)) + { + if (spycam) + { + CenterPrint (self, "ÓÐÙ player details: \n ÷åáðïîóº                 \n “‘ blade \n ”‘ tranquilizer gun \n •‘ super shotgun \n –‘ mac-10 \n š‘ grappling hook \n çòåîáäåóº             \n +gren“º normal grenade \n +gren”º gas grenade \n äòïðóº \n drop“º ammo trap \n  drop•º spy camera \n ãïííáîäóº \n specialº disguise menu \n"); + } + else + { + CenterPrint (self, "ÓÐÙ player details: \n ÷åáðïîóº                 \n “‘ blade \n ”‘ tranquilizer gun \n •‘ super shotgun \n –‘ mac-10 \n š‘ grappling hook \n çòåîáäåóº             \n +gren“º normal grenade \n +gren”º gas grenade \n äòïðóº \n drop“º ammo trap \n ãïííáîäóº \n specialº disguise menu \n"); + } + } + else + { + if ((self.playerclass == 9)) + { + CenterPrint (self, "ÅÎÇÉÎÅÅÒ player details:\n ÷åáðïîóº                 \n “‘ wrench \n ”‘ laser gun \n •‘ super shotgun \n çòåîáäåóº             \n +gren“º normal grenade \n +gren”º EMP grenade \n äòïðóº \n drop“º magnet mine \n drop•º laser drone \n ãïííáîäóº \n specialº build menu \n dropammoº make ammo menu\n"); + } + } + } + } + } + } + } + } + } + } + else + { + if ((self.playerclass == 1)) + { + CenterPrint (self, "ÇÒÅÎÁÄÅÓ: \nFlash Grenade \nConcussion Grenade \n\nÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ: \nScanner: scan10,scan50,scan250\nJetJump: jetjump\ndrop1 : drop a Flash mine\n\n\nPress š for alias help\n"); + } + else + { + if ((self.playerclass == 2)) + { + CenterPrint (self, "ÇÒÅÎÁÄÅÓ: \nHand Grenade \nFlare \n\nÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ: \nautozoom : Toggle Rifle Autozooming\nSet an Alarm : drop1 \n Call AirStrike : airstrike\n SpotLight : +spot \n\nPress š for alias help\n"); + } + else + { + if ((self.playerclass == 3)) + { + CenterPrint (self, "ÇÒÅÎÁÄÅÓ: \nHand Grenade \nNail Grenade \n\nÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ: \nDrop a Spike Trap : Drop1\ndrop3 : Set a ProxiMine! \n\n\nPress š for alias help\n"); + } + else + { + if ((self.playerclass == 4)) + { + CenterPrint (self, "ÇÒÅÎÁÄÅÓ: \nHand Grenade \nMirv Grenade \n\nÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ: \nThe Detpack : det5,det20,det50\nDetonate Pipebombs : detpipe \nAir-MIRV : drop1 \n\nPress š for alias help\n"); + } + else + { + if ((self.playerclass == 5)) + { + CenterPrint (self, "ÇÒÅÎÁÄÅÓ: \nHand Grenade \nConcussion Grenade \n\nÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ: \nHeal Yourself : drop3 or heal\n\n\nPress š for alias help\n"); + } + else + { + if ((self.playerclass == 6)) + { + CenterPrint (self, "ÇÒÅÎÁÄÅÓ: \nHand Grenade \nMirv Grenade \n\nÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ: \nSet an Spike Trap : drop1 \n\n\nPress š for alias help\n"); + } + else + { + if ((self.playerclass == 7)) + { + CenterPrint (self, "ÇÒÅÎÁÄÅÓ: \nHand Grenade \nNapalm Grenade \n\nÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ: \nDrop a lava pool : drop1 \n\n\nPress š for alias help\n"); + } + else + { + if ((self.playerclass == 8)) + { + CenterPrint (self, "ÇÒÅÎÁÄÅÓ: \nHand Grenade \nHallucinogen Grenade\n\nÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ: \nGo Undercover : disguise\nSet an Ammo Trap : drop1 \n\nPress š for alias help\n"); + } + else + { + if ((self.playerclass == 9)) + { + CenterPrint (self, "ÇÒÅÎÁÄÅÓ: \nHand Grenade \nEMP Grenade \n\nÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ: \nStart Building : build \n Set a Mag Trap : drop1 \n\n\nPress š for alias help\n"); + } + } + } + } + } + } + } + } + } + } + } +}; + +void () Menu_StuffClassHelp = +{ + local string _l_902; + + _l_902 = infokey (self, "tf_help"); + if ((_l_902 != "off")) + { + if ((self.playerclass == 1)) + { + sprint (self, 2, "ÓÃÏÕÔ Details:\n×ÅÁÐÏÎÓ:\n 2.. Shotgun\n 4.. MAC-10 \n"); + sprint (self, 2, "ÇÒÅÎÁÄÅÓ:\n Concussion Grenade\n Flare\nÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ:\n"); + sprint (self, 2, "Scanner: scan10,scan30,scan100\nJetJump: jetjump\ndrop1 : drop a Flash mine\n\n\n"); + } + else + { + if ((self.playerclass == 2)) + { + sprint (self, 2, "ÓÎÉÐÅÒ Details:\n\n×ÅÁÐÏÎÓ:\n 2.. Sniper Rifle/Auto Rifle\n"); + sprint (self, 2, "4.. MAC-10 \nÇÒÅÎÁÄÅÓ:\n Hand Grenade\n\n\nÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ:\n"); + sprint (self, 2, " autozoom : Toggle Scope Autozooming\n drop1 : drop an alarm mine\nairstrike : call an AirStrike\n +spot : Toggle SpotLight \n\n"); + } + else + { + if ((self.playerclass == 3)) + { + sprint (self, 2, "ÓÏÌÄÉÅÒ Details:\n\n×ÅÁÐÏÎÓ:\n 2.. Shotgun\n 3.. Super Shotgun\n"); + sprint (self, 2, " 7.. Rocket Launcher\nÇÒÅÎÁÄÅÓ:\n Hand Grenade\n Nail Grenade\n"); + sprint (self, 2, "ÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ:\n drop1 : Drop a Spike Trap \n drop3 : Set a ProxiMine! \n\n\n"); + } + else + { + if ((self.playerclass == 4)) + { + sprint (self, 2, "ÄÅÍÏÌÉÔÉÏÎÓ ÍÁÎ Details:\n\n×ÅÁÐÏÎÓ:\n 2.. Shotgun\n 5.. Long-range Grenades \n6.. Grenade Launcher \n7..Pipebomb Launcher\n"); + sprint (self, 2, "ÇÒÅÎÁÄÅÓ:\n Hand Grenade\n Mirv Grenade\n"); + sprint (self, 2, "ÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ:\n The Detpack : det5,det20,det50\n Detonate Pipebombs : detpipe\n drop1 : release an AirMIRV \n\n"); + } + else + { + if ((self.playerclass == 5)) + { + sprint (self, 2, "ÍÅÄÉà Details:\n\n×ÅÁÐÏÎÓ:\n 1.. Medikit/BioWeapon\n 2.. Shotgun\n 3.. Super Shotgun\n"); + sprint (self, 2, " 5.. Super Nailgun\nÇÒÅÎÁÄÅÓ:\n Hand Grenade\n Concussion Grenade\n"); + sprint (self, 2, "ÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ:\n Drop1 : drop an infected syringe\n\n\n"); + } + else + { + if ((self.playerclass == 6)) + { + sprint (self, 2, "ÈÅÁÖÙ ×ÅÁÐÏÎÓ ÇÕÙ Details:\n\n×ÅÁÐÏÎÓ:\n 2.. Shotgun\n 3.. Super Shotgun\n"); + sprint (self, 2, " 7.. Assault Cannon\nÇÒÅÎÁÄÅÓ:\n Hand Grenade\n"); + sprint (self, 2, " Mirv Grenade\nÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ:\n drop1 : set a spike trap\n\n\n"); + } + else + { + if ((self.playerclass == 7)) + { + sprint (self, 2, "ÐÙÒÏ Details:\n\n×ÅÁÐÏÎÓ:\n 2.. Shotgun\n 6.. Flamethrower\n 7.. Incendiary Cannon\n"); + sprint (self, 2, "ÇÒÅÎÁÄÅÓ:\n Hand Grenade\n Napalm Grenade\n"); + sprint (self, 2, "ÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ:\n None\n\n\n"); + } + else + { + if ((self.playerclass == 8)) + { + sprint (self, 2, "ÓÐÙ Details:\n\n×ÅÁÐÏÎÓ:\n 2.. Tranquiliser Gun\n 3.. Super Shotgun\n 4.. MAC-10 \n 8.. Grapple Hook \n"); + sprint (self, 2, "ÇÒÅÎÁÄÅÓ:\n Hand Grenade\n Hallucinogenic Grenade\n"); + sprint (self, 2, "ÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ:\n Go Undercover : disguise\n drop1 : drop an Ammo Trap\n\n"); + } + else + { + if ((self.playerclass == 9)) + { + sprint (self, 2, "ÅÎÇÉÎÅÅÒ Details:\n\n×ÅÁÐÏÎÓ:\n 1.. Spanner\n 2.. RailGun\n 3.. Super Shotgun\n"); + sprint (self, 2, "ÇÒÅÎÁÄÅÓ:\n Hand Grenade\n EMP Grenade\n"); + sprint (self, 2, "ÓÐÅÃÉÁÌ ÃÏÍÍÁÎÄÓ:\n Start Building : build\n Set a Mag Trap : drop1 \n\n\n"); + } + } + } + } + } + } + } + } + } + } +}; + + +void () Menu_ClassHelp2 = +{ + CenterPrint (self, "ÃÏÍÍÁÎÄÓ  \n inv œ Show inventory \n +gren1 œ Throw grenade 1 \n +gren2 œ Throw Grenade 2 \n reload œ Force a reload \n sbar_on œ Turn on status bar\n autoid_onœ Turn on auto ID \n dropammo œ drop some ammo \n discard œ drop unneeded ammo\n lay œ start lay mode \n drop1 œ drop item 1 \n drop2 œ throw a toaster \n drop3 œ drop item 2 \n mega œ Mega-TF Menu! \n dropflag œ drop the flag \n"); +}; + +void(float inp) Menu_ClassHelp_Input = +{ + if (inp == 8) + { + Menu_ClassHelp2(); + self.menu_count = 25; + self.current_menu = 7; + self.menu_displaytime = TF_FLARE_LIT; + self.impulse = TF_FLARE_LIT; + } +}; + +void() Menu_DoBindings = +{ + CenterPrint(self, "“.. Use keys: E R F V C Q X G Z\n”.. Use keys: S X D C F V B G N\n•.. Don't make bindings \n"); +}; + +void() Menu_ShowBindings1 = +{ + CenterPrint(self, "Ñ.. Flaginfo \nÅ.. Hook \nÒ.. Throw Gren 1 \nÆ.. Throw Gren 2 \nÖ.. Det. Pipebombs\nÃ.. Drop ammo \nØ.. Use Scanner \nÇ.. Showclasses \nÚ.. inventory \n"); +}; + +void() Menu_ShowBindings2 = +{ + CenterPrint(self, "Ó.. Flaginfo \nØ.. Hook \nÄ.. Throw Gren 1 \nÃ.. Throw Gren 2 \nÆ.. Det. Pipebombs\nÖ.. Drop ammo \nÂ.. Use Scanner \nÇ.. Showclasses \nÎ.. inventory \n"); +}; + +void() Menu_Spy = +{ + if (spyjumpoption) + { + if (self.is_feigning) + { + if (((self.undercover_team != 0) && (self.undercover_skin != 0))) + { + CenterPrint (self, "Action: \n“.. Change Skin \n”.. Change Color \n•.. Stop Feigning \n–.. Reset Skin and Color \n—.. Change Jump Style \n˜.. Nothing \n\n"); + } + else + { + if ((self.undercover_team != 0)) + { + CenterPrint (self, "Action: \n“.. Change Skin \n”.. Change Color \n•.. Stop Feigning \n–.. Reset Color \n—.. Change Jump Style \n˜.. Nothing \n\n"); + } + else + { + if ((self.undercover_skin != 0)) + { + CenterPrint (self, "Action: \n“.. Change Skin \n”.. Change Color \n•.. Stop Feigning \n–.. Reset Skin \n—.. Change Jump Style \n˜.. Nothing \n\n"); + } + else + { + CenterPrint (self, "Action: \n“.. Change Skin \n”.. Change Color \n•.. Stop Feigning \n—.. Change Jump Style \n˜.. Nothing \n\n"); + } + } + } + } + else + { + if (((self.undercover_team != 0) && (self.undercover_skin != 0))) + { + CenterPrint (self, "Action: \n“.. Change Skin \n”.. Change Color \n•.. Start Feigning \n–.. Reset Skin and Color \n—.. Change Jump Style \n˜.. Nothing \n\n"); + } + else + { + if ((self.undercover_team != 0)) + { + CenterPrint (self, "Action: \n“.. Change Skin \n”.. Change Color \n•.. Start Feigning \n–.. Reset Color \n—.. Change Jump Style \n˜.. Nothing \n\n"); + } + else + { + if ((self.undercover_skin != 0)) + { + CenterPrint (self, "Action: \n“.. Change Skin \n”.. Change Color \n•.. Start Feigning \n–.. Reset Skin \n—.. Change Jump Style \n˜.. Nothing \n\n"); + } + else + { + CenterPrint (self, "Action: \n“.. Change Skin \n”.. Change Color \n•.. Start Feigning \n—.. Change Jump Style \n˜.. Nothing \n\n"); + } + } + } + } + } + else + { + if (self.is_feigning) + { + if (((self.undercover_team != 0) && (self.undercover_skin != 0))) + { + CenterPrint (self, "Action: \n“.. Change Skin \n”.. Change Color \n•.. Stop Feigning \n–.. Reset Skin and Color \n—.. Nothing \n\n"); + } + else + { + if ((self.undercover_team != 0)) + { + CenterPrint (self, "Action: \n“.. Change Skin \n”.. Change Color \n•.. Stop Feigning \n–.. Reset Color \n—.. Nothing \n\n"); + } + else + { + if ((self.undercover_skin != 0)) + { + CenterPrint (self, "Action: \n“.. Change Skin \n”.. Change Color \n•.. Stop Feigning \n–.. Reset Skin \n—.. Nothing \n\n"); + } + else + { + CenterPrint (self, "Action: \n“.. Change Skin \n”.. Change Color \n•.. Stop Feigning \n–.. Nothing \n\n"); + } + } + } + } + else + { + if (((self.undercover_team != 0) && (self.undercover_skin != 0))) + { + CenterPrint (self, "Action: \n“.. Change Skin \n”.. Change Color \n•.. Start Feigning \n–.. Reset Skin and Color \n—.. Nothing \n\n"); + } + else + { + if ((self.undercover_team != 0)) + { + CenterPrint (self, "Action: \n“.. Change Skin \n”.. Change Color \n•.. Start Feigning \n–.. Reset Color \n—.. Nothing \n\n"); + } + else + { + if ((self.undercover_skin != 0)) + { + CenterPrint (self, "Action: \n“.. Change Skin \n”.. Change Color \n•.. Start Feigning \n–.. Reset Skin \n—.. Nothing \n\n"); + } + else + { + CenterPrint (self, "Action: \n“.. Change Skin \n”.. Change Color \n•.. Start Feigning \n–.. Nothing \n\n"); + } + } + } + } + } +}; + +void (float _p_955) Menu_Spy_Input = +{ + + if (((_p_955 == 1) || (_p_955 == 2))) + { + if ((self.effects & 12)) + { + sprint (self, 2, "You can't go undercover while glowing.\n"); + ResetMenu (); + self.impulse = 0; + return; + } + if ((self.is_unabletospy == 1)) + { + sprint (self, 2, "You can't go undercover right now.\n"); + ResetMenu (); + self.impulse = 0; + return; + } + } + if ((_p_955 == 1)) + { + Menu_Spy_Skin (); + self.menu_count = 25; + self.current_menu = 13; + self.menu_displaytime = 0; + self.impulse = 0; + } + else + { + if ((_p_955 == 2)) + { + Menu_Spy_Color (); + self.menu_count = 25; + self.current_menu = 14; + self.menu_displaytime = 0; + self.impulse = 0; + } + else + { + if ((_p_955 == 3)) + { + TeamFortress_SpyFeignDeath (0); + ResetMenu (); + self.impulse = 0; + } + else + { + if ((_p_955 == 4)) + { + Spy_RemoveDisguise (self); + ResetMenu (); + self.impulse = 0; + } + else + { + if ((_p_955 == 5)) + { + if (spyjumpoption) + { + if ((self.spy_regjump == 1)) + { + self.spy_regjump = 0; + sprint (self, 2, "Jump style now high\n"); + } + else + { + self.spy_regjump = 1; + sprint (self, 2, "Jump style now disguised\n"); + } + ResetMenu (); + self.impulse = 0; + } + } + else + { + if ((((_p_955 == 5) && !spyjumpoption) && ((self.undercover_team != 0) || (self.undercover_skin != 0)))) + { + ResetMenu (); + self.impulse = 0; + } + else + { + if (((_p_955 == 6) && ((self.undercover_team != 0) || (self.undercover_skin != 0)))) + { + ResetMenu (); + self.impulse = 0; + } + } + } + } + } + } + } +}; + +void() Menu_Spy_Skin = +{ + CenterPrint(self, "Change Skin to:\n“.. Scout \n”.. Sniper \n•.. Soldier \n–.. Demoman \n—.. Medic \n˜.. Hwguy \n™.. Pyro \nš.. Spy \n›.. Engineer\n\n"); +}; + +void(float inp) Menu_Spy_Skin_Input = +{ + if (inp < 10 && inp > TF_FLARE_LIT) + { + TeamFortress_SpyChangeSkin(inp); + ResetMenu(); + self.impulse = TF_FLARE_LIT; + } +}; + +void() Menu_Spy_Color = +{ + if (number_of_teams == TF_FLARE_LIT) + { + sprint(self, 2, "No Color changing allowed in deathmatch.\n"); + ResetMenu(); + self.impulse = TF_FLARE_LIT; + return; + } + if (number_of_teams == TF_FLARE_OFF) + { + CenterPrint(self, "=== Change Color to the Same Color as ===\n\n“.. Team One \n\n"); + } + else + { + if (number_of_teams == 2) + { + CenterPrint(self, "=== Change Color to the Same Color as ===\n\n“.. Team One \n”.. Team Two \n\n"); + } + else + { + if (number_of_teams == 3) + { + CenterPrint(self, "=== Change Color to the Same Color as ===\n\n“.. Team One \n”.. Team Two \n•.. Team Three\n\n"); + } + else + { + CenterPrint(self, "=== Change Color to the Same Color as ===\n\n“.. Team One \n”.. Team Two \n•.. Team Three\n–.. Team Four \n\n"); + } + } + } +}; + +void(float inp) Menu_Spy_Color_Input = +{ + if (inp >= TF_FLARE_OFF && inp <= number_of_teams) + { + TeamFortress_SpyChangeColor(inp); + ResetMenu(); + self.impulse = TF_FLARE_LIT; + } +}; + +void() Menu_Engineer = +{ + if (self.has_dispenser == TF_FLARE_OFF && self.has_sentry == TF_FLARE_OFF) + { + CenterPrint(self, "Action: \n“.. Remotely Detonate Dispenser \n”.. Remotely Detonate Sentry Gun\n–.. Nothing \n\n"); + } + else + { + if (self.has_dispenser && self.ammo_cells >= 130) + { + CenterPrint(self, "Action: \n“.. Remotely Detonate Dispenser \n”.. Build Sentry Gun \n–.. Nothing \n\n"); + } + else + { + if (self.has_dispenser) + { + CenterPrint(self, "Action: \n“.. Remotely Detonate Dispenser \n–.. Nothing \n\n"); + } + else + { + if (self.has_sentry && self.ammo_cells >= 100) + { + CenterPrint(self, "Action: \n“.. Build Ammo&Armor Dispenser \n”.. Remotely Detonate Sentry Gun\n–.. Nothing \n\n"); + } + else + { + if (self.has_sentry) + { + CenterPrint(self, "Action: \n”.. Remotely Detonate Sentry Gun\n–.. Nothing \n\n"); + } + else + { + if (self.ammo_cells >= 130) + { + CenterPrint(self, "Action: \n“.. Build Ammo&Armor Dispenser \n”.. Build Sentry Gun \n–.. Nothing \n\n"); + } + else + { + if (self.ammo_cells >= 100) + { + CenterPrint(self, "Action: \n“.. Build Ammo&Armor Dispenser \n–.. Nothing \n\n"); + } + else + { + ResetMenu(); + } + } + } + } + } + } + } +}; + +void(float inp) Menu_Engineer_Input = +{ + local entity te; + if (inp == TF_FLARE_OFF && (self.ammo_cells >= 100 || self.has_dispenser == TF_FLARE_OFF)) + { + if (self.has_dispenser) + { + te = find(world, classname, "building_dispenser"); + while (te) + { + if (te.real_owner == self) + { + deathmsg = 201; + T_RadiusDamage(te, te.real_owner, 140, world); + TF_T_Damage(te, world, world, 500, TF_FLARE_LIT, TF_FLARE_LIT); + } + te = find(te, classname, "building_dispenser"); + } + } + else + { + sound(self, 3, "items/repair.wav", TF_FLARE_OFF, TF_FLARE_OFF); + TeamFortress_Build(TF_FLARE_OFF); + } + ResetMenu(); + self.impulse = TF_FLARE_LIT; + } + else + { + if (inp == 2 && (self.ammo_cells >= 130 || self.has_sentry == TF_FLARE_OFF)) + { + if (self.has_sentry) + { + te = find(world, classname, "building_sentrygun"); + while (te) + { + if (te.real_owner == self) + { + TF_T_Damage(te, world, world, 500, TF_FLARE_LIT, TF_FLARE_LIT); + } + te = find(te, classname, "building_sentrygun"); + } + } + else + { + sound(self, 3, "items/repair.wav", TF_FLARE_OFF, TF_FLARE_OFF); + TeamFortress_Build(2); + } + ResetMenu(); + self.impulse = TF_FLARE_LIT; + } + else + { + if (inp == 4) + { + ResetMenu(); + self.impulse = TF_FLARE_LIT; + } + } + } +}; + +void() Menu_EngineerFix_Dispenser = +{ + CenterPrint(self, "Action: \n“‘.. Put Ammo into Dispenser \n”‘.. Put Armor into Dispenser \n•‘.. Repair Dispenser \n–‘.. Dismantle Dispenser \n—‘.. Nothing \n\n"); +}; + +void(float inp) Menu_EngineerFix_Dispenser_Input = +{ + local float metalcost; + local float am; + if (self.classname != "player" || self.building == world) + { + return; + } + if (inp == TF_FLARE_OFF) + { + am = 20 * 2; + if (am > self.ammo_shells) + { + am = self.ammo_shells; + } + if (am > 400 - self.building.ammo_shells) + { + am = 400 - self.building.ammo_shells; + } + self.ammo_shells = self.ammo_shells - am; + self.building.ammo_shells = self.building.ammo_shells + am; + am = 20 * 2; + if (am > self.ammo_nails) + { + am = self.ammo_nails; + } + if (am > 600 - self.building.ammo_nails) + { + am = 600 - self.building.ammo_nails; + } + self.ammo_nails = self.ammo_nails - am; + self.building.ammo_nails = self.building.ammo_nails + am; + am = 10 * 2; + if (am > self.ammo_rockets) + { + am = self.ammo_rockets; + } + if (am > 300 - self.building.ammo_rockets) + { + am = 300 - self.building.ammo_rockets; + } + self.ammo_rockets = self.ammo_rockets - am; + self.building.ammo_rockets = self.building.ammo_rockets + am; + am = 10 * 2; + if (am > self.ammo_cells) + { + am = self.ammo_cells; + } + if (am > 400 - self.building.ammo_cells) + { + am = 400 - self.building.ammo_cells; + } + self.ammo_cells = self.ammo_cells - am; + self.building.ammo_cells = self.building.ammo_cells + am; + } + else + { + if (inp == 2) + { + am = 40 * 2; + if (am > self.armorvalue) + { + am = self.armorvalue; + } + if (am > 500 - self.building.armorvalue) + { + am = 500 - self.building.armorvalue; + } + self.armorvalue = self.armorvalue - am; + self.building.armorvalue = self.building.armorvalue + am; + } + else + { + if (inp == 3) + { + sound(self, 3, "items/repair.wav", TF_FLARE_OFF, TF_FLARE_OFF); + metalcost = (self.building.max_health - self.building.health) / 5; + if (metalcost > self.ammo_cells) + { + metalcost = self.ammo_cells; + } + self.ammo_cells = self.ammo_cells - metalcost; + self.building.health = self.building.health + metalcost * 5; + } + else + { + if (inp == 4) + { + sprint(self, 2, "You dismantle the Dispenser.\n"); + self.ammo_cells = self.ammo_cells + 100 / 2; + dremove(self.building); + self.building.real_owner.has_dispenser = TF_FLARE_LIT; + } + } + } + } + if (inp >= TF_FLARE_OFF && inp <= 5) + { + ResetMenu(); + self.impulse = TF_FLARE_LIT; + self.building = world; + bound_other_ammo(self); + if (self.armorvalue == TF_FLARE_LIT) + { + self.armortype = TF_FLARE_LIT; + self.armorclass = TF_FLARE_LIT; + self.items = self.items - (self.items & (8192 | 16384 | 32768)); + } + W_SetCurrentAmmo(); + } +}; + +void () Menu_EngineerFix_SentryGun = +{ + + if (((self.building.weapon < 3) && (self.ammo_cells >= 130))) + { + CenterPrint (self, "Action: \n“‘.. Put Ammo into Sentry Gun \n”‘.. Upgrade Sentry Gun \n•‘.. Repair Sentry Gun \n–‘.. Dismantle Sentry Gun \n—‘.. Nothing \n \n6‘.. Rotate Clockwise \n\n"); + } + else + { + if ((self.building.weapon == 3)) + { + CenterPrint (self, "Action: \n“‘.. Put Ammo into Sentry Gun \n\n•‘.. Repair Sentry Gun \n–‘.. Dismantle Sentry Gun \n—‘.. Nothing \n \n6‘.. Rotate Clockwise \n7‘.. Unload Rockets \n\n"); + } + else + { + CenterPrint (self, "Action: \n“‘.. Put Ammo into Sentry Gun \n\n•‘.. Repair Sentry Gun \n–‘.. Dismantle Sentry Gun \n—‘.. Nothing \n \n6‘.. Rotate Clockwise \n\n"); + } + } +}; + +void (float inp) Menu_EngineerFix_SentryGun_Input = +{ + local float am; + local float metalcost; + local string st; + + if (((self.classname != "player") || (self.building == world))) + { + return; + } + if ((inp == 1)) + { + am = 40; + if ((am > self.ammo_shells)) + { + am = self.ammo_shells; + } + if ((am > (self.building.maxammo_shells - self.building.ammo_shells))) + { + am = self.building.maxammo_shells - self.building.ammo_shells; + } + self.ammo_shells = (self.ammo_shells - am); + self.building.ammo_shells = (self.building.ammo_shells + am); + if ((self.building.weapon == 3)) + { + am = 20; + if ((am > self.ammo_rockets)) + { + am = self.ammo_rockets; + } + if ((am > (self.building.maxammo_rockets - self.building.ammo_rockets))) + { + am = self.building.maxammo_rockets - self.building.ammo_rockets; + } + self.ammo_rockets = (self.ammo_rockets - am); + self.building.ammo_rockets = (self.building.ammo_rockets + am); + } + } + else + { + if ((((self.building.weapon < 3) && (inp == 2)) && (self.ammo_cells >= 130))) + { + self.ammo_cells = (self.ammo_cells - 130); + self.building.weapon = (self.building.weapon + 1); + self.building.max_health = (self.building.max_health * 1.200000); + self.building.health = self.building.max_health; + self.building.maxammo_shells = (self.building.maxammo_shells * 1.200000); + if ((self.building.weapon == 2)) + { + sound (self.building, 3, "weapons/tnkatck4.wav", 1, 1); + self.building.think = lvl2_sentry_stand; + self.building.skin = 1; + } + else + { + sound (self.building, 3, "weapons/tnkatck4.wav", 1, 1); + self.building.think = lvl3_sentry_stand; + self.building.skin = 2; + } + sprint (self, 2, "You upgrade the Sentry Gun to level "); + st = ftos (self.building.weapon); + sprint (self, 2, st); + sprint (self, 2, "\n"); + if (((self.client == "fuhquake") || (self.client == "zquake"))) + { + stuffcmd (self, "set $sentryhealth "); + stuffcmd (self, ftos (rint (self.building.health))); + stuffcmd (self, "\n"); + } + } + else + { + if ((inp == 3)) + { + metalcost = (self.building.max_health - self.building.health) / 5; + if ((metalcost > self.ammo_cells)) + { + metalcost = self.ammo_cells; + } + sound (self, 3, "items/repair.wav", 1, 1); + self.ammo_cells = (self.ammo_cells - metalcost); + self.building.health = (self.building.health + (metalcost * 5)); + if (((self.client == "fuhquake") || (self.client == "zquake"))) + { + stuffcmd (self, "set $sentryhealth "); + stuffcmd (self, ftos (rint (self.building.health))); + stuffcmd (self, "\n"); + } + } + else + { + if ((inp == 4)) + { + local entity isneardoor; + local float candismantle; + isneardoor = findradius (self.origin, 200); + while (isneardoor) + { + if ((isneardoor.classname == "door")) + { + if (isneardoor.orig_origin_z <= self.building.origin_z) { + candismantle = 1; } + } + isneardoor = isneardoor.chain; + } +//anti dismantle + if ((self.building.real_owner.team_no == self.team_no && self.building.real_owner != self && candismantle != 1)) + { + sprint(self, 1, "You cannot dismantle a teammate's sentry gun.\n"); + ResetMenu (); + self.impulse = 0; + return; + } + sprint (self, 2, "You dismantle the Sentry Gun.\n"); + if ((self.building.real_owner != self)) + { + sprint (self.building.real_owner, 2, self.netname); + sprint (self.building.real_owner, 2, " has dismantled your sentry gun.\n"); + bprint (1, self.netname); + if ((self.building.real_owner.team_no == self.team_no)) + { + bprint (1, " dismantled teammate "); + } + else + { + bprint (1, " humiliated "); + } + bprint (1, self.building.real_owner.netname); + bprint (1, "'s sentry gun.\n"); + } + self.ammo_cells = (self.ammo_cells + 65); + dremove (self.building.trigger_field); + dremove (self.building); + self.building.real_owner.has_sentry = 0; + if (((self.client == "fuhquake") || (self.client == "zquake"))) + { + stuffcmd (self, "set $sentryhealth 0\n"); + } + } + else + { + if ((inp == 6)) + { + sprint (self, 2, "Rotating 45 degrees clockwise...\n"); + self.building.waitmin = anglemod ((self.building.waitmin - 45)); + self.building.waitmax = anglemod ((self.building.waitmax - 45)); + } + if ((inp == 7)) + { + self.ammo_rockets = (self.ammo_rockets + self.building.ammo_rockets); + if ((self.ammo_rockets > self.maxammo_rockets)) + { + self.ammo_rockets = self.maxammo_rockets; + } + self.building.ammo_rockets = 0; + sprint (self, 2, "You have unloaded your sentry's rocket cache.\n"); + } + } + } + } + } + if (((inp >= 1) && (inp <= 7))) + { + ResetMenu (); + self.impulse = 0; + bound_other_ammo (self); + if ((self.armorvalue == 0)) + { + self.armortype = 0; + self.armorclass = 0; + self.items = (self.items - (self.items & 57344)); + } + W_SetCurrentAmmo (); + } +}; + +void() Menu_Dispenser = +{ + CenterPrint(self, "Use Dispenser: \n“‘.. Withdraw some ammo \n”‘.. Withdraw some Armor \n•‘.. Health & Vaccine \n–‘.. BioSuit (AntiToaster) \n—‘.. Nothing \n\n"); +}; + +void (float _p_1052) Menu_Dispenser_Input = +{ + local float _l_1053; + local float _l_1054; + local entity _l_1055; + + _l_1054 = 0; + if ((_p_1052 == 1)) + { + if (((((self.building.ammo_shells == 0) && (self.building.ammo_nails == 0)) && (self.building.ammo_rockets == 0)) && (self.building.ammo_cells == 0))) + { + _l_1054 = 1; + } + else + { + _l_1053 = self.maxammo_shells - self.ammo_shells; + if ((_l_1053 > self.building.ammo_shells)) + { + _l_1053 = self.building.ammo_shells; + } + self.building.ammo_shells = (self.building.ammo_shells - _l_1053); + self.ammo_shells = (self.ammo_shells + _l_1053); + _l_1053 = self.maxammo_nails - self.ammo_nails; + if ((_l_1053 > self.building.ammo_nails)) + { + _l_1053 = self.building.ammo_nails; + } + self.building.ammo_nails = (self.building.ammo_nails - _l_1053); + self.ammo_nails = (self.ammo_nails + _l_1053); + _l_1053 = self.maxammo_rockets - self.ammo_rockets; + if ((_l_1053 > self.building.ammo_rockets)) + { + _l_1053 = self.building.ammo_rockets; + } + self.building.ammo_rockets = (self.building.ammo_rockets - _l_1053); + self.ammo_rockets = (self.ammo_rockets + _l_1053); + _l_1053 = self.maxammo_cells - self.ammo_cells; + if ((_l_1053 > self.building.ammo_cells)) + { + _l_1053 = self.building.ammo_cells; + } + self.building.ammo_cells = (self.building.ammo_cells - _l_1053); + self.ammo_cells = (self.ammo_cells + _l_1053); + sound (self, 3, "weapons/rocklr1a.wav", 1, 1); + if (self.autodiscard) + { + TeamFortress_Discard (); + } + } + } + else + { + if ((_p_1052 == 2)) + { + if ((self.building.armorvalue == 0)) + { + _l_1054 = 1; + } + else + { + _l_1053 = self.maxarmor - self.armorvalue; + if ((_l_1053 > self.building.armorvalue)) + { + _l_1053 = self.building.armorvalue; + } + if ((self.armortype == 0)) + { + self.armortype = 0.300000; + self.items = (self.items | 8192); + } + self.building.armorvalue = (self.building.armorvalue - _l_1053); + self.armorvalue = (self.armorvalue + _l_1053); + sound (self, 3, "weapons/tnkatck4.wav", 1, 1); + } + } + else + { + if ((_p_1052 == 3)) + { + if ((self.building.armorvalue == 0)) + { + _l_1054 = 1; + } + else + { + if ((self.building.skin == 1)) + { + if ((self.leg_damage > 1)) + { + sprint (self, 2, "Your leg wound has been healed!\n"); + } + TeamFortress_SetSpeed (self); + _l_1055 = find (world, classname, "timer"); + while ((((_l_1055.owner != self) || (_l_1055.think != ConcussionGrenadeTimer)) && (_l_1055 != world))) + { + _l_1055 = find (_l_1055, classname, "timer"); + } + if ((_l_1055 != world)) + { + stuffcmd (self, "v_idlescale 0\n"); + sprint (self, 2, "you have been healed of your concussion\n"); + dremove (_l_1055); + } + if ((self.tfstate & 16384)) + { + _l_1055 = find (world, classname, "timer"); + while ((((_l_1055.owner != self) || (_l_1055.think != HallucinationTimer)) && (_l_1055 != world))) + { + _l_1055 = find (_l_1055, classname, "timer"); + } + if ((_l_1055 != world)) + { + stuffcmd (self, "v_idlescale 0\n"); + self.tfstate = (self.tfstate - (self.tfstate & 16384)); + sprint (self, 2, "you have been healed of your hallucinations\n"); + dremove (_l_1055); + } + else + { + dprint ("Warning: Error in Hallucination Timer logic.\n"); + } + } + if ((self.tfstate & 32768)) + { + _l_1055 = find (world, classname, "timer"); + while ((((_l_1055.owner != self) || (_l_1055.think != TranquiliserTimer)) && (_l_1055 != world))) + { + _l_1055 = find (_l_1055, classname, "timer"); + } + if ((_l_1055 != world)) + { + self.tfstate = (self.tfstate - (self.tfstate & 32768)); + TeamFortress_SetSpeed (self); + stuffcmd (self, "v_cshift 0 0 0 0\n"); + sprint (self, 2, "you have been healed of your tranquilisation\n"); + dremove (_l_1055); + } + else + { + dprint ("Warning: Error in Tranquilisation Timer logic.\n"); + } + } + if ((self.FlashTime > 0)) + { + _l_1055 = find (world, netname, "flashtimer"); + while ((((_l_1055.owner != self) || (_l_1055.classname != "timer")) && (_l_1055 != world))) + { + _l_1055 = find (_l_1055, netname, "flashtimer"); + } + if ((_l_1055 != world)) + { + self.FlashTime = 0; + stuffcmd (self, "v_cshift 0 0 0 0\n"); + dremove (_l_1055); + } + else + { + dprint ("Warning: Error in Flash Timer logic.\n"); + self.FlashTime = 0; + } + } + if ((self.tfstate & 16)) + { + self.tfstate = (self.tfstate - (self.tfstate & 16)); + deathmsg = 23; + sprint (self, 2, "Your infection is cured!\n"); + return; + } + if ((self.numflames > 0)) + { + sound (self, 1, "items/r_item1.wav", 1, 1); + self.numflames = 0; + sprint (self, 2, "The flames have been doused!\n"); + return; + } + self.health = (self.health + 25); + self.tfstate = (self.tfstate - (self.tfstate & 16)); + } + else + { + sprint (self, 2, "No vaccine has been loaded by Medic\n"); + } + if ((self.health >= self.max_health)) + { + self.health = self.max_health; + } + sound (self, 3, "items/health1.wav", 1, 1); + } + } + else + { + if ((_p_1052 == 4)) + { + if ((self.building.skin == 1)) + { + self.items = (self.items | 2097152); + self.rad_time = 1; + self.radsuit_finished = (time + 30); + sprint (self, 2, "You have a BioSuit\n"); + } + else + { + sprint (self, 2, "No BioSuit has been loaded by Medic\n"); + } + } + } + } + } + if (((_p_1052 >= 1) && (_p_1052 <= 5))) + { + if (_l_1054) + { + sprint (self, 2, "The dispenser is empty.\n"); + } + ResetMenu (); + self.impulse = 0; + self.building = world; + self.building_wait = (time + 0.500000); + bound_other_ammo (self); + if ((self.armorvalue == 0)) + { + self.armortype = 0; + self.armorclass = 0; + self.items = (self.items - (self.items & 57344)); + } + W_SetCurrentAmmo (); + } +}; + +#ifdef clan_progs +void (entity client, string s, ...) CenterPrint5 = #73; +void () Menu_Clan_Prematch = +{ + local string num_ply, num_need; + num_ply = ftos(num_players); + + if (!num_players_ready) // equake glitches without this + num_need = "0"; + else + num_need = ftos(num_players_ready); + + if (clan_prematch > 1 && stof(num_ply) < clan_prematch) // when clan_prematch is set to a value over 1.. + num_ply = ftos(clan_prematch); + else + num_ply = ftos(num_players); // equake glitches without this + + if (self.is_ready == 0) + { + //CenterPrint (self, strcat(" ==== Clan Prematch ====\n\n“.. Ready [ ] \n”.. Not Ready [X] \n\n\n\n ", strcat(strcat(num_need, "/"), strcat(num_ply, " players are ready\n")))); + CenterPrint5 (self, " ==== Clan Prematch ====\n\n“.. Ready [ ] \n”.. Not Ready [X] \n\n\n\n ", num_need, "/", num_ply, " players are ready\n"); + } + else + { + //CenterPrint (self, " ==== Clan Prematch ====\n\n“.. Ready [X] \n”.. Not Ready [ ] \n\n\n\n"); + //CenterPrint (self, strcat(" ==== Clan Prematch ====\n\n“.. Ready [X] \n”.. Not Ready [ ] \n\n\n\n ", strcat(strcat(num_need, "/"), strcat(num_ply, " players are ready\n")))); + CenterPrint5 (self, " ==== Clan Prematch ====\n\n“.. Ready [X] \n”.. Not Ready [ ] \n\n\n\n ", num_need, "/", num_ply, " players are ready\n"); + } +}; +void () PrematchThink; +void () PrematchCountDown; +float prematch; +void (float inp) Menu_Clan_Prematch_Input = +{ + local float num_need; + num_need = num_players; + if (clan_prematch > 1 && num_need < clan_prematch) // clan prematch mode 2 needs atleast 4 ready players + num_need = 4; + + if (inp == 1) + { + if (self.is_ready == 0) + { + self.is_ready = 1; + num_players_ready = num_players_ready + 1; + if (num_players_ready == num_need) + { + clan_prematch = -1; + local entity te; + te = find(world,classname,"pmtimer"); + while (te) + { + if (te.think == PrematchThink) + { + //prematch = 0; + te.think = PrematchCountDown; + te.nextthink = time + 1; + te.health = 3; + } + te = find(te,classname,"player"); + } + } + } + } + else if (inp == 2) + { + if (self.is_ready == 1) + { + self.is_ready = 0; + num_players_ready = num_players_ready - 1; + } + } + if ((inp >= 1) && (inp <= 2)) + { + ResetMenu (); + self.impulse = 0; + } +}; +#endif diff --git a/misc.pqc b/misc.pqc new file mode 100644 index 0000000..568c942 --- /dev/null +++ b/misc.pqc @@ -0,0 +1,1936 @@ +void() fire_fly; +void() fire_touch; +void() make_bubbles; +void() bubble_remove; +void() bubble_bob; +void() make_burns; +void() fire_burst; +void() FlakeFloat; +void() Effect_Attack; +void() effect2_spawn; +void() make_burst; +void() effect3_spawn; +void() drop_rock; +void() rock_splash; +void() make_flashes1; +void() make_flashes2; +void() skeet_sound; +void() skeet_fly; + +.float color, option2; +.entity lastplayer; + +void() info_null = +{ + dremove(self); +}; + +void() info_notnull = +{ +}; + +void() light_use = +{ + if (self.spawnflags & TF_FLARE_OFF) + { + lightstyle(self.style, "m"); + self.spawnflags = self.spawnflags - TF_FLARE_OFF; + } + else + { + lightstyle(self.style, "a"); + self.spawnflags = self.spawnflags + TF_FLARE_OFF; + } +}; + +void() light = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.targetname)) + { + dremove(self); + return; + } + if (self.style >= 32) + { + self.use = light_use; + if (self.spawnflags & TF_FLARE_OFF) + { + lightstyle(self.style, "a"); + } + else + { + lightstyle(self.style, "m"); + } + } +}; + +void() light_fluoro = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (self.style >= 32) + { + self.use = light_use; + if (self.spawnflags & TF_FLARE_OFF) + { + lightstyle(self.style, "a"); + } + else + { + lightstyle(self.style, "m"); + } + } + precache_sound("ambience/fl_hum1.wav"); + ambientsound(self.origin, "ambience/fl_hum1.wav", 0.8, 3); +}; + +void() light_fluorospark = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.style)) + { + self.style = 10; + } + precache_sound("ambience/buzz1.wav"); + ambientsound(self.origin, "ambience/buzz1.wav", 0.8, 3); +}; + +void() light_globe = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_model("progs/s_light.spr"); + setmodel(self, "progs/s_light.spr"); + makestatic(self); +}; + +void() FireAmbient = +{ + precache_sound("ambience/fire1.wav"); + ambientsound(self.origin, "ambience/fire1.wav", 0.3, 3); + if (self.light_lev > 0) + { + ambientsound(self.origin, "ambience/fire1.wav", 0.3, 4); + } +}; + +void() light_torch_small_walltorch = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_model("progs/flame.mdl"); + setmodel(self, "progs/flame.mdl"); + FireAmbient(); + makestatic(self); +}; + +void() light_flame_large_yellow = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_model("progs/flame2.mdl"); + setmodel(self, "progs/flame2.mdl"); + self.frame = TF_FLARE_OFF; + FireAmbient(); + makestatic(self); +}; + +void() light_flame_small_yellow = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_model("progs/flame2.mdl"); + setmodel(self, "progs/flame2.mdl"); + FireAmbient(); + makestatic(self); +}; + +void() light_flame_small_white = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_model("progs/flame2.mdl"); + setmodel(self, "progs/flame2.mdl"); + FireAmbient(); + makestatic(self); +}; + +void() misc_fireball = +{ + precache_model("progs/lavaball.mdl"); + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.classname = "fireball"; + self.nextthink = time + random() * 5; + self.think = fire_fly; + if (!(self.speed)) + { + // pablo. gg? :/ +// self.speed == 1000; + self.speed = 1000; + } +}; + +void() fire_fly = +{ + newmis = spawn(); + newmis.solid = TF_FLARE_OFF; + newmis.movetype = 6; + newmis.velocity = '0 0 1000'; + newmis.velocity_x = random() * 100 - 50; + newmis.velocity_y = random() * 100 - 50; + newmis.velocity_z = self.speed + random() * 200; + newmis.classname = "fireball"; + setmodel(newmis, "progs/lavaball.mdl"); + setsize(newmis, '0 0 0', '0 0 0'); + setorigin(newmis, self.origin); + newmis.nextthink = time + 5; + newmis.think = SUB_Remove; + newmis.touch = fire_touch; + self.nextthink = time + random() * 5 + 3; + self.think = fire_fly; +}; + +void() fire_touch = +{ + if (other.takedamage) + { + TF_T_Damage(other, self, self, 20, TF_FLARE_LIT, 16); + } + dremove(self); +}; + +void() barrel_explode = +{ + self.takedamage = TF_FLARE_LIT; + self.classname = "explo_box"; + T_RadiusDamage(self, self, 160, world); + WriteByte(4, 23); + WriteByte(4, 3); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z + 32); + multicast(self.origin, TF_FLARE_OFF); + remove(self); +}; + +void() misc_explobox = +{ + local float oldz; + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.solid = 2; + self.movetype = TF_FLARE_LIT; + precache_model("maps/b_explob.bsp"); + setmodel(self, "maps/b_explob.bsp"); + setsize(self, '0 0 0', '32 32 64'); + precache_sound("weapons/r_exp3.wav"); + self.health = 20; + self.th_die = barrel_explode; + self.takedamage = 2; + self.origin_z = self.origin_z + 2; + oldz = self.origin_z; + droptofloor(); + if (oldz - self.origin_z > 250) + { + dprint("item fell out of level at "); + dprint(vtos(self.origin)); + dprint("\n"); + dremove(self); + } +}; + +void() misc_explobox2 = +{ + local float oldz; + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.solid = 2; + self.movetype = TF_FLARE_LIT; + precache_model2("maps/b_exbox2.bsp"); + setmodel(self, "maps/b_exbox2.bsp"); + setsize(self, '0 0 0', '32 32 32'); + precache_sound("weapons/r_exp3.wav"); + self.health = 20; + self.th_die = barrel_explode; + self.takedamage = 2; + self.origin_z = self.origin_z + 2; + oldz = self.origin_z; + droptofloor(); + if (oldz - self.origin_z > 250) + { + dprint("item fell out of level at "); + dprint(vtos(self.origin)); + dprint("\n"); + dremove(self); + } +}; + +float(float min, float max) RandomRange = +{ + local float width; + local float offset; + local float result; + width = max - min; + offset = random() * width; + result = offset + min; + return result; +}; + +void() Laser_Touch = +{ + local vector org; + if (other == self.owner) + { + return; + } + if (pointcontents(self.origin) == -6) + { + dremove(self); + return; + } + sound(self, TF_FLARE_OFF, "enforcer/enfstop.wav", TF_FLARE_OFF, 3); + org = self.origin - 8 * normalize(self.velocity); + if (other.health) + { + SpawnBlood(org, 15); + TF_T_Damage(other, self, self.owner, 15, TF_FLARE_LIT, 8); + } + else + { + WriteByte(4, 23); + WriteByte(4, 2); + WriteByte(4, 5); + WriteCoord(4, org_x); + WriteCoord(4, org_y); + WriteCoord(4, org_z); + multicast(org, 2); + } + dremove(self); +}; + +void(vector org, vector vec) LaunchLaser = +{ + if (self.classname == "monster_enforcer") + { + sound(self, TF_FLARE_OFF, "enforcer/enfire.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + vec = normalize(vec); + newmis = spawn(); + newmis.owner = self; + newmis.movetype = 5; + newmis.solid = 2; + newmis.effects = 8; + if (self.spawnflags & 4) + { + setmodel(newmis, "progs/missile.mdl"); + newmis.touch = T_MissileTouch; + } + else + { + setmodel(newmis, "progs/laser.mdl"); + newmis.touch = Laser_Touch; + } + setsize(newmis, '0 0 0', '0 0 0'); + setorigin(newmis, org); + newmis.velocity = vec * 600; + newmis.angles = vectoangles(newmis.velocity); + newmis.nextthink = time + 5; + newmis.think = SUB_Remove; +}; + +void() spikeshooter_use = +{ + if (self.spawnflags & 2) + { + sound(self, 2, "enforcer/enfire.wav", TF_FLARE_OFF, TF_FLARE_OFF); + LaunchLaser(self.origin, self.movedir); + } + else + { + if (self.spawnflags & 4) + { + make_explosion(); + sound(self, 2, "weapons/sgun1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + LaunchLaser(self.origin, self.movedir); + } + else + { + sound(self, 2, "weapons/spike2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + launch_spike(self.origin, self.movedir); + newmis.velocity = self.movedir * 500; + if (self.spawnflags & TF_FLARE_OFF) + { + newmis.touch = superspike_touch; + } + } + } +}; + +void() shooter_think = +{ + spikeshooter_use(); + self.nextthink = time + self.wait; + newmis.velocity = self.movedir * 500; +}; + +void() trap_spikeshooter = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + SetMovedir(); + self.use = spikeshooter_use; + if (self.spawnflags & 2) + { + precache_model2("progs/laser.mdl"); + precache_sound2("enforcer/enfire.wav"); + precache_sound2("enforcer/enfstop.wav"); + } + else + { + if (self.spawnflags & 4) + { + precache_sound2("weapons/sgun1.wav"); + } + else + { + precache_sound("weapons/spike2.wav"); + } + } +}; + +void() trap_shooter = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + trap_spikeshooter(); + if (self.wait == TF_FLARE_LIT) + { + self.wait = TF_FLARE_OFF; + } + self.nextthink = self.nextthink + self.wait + self.ltime; + self.think = shooter_think; +}; + +void() air_bubbles = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_sound("ambience/bubbles.wav"); + ambientsound(self.origin, "ambience/bubbles.wav", TF_FLARE_OFF, 2); + precache_model("progs/s_bubble.spr"); + self.nextthink = time + TF_FLARE_OFF; + self.think = make_bubbles; +}; + +void() make_bubbles = +{ + newmis = spawn(); + setmodel(newmis, "progs/s_bubble.spr"); + setorigin(newmis, self.origin); + newmis.movetype = 8; + newmis.solid = TF_FLARE_LIT; + newmis.velocity = '0 0 15'; + newmis.nextthink = time + 0.5; + newmis.think = bubble_bob; + newmis.touch = bubble_remove; + newmis.classname = "bubble"; + newmis.frame = TF_FLARE_LIT; + newmis.cnt = TF_FLARE_LIT; + setsize(newmis, '-8 -8 -8', '8 8 8'); + self.nextthink = time + random() + 0.5; + self.think = make_bubbles; +}; + +void() bubble_split = +{ + newmis = spawn(); + setmodel(newmis, "progs/s_bubble.spr"); + setorigin(newmis, self.origin); + newmis.movetype = 8; + newmis.solid = TF_FLARE_LIT; + newmis.velocity = self.velocity; + newmis.nextthink = time + 0.5; + newmis.think = bubble_bob; + newmis.touch = bubble_remove; + newmis.classname = "bubble"; + newmis.frame = TF_FLARE_OFF; + newmis.cnt = 10; + setsize(newmis, '-8 -8 -8', '8 8 8'); + self.frame = TF_FLARE_OFF; + self.cnt = 10; + if (self.waterlevel != 3) + { + remove(self); + } +}; + +void() bubble_remove = +{ + if (other.classname == self.classname) + { + return; + } + dremove(self); +}; + +void() bubble_bob = +{ + local float rnd1; + local float rnd2; + local float rnd3; + self.cnt = self.cnt + TF_FLARE_OFF; + if (self.cnt == 4) + { + bubble_split(); + } + if (self.cnt == 20) + { + dremove(self); + } + rnd1 = self.velocity_x + (-10 + random() * 20); + rnd2 = self.velocity_y + (-10 + random() * 20); + rnd3 = self.velocity_z + 10 + random() * 10; + if (rnd1 > 10) + { + rnd1 = 5; + } + if (rnd1 < -10) + { + rnd1 = -5; + } + if (rnd2 > 10) + { + rnd2 = 5; + } + if (rnd2 < -10) + { + rnd2 = -5; + } + if (rnd3 < 10) + { + rnd3 = 15; + } + if (rnd3 > 30) + { + rnd3 = 25; + } + self.velocity_x = rnd1; + self.velocity_y = rnd2; + self.velocity_z = rnd3; + self.nextthink = time + 0.5; + self.think = bubble_bob; +}; + +void() func_wall_use = +{ + self.frame = TF_FLARE_OFF - self.frame; +}; + +void() func_wall = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.angles = '0 0 0'; + self.movetype = 7; + self.solid = 4; + self.use = func_wall_use; + setmodel(self, self.model); +}; + +void() func_illusionary = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.angles = '0 0 0'; + self.movetype = TF_FLARE_LIT; + self.solid = TF_FLARE_LIT; + setmodel(self, self.model); + makestatic(self); +}; + +void() func_episodegate = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(serverflags & self.spawnflags)) + { + return; + } + self.angles = '0 0 0'; + self.movetype = 7; + self.solid = 4; + self.use = func_wall_use; + setmodel(self, self.model); +}; + +void() func_bossgate = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if ((serverflags & 15) == 15) + { + return; + } + self.angles = '0 0 0'; + self.movetype = 7; + self.solid = 4; + self.use = func_wall_use; + setmodel(self, self.model); +}; + +void() ambient_brook = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/brook.wav"); + ambientsound(self.origin, "ambience/brook.wav", self.volume, TF_FLARE_OFF); +}; + +void() ambient_jungle = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/jungle.wav"); + ambientsound(self.origin, "ambience/jungle.wav", self.volume, TF_FLARE_OFF); +}; + +void() ambient_nightpond = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/nitepond.wav"); + ambientsound(self.origin, "ambience/nitepond.wav", self.volume, TF_FLARE_OFF); +}; + +void() ambient_alert = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/redalert.wav"); + ambientsound(self.origin, "ambience/redalert.wav", self.volume, TF_FLARE_OFF); +}; + +void() ambient_onboard = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = 0.6; + } + precache_sound("ambience/onboard.wav"); + if (!(self.height)) + { + ambientsound(self.origin, "ambience/onboard.wav", self.volume, TF_FLARE_LIT); + } + else + { + ambientsound(self.origin, "ambience/onboard.wav", self.volume, TF_FLARE_OFF); + } +}; + +void() ambient_unholy = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = 0.8; + } + precache_sound("ambience/unholy.wav"); + ambientsound(self.origin, "ambience/unholy.wav", self.volume, TF_FLARE_LIT); +}; + +void() ambient_rocket_engine = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/onboard.wav"); + ambientsound(self.origin, "ambience/onboard.wav", self.volume, TF_FLARE_OFF); +}; + +void() ambient_high_wind = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/2windy.wav"); + ambientsound(self.origin, "ambience/2windy.wav", self.volume, TF_FLARE_OFF); +}; + +void() ambient_peakwind = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/peakwind.wav"); + ambientsound(self.origin, "ambience/peakwind.wav", self.volume, TF_FLARE_OFF); +}; + +void() ambient_chant = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/chant.wav"); + ambientsound(self.origin, "ambience/chant.wav", self.volume, TF_FLARE_OFF); +}; + +void() ambient_meadow = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/meadow.wav"); + ambientsound(self.origin, "ambience/meadow.wav", self.volume, TF_FLARE_OFF); +}; + +void() ambient_ocean = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/ocean.wav"); + ambientsound(self.origin, "ambience/ocean.wav", self.volume, TF_FLARE_OFF); +}; + +void() ambient_ice_moving = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/icemove.wav"); + ambientsound(self.origin, "ambience/icemove.wav", self.volume, TF_FLARE_OFF); +}; + +void() ambient_eerie = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/eerie.wav"); + ambientsound(self.origin, "ambience/eerie.wav", self.volume, TF_FLARE_OFF); +}; + +void() ambient_flagflap = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/flagflap.wav"); + ambientsound(self.origin, "ambience/flagflap.wav", self.volume, TF_FLARE_OFF); +}; + +void() ambient_diesel = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/diesel.wav"); + ambientsound(self.origin, "ambience/diesel.wav", self.volume, TF_FLARE_OFF); +}; + +void() ambient_chopper = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/chopper.wav"); + ambientsound(self.origin, "ambience/chopper.wav", self.volume, TF_FLARE_OFF); +}; + +void() ambient_suck_wind = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_sound("ambience/suck1.wav"); + ambientsound(self.origin, "ambience/suck1.wav", TF_FLARE_OFF, 3); +}; + +void() ambient_drone = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/drone6.wav"); + ambientsound(self.origin, "ambience/drone6.wav", self.volume, 2); +}; + +void() ambient_flouro_buzz = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_sound("ambience/buzz1.wav"); + ambientsound(self.origin, "ambience/buzz1.wav", TF_FLARE_OFF, 3); +}; + +void() ambient_drip = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound("ambience/drip1.wav"); + ambientsound(self.origin, "ambience/drip1.wav", self.volume, 3); +}; + +void() ambient_comp_hum = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_sound("ambience/comp1.wav"); + ambientsound(self.origin, "ambience/comp1.wav", TF_FLARE_OFF, 3); +}; + +void() ambient_thunder = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_sound("ambience/thunder1.wav"); + ambientsound(self.origin, "ambience/thunder1.wav", TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void() ambient_light_buzz = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_sound("ambience/fl_hum1.wav"); + ambientsound(self.origin, "ambience/fl_hum1.wav", 0.8, 3); +}; + +void() ambient_swamp1 = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_sound("ambience/swamp1.wav"); + ambientsound(self.origin, "ambience/swamp1.wav", 0.8, 3); +}; + +void() ambient_swamp2 = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_sound("ambience/swamp2.wav"); + ambientsound(self.origin, "ambience/swamp2.wav", 0.6, 3); +}; + +void() ambient_weaponfire = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_sound("effects/explode1.wav"); + precache_sound("effects/explode2.wav"); + precache_sound("effects/m60.wav"); + precache_sound("effects/minigun.wav"); + precache_sound("effects/rocket.wav"); + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + self.classname = "timer"; + self.nextthink = time + random() * 5; + self.think = fire_burst; +}; + +void() fire_burst = +{ + local float rs; + rs = rint(random() * 4 + TF_FLARE_OFF); + if (rs == TF_FLARE_OFF) + { + self.noise = "effects/explode1.wav"; + } + if (rs == 2) + { + self.noise = "effects/explode2.wav"; + } + if (rs == 3) + { + self.noise = "effects/m60.wav"; + } + if (rs == 4) + { + self.noise = "effects/minigun.wav"; + } + if (rs == 5) + { + self.noise = "effects/rocket.wav"; + } + sound(self, 3, self.noise, self.volume, TF_FLARE_OFF); + self.nextthink = time + random() * 5 + TF_FLARE_OFF; + self.think = fire_burst; +}; + +void() effect_burner = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + FireAmbient(); + self.nextthink = time + 3; + self.think = make_burns; +}; + +void() make_burns = +{ + newmis = spawn(); + setmodel(newmis, "progs/s_expl.spr"); + setorigin(newmis, self.origin); + newmis.movetype = 8; + newmis.solid = TF_FLARE_LIT; + newmis.effects = 8; + sound(newmis, TF_FLARE_LIT, "weapons/flmfire2.wav", 0.7, TF_FLARE_OFF); + newmis.velocity_z = random() * 50; + newmis.nextthink = time + 0.2; + newmis.think = s2_explode1; + newmis.classname = "fireball"; + self.nextthink = time + random() + 0.2; + self.think = make_burns; +}; + +void() effect_airburst = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_sound("effects/explode1.wav"); + precache_sound("effects/explode2.wav"); + self.classname = "timer"; + self.nextthink = time + random() * 20; + self.think = make_burst; +}; + +void() make_burst = +{ + local float abx; + local float aby; + abx = rint(random() * 19 + TF_FLARE_OFF); + abx = abx - 10; + abx = abx * 30; + aby = rint(random() * 19 + TF_FLARE_OFF); + aby = aby - 10; + aby = aby * 30; + newmis = spawn(); + setmodel(newmis, "progs/s_expl.spr"); + setorigin(newmis, self.origin); + newmis.origin_x = newmis.origin_x + abx; + newmis.origin_y = newmis.origin_y + aby; + newmis.movetype = 8; + newmis.solid = TF_FLARE_LIT; + if (random() < 0.5) + { + sound(newmis, 3, "effects/explode1.wav", TF_FLARE_OFF, TF_FLARE_LIT); + } + else + { + sound(newmis, 3, "effects/explode2.wav", TF_FLARE_OFF, TF_FLARE_LIT); + } + newmis.effects = 4; + newmis.velocity = '0 0 30'; + newmis.think = s2_explode1; + newmis.nextthink = time + 0.4; + newmis.classname = "fireball"; + self.nextthink = time + random() * 20; + self.think = make_burst; +}; + +void() ambient_sound = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.noise)) + { + objerror("ambient_sound without noise"); + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound(self.noise); + if (self.spawnflags == 4) + { + ambientsound(self.origin, self.noise, self.volume, TF_FLARE_LIT); + } + else + { + ambientsound(self.origin, self.noise, self.volume, TF_FLARE_OFF); + } +}; + +void(vector DropOrg) MakeDrop = +{ + local entity Drop; + Drop = spawn(); + setmodel(Drop, "progs/s_bubble.spr"); + setorigin(Drop, DropOrg); + Drop.movetype = 8; + Drop.solid = TF_FLARE_LIT; + Drop.velocity = '0 0 -350'; + Drop.classname = "RainDrop"; + Drop.frame = TF_FLARE_OFF; + Drop.think = SUB_Remove; + Drop.nextthink = time + RandomRange(0.6, 1.2); + setsize(Drop, '-8 -8 -8', '8 8 8'); +}; + +void(vector FlakeOrg) MakeFlake = +{ + local entity Flake; + Flake = spawn(); + setmodel(Flake, "progs/s_bubble.spr"); + setorigin(Flake, FlakeOrg); + Flake.movetype = 8; + Flake.solid = TF_FLARE_LIT; + Flake.classname = "SnowFlake"; + Flake.frame = TF_FLARE_OFF; + Flake.velocity_z = -64; + Flake.think = FlakeFloat; + Flake.touch = SUB_Remove; + Flake.nextthink = time + 0.5; + Flake.cnt = TF_FLARE_LIT; + setsize(Flake, '-8 -8 -8', '8 8 8'); +}; + +void() effect_lightning = +{ + precache_sound("ambience/thunder1.wav"); + precache_model("progs/s_null.spr"); + self.classname = "effect_lightning"; + self.nextthink = time + RandomRange(5, 20); + self.think = Effect_Attack; +}; + +void() Effect_Attack = +{ + local vector org; + local vector targ; + local entity Flash; + local entity Flash2; + sound(self, 2, "ambience/thunder1.wav", TF_FLARE_OFF, TF_FLARE_LIT); + org = self.origin; + org_x = org_x + RandomRange(self.spawnflags - 2 * self.spawnflags, self.spawnflags); + org_y = org_y + RandomRange(self.spawnflags - 2 * self.spawnflags, self.spawnflags); + targ = self.origin - '0 0 350'; + targ_x = targ_x + RandomRange(self.spawnflags - 2 * self.spawnflags, self.spawnflags); + targ_y = targ_y + RandomRange(self.spawnflags - 2 * self.spawnflags, self.spawnflags); + self.nextthink = time + RandomRange(TF_FLARE_OFF, 20); + self.think = Effect_Attack; + LightningDamage(org, targ, self, 100); + Flash2 = spawn(); + setmodel(Flash2, "progs/s_null.spr"); + setorigin(Flash2, org); + Flash2.movetype = 8; + Flash2.solid = TF_FLARE_LIT; + Flash2.effects = 4; + Flash2.velocity = '0 0 -1500'; + Flash2.think = SUB_Remove; + Flash2.nextthink = time + 0.6; + setsize(Flash2, '-8 -8 -8', '8 8 8'); + Flash = spawn(); + setmodel(Flash, "progs/s_null.spr"); + setorigin(Flash, targ); + Flash.movetype = 8; + Flash.solid = TF_FLARE_LIT; + Flash.effects = 4; + Flash.velocity = '0 0 1000'; + Flash.think = SUB_Remove; + Flash.nextthink = time + TF_FLARE_OFF; + setsize(Flash, '-8 -8 -8', '8 8 8'); + WriteByte(4, 23); + if (random() <= 0.4) + { + WriteByte(4, 5); + } + else + { + WriteByte(4, 9); + } + WriteEntity(4, world); + WriteCoord(4, org_x); + WriteCoord(4, org_y); + WriteCoord(4, org_z); + WriteCoord(4, targ_x); + WriteCoord(4, targ_y); + WriteCoord(4, targ_z); + multicast(targ, 2); +}; + +void() effect_rain = +{ + self.classname = "effect_rain"; + self.nextthink = 0.1; + self.think = effect2_spawn; +}; + +void() effect2_spawn = +{ + local float n; + local vector rainorg; + n = TF_FLARE_LIT; + while (n < 20) + { + rainorg = self.origin; + rainorg_x = rainorg_x + RandomRange(self.spawnflags - 2 * self.spawnflags, self.spawnflags); + rainorg_y = rainorg_y + RandomRange(self.spawnflags - 2 * self.spawnflags, self.spawnflags); + rainorg_z = rainorg_z + RandomRange(TF_FLARE_LIT, 64); + MakeDrop(rainorg); + n = n + TF_FLARE_OFF; + } + self.nextthink = time + RandomRange(0.3, 0.4); + self.think = effect2_spawn; +}; + +void() effect_snow = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.classname = "effect_snow"; + self.nextthink = 0.1; + self.think = effect3_spawn; +}; + +void() effect3_spawn = +{ + local float n; + local vector snoworg; + n = TF_FLARE_LIT; + while (n < 7) + { + snoworg = self.origin; + snoworg_x = snoworg_x + RandomRange(self.spawnflags - 2 * self.spawnflags, self.spawnflags); + snoworg_y = snoworg_y + RandomRange(self.spawnflags - 2 * self.spawnflags, self.spawnflags); + snoworg_z = snoworg_z + RandomRange(TF_FLARE_LIT, 64); + MakeFlake(snoworg); + n = n + TF_FLARE_OFF; + } + self.nextthink = time + RandomRange(1.5, 2); + self.think = effect3_spawn; +}; + +void() FlakeFloat = +{ + local float rnd1; + local float rnd2; + self.cnt = self.cnt + TF_FLARE_OFF; + if (self.cnt == 30) + { + remove(self); + } + rnd1 = self.velocity_x + (-10 + random() * 20); + rnd2 = self.velocity_y + (-10 + random() * 20); + if (rnd1 > 10) + { + rnd1 = 5; + } + if (rnd1 < -10) + { + rnd1 = -5; + } + if (rnd2 > 10) + { + rnd2 = 5; + } + if (rnd2 < -10) + { + rnd2 = -5; + } + self.velocity_x = rnd1; + self.velocity_y = rnd2; + self.nextthink = time + 0.7; + self.think = FlakeFloat; +}; + +void() make_explosion = +{ + newmis = spawn(); + setmodel(newmis, "progs/s_expl.spr"); + setorigin(newmis, self.origin); + newmis.movetype = 8; + newmis.solid = TF_FLARE_LIT; + sound(newmis, TF_FLARE_LIT, "weapons/flmfire2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + newmis.effects = 8; + newmis.velocity_z = random() * 250; + newmis.nextthink = time + 0.05; + newmis.think = s2_explode1; + newmis.nextthink = time + 0.05; +}; + +void() effect_rockfall = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_sound("effects/rockfall.wav"); + if (self.height) + { + precache_sound("effects/rcksplsh.wav"); + } + self.solid = TF_FLARE_OFF; + self.movetype = TF_FLARE_LIT; + setsize(self, '-64 -64 0', '64 64 64'); + self.touch = drop_rock; +}; + +void() drop_rock = +{ + if (self.last_used > time) + { + return; + } + if (other.classname != "player") + { + return; + } + sound(self, 3, "effects/rockfall.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.last_used = time + 20; + if (self.height) + { + self.nextthink = time + self.height / 125; + self.think = rock_splash; + self.origin_z = self.origin_z - self.height; + } + else + { + return; + } + return; +}; + +void() rock_splash = +{ + sound(self, 3, "effects/rcksplsh.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.origin_z = self.origin_z + self.height; + return; +}; + +void() blocker_use = +{ + if (!(self.state)) + { + self.state = TF_FLARE_OFF; + setorigin(self, self.origin - '8000 8000 8000'); + sound(self, 2, self.noise1, TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + self.state = TF_FLARE_LIT; + setorigin(self, self.origin + '8000 8000 8000'); + sound(self, 2, self.noise, TF_FLARE_OFF, TF_FLARE_OFF); + } +}; + +void(entity attacker, float damage) glass_pain = +{ + if (self.spawnflags & 8) + { + self.health = self.max_health; + } +}; + +void() glass_die = +{ + local entity new; + local vector tmpvec; + while (self.color > TF_FLARE_LIT) + { + new = spawn(); + new.origin = self.origin; + if (random() < 0.5) + { + setmodel(new, "progs/glass2.mdl"); + } + else + { + setmodel(new, "progs/glass1.mdl"); + } + setsize(new, '0 0 0', '0 0 0'); + if (self.height != 100) + { + new.velocity_x = 70 * crandom(); + new.velocity_y = 70 * crandom(); + new.velocity_z = 140 + 70 * random(); + } + else + { + new.velocity_x = 400 * crandom(); + new.velocity_y = 400 * crandom(); + new.velocity_z = 140 + 70 * random(); + } + new.movetype = 10; + new.solid = 2; + new.avelocity_x = random() * 600; + new.avelocity_y = random() * 600; + new.avelocity_z = random() * 600; + new.nextthink = time + 2 + random() * 3; + new.think = SUB_Remove; + self.absmin = self.origin + self.mins; + self.absmax = self.origin + self.maxs; + tmpvec_x = self.absmin_x + random() * (self.absmax_x - self.absmin_x); + tmpvec_y = self.absmin_y + random() * (self.absmax_y - self.absmin_y); + tmpvec_z = self.absmin_z + random() * (self.absmax_z - self.absmin_z); + setorigin(new, tmpvec); + self.color = self.color - TF_FLARE_OFF; + } + if (self.noise2) + { + if (pointcontents(self.origin) == -3) + { + sound(self, 2, "effects/rcksplsh.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + sound(self, 2, self.noise2, TF_FLARE_OFF, TF_FLARE_OFF); + } + } + remove(self); +}; + +void() func_glass = +{ + local vector tmpvec; + self.movetype = 7; + self.solid = 4; + self.mdl = self.model; + setmodel(self, self.model); + setsize(self, self.mins, self.maxs); + setorigin(self, self.origin); + self.model = string_null; + precache_sound("misc/null.wav"); + if (self.health > TF_FLARE_LIT) + { + if (!(self.color)) + { + tmpvec = self.maxs - self.mins; + tmpvec = tmpvec * 0.031; + if (tmpvec_x < TF_FLARE_OFF) + { + tmpvec_x = TF_FLARE_OFF; + } + if (tmpvec_y < TF_FLARE_OFF) + { + tmpvec_y = TF_FLARE_OFF; + } + if (tmpvec_z < TF_FLARE_OFF) + { + tmpvec_z = TF_FLARE_OFF; + } + self.color = tmpvec_x * tmpvec_y * tmpvec_z; + } + else + { + if (self.color == -1) + { + self.color = TF_FLARE_LIT; + } + } + if (self.color > 16) + { + self.color = 16; + } + self.takedamage = TF_FLARE_OFF; + self.max_health = self.health; + self.th_die = glass_die; + self.th_pain = glass_pain; + precache_model("progs/glass1.mdl"); + precache_model("progs/glass2.mdl"); + } + if (self.target) + { + if (!(self.speed)) + { + self.speed = 100; + } + if (!(self.dmg)) + { + self.dmg = 2; + } + if (self.sounds == TF_FLARE_OFF) + { + if (!(self.noise)) + { + self.noise = "plats/train2.wav"; + } + if (!(self.noise1)) + { + self.noise1 = "plats/train1.wav"; + } + precache_sound(self.noise); + precache_sound(self.noise1); + } + self.cnt = TF_FLARE_OFF; + self.blocked = train_blocked; + self.use = train_use; + self.classname = "train"; + self.think = func_train_find; + self.nextthink = self.ltime + 0.6; + } + else + { + self.use = blocker_use; + if (self.spawnflags & 4) + { + self.state = TF_FLARE_LIT; + setorigin(self, self.origin + '8000 8000 8000'); + } + else + { + self.state = TF_FLARE_OFF; + if (self.noise1) + { + sound(self, 2, self.noise1, TF_FLARE_OFF, TF_FLARE_OFF); + } + } + } + if (!(self.noise)) + { + self.noise = "misc/null.wav"; + } + if (!(self.noise1)) + { + self.noise1 = "misc/null.wav"; + } + if (!(self.noise2)) + { + self.noise2 = "effects/shatter.wav"; + } + precache_sound(self.noise); + precache_sound(self.noise1); + precache_sound(self.noise2); +}; + +void() bobbingwater_think = +{ + local vector ang; + self.count = self.count + self.speed * (time - self.ltime); + if (self.count > 360) + { + self.count = self.count - 360; + } + ang_x = self.count; + ang_y = TF_FLARE_LIT; + ang_z = TF_FLARE_LIT; + makevectors(ang); + self.origin_z = v_forward_z * self.cnt; + setorigin(self, self.origin); + self.ltime = time; + self.nextthink = time + 0.020000; +}; + +void() func_bobbingwater = +{ + self.angles = '0 0 0'; + self.movetype = 4; + self.solid = TF_FLARE_LIT; + setmodel(self, self.model); + self.think = bobbingwater_think; + self.count = TF_FLARE_LIT; + self.cnt = self.size_z / 2; + if (!(self.speed)) + { + self.speed = 4; + } + self.speed = 360 / self.speed; + self.nextthink = time + 0.020000; + self.ltime = time; +}; + +void() effect_strobe = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.movetype = 6; + self.solid = 2; + setsize(self, '-2 -2 -2', '4 4 4'); + setmodel(self, "progs/dot1.spr"); + self.effects = TF_FLARE_LIT; + self.nextthink = time + 2; + self.think = make_flashes1; +}; + +void() make_flashes1 = +{ + self.effects = TF_FLARE_LIT; + self.nextthink = time + 0.9 + self.height; + self.think = make_flashes2; +}; + +void() make_flashes = +{ + setmodel(self, "progs/dot1.spr"); + self.effects = TF_FLARE_LIT; + self.nextthink = time + 0.9; + self.think = make_flashes2; +}; + +void() make_flashes2 = +{ + setmodel(self, "progs/dot3.spr"); + self.effects = 8; + self.nextthink = time + 0.1; + self.think = make_flashes; +}; + +void() BallTouch = +{ + if (other.classname == "player" && self.last_used <= time) + { + sound(self, 3, "zombie/z_fall.wav", 0.8, TF_FLARE_OFF); + self.last_used = time + 0.3; + } + if (other.classname != "player") + { + sound(self, TF_FLARE_OFF, "zombie/z_hit.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + if (other.classname == "player") + { + makevectors(other.v_angle); + self.velocity = other.velocity + v_forward * 100 + v_up * 200; + self.lastplayer = other; + } +}; + +void() BallCheck = +{ + self.movetype = 10; + self.nextthink = time + 15; + self.effects = TF_FLARE_LIT; +}; + +void() ballstart = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } +}; + +void() BallStart = +{ + local entity te; + sound(self, 3, "sandball/whistle.wav", TF_FLARE_OFF, TF_FLARE_LIT); + te = find(world, classname, "ballstart"); + while (te) + { + setorigin(self, te.origin); + te = find(te, classname, "ballstart"); + } + self.nextthink = time + 5; + self.think = BallCheck; + self.movetype = 10; + self.velocity_z = 40; +}; + +void() ball = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_model("progs/s_light.spr"); + setmodel(self, "progs/s_light.spr"); + self.movetype = TF_FLARE_LIT; + setsize(self, '-16 -16 -14', '16 16 10'); + self.solid = TF_FLARE_OFF; + self.touch = BallTouch; + self.classname = "ball"; + self.think = BallCheck; + self.nextthink = time + 15; + self.oldorigin = self.origin; +}; + +void() GoalTouch = +{ + local entity te; + if (other.classname != "ball") + { + return; + } + if (self.last_used > time) + { + return; + } + sound(self, 3, "sandball/goal.wav", TF_FLARE_OFF, TF_FLARE_LIT); + self.last_used = time + 10; + te = find(world, classname, "player"); + while (te) + { + if (self.team_no == 2) + { + CenterPrint2(te, "Score for Reds by\n", other.lastplayer.netname); + } + else + { + CenterPrint2(te, "Score for Blues by\n", other.lastplayer.netname); + } + if (te.team_no == self.team_no && self.team_no != TF_FLARE_LIT) + { + te.real_frags = te.real_frags + self.frags; + te.frags = te.frags + self.frags; + te.health = te.max_health; + } + te = find(te, classname, "player"); + } + other.nextthink = time + 10; + other.think = BallStart; + other.movetype = 9; + other.velocity_z = 40; + other.effects = self.team_no * 64; +}; + +void() sandball_goal = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_model("progs/null.mdl"); + precache_sound("sandball/goal.wav"); + precache_sound("sandball/whistle.wav"); + precache_sound("zombie/z_fall.wav"); + setmodel(self, "progs/null.mdl"); + self.movetype = TF_FLARE_LIT; + self.skin = self.team_no; + self.solid = TF_FLARE_OFF; + setsize(self, '-35 -35 -14', '35 35 50'); + self.effects = TF_FLARE_LIT; + self.touch = GoalTouch; +}; + +void() skeet_die = +{ + if (other == self.owner) + { + return; + } + if (pointcontents(self.origin) == -6) + { + self.velocity_z = -50; + self.origin_z = self.origin_z - 30; + return; + } + self.color = 5; + glass_die(); + dremove(self); +}; + +void() givepoint = +{ + make_explosion(); + self.enemy.real_frags = self.enemy.real_frags + 3; + self.enemy.frags = self.enemy.frags + 3; + self.color = 8; + self.height = 100; + glass_die(); + dremove(self); +}; + +void() skeet_shooter = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_model("progs/player.mdl"); + precache_model("progs/glass1.mdl"); + precache_model("progs/glass2.mdl"); + precache_sound("plats/plat2.wav"); + precache_sound("effects/shatter.wav"); + precache_sound("effects/rcksplsh.wav"); + self.nextthink = time + random() * 5; + self.think = skeet_sound; + if (!(self.speed)) + { +// self.speed == 1000; + self.speed = 1000; + } + precache_model2("maps/b_exbox2.bsp"); + setmodel(self, "maps/b_exbox2.bsp"); + self.movetype = TF_FLARE_LIT; + self.solid = TF_FLARE_LIT; + setsize(self, '0 0 0', '0 0 0'); + self.origin_z = self.origin_z + 2; + droptofloor(); +}; + +void() skeet_sound = +{ + sound(self, 3, "plats/plat2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.think = skeet_fly; + self.nextthink = time + 1.5; +}; + +void() skeet_fly = +{ + sound(self, 3, "plats/plat2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + newmis = spawn(); + newmis.solid = 2; + newmis.movetype = 6; + newmis.velocity = '0 0 1000'; + newmis.velocity_x = random() * 600 - 300; + newmis.velocity_y = random() * 600 - 300; + newmis.velocity_z = self.speed + random() * 200; + newmis.classname = "bot"; + newmis.owner = self; + setmodel(newmis, "progs/player.mdl"); + newmis.skin = TF_FLARE_OFF; + newmis.frame = 2; + newmis.avelocity = '0 200 0'; + setsize(newmis, '-8 -8 -4', '8 8 4'); + setorigin(newmis, self.origin + '0 0 10'); + newmis.nextthink = time + 5; + newmis.think = SUB_Remove; + newmis.touch = skeet_die; + newmis.health = TF_FLARE_OFF; + newmis.takedamage = 2; + newmis.th_die = givepoint; + newmis.noise2 = "effects/shatter.wav"; + self.nextthink = time + random() * 5 + 3; + self.think = skeet_fly; +}; + +void() Random_Play = +{ + if (self.spawnflags == 4) + { + sound(self, TF_FLARE_LIT, self.noise, TF_FLARE_OFF, TF_FLARE_LIT); + } + else + { + sound(self, TF_FLARE_LIT, self.noise, TF_FLARE_OFF, TF_FLARE_OFF); + } + self.nextthink = time + RandomRange(self.option, self.option2); +}; + +void() effect_random_sound = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.noise)) + { + objerror("random_sound without noise"); + } + if (!(self.volume)) + { + self.volume = TF_FLARE_OFF; + } + precache_sound(self.noise); + self.nextthink = time + RandomRange(self.option, self.option2); + self.think = Random_Play; +}; + diff --git a/missiles.pqc b/missiles.pqc new file mode 100644 index 0000000..6fe324e --- /dev/null +++ b/missiles.pqc @@ -0,0 +1,412 @@ +void() M_Laser_Touch; +void() M_Grenade_Explode; +void() M_Grenade_Touch; +void() M_Missile_Touch; +void() M_Spike_Touch; +void() M_Arrow_Point; +void() M_Arrow_Touch; + +entity(string mismodel, vector misorigin, vector misvelocity) launch_missile = +{ + local entity missile; + missile = spawn(); + missile.owner = self; + missile.solid = 2; + setmodel(missile, mismodel); + setsize(missile, '0 0 0', '0 0 0'); + setorigin(missile, misorigin); + missile.velocity = misvelocity; + missile.avelocity = '0 0 0'; + missile.angles = vectoangles(missile.velocity); + if (mismodel == "progs/laser.mdl") + { + missile.classname = "laser"; + missile.movetype = 5; + missile.effects = 8; + missile.nextthink = time + 5; + missile.attack_finished = missile.nextthink; + missile.think = SUB_Remove; + missile.touch = M_Laser_Touch; + missile.ammo_shells = 15; + missile.ammo_nails = TF_FLARE_LIT; + } + else + { + if (mismodel == "progs/grenade.mdl") + { + missile.classname = "grenade"; + missile.movetype = 10; + missile.avelocity = '300 300 300'; + missile.think = M_Grenade_Explode; + missile.touch = M_Grenade_Touch; + missile.ammo_shells = 100; + missile.ammo_nails = TF_FLARE_LIT; + missile.gravity = self.gravity; + missile.nextthink = time + 2 + TF_FLARE_OFF / missile.gravity; + if (missile.nextthink < time + TF_FLARE_OFF) + { + missile.nextthink = time + TF_FLARE_OFF; + } + if (missile.nextthink > time + 15) + { + missile.nextthink = time + 15; + } + missile.attack_finished = missile.nextthink; + } + else + { + if (mismodel == "progs/missile.mdl") + { + missile.classname = "missile"; + missile.movetype = 5; + missile.effects = 8; + missile.nextthink = time + 5; + missile.attack_finished = missile.nextthink; + missile.think = SUB_Remove; + missile.touch = M_Missile_Touch; + missile.ammo_shells = 100; + missile.ammo_nails = TF_FLARE_LIT; + } + else + { + if (mismodel == "progs/lavaball.mdl") + { + missile.classname = "lavaball"; + missile.solid = TF_FLARE_OFF; + missile.movetype = 6; + missile.avelocity = '300 300 300'; + missile.think = M_Grenade_Explode; + missile.touch = M_Grenade_Explode; + missile.ammo_shells = 100; + missile.ammo_nails = TF_FLARE_LIT; + missile.gravity = self.gravity; + missile.effects = 8; + missile.nextthink = time + 2 + TF_FLARE_OFF / missile.gravity; + if (missile.nextthink < time + TF_FLARE_OFF) + { + missile.nextthink = time + TF_FLARE_OFF; + } + if (missile.nextthink > time + 15) + { + missile.nextthink = time + 15; + } + missile.attack_finished = missile.nextthink; + } + else + { + if (mismodel == "progs/spike.mdl" || mismodel == "progs/s_spike.mdl") + { + missile.classname = "spike"; + missile.movetype = 5; + setsize(missile, '0 0 0', '0 0 0'); + missile.nextthink = time + 6; + missile.attack_finished = missile.nextthink; + missile.think = SUB_Remove; + missile.touch = M_Spike_Touch; + if (mismodel == "progs/s_spike.mdl") + { + missile.ammo_shells = 18; + } + else + { + missile.ammo_shells = 9; + } + missile.ammo_nails = TF_FLARE_LIT; + } + else + { + if (mismodel == "progs/k_spike.mdl" || mismodel == "progs/w_spike.mdl") + { + if (mismodel == "progs/w_spike.mdl") + { + missile.classname = "wizspike"; + } + else + { + missile.classname = "knightspike"; + } + missile.movetype = 5; + setsize(missile, '0 0 0', '0 0 0'); + missile.nextthink = time + 6; + missile.attack_finished = missile.nextthink; + missile.think = SUB_Remove; + missile.touch = M_Spike_Touch; + missile.ammo_shells = 9; + missile.ammo_nails = TF_FLARE_LIT; + } + else + { + if (mismodel == "progs/arrow.mdl") + { + missile.classname = "arrow"; + missile.movetype = 6; + setsize(missile, '0 0 0', '0 0 0'); + missile.nextthink = time + 0.05; + missile.attack_finished = time + 5; + missile.gravity = self.gravity; + missile.think = M_Arrow_Point; + missile.touch = M_Arrow_Touch; + missile.ammo_shells = 15; + missile.ammo_nails = 5; + } + } + } + } + } + } + } + return missile; +}; + +void(entity missile, float basedamage, float randdamage) setdmg_missile = +{ + missile.ammo_shells = basedamage; + missile.ammo_nails = randdamage; +}; +// pablo. f u decompiler! luckily it's never called :) +/* +//void(entity missile, float misnextthink, misthink, mistouch, float basedamage, float randdamage) setup_missile = +{ + missile.nextthink = time + misnextthink; + missile.think = misthink; + missile.touch = mistouch; + missile.ammo_shells = basedamage; + missile.ammo_nails = randdamage; +};*/ + +void(entity missile, vector mistarget, float targeting) target_missile = +{ + local vector misvelocity; + misvelocity = missile.velocity; + if (targeting == TF_FLARE_OFF) + { + missile.velocity = normalize(mistarget - missile.origin); + missile.velocity = missile.velocity * misvelocity_x; + } + else + { + if (targeting == 2) + { + missile.velocity = normalize(mistarget - self.origin); + missile.velocity = missile.velocity * misvelocity_x; + missile.velocity_z = misvelocity_z; + } + else + { + if (targeting == 3) + { + missile.velocity = normalize(mistarget + '0 0 16' - missile.origin); + missile.angles = vectoangles(missile.velocity); + makevectors(missile.angles); + missile.velocity = missile.velocity * misvelocity_x + v_up * misvelocity_z; + } + else + { + if (targeting == 4) + { + missile.velocity = normalize(mistarget - missile.origin); + missile.velocity = missile.velocity * vlen(misvelocity); + } + else + { + if (targeting == 5) + { + missile.velocity = mistarget - missile.origin; + missile.angles = vectoangles(missile.velocity); + makevectors(missile.angles); + missile.velocity = mistarget + v_right * misvelocity_y + v_up * misvelocity_z; + missile.velocity = normalize(missile.velocity - missile.origin); + missile.velocity = missile.velocity * misvelocity_x; + } + } + } + } + } + missile.angles = vectoangles(missile.velocity); +}; + +void() M_Grenade_Explode = +{ + local float totaldmg; + totaldmg = self.ammo_shells + random() * self.ammo_nails; + T_RadiusDamage(self, self.owner, totaldmg, world); + BecomeExplosion(); +}; + +void() M_Grenade_Touch = +{ + if (other == self.owner) + { + return; + } + if (other.takedamage == 2) + { + M_Grenade_Explode(); + return; + } + sound(self, TF_FLARE_OFF, "weapons/bounce.wav", TF_FLARE_OFF, TF_FLARE_OFF); + if (self.velocity == '0 0 0') + { + self.avelocity = '0 0 0'; + } +}; + +void() M_Laser_Touch = +{ + local float totaldmg; + local vector org; + if (other == self.owner) + { + return; + } + if (pointcontents(self.origin) == -6) + { + remove(self); + return; + } + totaldmg = self.ammo_shells + random() * self.ammo_nails; + if (self.ammo_shells + self.ammo_nails == TF_FLARE_LIT) + { + totaldmg = 15; + } + org = self.origin - 8 * normalize(self.velocity); + if (other.health) + { + T_Damage(other, self, self.owner, totaldmg); + } + else + { + sound(self, TF_FLARE_OFF, "enforcer/enfstop.wav", TF_FLARE_OFF, 3); + } + remove(self); +}; + +void() M_Missile_Touch = +{ + local float totaldmg; + if (other == self.owner) + { + return; + } + if (pointcontents(self.origin) == -6) + { + remove(self); + return; + } + totaldmg = self.ammo_shells + random() * self.ammo_nails; + if (other.health) + { + if (self.owner.classname == "monster_shalrath") + { + if (other.classname == "monster_zombie") + { + T_Damage(other, self, self, 110); + } + else + { + if (other.classname == "monster_axzombie") + { + T_Damage(other, self, self.owner, 200); + } + } + } + else + { + if (other.classname == "monster_shambler") + { + T_Damage(other, self, self.owner, totaldmg * 0.5 + 10); + } + else + { + T_Damage(other, self, self.owner, totaldmg + 20); + } + } + } + else + { + if (self.classname == "pulse") + { + sound(self, 2, "enforcer/enfstop.wav", TF_FLARE_OFF, 3); + remove(self); + return; + } + } + if (self.owner.classname == "monster_shalrath") + { + T_RadiusDamage(self, self.owner, totaldmg, world); + } + else + { + T_RadiusDamage(self, self.owner, totaldmg, other); + } + sound(self, TF_FLARE_OFF, "weapons/r_exp3.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.origin = self.origin - 8 * normalize(self.velocity); + sound(self, TF_FLARE_OFF, "weapons/r_exp3.wav", TF_FLARE_OFF, TF_FLARE_OFF); + BecomeExplosion(); +}; + +void() M_Spike_Touch = +{ + local float totaldmg; + if (other == self.owner) + { + return; + } + if (other.solid == TF_FLARE_OFF) + { + return; + } + if (pointcontents(self.origin) == -6) + { + remove(self); + return; + } + if (other.takedamage) + { + totaldmg = self.ammo_shells + random() * self.ammo_nails; + T_Damage(other, self, self.owner, totaldmg); + remove(self); + return; + } + if (self.classname == "dspike" && random() < 0.33) + { + remove(self); + return; + } + remove(self); +}; + +void() M_Arrow_Point = +{ + self.nextthink = time + 0.05; + self.angles = vectoangles(self.velocity); +}; + +void() M_Arrow_Touch = +{ + local float totaldmg; + if (other == self.owner) + { + return; + } + if (other.solid == TF_FLARE_OFF) + { + return; + } + if (pointcontents(self.origin) == -6) + { + remove(self); + return; + } + if (other.takedamage) + { + sound(other, 4, "weapons/arrowhit.wav", TF_FLARE_OFF, TF_FLARE_OFF); + totaldmg = self.ammo_shells + random() * self.ammo_nails; + T_Damage(other, self, self.owner, totaldmg); + remove(self); + return; + } + self.nextthink = time + TF_FLARE_OFF + random() * TF_FLARE_OFF; + self.think = SUB_Remove; +}; + diff --git a/monsters.pqc b/monsters.pqc new file mode 100644 index 0000000..0c50304 --- /dev/null +++ b/monsters.pqc @@ -0,0 +1,271 @@ +void() FoundTarget; + +float(entity targ) visible = +{ + local vector spot1; + local vector spot2; + spot1 = self.origin + self.view_ofs; + spot2 = targ.origin + targ.view_ofs; + traceline(spot1, spot2, TF_FLARE_OFF, self); + if (trace_inopen && trace_inwater) + { + return TF_FLARE_LIT; + } + if (trace_fraction == TF_FLARE_OFF) + { + return TF_FLARE_OFF; + } + return TF_FLARE_LIT; +}; + +void() monster_ogre = +{ + dremove(self); +}; + +void() monster_knight = +{ + dremove(self); +}; + +void() monster_shambler = +{ + dremove(self); +}; + +void() monster_demon1 = +{ + dremove(self); +}; + +void() monster_wizard = +{ + dremove(self); +}; + +void() monster_hell_knight = +{ + dremove(self); +}; + +void() monster_tarbaby = +{ + dremove(self); +}; + +void() monster_vomit = +{ + dremove(self); +}; + +void() monster_enforcer = +{ + dremove(self); +}; + +void() monster_shalrath = +{ + dremove(self); +}; + +void() monster_dragon = +{ + dremove(self); +}; + +void() monster_army = +{ + dremove(self); +}; + +void() monster_use = +{ + if (self.enemy) + { + return; + } + if (self.health <= TF_FLARE_LIT) + { + return; + } + if (activator.items & 524288) + { + return; + } + if (activator.flags & 128) + { + return; + } + if (activator.classname != "player" && activator.classname != "bot") + { + return; + } + if (activator.team_no == self.team_no) + { + self.enemy = world; + return; + } + self.enemy = activator; + self.nextthink = time + 0.1; + self.think = FoundTarget; +}; + +void() set_monster_health = +{ + skill = cvar("skill"); + if (skill > 2) + { + self.lives = (skill - 2) * 10 - TF_FLARE_OFF; + skill = 3; + } +}; + +void() walkmonster_start_go = +{ + self.movetype = 4; + self.origin_z = self.origin_z + TF_FLARE_OFF; + droptofloor(); + if (!walkmove(TF_FLARE_LIT, TF_FLARE_LIT)) + { + dprint("walkmonster in wall at: "); + dprint(vtos(self.origin)); + dprint("\n"); + } + self.takedamage = 2; + self.ideal_yaw = self.angles * '0 1 0'; + if (!(self.yaw_speed)) + { + self.yaw_speed = 20; + } + self.view_ofs = '0 0 16'; + self.use = monster_use; + self.flags = self.flags | 32; + if (self.target) + { + self.goalentity = self.movetarget = find(world, targetname, self.target); + self.ideal_yaw = vectoyaw(self.goalentity.origin - self.origin); + if (!(self.movetarget)) + { + dprint("Monster can't find target at "); + dprint(vtos(self.origin)); + dprint("\n"); + } + if (self.movetarget.classname == "path_corner") + { + self.th_walk(); + } + else + { + self.pausetime = 100000000; + } + self.th_stand(); + } + else + { + self.pausetime = 100000000; + self.th_stand(); + } + self.nextthink = self.nextthink + random() * 0.5; +}; + +void() walkmonster_start = +{ + self.nextthink = self.nextthink + random() * 0.5; + self.think = walkmonster_start_go; + total_monsters = total_monsters + TF_FLARE_OFF; + set_monster_health(); +}; + +void() flymonster_start_go = +{ + self.takedamage = 2; + self.ideal_yaw = self.angles * '0 1 0'; + if (!(self.yaw_speed)) + { + self.yaw_speed = 10; + } + self.view_ofs = '0 0 25'; + self.use = monster_use; + self.flags = self.flags | TF_FLARE_OFF; + self.flags = self.flags | 32; + if (!walkmove(TF_FLARE_LIT, TF_FLARE_LIT)) + { + dprint("flymonster in wall at: "); + dprint(vtos(self.origin)); + dprint("\n"); + } + if (self.target) + { + self.goalentity = self.movetarget = find(world, targetname, self.target); + if (!(self.movetarget)) + { + dprint("Monster can't find target at "); + dprint(vtos(self.origin)); + dprint("\n"); + } + if (self.movetarget.classname == "path_corner") + { + self.th_walk(); + } + else + { + self.pausetime = 100000000; + } + self.th_stand(); + } + else + { + self.pausetime = 100000000; + self.th_stand(); + } +}; + +void() flymonster_start = +{ + self.nextthink = self.nextthink + random() * 0.5; + self.think = flymonster_start_go; + total_monsters = total_monsters + TF_FLARE_OFF; + set_monster_health(); +}; + +void() swimmonster_start_go = +{ + self.takedamage = 2; + total_monsters = total_monsters + TF_FLARE_OFF; + self.ideal_yaw = self.angles * '0 1 0'; + if (!(self.yaw_speed)) + { + self.yaw_speed = 10; + } + self.view_ofs = '0 0 10'; + self.use = monster_use; + self.flags = self.flags | 2; + self.flags = self.flags | 32; + if (self.target) + { + self.goalentity = self.movetarget = find(world, targetname, self.target); + if (!(self.movetarget)) + { + dprint("Monster can't find target at "); + dprint(vtos(self.origin)); + dprint("\n"); + } + self.ideal_yaw = vectoyaw(self.goalentity.origin - self.origin); + self.th_walk(); + } + else + { + self.pausetime = 100000000; + self.th_stand(); + } + self.nextthink = self.nextthink + random() * 0.5; +}; + +void() swimmonster_start = +{ + self.nextthink = self.nextthink + random() * 0.5; + self.think = swimmonster_start_go; + total_monsters = total_monsters + TF_FLARE_OFF; + set_monster_health(); +}; + diff --git a/mturret.pqc b/mturret.pqc new file mode 100644 index 0000000..5739ba9 --- /dev/null +++ b/mturret.pqc @@ -0,0 +1,731 @@ +.float rotate_type; + +void() turret_ret2; +void() turret_active; + +void() beam_touch = +{ + local float totaldmg; + if (other == self.owner) + { + return; + } + if (other.solid == TF_FLARE_OFF) + { + return; + } + if (pointcontents(self.origin) == -6) + { + remove(self); + return; + } + if (other.takedamage) + { + totaldmg = self.currentammo * 1.25; + totaldmg = ceil(totaldmg); + if (other.health <= totaldmg) + { + T_Damage(other, self, self.owner, 99999); + if (other.health <= TF_FLARE_LIT) + { + remove(self); + return; + } + } + else + { + T_Damage(other, self, self.owner, totaldmg); + } + } + sound(self, 3, "enforcer/enfstop.wav", TF_FLARE_OFF, TF_FLARE_OFF); + BecomeExplosion(); +}; + +void() beam_generate = +{ + local entity beamseg; + beamseg = spawn(); + beamseg.owner = self.owner; + beamseg.solid = 2; + setmodel(beamseg, "progs/beam.mdl"); + beamseg.skin = self.owner.team_no - TF_FLARE_OFF; + setsize(beamseg, '0 0 0', '0 0 0'); + makevectors(self.owner.v_angle); + if (self.owner.flags & 8) + { + self.owner.attack_finished = time + 0.5; + setorigin(beamseg, self.owner.origin + v_forward * 12 + self.owner.dest2); + beamseg.velocity = aim(self.owner, 800) * 800; + } + else + { + if (self.owner.flags & 32) + { + setorigin(beamseg, self.owner.origin); + beamseg.velocity = normalize(self.owner.enemy.origin - self.owner.origin) * 800; + } + else + { + setorigin(beamseg, self.owner.origin); + beamseg.velocity = self.owner.movedir * 800; + } + } + beamseg.angles = vectoangles(beamseg.velocity); + beamseg.speed = 800; + beamseg.classname = "beam"; + beamseg.movetype = 9; + beamseg.currentammo = self.currentammo; + beamseg.touch = beam_touch; + beamseg.think = SUB_Remove; + beamseg.nextthink = time + 6; + sound(self.owner, TF_FLARE_OFF, "enforcer/enfire.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.currentammo = self.currentammo / 2; + if (self.owner.flags & 8 && self.deadflag == TF_FLARE_LIT) + { + self.owner.velocity = self.velocity - v_forward * self.currentammo * 2; + } + if (self.currentammo < TF_FLARE_OFF) + { + remove(self); + } + self.nextthink = time + 0.05; +}; + +float(float pitch) turret_frame = +{ + return floor(pitch / 5.625); +}; + +float(float pitch) turret_fireframe = +{ + return turret_frame(pitch) + 23; +}; + +float() CheckTurretAttack = +{ + local vector spot1; + local vector spot2; + local entity targ; + local float chance; + targ = self.enemy; + spot1 = self.origin + self.view_ofs; + spot2 = targ.origin + targ.view_ofs; + traceline(spot1, spot2, TF_FLARE_LIT, self); + if (trace_ent != targ) + { + return TF_FLARE_LIT; + } + if (trace_inopen && trace_inwater) + { + return TF_FLARE_LIT; + } + if (time < self.attack_finished) + { + return TF_FLARE_LIT; + } + if (enemy_range == TF_FLARE_LIT) + { + chance = 0.9; + } + else + { + if (enemy_range == TF_FLARE_OFF) + { + chance = 0.6; + } + else + { + if (enemy_range == 2) + { + chance = 0.3; + } + else + { + chance = 0.1; + } + } + } + if (random() < chance) + { + self.th_missile(); + if (self.spawnflags & 8) + { + SUB_AttackFinished(1.5 + 2 * random()); + } + if (self.spawnflags & 16) + { + SUB_AttackFinished(1.5 + 3 * random()); + } + if (self.spawnflags & 32) + { + SUB_AttackFinished(TF_FLARE_OFF + TF_FLARE_OFF * random()); + } + else + { + SUB_AttackFinished(TF_FLARE_OFF + 1.5 * random()); + } + return TF_FLARE_OFF; + } + return TF_FLARE_LIT; +}; + +void() turret_face = +{ + local vector tmpvec; + tmpvec = vectoangles(self.origin - (self.enemy.origin + self.enemy.view_ofs)); + if (tmpvec_x > self.rotate_type) + { + if (tmpvec_x > self.rotate_type + 6) + { + self.rotate_type = self.rotate_type + 6; + } + else + { + self.rotate_type = tmpvec_x; + } + } + else + { + if (tmpvec_x < self.rotate_type) + { + if (tmpvec_x < self.rotate_type - 6) + { + self.rotate_type = self.rotate_type - 6; + } + else + { + self.rotate_type = tmpvec_x; + } + } + } + self.frame = turret_frame(self.rotate_type); + self.ideal_yaw = vectoyaw(self.enemy.origin - self.origin); + ChangeYaw(); +}; + +void() turret_still = [0, turret_still] +{ + self.frame = turret_frame(self.rotate_type); + FindTarget(); +}; + +void() turret_ret1 = [16, turret_ret1] +{ + if (self.frame >= 15) + { + turret_ret2(); + return; + } + self.frame = self.frame + TF_FLARE_OFF; + self.nextthink = time + 0.05; +}; + +void() turret_ret2 = [16, turret_ret3] +{ + self.nextthink = time + 0.2; + sound(self, 3, "weapons/gunidle1.wav", TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void() turret_ret3 = [17, turret_ret4] +{ + self.nextthink = time + 0.2; +}; + +void() turret_ret4 = [18, turret_ret5] +{ + self.nextthink = time + 0.2; +}; + +void() turret_ret5 = [19, turret_ret6] +{ + self.solid = TF_FLARE_LIT; + self.nextthink = time + 0.2; +}; + +void() turret_ret6 = [20, turret_ret7] +{ + self.nextthink = time + 0.2; +}; + +void() turret_ret7 = [21, turret_ret8] +{ + self.nextthink = time + 0.2; +}; + +void() turret_ret8 = [22, turret_retracted] +{ + if (!(self.currentammo)) + { + self.think = SUB_Null; + } + self.nextthink = time + 0.05; +}; + +void() turret_unret1 = [21, turret_unret2] +{ + self.nextthink = time + 0.05; + sound(self, 3, "weapons/gunidle1.wav", TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void() turret_unret2 = [20, turret_unret3] +{ + self.nextthink = time + 0.05; +}; + +void() turret_unret3 = [19, turret_unret4] +{ + self.nextthink = time + 0.05; +}; + +void() turret_unret4 = [18, turret_unret5] +{ + self.solid = 3; + setmodel(self, "progs/turret.mdl"); + self.nextthink = time + 0.05; +}; + +void() turret_unret5 = [17, turret_unret6] +{ + self.nextthink = time + 0.05; +}; + +void() turret_unret6 = [16, turret_unret7] +{ + self.nextthink = time + 0.05; +}; + +void() turret_unret7 = [0, turret_unret7] +{ + if (self.frame > turret_frame(self.rotate_type) + TF_FLARE_OFF) + { + self.frame = self.frame - 2; + } + else + { + self.frame = turret_frame(self.rotate_type); + turret_active(); + } +}; + +void() turret_retracted = [22, turret_retracted] +{ + if (FindTarget()) + { + turret_unret1(); + } +}; + +void() turret_active = [0, turret_active] +{ + enemy_infront = infront(self.enemy); + enemy_range = range(self.enemy); + enemy_yaw = vectoyaw(self.enemy.origin - self.origin); + self.frame = turret_frame(self.rotate_type); + enemy_vis = visible(self.enemy); + if (self.enemy.health <= TF_FLARE_LIT || self.enemy.deadflag != TF_FLARE_LIT || !enemy_vis) + { + self.enemy = world; + enemy_vis = visible(self.oldenemy); + if (enemy_vis && self.oldenemy.health > TF_FLARE_LIT) + { + self.enemy = self.oldenemy; + HuntTarget(); + } + else + { + self.th_stand(); + return; + } + } + self.show_hostile = time + TF_FLARE_OFF; + enemy_vis = visible(self.enemy); + if (enemy_vis) + { + self.search_time = time + 0.2; + } + if (self.search_time < time) + { + if (FindTarget()) + { + return; + } + } + if (self.attack_state == 4 || self.attack_state == 3) + { + ai_run_missile(); + return; + } + CheckTurretAttack(); +}; + +void() turret_bullet1 = [0, turret_bullet2] +{ + local vector dir; + turret_face(); + self.frame = turret_fireframe(self.rotate_type); + sound(self, TF_FLARE_OFF, "turret/plasbult.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.effects = self.effects | 2; + dir = self.enemy.origin - self.enemy.velocity * 0.3 * random(); + dir = normalize(dir - self.origin); + deathmsg = 44; + FireBullets(2, dir, '0 0 0'); +}; + +void() turret_bullet2 = [0, turret_bullet3] +{ + turret_face(); + self.nextthink = time + 0.05; +}; + +void() turret_bullet3 = [0, turret_bullet4] +{ + local vector dir; + turret_face(); + self.frame = turret_fireframe(self.rotate_type); + sound(self, TF_FLARE_OFF, "turret/plasbult.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.effects = self.effects | 2; + dir = self.enemy.origin - self.enemy.velocity * 0.3 * random(); + dir = normalize(dir - self.origin); + FireBullets(2, dir, '0 0 0'); +}; + +void() turret_bullet4 = [0, turret_bullet5] +{ + turret_face(); + self.nextthink = time + 0.05; +}; + +void() turret_bullet5 = [0, turret_active] +{ + local vector dir; + turret_face(); + self.frame = turret_fireframe(self.rotate_type); + sound(self, TF_FLARE_OFF, "turret/plasbult.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.effects = self.effects | 2; + dir = self.enemy.origin - self.enemy.velocity * 0.3 * random(); + dir = normalize(dir - self.origin); + FireBullets(2, dir, '0 0 0'); +}; + +void() turret_laser1 = [0, turret_laser2] +{ + turret_face(); + self.frame = turret_fireframe(self.rotate_type); + sound(self, TF_FLARE_OFF, "enforcer/enfire.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.effects = self.effects | 2; + deathmsg = 44; + newmis = launch_missile("progs/laser.mdl", self.origin, '600 0 0'); + target_missile(newmis, self.enemy.origin, TF_FLARE_OFF); +}; + +void() turret_laser2 = [0, turret_laser3] +{ + turret_face(); +}; + +void() turret_laser3 = [0, turret_laser4] +{ + turret_face(); +}; + +void() turret_laser4 = [0, turret_laser5] +{ + turret_face(); +}; + +void() turret_laser5 = [0, turret_active] +{ + turret_face(); + self.frame = turret_fireframe(self.rotate_type); + sound(self, TF_FLARE_OFF, "enforcer/enfire.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.effects = self.effects | 2; + deathmsg = 44; + newmis = launch_missile("progs/laser.mdl", self.origin, '600 0 0'); + target_missile(newmis, self.enemy.origin, TF_FLARE_OFF); +}; + +void() turret_rocket1 = [0, turret_active] +{ + turret_face(); + self.frame = turret_fireframe(self.rotate_type); + sound(self, TF_FLARE_OFF, "weapons/sgun1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.effects = self.effects | 2; + deathmsg = 44; + newmis = launch_missile("progs/missile.mdl", self.origin, '1000 0 0'); + target_missile(newmis, self.enemy.origin, TF_FLARE_OFF); + setdmg_missile(newmis, 15, 15); +}; + +void() turret_beam1 = [0, turret_beam2] +{ + deathmsg = 44; + turret_face(); + sound(self, TF_FLARE_OFF, "weapons/railgr1a.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.nextthink = time + 0.2; +}; + +void() turret_beam2 = [0, turret_beam3] +{ + deathmsg = 44; + sound(self, TF_FLARE_OFF, "weapons/railgr1a.wav", TF_FLARE_OFF, TF_FLARE_OFF); + turret_face(); + self.nextthink = time + 0.2; +}; + +void() turret_beam3 = [0, turret_beam4] +{ + deathmsg = 44; + sound(self, TF_FLARE_OFF, "weapons/railgr1a.wav", TF_FLARE_OFF, TF_FLARE_OFF); + turret_face(); + self.nextthink = time + 0.2; +}; + +void() turret_beam4 = [0, turret_beam5] +{ + deathmsg = 44; + turret_face(); + self.frame = turret_fireframe(self.rotate_type); + if (self.waterlevel > TF_FLARE_OFF) + { + return; + } + newmis = spawn(); + newmis.solid = TF_FLARE_LIT; + newmis.movetype = 5; + newmis.currentammo = 10; + setorigin(newmis, self.origin); + newmis.owner = self; + newmis.think = beam_generate; + newmis.nextthink = time + 0.05; +}; + +void() turret_beam5 = [0, turret_beam6] +{ + turret_face(); +}; + +void() turret_beam6 = [0, turret_beam7] +{ + turret_face(); +}; + +void() turret_beam7 = [0, turret_active] +{ + turret_face(); +}; + +void() turret_fire1 = [0, turret_fire2] +{ + turret_face(); + if (infront(self.enemy)) + { + self.think = turret_fire2; + } + self.nextthink = time + 0.05; +}; + +void() turret_fire2 = [0, turret_fire3] +{ + turret_face(); + self.nextthink = time + 0.05; +}; + +void() turret_fire3 = [0, turret_fire4] +{ + turret_face(); + self.nextthink = time + 0.05; +}; + +void() turret_fire4 = [0, turret_fire4] +{ + deathmsg = 44; + turret_face(); + if (self.spawnflags & 8) + { + turret_laser1(); + } + else + { + if (self.spawnflags & 16) + { + turret_rocket1(); + } + else + { + if (self.spawnflags & 32) + { + turret_beam1(); + } + else + { + turret_bullet1(); + } + } + } +}; + +void() turret_die = +{ + local entity dedtur; + self.use = SUB_Null; + self.effects = TF_FLARE_LIT; + dedtur = spawn(); + dedtur.solid = TF_FLARE_LIT; + dedtur.movetype = 10; + dedtur.angles = self.angles; + dedtur.avelocity = '300 300 200'; + setorigin(dedtur, self.origin); + setmodel(dedtur, "progs/dedturet.mdl"); + setsize(self, '-10 -10 -3', '10 10 12'); + dedtur.skin = self.skin; + dedtur.effects = TF_FLARE_LIT; + ThrowHead("progs/h_turret.mdl", self.health); +}; + +void(entity attacker, float damage) turret_pain = +{ + if (self.pain_finished > time) + { + return; + } + self.pain_finished = time + TF_FLARE_OFF; +}; + +void() turret_use = +{ + if (self.currentammo) + { + self.currentammo = TF_FLARE_LIT; + if (self.spawnflags & 2 || (self.spawnflags & 4)) + { + turret_ret1(); + } + else + { + self.think = SUB_Null; + } + } + else + { + self.currentammo = TF_FLARE_OFF; + if (self.spawnflags & 2 || (self.spawnflags & 4)) + { + turret_unret1(); + } + else + { + turret_still(); + } + } +}; + +void() turret_setup = +{ + local vector endorg; + traceline(self.origin, self.origin + '0 0 2000', TF_FLARE_OFF, self); + endorg = trace_endpos; + endorg_z = endorg_z - 12; + setorigin(self, endorg); + if (self.spawnflags & TF_FLARE_OFF) + { + if (self.spawnflags & 2 || (self.spawnflags & 4)) + { + self.frame = 22; + self.solid = TF_FLARE_LIT; + } + else + { + self.frame = turret_frame(self.rotate_type); + } + self.currentammo = TF_FLARE_LIT; + self.think = SUB_Null; + } + else + { + if (self.spawnflags & 2) + { + self.solid = TF_FLARE_LIT; + turret_retracted(); + } + else + { + turret_still(); + } + self.nextthink = self.nextthink + random() * 0.5; + } +}; + +void() monster_turret = +{ + precache_model("progs/turret.mdl"); + precache_model("progs/h_turret.mdl"); + precache_model("progs/dedturet.mdl"); + if (self.spawnflags & 8) + { + precache_model("progs/laser.mdl"); + precache_sound("enforcer/enfire.wav"); + precache_sound("enforcer/enfstop.wav"); + } + else + { + if (self.spawnflags & 16) + { + precache_model("progs/missile.mdl"); + precache_sound("weapons/sgun1.wav"); + } + else + { + if (self.spawnflags & 32) + { + precache_model("progs/beam.mdl"); + precache_sound("enforcer/enfire.wav"); + precache_sound("enforcer/enfstop.wav"); + } + else + { + precache_sound("turret/plasbult.wav"); + } + } + } + self.solid = 3; + self.movetype = 4; + setmodel(self, "progs/turret.mdl"); + setsize(self, '-12 -12 -8', '12 12 12'); + if (self.health < TF_FLARE_OFF) + { + self.health = 1500; + } + self.max_health = self.health; + if (self.rotate_type < TF_FLARE_LIT || self.rotate_type > 90) + { + self.rotate_type = TF_FLARE_LIT; + } + self.currentammo = TF_FLARE_OFF; + self.classname = "bot"; + if (self.spawnflags & 2) + { + self.th_stand = turret_ret1; + self.th_walk = turret_ret1; + } + else + { + self.th_stand = turret_still; + self.th_walk = turret_still; + } + self.th_run = turret_active; + self.th_pain = turret_pain; + self.th_die = turret_die; + self.th_missile = turret_fire1; + total_monsters = total_monsters + TF_FLARE_OFF; + self.takedamage = 2; + self.ideal_yaw = self.angles * '0 1 0'; + self.yaw_speed = 30; + self.view_ofs = '0 0 -0.1'; + self.use = turret_use; + self.flags = self.flags | TF_FLARE_OFF; + self.flags = self.flags | 32; + self.pausetime = 100000000; + self.nextthink = self.nextthink + random() * 0.5; + self.think = turret_setup; +}; + diff --git a/plats.pqc b/plats.pqc new file mode 100644 index 0000000..dd9bbe4 --- /dev/null +++ b/plats.pqc @@ -0,0 +1,486 @@ +void() train_next; +void() func_train_find; +void() plat_center_touch; +void() plat_outside_touch; +void() plat_trigger_use; +void() plat_go_up; +void() plat_go_down; +void() plat_crush; + +void() plat_spawn_inside_trigger = +{ + local entity trigger; + local vector tmin; + local vector tmax; + trigger = spawn(); + trigger.touch = plat_center_touch; + trigger.movetype = 0; + trigger.solid = 1; + trigger.enemy = self; + trigger.team_no = self.team_no; + trigger.playerclass = self.playerclass; + trigger.items_allowed = self.items_allowed; + trigger.activate_goal_no = self.activate_goal_no; + trigger.inactivate_goal_no = self.inactivate_goal_no; + trigger.remove_goal_no = self.remove_goal_no; + trigger.restore_goal_no = self.restore_goal_no; + trigger.activate_group_no = self.activate_group_no; + trigger.inactivate_group_no = self.inactivate_group_no; + trigger.remove_group_no = self.remove_group_no; + trigger.restore_group_no = self.restore_group_no; + trigger.goal_activation = self.goal_activation; + trigger.goal_effects = self.goal_effects; + trigger.goal_result = self.goal_result; + trigger.goal_group = self.goal_group; + tmin = self.mins + '25 25 0'; + tmax = self.maxs - '25 25 -8'; + tmin_z = tmax_z - (self.pos1_z - self.pos2_z + 8); + if (self.spawnflags & 1) + { + tmax_z = tmin_z + 8; + } + if (self.size_x <= 50) + { + tmin_x = (self.mins_x + self.maxs_x) / 2; + tmax_x = tmin_x + 1; + } + if (self.size_y <= 50) + { + tmin_y = (self.mins_y + self.maxs_y) / 2; + tmax_y = tmin_y + 1; + } + setsize(trigger, tmin, tmax); +}; + +void() plat_hit_top = +{ + sound(self, 2, self.noise1, 1, 1); + self.state = 0; + self.think = plat_go_down; + self.nextthink = self.ltime + 3; +}; + +void() plat_hit_bottom = +{ + sound(self, 2, self.noise1, 1, 1); + self.state = 1; +}; + +void() plat_go_down = +{ + sound(self, 2, self.noise, 1, 1); + self.state = 3; + SUB_CalcMove(self.pos2, self.speed, plat_hit_bottom); +}; + +void() plat_go_up = +{ + sound(self, 2, self.noise, 1, 1); + self.state = 2; + SUB_CalcMove(self.pos1, self.speed, plat_hit_top); +}; + +void() plat_center_touch = +{ + local entity te; + if (other.classname != "player") + { + return; + } + if (!Activated(self, other)) + { + if (self.else_goal != 0) + { + te = Findgoal(self.else_goal); + if (te) + { + DoResults(te, other, self.goal_result & 2); + } + } + return; + } + if (other.health <= 0) + { + return; + } + self = self.enemy; + if (self.state == 1) + { + plat_go_up(); + } + else + { + if (self.state == 0) + { + self.nextthink = self.ltime + 1; + } + } +}; + +void() plat_outside_touch = +{ + local entity te; + if (other.classname != "player") + { + return; + } + if (!Activated(self, other)) + { + if (self.else_goal != 0) + { + te = Findgoal(self.else_goal); + if (te) + { + DoResults(te, other, self.goal_result & 2); + } + } + return; + } + if (other.health <= 0) + { + return; + } + self = self.enemy; + if (self.state == 0) + { + plat_go_down(); + } +}; + +void() plat_trigger_use = +{ + if (self.think) + { + return; + } + plat_go_down(); +}; + +void() plat_crush = +{ + T_Damage(other, self, self, 1); + if (self.state == 2) + { + plat_go_down(); + } + else + { + if (self.state == 3) + { + plat_go_up(); + } + else + { + self.state = 3; + if (self.state == 3) + { + plat_go_up(); + } +// No idea what to do :\ Hopefully this will fix the town2 crash, but I'm not sure. +// objerror("plat_crush: bad self.state\n"); + } + } +}; + +void() plat_use = +{ + self.use = SUB_Null; + if (self.state != 2) + { + objerror("plat_use: not in up state"); + } + plat_go_down(); +}; + +void() func_plat = +{ + if (CheckExistence() == 0) + { + dremove(self); + return; + } + if (!(self.t_length)) + { + self.t_length = 80; + } + if (!(self.t_width)) + { + self.t_width = 10; + } + if (self.sounds == 0) + { + self.sounds = 2; + } + if (self.sounds == 1) + { + precache_sound("plats/plat1.wav"); + precache_sound("plats/plat2.wav"); + self.noise = "plats/plat1.wav"; + self.noise1 = "plats/plat2.wav"; + } + if (self.sounds == 2) + { + precache_sound("plats/medplat1.wav"); + precache_sound("plats/medplat2.wav"); + self.noise = "plats/medplat1.wav"; + self.noise1 = "plats/medplat2.wav"; + } + if (self.sounds == 4) + { + precache_sound("plats/track_st.wav"); + precache_sound("plats/track_e.wav"); + self.noise = "plats/track_st.wav"; + self.noise1 = "plats/track_e.wav"; + } + self.mangle = self.angles; + self.angles = '0 0 0'; + self.classname = "plat"; + self.solid = 4; + self.movetype = 7; + setorigin(self, self.origin); + setmodel(self, self.model); + setsize(self, self.mins, self.maxs); + self.blocked = plat_crush; + if (!(self.speed)) + { + self.speed = 150; + } + self.pos1 = self.origin; + self.pos2 = self.origin; + if (self.height) + { + self.pos2_z = self.origin_z - self.height; + } + else + { + self.pos2_z = self.origin_z - self.size_z + 8; + } + self.use = plat_trigger_use; + plat_spawn_inside_trigger(); + if (self.targetname) + { + self.state = 2; + self.use = plat_use; + } + else + { + setorigin(self, self.pos2); + self.state = 1; + } +}; + +void() train_blocked = +{ + if (time < self.attack_finished) + { + return; + } + self.attack_finished = time + 0.5; + T_Damage(other, self, self, self.dmg); +}; + +void() train_use = +{ + if (self.think != func_train_find) + { + return; + } + train_next(); +}; + +void() train_wait = +{ + if (self.wait) + { + self.nextthink = self.ltime + self.wait; + if (self.wait == -1) + { + self.think = func_train_find; + } + self.sounds = 4; +// if (4) +// { + sound(self, 2, self.noise, 1, 0); +// } +// else +// { +// sound(self, 2, self.noise, 1, 1); +// } + } + else + { + self.nextthink = self.ltime + 0.1; + } + self.think = train_next; +}; + +void() train_next = +{ + local entity targ; + targ = find(world, targetname, self.target); + self.target = targ.target; + if (!(self.target)) + { + objerror("train_next: no next target"); + } + if (targ.wait) + { + self.wait = targ.wait; + } + else + { + self.wait = 0; + } + self.sounds = 4; +// if (4) +// { +// sound(self, 2, self.noise1, 1, 0); +// } +// else +// { + sound(self, 2, self.noise1, 1, 1); +// } + SUB_CalcMove(targ.origin - self.mins, self.speed, train_wait); +}; + +void() func_train_find = +{ + local entity targ; + targ = find(world, targetname, self.target); + self.target = targ.target; + setorigin(self, targ.origin - self.mins); + if (!(self.targetname)) + { + self.nextthink = self.ltime + 0.1; + self.think = train_next; + } +}; + +void() followtrain = +{ + setorigin(self, self.owner.origin); + self.nextthink = time + 0.1; + self.think = followtrain; +}; + +void() func_train = +{ + if (CheckExistence() == 0) + { + dremove(self); + return; + } + if (!(self.speed)) + { + self.speed = 100; + } + if (!(self.target)) + { + objerror("func_train without a target"); + } + if (!(self.dmg)) + { + self.dmg = 2; + } + if (self.sounds == 0) + { + self.noise = "misc/null.wav"; + precache_sound("misc/null.wav"); + self.noise1 = "misc/null.wav"; + precache_sound("misc/null.wav"); + } + if (self.sounds == 1) + { + self.noise = "plats/train2.wav"; + precache_sound("plats/train2.wav"); + self.noise1 = "plats/train1.wav"; + precache_sound("plats/train1.wav"); + } + if (self.sounds == 4) + { + precache_sound("plats/track_st.wav"); + precache_sound("plats/track_e.wav"); + self.noise = "plats/track_e.wav"; + self.noise1 = "plats/track_st.wav"; + } + self.cnt = 1; + self.solid = 4; + self.movetype = 7; + self.blocked = train_blocked; + self.use = train_use; + self.classname = "train"; + setmodel(self, self.model); + setsize(self, self.mins, self.maxs); + setorigin(self, self.origin); + self.nextthink = self.ltime + 0.1; + self.think = func_train_find; +}; + +void() light_move = +{ + if (CheckExistence() == 0) + { + dremove(self); + return; + } + if (!(self.speed)) + { + self.speed = 100; + } + if (!(self.target)) + { + objerror("light_move without a target"); + } + self.noise = "misc/null.wav"; + precache_sound("misc/null.wav"); + self.noise1 = "misc/null.wav"; + precache_sound("misc/null.wav"); + self.cnt = 1; + if (!(self.effects)) + { + self.effects = 4; + } + self.solid = 4; + self.movetype = 7; + self.classname = "movelight"; + precache_model("progs/s_null.spr"); + setmodel(self, "progs/s_null.spr"); + setsize(self, '0 0 0', '0 0 0'); + setorigin(self, self.origin); + self.nextthink = self.ltime + 0.1; + self.think = func_train_find; +}; + +void() misc_teleporttrain = +{ + if (CheckExistence() == 0) + { + dremove(self); + return; + } + if (!(self.speed)) + { + self.speed = 100; + } + if (!(self.target)) + { + objerror("func_train without a target"); + } + self.cnt = 1; + self.solid = 0; + self.movetype = 7; + self.blocked = train_blocked; + self.use = train_use; + self.avelocity = '100 200 300'; + self.noise = "misc/null.wav"; + precache_sound("misc/null.wav"); + self.noise1 = "misc/null.wav"; + precache_sound("misc/null.wav"); + precache_model2("progs/teleport.mdl"); + setmodel(self, "progs/teleport.mdl"); + setsize(self, self.mins, self.maxs); + setorigin(self, self.origin); + self.nextthink = self.ltime + 0.1; + self.think = func_train_find; +}; + diff --git a/player.pqc b/player.pqc new file mode 100644 index 0000000..77fdb19 --- /dev/null +++ b/player.pqc @@ -0,0 +1,1665 @@ +void() bubble_bob; +void() W_FireAssaultCannon; +void() player_diea1; +void() player_dieb1; +void() player_diec1; +void() player_died1; +void() player_diee1; +void() player_die_ax1; + +void() Throw_Grapple; + +// TeamFortress Prototypes +void() BioInfection_Decay; +void() TeamFortress_RemoveTimers; +void() T_Dispenser; +//void() Headless_Think; + + +void() player_touch = +{ + if (invis_only == TF_FLARE_LIT && (self.playerclass == 8 || other.playerclass == 8)) + { + if (other.classname == "player") + { + if (self.undercover_team != TF_FLARE_LIT || self.undercover_skin != TF_FLARE_LIT) + { + if (other.playerclass == 8 || other.playerclass == 1 && other.team_no != self.team_no) + { + sprint(other, 2, "Wait a minute... he's a Spy!\n"); + sprint(self, 2, "The enemy sees through your disguise!\n"); + sound(self, 2, "speech/pekaboo.wav", 1, 1); + Spy_RemoveDisguise(self); + } + } + if (other.undercover_team != TF_FLARE_LIT || other.undercover_skin != TF_FLARE_LIT) + { + if (self.playerclass == 8 || self.playerclass == 1 && self.team_no != other.team_no) + { + sound(other, 2, "speech/pekaboo.wav", 1, 1); + sprint(self, 2, "Wait a minute... he's a Spy!\n"); + sprint(other, 2, "The enemy sees through your disguise!\n"); + Spy_RemoveDisguise(other); + } + } + } + } +}; + +void () player_stand1 = [ 17, player_stand1 ] +{ + + self.weaponframe = 0; + if ((self.velocity_x || self.velocity_y)) + { + self.walkframe = 0; + player_run (); + return; + } + if ((self.is_squating == 1)) + { + lay (); + } + if ((self.current_weapon <= 16)) + { + if ((self.walkframe >= 12)) + { + self.walkframe = 0; + } + if ((self.is_squating == 1)) + { + self.frame = 57; + } + else + { + self.frame = (17 + self.walkframe); + } + } + else + { + if ((self.walkframe >= 5)) + { + self.walkframe = 0; + } + if ((self.is_squating == 1)) + { + self.frame = 57; + if ((!self.current_menu && (self.classname != "player_prop"))) + { + if ((self.StatusBarSize == 0)) + { + CenterPrint (self, " ìáùéîç\n"); + } + } + } + else + { + self.frame = (12 + self.walkframe); + } + } + if (((self.walkframe == 1) && (self.vision == 1))) + { + TeamFortress_NightVision (); + } + self.walkframe = (self.walkframe + 1); +}; + +void() player_run = [6, player_run] +{ + local float rnum; + rnum = random(); + self.weaponframe = TF_FLARE_LIT; + if (!(self.velocity_x) && !(self.velocity_y)) + { + self.walkframe = TF_FLARE_LIT; + player_stand1(); + return; + } + if (self.is_squating == 1) + { + setsize(self, '-16 -16 -24', '16 16 32'); + } + if (self.current_weapon <= 16) + { + if (self.walkframe == 6) + { + self.walkframe = TF_FLARE_LIT; + } + self.frame = TF_FLARE_LIT + self.walkframe; + } + else + { + if (self.walkframe == 6) + { + self.walkframe = TF_FLARE_LIT; + } + self.frame = self.frame + self.walkframe; + } + if (footsteps == 1 && checkbottom(self) == 1 && self.playerclass != TF_FLARE_LIT) + { + if (self.velocity_x > 200 || self.velocity_y > 200 || (self.velocity_x < -200 || self.velocity_y < -200)) + { + if (self.playerclass == 8 && self.undercover_skin == TF_FLARE_LIT) + { + self.walkframe = self.walkframe + 1; + return; + } + if (self.walkframe == 1) + { + if (self.vision == 1) + { + TeamFortress_NightVision(); + } + if (self.waterlevel == TF_FLARE_LIT) + { + if (rnum < 0.6) + { + sound(self, 4, "player/step1l.wav", 0.8, 1); + } + else + { + sound(self, 2, "player/step2l.wav", 0.8, 1); + } + } + if (self.waterlevel == 1) + { + sound(self, 2, "player/h2ojump.wav", 0.8, 1); + } + if (self.waterlevel == 2) + { + sound(self, 2, "player/inh2o.wav", 0.8, 1); + } + } + if (self.walkframe == 4) + { + if (self.waterlevel == TF_FLARE_LIT) + { + if (rnum < 0.5) + { + sound(self, 2, "player/step1r.wav", 0.8, 1); + } + else + { + sound(self, 2, "player/step2r.wav", 0.8, 1); + } + } + if (self.waterlevel == 1) + { + sound(self, 2, "player/h2ojump.wav", 0.8, 1); + } + if (self.waterlevel == 2) + { + sound(self, 2, "player/inh2o.wav", 0.8, 1); + } + } + } + } + self.walkframe = self.walkframe + 1; +}; + +void() player_shot1 = [113, player_shot2] +{ + self.weaponframe = 1; + muzzleflash(); +}; + +void() player_shot2 = [114, player_shot3] +{ + self.weaponframe = 2; +}; + +void() player_shot3 = [115, player_shot4] +{ + self.weaponframe = 3; +}; + +void() player_shot4 = [116, player_shot5] +{ + self.weaponframe = 4; +}; + +void() player_shot5 = [117, player_shot6] +{ + self.weaponframe = 5; +}; + +void() player_shot6 = [118, player_run] +{ + self.weaponframe = 6; +}; + +void() player_autorifle1 = [113, player_autorifle2] +{ + self.weaponframe = 1; + muzzleflash(); +}; + +void() player_autorifle2 = [114, player_autorifle3] +{ + self.weaponframe = 2; +}; + +void() player_autorifle3 = [118, player_run] +{ + self.weaponframe = 6; +}; + +void() player_axe1 = [119, player_axe2] +{ + self.weaponframe = 1; +}; + +void() player_axe2 = [120, player_axe3] +{ + self.weaponframe = 2; +}; + +void() player_axe3 = [121, player_axe4] +{ + self.weaponframe = 3; + if (self.current_weapon == 16) + { + W_FireAxe(); + } + else + { + W_FireSpanner(); + } +}; + +void() player_axe4 = [122, player_run] +{ + self.weaponframe = 4; +}; + +void() player_axeb1 = [125, player_axeb2] +{ + self.weaponframe = 5; +}; + +void() player_axeb2 = [126, player_axeb3] +{ + self.weaponframe = 6; +}; + +void() player_axeb3 = [127, player_axeb4] +{ + self.weaponframe = 7; + if (self.current_weapon == 16) + { + W_FireAxe(); + } + else + { + W_FireSpanner(); + } +}; + +void() player_axeb4 = [128, player_run] +{ + self.weaponframe = 8; +}; + +void() player_axec1 = [131, player_axec2] +{ + self.weaponframe = 1; +}; + +void() player_axec2 = [132, player_axec3] +{ + self.weaponframe = 2; +}; + +void() player_axec3 = [133, player_axec4] +{ + self.weaponframe = 3; + if (self.current_weapon == 16) + { + W_FireAxe(); + } + else + { + W_FireSpanner(); + } +}; + +void() player_axec4 = [134, player_run] +{ + self.weaponframe = 4; +}; + +void() player_axed1 = [137, player_axed2] +{ + self.weaponframe = 5; +}; + +void() player_axed2 = [138, player_axed3] +{ + self.weaponframe = 6; +}; + +void() player_axed3 = [139, player_axed4] +{ + self.weaponframe = 7; + if (self.current_weapon == 16) + { + W_FireAxe(); + } + else + { + W_FireSpanner(); + } +}; + +void() player_axed4 = [140, player_run] +{ + self.weaponframe = 8; +}; + +void() player_chain1 = [137, player_chain1a] +{ + self.weaponframe = 1; + Throw_Grapple(); +}; + +void() player_chain1a = [137, player_chain2] +{ + self.weaponframe = 2; +}; + +void() player_chain2 = [138, player_chain2a] +{ + self.weaponframe = 3; +}; + +void() player_chain2a = [138, player_chain3] +{ + self.weaponframe = 4; +}; + +void() player_chain3 = [139, player_chain3] +{ + self.weaponframe = 6; + if (!(self.hook_out)) + { + player_chain5(); + return; + } + if (vlen(self.velocity) >= 750) + { + player_chain4(); + return; + } +}; + +void() player_chain4 = [73, player_chain4] +{ + self.weaponframe = 6; + if (!(self.hook_out)) + { + player_chain5(); + return; + } + if (vlen(self.velocity) < 750) + { + player_chain3(); + return; + } +}; + +void() player_chain5 = [140, player_run] +{ + self.weaponframe = TF_FLARE_LIT; +}; + +void() player_medikit1 = [119, player_medikit2] +{ + self.weaponframe = 1; +}; + +void() player_medikit2 = [120, player_medikit3] +{ + self.weaponframe = 2; +}; + +void() player_medikit3 = [121, player_medikit4] +{ + self.weaponframe = 3; + W_FireMedikit(); + W_FireBioweapon(); +}; + +void() player_medikit4 = [122, player_run] +{ + self.weaponframe = 4; +}; + +void() player_medikitb1 = [125, player_medikitb2] +{ + self.weaponframe = 5; +}; + +void() player_medikitb2 = [126, player_medikitb3] +{ + self.weaponframe = 6; +}; + +void() player_medikitb3 = [127, player_medikitb4] +{ + self.weaponframe = 7; + W_FireMedikit(); + W_FireBioweapon(); +}; + +void() player_medikitb4 = [128, player_run] +{ + self.weaponframe = 8; +}; + +void() player_medikitc1 = [131, player_medikitc2] +{ + self.weaponframe = 1; +}; + +void() player_medikitc2 = [132, player_medikitc3] +{ + self.weaponframe = 2; +}; + +void() player_medikitc3 = [133, player_medikitc4] +{ + self.weaponframe = 3; + W_FireMedikit(); + W_FireBioweapon(); +}; + +void() player_medikitc4 = [134, player_run] +{ + self.weaponframe = 4; +}; + +void() player_medikitd1 = [137, player_medikitd2] +{ + self.weaponframe = 5; +}; + +void() player_medikitd2 = [138, player_medikitd3] +{ + self.weaponframe = 6; +}; + +void() player_medikitd3 = [139, player_medikitd4] +{ + self.weaponframe = 7; + W_FireMedikit(); + W_FireBioweapon(); +}; + +void() player_medikitd4 = [140, player_run] +{ + self.weaponframe = 8; +}; + +void() player_bioweapon1 = [119, player_bioweapon2] +{ + self.weaponframe = 1; +}; + +void() player_bioweapon2 = [120, player_bioweapon3] +{ + self.weaponframe = 2; +}; + +void() player_bioweapon3 = [121, player_bioweapon4] +{ + self.weaponframe = 3; + W_FireBioweapon(); + W_FireMedikit(); +}; + +void() player_bioweapon4 = [122, player_run] +{ + self.weaponframe = 4; +}; + +void() player_bioweaponb1 = [125, player_bioweaponb2] +{ + self.weaponframe = 5; +}; + +void() player_bioweaponb2 = [126, player_bioweaponb3] +{ + self.weaponframe = 6; +}; + +void() player_bioweaponb3 = [127, player_bioweaponb4] +{ + self.weaponframe = 7; + W_FireBioweapon(); + W_FireMedikit(); +}; + +void() player_bioweaponb4 = [128, player_run] +{ + self.weaponframe = 8; +}; + +void() player_bioweaponc1 = [131, player_bioweaponc2] +{ + self.weaponframe = 1; +}; + +void() player_bioweaponc2 = [132, player_bioweaponc3] +{ + self.weaponframe = 2; +}; + +void() player_bioweaponc3 = [133, player_bioweaponc4] +{ + self.weaponframe = 3; + W_FireBioweapon(); + W_FireMedikit(); +}; + +void() player_bioweaponc4 = [134, player_run] +{ + self.weaponframe = 4; +}; + +void() player_bioweapond1 = [137, player_bioweapond2] +{ + self.weaponframe = 5; +}; + +void() player_bioweapond2 = [138, player_bioweapond3] +{ + self.weaponframe = 6; +}; + +void() player_bioweapond3 = [139, player_bioweapond4] +{ + self.weaponframe = 7; + W_FireBioweapon(); + W_FireMedikit(); +}; + +void() player_bioweapond4 = [140, player_run] +{ + self.weaponframe = 8; +}; + +void() player_nail1 = [103, player_nail2] +{ + muzzleflash(); + if (!(self.button0) || intermission_running) + { + player_run(); + return; + } + self.weaponframe = self.weaponframe + 1; + if (self.weaponframe == 9) + { + self.weaponframe = 1; + } + SuperDamageSound(); + W_FireSpikes(); + //Attack_Finished(0.2); +}; + +void() player_nail2 = [104, player_nail1] +{ + if (!(self.button0) || intermission_running) + { + player_run(); + return; + } + self.weaponframe = self.weaponframe + 1; + if (self.weaponframe == 9) + { + self.weaponframe = 1; + } + SuperDamageSound(); + W_FireSpikes(); + //Attack_Finished(0.2); +}; + +void() player_assaultcannonup1 = [103, player_assaultcannonup2] +{ + if (!(self.button0) || (self.ammo_shells < 1) || intermission_running) + { + self.tfstate = self.tfstate - (self.tfstate & 65536); + if (self.tfstate & 131072) + { + self.tfstate = self.tfstate - (self.tfstate & 131072); + } + TeamFortress_SetSpeed(self); + self.count = 1; + self.heat = TF_FLARE_LIT; + player_assaultcannondown1(); + return; + } + self.fire_held_down = 1; + + if (self.heat == 1) + { + sound(self, 1, "weapons/chngnu1a.wav", 1, 1); + } + SuperDamageSound(); + Attack_Finished(0.1); + if (self.heat != 2 && self.heat != 4) + { + if (self.weaponframe >= 3) + { + self.weaponframe = TF_FLARE_LIT; + } + else + { + self.weaponframe = self.weaponframe + 1; + } + } + self.heat = self.heat + 1; + if (self.heat >= 7) + { + self.heat = TF_FLARE_LIT; + player_assaultcannon1(); + } +}; + +void() player_assaultcannonup2 = [103, player_assaultcannonup1] +{ + if (!(self.button0) || (self.ammo_shells < 1) || intermission_running) + { + self.tfstate = self.tfstate - (self.tfstate & 65536); + + if (self.tfstate & 131072) + { + self.tfstate = self.tfstate - (self.tfstate & 131072); + } + TeamFortress_SetSpeed(self); + self.count = 1; + self.heat = TF_FLARE_LIT; + player_assaultcannondown1(); + return; + } + SuperDamageSound(); + Attack_Finished(0.1); + if (self.heat != 2 && self.heat != 4 && self.heat != 7) + { + if (self.weaponframe == 2 && self.heat >= 9) + { + self.weaponframe = TF_FLARE_LIT; + } + else + { + if (self.weaponframe >= 3) + { + self.weaponframe = TF_FLARE_LIT; + } + else + { + self.weaponframe = self.weaponframe + 1; + } + } + } + self.heat = self.heat + 1; + if (self.heat >= 13) + { + self.heat = TF_FLARE_LIT; + player_assaultcannon1(); + } +}; + +void() player_assaultcannon1 = [103, player_assaultcannon2] +{ + muzzleflash(); + sound(self, 1, "weapons/asscan2.wav", 1, 1); + if (!(self.button0) || (self.ammo_shells < 1) || intermission_running) + { + if (self.tfstate & 131072) + { + self.tfstate = self.tfstate - (self.tfstate & 131072); + } + + TeamFortress_SetSpeed(self); + self.weaponframe = TF_FLARE_LIT; + self.count = 1; + player_assaultcannondown1(); + return; + } + if (self.weaponframe == 2) + { + self.weaponframe = 4; + } + else + { + self.weaponframe = 2; + } + SuperDamageSound(); + W_FireAssaultCannon(); + Attack_Finished(0.1); +}; + +void() player_assaultcannon2 = [104, player_assaultcannon1] +{ + if (!(self.button0) || (self.ammo_shells < 1) || intermission_running) + { + if (self.tfstate & 131072) + { + self.tfstate = self.tfstate - (self.tfstate & 131072); + } + + TeamFortress_SetSpeed(self); + self.weaponframe = TF_FLARE_LIT; + self.count = 1; + player_assaultcannondown1(); + return; + } + if (self.weaponframe == 2) + { + self.weaponframe = 4; + } + else + { + self.weaponframe = 2; + } + SuperDamageSound(); + W_FireAssaultCannon(); + self.heat = self.heat + 0.1; + stuffcmd(self, "bf\n"); + Attack_Finished(0.1); +}; + +void() player_assaultcannondown1 = [103, player_assaultcannondown1] +{ + + if (self.count == 1) + { + sound(self, 1, "weapons/chngnd1a.wav", 1, 1); + } + if (self.count >= 15) + { + self.heat = TF_FLARE_LIT; + self.fire_held_down = TF_FLARE_LIT; + self.tfstate = self.tfstate - (self.tfstate & 65536); + TeamFortress_SetSpeed(self); + if (self.ammo_shells < 1 || self.ammo_cells < 6) + { + self.current_weapon = W_BestWeapon(); + W_SetCurrentAmmo(); + W_PrintWeaponMessage(); + return; + } + player_run(); + return; + } + if (self.count != 8 && self.count != 10 && self.count != 12 && self.count != 14) + { + if (self.weaponframe == 3) + { + self.weaponframe = TF_FLARE_LIT; + } + else + { + self.weaponframe = self.weaponframe + 1; + } + } + self.count = self.count + 1; + + Attack_Finished(0.1); +}; + +void() player_light1 = [105, player_light2] +{ + muzzleflash(); + if (!(self.button0) || intermission_running) + { + player_run(); + return; + } + self.weaponframe = self.weaponframe + 1; + if (self.weaponframe == 5) + { + self.weaponframe = 1; + } + SuperDamageSound(); + W_FireLightning(); + Attack_Finished(0.2); +}; + +void() player_light2 = [106, player_light1] +{ + if (!(self.button0) || intermission_running) + { + player_run(); + return; + } + self.weaponframe = self.weaponframe + 1; + if (self.weaponframe == 5) + { + self.weaponframe = 1; + } + SuperDamageSound(); + W_FireLightning(); + Attack_Finished(0.2); +}; + +void() player_rocket1 = [107, player_rocket2] +{ + self.weaponframe = 1; + muzzleflash(); +}; + +void() player_rocket2 = [108, player_rocket3] +{ + self.weaponframe = 2; +}; + +void() player_rocket3 = [109, player_rocket4] +{ + self.weaponframe = 3; +}; + +void() player_rocket4 = [110, player_rocket5] +{ + self.weaponframe = 4; +}; + +void() player_rocket5 = [111, player_rocket6] +{ + self.weaponframe = 5; +}; + +void() player_rocket6 = [112, player_run] +{ + self.weaponframe = 6; +}; + +void() PainSound = +{ + local float rs; + if (self.health < TF_FLARE_LIT) + { + return; + } + if (damage_attacker.classname == "teledeath") + { + sound(self, 2, "player/gib2.wav", 1, TF_FLARE_LIT); + return; + } + if (self.watertype == -3 && self.waterlevel == 3) + { + DeathBubbles(1); + if (random() > 0.5) + { + sound(self, 2, "player/drown1.wav", 1, 1); + } + else + { + sound(self, 2, "player/drown2.wav", 1, 1); + } + return; + } + if (self.watertype == -4) + { + if (random() > 0.5) + { + sound(self, 2, "player/lburn1.wav", 1, 1); + } + else + { + sound(self, 2, "player/lburn2.wav", 1, 1); + } + return; + } + if (self.watertype == -5) + { + if (random() > 0.5) + { + sound(self, 2, "player/lburn1.wav", 1, 1); + } + else + { + sound(self, 2, "player/lburn2.wav", 1, 1); + } + return; + } + if (self.pain_finished > time) + { + self.axhitme = TF_FLARE_LIT; + return; + } + self.pain_finished = time + 1; + if (self.axhitme == 1) + { + self.axhitme = TF_FLARE_LIT; + sound(self, 2, "player/axhit1.wav", 1, 1); + return; + } + rs = rint(random() * 5 + 1); + self.noise = ""; + if (rs == 1) + { + self.noise = "player/pain1.wav"; + } + else + { + if (rs == 2) + { + self.noise = "player/pain2.wav"; + } + else + { + if (rs == 3) + { + self.noise = "player/pain3.wav"; + } + else + { + if (rs == 4) + { + self.noise = "player/pain4.wav"; + } + else + { + if (rs == 5) + { + self.noise = "player/pain5.wav"; + } + else + { + self.noise = "player/mpain6.wav"; + } + } + } + } + } + sound(self, 2, self.noise, 1, 1); + return; +}; + +void() player_pain1 = [35, player_pain2] +{ + PainSound(); + self.weaponframe = TF_FLARE_LIT; +}; + +void() player_pain2 = [36, player_pain3] +{ +}; + +void() player_pain3 = [37, player_pain4] +{ +}; + +void() player_pain4 = [38, player_pain5] +{ +}; + +void() player_pain5 = [39, player_pain6] +{ +}; + +void() player_pain6 = [40, player_run] +{ +}; + +void() player_axpain1 = [29, player_axpain2] +{ + PainSound(); + self.weaponframe = TF_FLARE_LIT; +}; + +void() player_axpain2 = [30, player_axpain3] +{ +}; + +void() player_axpain3 = [31, player_axpain4] +{ +}; + +void() player_axpain4 = [32, player_axpain5] +{ +}; + +void() player_axpain5 = [33, player_axpain6] +{ +}; + +void() player_axpain6 = [34, player_run] +{ +}; + +void() player_pain = +{ + if (self.weaponframe) + { + return; + } + if (self.invisible_finished > time) + { + return; + } + if (self.is_feigning) + { + PainSound(); + return; + } + if (self.button0 && self.current_weapon == 32768) + { + return; + } + if (self.current_weapon <= 16) + { + player_axpain1(); + } + else + { + player_pain1(); + } +}; + +void() DeathBubblesSpawn = +{ + if (self.owner.waterlevel != 3) + { + return; + } + newmis = spawn(); + setmodel(newmis, "progs/s_bubble.spr"); + setorigin(newmis, self.owner.origin + '0 0 24'); + newmis.movetype = 8; + newmis.solid = TF_FLARE_LIT; + newmis.velocity = '0 0 15'; + newmis.nextthink = time + 0.5; + newmis.think = bubble_bob; + newmis.classname = "bubble"; + newmis.frame = TF_FLARE_LIT; + newmis.cnt = TF_FLARE_LIT; + setsize(newmis, '-8 -8 -8', '8 8 8'); + self.nextthink = time + 0.1; + self.think = DeathBubblesSpawn; + self.air_finished = self.air_finished + 1; + if (self.air_finished >= self.bubble_count) + { + dremove(self); + } +}; + +void(float num_bubbles) DeathBubbles = +{ + local entity bubble_spawner; + bubble_spawner = spawn(); + setorigin(bubble_spawner, self.origin); + bubble_spawner.movetype = TF_FLARE_LIT; + bubble_spawner.solid = TF_FLARE_LIT; + bubble_spawner.nextthink = time + 0.1; + bubble_spawner.think = DeathBubblesSpawn; + bubble_spawner.air_finished = TF_FLARE_LIT; + bubble_spawner.owner = self; + bubble_spawner.bubble_count = num_bubbles; + return; +}; + +void() DeathSound = +{ + local float rs; + if (self.waterlevel == 3) + { + if (self.is_feigning) + { + DeathBubbles(2); + } + else + { + DeathBubbles(10); + } + sound(self, 2, "player/h2odeath.wav", 1, TF_FLARE_LIT); + return; + } + rs = rint(random() * 4 + 1); + if (rs == 1) + { + self.noise = "player/death1.wav"; + } + if (rs == 2) + { + self.noise = "player/death2.wav"; + } + if (rs == 3) + { + self.noise = "player/death3.wav"; + } + if (rs == 4) + { + self.noise = "player/death4.wav"; + } + if (rs == 5) + { + self.noise = "player/mdeath5.wav"; + } + sound(self, 2, self.noise, 1, 1); + return; +}; + +void() PlayerDead = +{ + self.nextthink = -1; + self.deadflag = 2; +}; + +vector(float dm) VelocityForDamage = +{ + local vector v; + v_x = 100 * crandom(); + v_y = 100 * crandom(); + v_z = 200 + 100 * random(); + if (dm > -50) + { + v = v * 0.7; + } + else + { + if (dm > -200) + { + v = v * 2; + } + else + { + v = v * 10; + } + } + return v; +}; + +void(string gibname, float dm) ThrowGib = +{ + newmis = spawn(); + newmis.origin = self.origin; + setmodel(newmis, gibname); + setsize(newmis, '0 0 0', '0 0 0'); + newmis.velocity = VelocityForDamage(dm); + newmis.movetype = 10; + newmis.solid = 2; + newmis.avelocity_x = random() * 600; + newmis.avelocity_y = random() * 600; + newmis.avelocity_z = random() * 600; + newmis.think = SUB_Remove; + newmis.touch = SUB_Remove; + newmis.ltime = time; + newmis.nextthink = time + 3; + newmis.frame = TF_FLARE_LIT; + newmis.flags = TF_FLARE_LIT; +}; + +void() KickHead = +{ + makevectors (other.v_angle); + self.velocity = other.velocity * 1.5 + v_forward * 128 + '0 0 260' + '0 0 300'*random(); + self.avelocity = crandom() * '0 600 0'; + + sound(self,4,"zombie/z_miss.wav",0.5, 1); +/* + if (other.classname != "player") + { + sound(self, 4, "zombie/z_miss.wav", 0.5, 1); + return; + } + makevectors(other.v_angle); + self.velocity = v_forward * 300 + '0 0 300'; +*/ + return; +}; + +void(string gibname, float dm) ThrowHead = +{ + local string hk; + hk = infokey (world, "headkick"); + setmodel(self, gibname); + self.skin = TF_FLARE_LIT; + self.frame = TF_FLARE_LIT; + self.nextthink = -1; + self.movetype = 10; + self.takedamage = TF_FLARE_LIT; + self.effects = TF_FLARE_LIT; + if (self.classname != "player") + { + self.solid = TF_FLARE_LIT; + } + else + { + if (hk != "off") + { + self.solid = 1; //2 + self.touch = KickHead; + } + } + self.view_ofs = '0 0 8'; + setsize(self, '-16 -16 0', '16 16 56'); + self.velocity = VelocityForDamage(dm); + self.origin_z = self.origin_z - 24; + self.flags = self.flags - (self.flags & 512); + self.avelocity = crandom() * '100 600 50'; +}; + +void(string gibname) HeadShotThrowHead = +{ + setmodel(self, gibname); + self.frame = TF_FLARE_LIT; + self.nextthink = -1; + self.movetype = 10; + self.takedamage = TF_FLARE_LIT; + self.solid = 2; + self.touch = KickHead; + self.view_ofs = '0 0 8'; + setsize(self, '-16 -16 0', '16 16 56'); + self.velocity = normalize(self.head_shot_vector) * 600; + self.origin_z = self.origin_z + 24; + self.flags = self.flags - (self.flags & 512); + self.avelocity = '0 0 0'; +}; + +void() KillPlayer = +{ + self.owner.deadflag = 2; + dremove(self); +}; + +void() GibPlayer = +{ + ThrowHead("progs/h_player.mdl", self.health); + ThrowGib("progs/gib1.mdl", self.health); + ThrowGib("progs/gib2.mdl", self.health); + ThrowGib("progs/gib3.mdl", self.health); + if (deathmsg == 36) + { + newmis = spawn(); + newmis.owner = self; + newmis.think = KillPlayer; + newmis.nextthink = time + 1; + } + else + { + self.deadflag = 2; + } + TeamFortress_SetupRespawn(TF_FLARE_LIT); + if (damage_attacker.classname == "teledeath") + { + sound(self, 2, "player/gib2.wav", 1, TF_FLARE_LIT); + self.respawn_time = self.respawn_time + 2; + return; + } + if (damage_attacker.classname == "teledeath2") + { + sound(self, 2, "player/gib2.wav.wav", 1, TF_FLARE_LIT); + self.respawn_time = self.respawn_time + 2; + return; + } + if (random() <= 0.2) + { + sound(self, TF_FLARE_LIT, "player/gib3.wav", 1, 1); + } + else + { + sound(self, 2, "player/gib2.wav", 1, 1); + } +}; + +void() PlayerDie = +{ + local float i; + local entity te; + if (self.hook_out) + { + Reset_Grapple(self.hook); + Attack_Finished(0.75); + self.hook_out = 1; + } + self.items = self.items - (self.items & 524288); + self.invisible_finished = TF_FLARE_LIT; + self.invincible_finished = TF_FLARE_LIT; + self.super_damage_finished = TF_FLARE_LIT; + self.radsuit_finished = TF_FLARE_LIT; + self.modelindex = modelindex_player; + if (self.tfstate & 16 && self == self.enemy) + { + te = find(world, classname, "timer"); + while (te) + { + if (te.owner == self && te.think == BioInfection_Decay) + { + logfrag(te.enemy, self); + te.enemy.real_frags = te.enemy.real_frags + 1; + if (!(toggleflags & 128)) + { + te.enemy.frags = te.enemy.real_frags; + } + } + te = find(te, classname, "timer"); + } + } + TeamFortress_RemoveTimers(); + if ( (deathmatch || coop) && (!prematch) ) + { + DropBackpack(); + } + self.weaponmodel = ""; + self.view_ofs = '0 0 -8'; + self.deadflag = 1; + self.solid = TF_FLARE_LIT; + self.flags = self.flags - (self.flags & 512); + self.movetype = 6; + if (self.velocity_z < 10) + { + self.velocity_z = self.velocity_z + random() * 300; + } + if (self.health < -40 && !(deathmsg == 18)) + { + GibPlayer(); + return; + } + DeathSound(); + self.angles_x = TF_FLARE_LIT; + self.angles_z = TF_FLARE_LIT; + if (self.current_weapon <= 16) + { + player_die_ax1(); + TeamFortress_SetupRespawn(TF_FLARE_LIT); + return; + } + i = 1 + floor(random() * 6); + if (i == 1) + { + player_diea1(); + } + else + { + if (i == 2) + { + player_dieb1(); + } + else + { + if (i == 3) + { + player_diec1(); + } + else + { + if (i == 4) + { + player_died1(); + } + else + { + player_diee1(); + } + } + } + } + TeamFortress_SetupRespawn(TF_FLARE_LIT); +}; + +void() set_suicide_frame = +{ + if (self.model != "progs/player.mdl") + { + return; + } + setmodel(self, string_null); + setsize(self, '-16 -16 -24', '16 16 32'); +}; + +void() player_diea1 = [50, player_diea2] +{ +}; + +void() player_diea2 = [51, player_diea3] +{ +}; + +void() player_diea3 = [52, player_diea4] +{ +}; + +void() player_diea4 = [53, player_diea5] +{ +}; + +void() player_diea5 = [54, player_diea6] +{ +}; + +void() player_diea6 = [55, player_diea7] +{ +}; + +void() player_diea7 = [56, player_diea8] +{ +}; + +void() player_diea8 = [57, player_diea9] +{ +}; + +void() player_diea9 = [58, player_diea10] +{ +}; + +void() player_diea10 = [59, player_diea11] +{ +}; + +void() player_diea11 = [60, player_diea11] +{ + PlayerDead(); +}; + +void() player_dieb1 = [61, player_dieb2] +{ +}; + +void() player_dieb2 = [62, player_dieb3] +{ +}; + +void() player_dieb3 = [63, player_dieb4] +{ +}; + +void() player_dieb4 = [64, player_dieb5] +{ +}; + +void() player_dieb5 = [65, player_dieb6] +{ +}; + +void() player_dieb6 = [66, player_dieb7] +{ +}; + +void() player_dieb7 = [67, player_dieb8] +{ +}; + +void() player_dieb8 = [68, player_dieb9] +{ +}; + +void() player_dieb9 = [69, player_dieb9] +{ + PlayerDead(); +}; + +void() player_diec1 = [70, player_diec2] +{ +}; + +void() player_diec2 = [71, player_diec3] +{ +}; + +void() player_diec3 = [72, player_diec4] +{ +}; + +void() player_diec4 = [73, player_diec5] +{ +}; + +void() player_diec5 = [74, player_diec6] +{ +}; + +void() player_diec6 = [75, player_diec7] +{ +}; + +void() player_diec7 = [76, player_diec8] +{ +}; + +void() player_diec8 = [77, player_diec9] +{ +}; + +void() player_diec9 = [78, player_diec10] +{ +}; + +void() player_diec10 = [79, player_diec11] +{ +}; + +void() player_diec11 = [80, player_diec12] +{ +}; + +void() player_diec12 = [81, player_diec13] +{ +}; + +void() player_diec13 = [82, player_diec14] +{ +}; + +void() player_diec14 = [83, player_diec15] +{ +}; + +void() player_diec15 = [84, player_diec15] +{ + PlayerDead(); +}; + +void() player_died1 = [85, player_died2] +{ +}; + +void() player_died2 = [86, player_died3] +{ +}; + +void() player_died3 = [87, player_died4] +{ +}; + +void() player_died4 = [88, player_died5] +{ +}; + +void() player_died5 = [89, player_died6] +{ +}; + +void() player_died6 = [90, player_died7] +{ +}; + +void() player_died7 = [91, player_died8] +{ +}; + +void() player_died8 = [92, player_died9] +{ +}; + +void() player_died9 = [93, player_died9] +{ + PlayerDead(); +}; + +void() player_diee1 = [94, player_diee2] +{ +}; + +void() player_diee2 = [95, player_diee3] +{ +}; + +void() player_diee3 = [96, player_diee4] +{ +}; + +void() player_diee4 = [97, player_diee5] +{ +}; + +void() player_diee5 = [98, player_diee6] +{ +}; + +void() player_diee6 = [99, player_diee7] +{ +}; + +void() player_diee7 = [100, player_diee8] +{ +}; + +void() player_diee8 = [101, player_diee9] +{ +}; + +void() player_diee9 = [102, player_diee9] +{ + PlayerDead(); +}; + +void() player_die_ax1 = [41, player_die_ax2] +{ +}; + +void() player_die_ax2 = [42, player_die_ax3] +{ +}; + +void() player_die_ax3 = [43, player_die_ax4] +{ +}; + +void() player_die_ax4 = [44, player_die_ax5] +{ +}; + +void() player_die_ax5 = [45, player_die_ax6] +{ +}; + +void() player_die_ax6 = [46, player_die_ax7] +{ +}; + +void() player_die_ax7 = [47, player_die_ax8] +{ +}; + +void() player_die_ax8 = [48, player_die_ax9] +{ +}; + +void() player_die_ax9 = [49, player_die_ax9] +{ + PlayerDead(); +}; + diff --git a/prematch.pqc b/prematch.pqc new file mode 100644 index 0000000..6f62703 --- /dev/null +++ b/prematch.pqc @@ -0,0 +1,385 @@ + +// Prematch by PabloTheGreat +// +// rcon serverinfo prematch on +// Activates prematch next time the map cycles +// +// rcon serverinfo pm_time n +// Sets the length of prematch in minutes + +float teamfrags; +//entity prematch2; + +void () PrematchCountDown = +{ + local string st, stcenterpring; + local entity te, flag01, flag02, flag03, flag04, flag05, flag06, flag07, flag08, flag09, flag10, flag11, flag12, flag13, flag14, flag15, flag16, flag17, flag18, flag19; + + if (self.health == 0) // Prematch is over. + { + // Clear frags. Send a msg. Toggle TeamFrags properly. + +#ifdef clan_progs + if (clan_prematch == -1) + { + clan_prematch = 0; + timelimit = cvar ("timelimit") * 60; // resets game timelimit + pointer_timeleft.no_grenades_1 = 0; /// + } +#endif + te = find(world, classname, "player"); + while (te) + { + //bprint (2, "MATCH BEGINS NOW\n"); + CenterPrint2(te, st, "Attack!"); + stuffcmd(te, "bf\n"); + T_Damage (te, te, te, 500); + te.real_frags = 0; + te.frags = 0; + te = find(te, classname, "player"); + } + + if (teamfrags == 0) + { + toggleflags = toggleflags & (toggleflags - 128); + } + + // flags + flag01 = find (world, classname, "item_tfgoal"); + while (flag01) + { + flag01.touch = item_tfgoal_touch; + flag01 = find (flag01, classname, "item_tfgoal"); + } + flag02 = find (world, classname, "info_tfgoal"); + while (flag02) + { + flag02.goal_activation = flag02.DropFlagDelay; + flag02 = find (flag02, classname, "info_tfgoal"); + } + flag03 = find (world, classname, "item_armor1"); + while (flag03) + { + flag03.touch = armor_touch; + flag03 = find (flag03, classname, "item_armor1"); + } + flag04 = find (world, classname, "item_armor2"); + while (flag04) + { + flag04.touch = armor_touch; + flag04 = find (flag04, classname, "item_armor2"); + } + flag05 = find (world, classname, "item_armorInv"); + while (flag05) + { + flag05.touch = armor_touch; + flag05 = find (flag05, classname, "item_armorInv"); + } + flag06 = find (world, classname, "item_artifact_envirosuit"); + while (flag06) + { + flag06.touch = powerup_touch; + flag06 = find (flag06, classname, "item_artifact_envirosuit"); + } + flag07 = find (world, classname, "item_artifact_invisibility"); + while (flag07) + { + flag07.touch = powerup_touch; + flag07 = find (flag07, classname, "item_artifact_invisibility"); + } + flag08 = find (world, classname, "item_artifact_invulnerability"); + while (flag08) + { + flag08.touch = powerup_touch; + flag08 = find (flag08, classname, "item_artifact_invulnerability"); + } + flag09 = find (world, classname, "item_artifact_super_damage"); + while (flag09) + { + flag09.touch = powerup_touch; + flag09 = find (flag09, classname, "item_artifact_super_damage"); + } + flag10 = find (world, classname, "item_cells"); + while (flag10) + { + flag10.touch = ammo_touch; + flag10 = find (flag10, classname, "item_cells"); + } + flag11 = find (world, classname, "item_health"); + while (flag11) + { + flag11.touch = health_touch; + flag11 = find (flag11, classname, "item_health"); + } + flag12 = find (world, classname, "item_key1"); + while (flag12) + { + flag12.touch = key_touch; + flag12 = find (flag12, classname, "item_key1"); + } + flag13 = find (world, classname, "item_key2"); + while (flag13) + { + flag13.touch = key_touch; + flag13 = find (flag13, classname, "item_key2"); + } + flag14 = find (world, classname, "item_rockets"); + while (flag14) + { + flag14.touch = ammo_touch; + flag14 = find (flag14, classname, "item_rockets"); + } + flag15 = find (world, classname, "item_shells"); + while (flag15) + { + flag15.touch = ammo_touch; + flag15 = find (flag15, classname, "item_shells"); + } + flag16 = find (world, classname, "item_sigil"); //gold. still not sure what sigil is *shrug* + while (flag16) + { + flag16.touch = sigil_touch; + flag16 = find (flag16, classname, "item_sigil"); + } + flag17 = find (world, classname, "item_spikes"); + while (flag17) + { + flag17.touch = ammo_touch; + flag17 = find (flag17, classname, "item_spikes"); + } + flag18 = find (world, classname, "item_weapon"); + while (flag18) + { + flag18.touch = weapon_touch; + flag18 = find (flag18, classname, "item_weapon"); + } + flag19 = find (world, classname, "func_button"); + while (flag19) + { + flag19.touch = button_touch; + flag19 = find (flag19, classname, "func_button"); + } + +/* // blue flag/key + te = Finditem(2); + if (te != world) + { + te.touch = item_tfgoal_touch; + } + + // any other various flags + te = find(world, mdl, "progs/tf_flag.mdl"); + while (te) + { + te.touch = item_tfgoal_touch; + te = find(te, mdl, "progs/tf_flag.mdl"); + }*/ + + prematch = 0; + dremove(self); + return; + } + + + //MTF players like the centerprint as well. + // Todo: why can't I get the countdown to be longer than 3 seconds? + if (self.health == 3) { + stcenterpring = "\n3..."; + bprint (self, "3 seconds.\n"); + } + else if (self.health == 2) { + stcenterpring = "\n\n2..."; + bprint (self, "2 seconds.\n"); + } + else if (self.health == 1) { + stcenterpring = "\n\n\n1..."; + bprint (self, "1 second.\n"); + } + + te = find(world, classname, "player"); + while (te != world) + { + CenterPrint(te, stcenterpring); + stuffcmd(te, "bf\n"); + te = find(te, classname, "player"); + } + self.health = self.health - 1; + self.nextthink = (time + 1); +} + +void () PrematchThink = +{ + local entity te; + local string st; + + if (self.health <= 0) + { + self.health = 3; + self.think = PrematchCountDown; + self.nextthink = (time + 1); + return; + } + else + { + st = ftos(self.health); + + te = find(world, classname, "player"); + while (te) + { + if (self.health == 1) + { + CenterPrint2(te, st, "minute left!"); + } + else + { + CenterPrint2(te, st, "minutes left!"); + } + stuffcmd(te, "bf\n"); + te = find(te, classname, "player"); + } + self.nextthink = (time + 60); + } + + self.health = self.health - 1; +} + +void () SetUpPrematch = +{ + local entity flag01, flag02, flag03, flag04, flag05, flag06, flag07, flag08, flag09, flag10, flag11, flag12, flag13, flag14, flag15, flag16, flag17, flag18, flag19; + + // Turn on teamfrags and remember what to set it back to + if (toggleflags & 128) + { + teamfrags = 1; + } + else + { + teamfrags = 0; + toggleflags = toggleflags | 128; + } + + flag01 = find (world, classname, "item_tfgoal"); + while (flag01) + { + flag01.touch = SUB_Null; + flag01 = find (flag01, classname, "item_tfgoal"); + } + flag02 = find (world, classname, "info_tfgoal"); + while (flag02) + { + flag02.DropFlagDelay = flag02.goal_activation; + flag02.goal_activation = 0; + flag02 = find (flag02, classname, "info_tfgoal"); + } + flag03 = find (world, classname, "item_armor1"); + while (flag03) + { + flag03.touch = SUB_Null; + flag03 = find (flag03, classname, "item_armor1"); + } + flag04 = find (world, classname, "item_armor2"); + while (flag04) + { + flag04.touch = SUB_Null; + flag04 = find (flag04, classname, "item_armor2"); + } + flag05 = find (world, classname, "item_armorInv"); + while (flag05) + { + flag05.touch = SUB_Null; + flag05 = find (flag05, classname, "item_armorInv"); + } + flag06 = find (world, classname, "item_artifact_envirosuit"); + while (flag06) + { + flag06.touch = SUB_Null; + flag06 = find (flag06, classname, "item_artifact_invisibility"); + } + flag07 = find (world, classname, "item_armor2"); + while (flag07) + { + flag07.touch = SUB_Null; + flag07 = find (flag07, classname, "item_artifact_invisibility"); + } + flag08 = find (world, classname, "item_artifact_invulnerability"); + while (flag08) + { + flag08.touch = SUB_Null; + flag08 = find (flag08, classname, "item_artifact_invulnerability"); + } + flag09 = find (world, classname, "item_artifact_super_damage"); + while (flag09) + { + flag09.touch = SUB_Null; + flag09 = find (flag09, classname, "item_artifact_super_damage"); + } + flag10 = find (world, classname, "item_cells"); + while (flag10) + { + flag10.touch = SUB_Null; + flag10 = find (flag10, classname, "item_cells"); + } + flag11 = find (world, classname, "item_health"); + while (flag11) + { + flag11.touch = SUB_Null; + flag11 = find (flag11, classname, "item_health"); + } + flag12 = find (world, classname, "item_key1"); + while (flag12) + { + flag12.touch = SUB_Null; + flag12 = find (flag12, classname, "item_key1"); + } + flag13 = find (world, classname, "item_key2"); + while (flag13) + { + flag13.touch = SUB_Null; + flag13 = find (flag13, classname, "item_key2"); + } + flag14 = find (world, classname, "item_rockets"); + while (flag14) + { + flag14.touch = SUB_Null; + flag14 = find (flag14, classname, "item_rockets"); + } + flag15 = find (world, classname, "item_shells"); + while (flag15) + { + flag15.touch = SUB_Null; + flag15 = find (flag15, classname, "item_shells"); + } + flag16 = find (world, classname, "item_sigil"); //gold. still not sure what sigil is *shrug* + while (flag16) + { + flag16.touch = SUB_Null; + flag16 = find (flag16, classname, "item_sigil"); + } + flag17 = find (world, classname, "item_spikes"); + while (flag17) + { + flag17.touch = SUB_Null; + flag17 = find (flag17, classname, "item_spikes"); + } + flag18 = find (world, classname, "item_weapon"); + while (flag18) + { + flag18.touch = SUB_Null; + flag18 = find (flag18, classname, "item_weapon"); + } + flag19 = find (world, classname, "func_button"); + while (flag19) + { + flag19.touch = SUB_Null; + flag19 = find (flag19, classname, "func_button"); + } + + // "time" starts up from 3 and increases by 1 per second + newmis = spawn (); + newmis.classname = "pmtimer"; + newmis.nextthink = (time + ((prematch - floor (prematch)) * 60)); //wtf does this line do? it controls pm.. + newmis.think = PrematchThink; + newmis.health = floor (prematch); + pointer_prematchtimer = newmis; +} + diff --git a/progs.src b/progs.src new file mode 100644 index 0000000..ed3b7a4 --- /dev/null +++ b/progs.src @@ -0,0 +1,54 @@ +qwprogs.dat + +defs.pqc +qw.pqc +debug.pqc +menu.pqc +subs.pqc +combat.pqc +items.pqc +weapons.pqc +world.pqc +status.pqc +client.pqc +player.pqc +doors.pqc +buttons.pqc +triggers.pqc +tforttm.pqc +plats.pqc +misc.pqc +monsters.pqc +ai.pqc +fight.pqc +dog.pqc +//zombie.pqc +fish.pqc +flare.pqc +sentry.pqc +boss.pqc +pyro.pqc +spy.pqc +demoman.pqc +scout.pqc +engineer.pqc +tsoldier.pqc +sniper.pqc +medic.pqc +tfort.pqc +tforthlp.pqc +tfortmap.pqc +hook.pqc +ctf.pqc +coop.pqc +actions.pqc +hiprot.pqc +missiles.pqc +mturret.pqc +// pablo. i like cameras. +camera.pqc +prematch.pqc +rpg.pqc +xavior.pqc +rankings.pqc // Ranking system (taken from United) +clan.pqc // defines clan parameters \ No newline at end of file diff --git a/pyro.pqc b/pyro.pqc new file mode 100644 index 0000000..230969f --- /dev/null +++ b/pyro.pqc @@ -0,0 +1,718 @@ +void() NapalmGrenadeTouch; +//void (vector org, entity shooter) NapalmGrenadeLaunch ; +void() Napalm_touch; +float (string id_flame) RemoveFlameFromQueue; + + +entity(string type, entity p_owner) FlameSpawn = +{ + num_world_flames = num_world_flames + TF_FLARE_OFF; + while (num_world_flames > 45) + { + if (!RemoveFlameFromQueue(type)) + { + return world; + } + } + newmis = spawn(); + if (type == "1") + { + newmis.movetype = 9; + newmis.solid = 2; + newmis.effects = 8; + newmis.flame_id = "1"; + setmodel(newmis, "progs/flame2.mdl"); + setsize(newmis, '0 0 0', '0 0 0'); + } + else + { + if (type == "2") + { + newmis.movetype = 10; + newmis.solid = 2; + newmis.flame_id = "2"; + setmodel(newmis, "progs/flame2.mdl"); + newmis.frame = TF_FLARE_OFF; + setsize(newmis, '0 0 0', '0 0 0'); + } + else + { + if (type == "3") + { + newmis.movetype = 9; + newmis.solid = 2; + newmis.flame_id = "3"; + setmodel(newmis, "progs/flame2.mdl"); + setsize(newmis, '0 0 0', '0 0 0'); + } + else + { + if (type == "4") + { + newmis.movetype = 9; + newmis.solid = 2; + newmis.flame_id = "4"; + setmodel(newmis, "progs/flame2.mdl"); + newmis.frame = TF_FLARE_OFF; + setsize(newmis, '0 0 0', '0 0 0'); + } + } + } + } + newmis.owner = p_owner; + return newmis; +}; + +void(entity this) FlameDestroy = +{ + num_world_flames = num_world_flames - TF_FLARE_OFF; + remove(this); +}; + +float(string id_flame) RemoveFlameFromQueue = +{ + local entity tmp; + if (num_world_flames < 45) + { + dprint("ERROR in RemoveFlameFromQueue\n"); + return 0; + } + num_world_flames = num_world_flames - TF_FLARE_OFF; + tmp = find(world, flame_id, "4"); + if (!tmp) + { + if (id_flame == "4") + { + return TF_FLARE_LIT; + } + tmp = find(world, flame_id, "3"); + if (!tmp) + { + if (id_flame == "3") + { + return TF_FLARE_LIT; + } + tmp = find(world, flame_id, "2"); + if (!tmp) + { + if (id_flame == "2") + { + return TF_FLARE_LIT; + } + tmp = find(world, flame_id, "1"); + if (!tmp) + { + dprint("\n\nRemoveFlameFromQueue():BOOM!\n"); + dprint("!! please report this bug !!\n"); + return TF_FLARE_LIT; + } + } + } + } + remove(tmp); + return TF_FLARE_OFF; +}; + +void() Remove = +{ + FlameDestroy(self); +}; + +void() NapalmGrenadeTouch = +{ + sound(self, TF_FLARE_OFF, "weapons/bounce.wav", TF_FLARE_OFF, TF_FLARE_OFF); + if (self.velocity == '0 0 0') + { + self.avelocity = '0 0 0'; + } +}; + +void() T_IncendiaryTouch = +{ + local float damg; + local entity head; + local entity _l_9052; + if (other == self.owner) + { + return; + } + if (pointcontents(self.origin) == -6) + { + remove(self); + return; + } + self.effects = self.effects | 4; +// damg = 30 + random() * 20; + damg = 25 + random() * 20; + if (other.health) + { + deathmsg = 15; + TF_T_Damage(other, self, self.owner, damg, 2, 16); + } + head = findradius(self.origin, 130); + while (head) + { + if (head.takedamage) + { + deathmsg = 15; + TF_T_Damage(head, self, self.owner, 10, 2, 16); + other = head; + Napalm_touch(); + if (other.classname == "player") + { + + if (((self.owner.stats_on == 1) && (self.owner != head))) + { + _l_9052 = self; + self = self.owner; + Stats_Hit (16384); + self = _l_9052; + } + stuffcmd(other, "bf\nbf\n"); + } + } + head = head.chain; + } + self.origin = self.origin - 8 * normalize(self.velocity); + WriteByte(4, 23); + WriteByte(4, 3); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); + multicast(self.origin, TF_FLARE_OFF); + dremove(self); +}; + +void () NapalmGrenadeExplode = +{ + local entity _l_9070; + + traceline (self.origin, self.origin, 1, self); + if ((trace_inwater == 1)) + { + sound (self, 0, "misc/vapeur2.wav", 1, 1); + dremove (self); + return; + } + deathmsg = 15; + T_RadiusDamage (self, self.owner, 20, world); + self.playerclass = (self.playerclass + 1); + self.nextthink = (time + 0.750000); + self.effects = (self.effects | 4); + _l_9070 = findradius (self.origin, 130); + while (_l_9070) + { + if (_l_9070.takedamage) + { + deathmsg = 15; + TF_T_Damage (_l_9070, self, self.owner, 30, 2, 16); + other = _l_9070; + Napalm_touch (); + if ((other.classname == "player")) + { + stuffcmd (other, "bf\nbf\n"); + KickPlayer (-6, other); + } + } + _l_9070 = _l_9070.chain; + } + WriteByte (4, 23); + WriteByte (4, 3); + WriteCoord (4, self.origin_x); + WriteCoord (4, self.origin_y); + WriteCoord (4, self.origin_z); + multicast (self.origin, 1); + if ((self.playerclass > 8)) + { + self.owner.active_grenades_2 = (self.owner.active_grenades_2 - 1); + self.think = SUB_Remove; + } +}; + +void() FlameFollow = +{ + local vector dir; + local vector vtemp; + local vector boundsize; + local float damage; + vtemp = self.enemy.absmin; + boundsize = self.enemy.size; + self.solid = TF_FLARE_LIT; + self.movetype = TF_FLARE_LIT; + if (self.enemy.numflames == TF_FLARE_LIT) + { + FlameDestroy(self); + return; + } + if (self.enemy.health < TF_FLARE_OFF) + { + deathmsg = 15; + T_RadiusDamage(self, self, 10, self); + self.enemy.numflames = TF_FLARE_LIT; + FlameDestroy(self); + return; + } + if (self.enemy.armorclass & 16) + { + if (self.enemy.armorvalue > TF_FLARE_LIT) + { + self.health = TF_FLARE_LIT; + } + } + if (self.health < TF_FLARE_OFF) + { + if (self.effects != 8 || self.enemy.numflames <= TF_FLARE_OFF) + { + self.enemy.numflames = self.enemy.numflames - TF_FLARE_OFF; + self.enemy.numflames = TF_FLARE_LIT; + FlameDestroy(self); + return; + } + } + self.health = self.health - TF_FLARE_OFF; + if (vlen(self.enemy.velocity) < 50) + { + dir_x = random() * boundsize_x / 2 + boundsize_x / 4; + dir_y = random() * boundsize_y / 2 + boundsize_y / 4; + dir_z = random() * boundsize_z / 3 + boundsize_z / 2; + vtemp = vtemp + dir; + setorigin(self, vtemp); + if (self.model != "progs/flame2.mdl") + { + self.model = "progs/flame2.mdl"; + setmodel(self, self.model); + } + } + else + { + if (self.model == "progs/flame2.mdl") + { + self.model = string_null; + setmodel(self, self.model); + } + } + traceline(self.origin, self.origin, TF_FLARE_OFF, self); + if (trace_inwater == TF_FLARE_OFF) + { + sound(self, 2, "misc/vapeur2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.enemy.numflames = self.enemy.numflames - TF_FLARE_OFF; + FlameDestroy(self); + return; + } + self.nextthink = time + 0.1; + if (self.effects == 8 && self.heat >= 3) + { + damage = self.enemy.numflames * 0.3 * 3; + if (damage < TF_FLARE_OFF) + { + damage = TF_FLARE_OFF; + } + self.heat = TF_FLARE_OFF; + deathmsg = 15; + TF_T_Damage(self.enemy, self, self.owner, damage, 2, 16); + } + else + { + if (self.effects == 8) + { + self.heat = self.heat + TF_FLARE_OFF; + } + } +}; + +void() OnPlayerFlame_touch = +{ + local entity flame; + local vector vtemp; + if (other != world && other.health > TF_FLARE_LIT && other != self.enemy) + { + if (other.numflames >= 3) + { + return; + } + if (other.classname == "player") + { + if (teamplay & 16 && other.team_no > TF_FLARE_LIT && other.team_no == self.owner.team_no) + { + return; + } + CenterPrint(other, "You are on fire!\n"); + stuffcmd(other, "bf\n"); + } + if (other.numflames < TF_FLARE_OFF) + { + flame = FlameSpawn("1", other); + sound(flame, 2, "ambience/fire1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + flame = FlameSpawn("3", other); + if (flame == world) + { + return; + } + } + flame.classname = "fire"; + flame.health = 30; + other.numflames = other.numflames + TF_FLARE_OFF; + flame.velocity = other.velocity; + flame.enemy = other; + flame.touch = OnPlayerFlame_touch; + flame.owner = self.owner; + vtemp = self.origin; + setorigin(flame, vtemp); + flame.nextthink = time + 0.1; + flame.think = FlameFollow; + } +}; + +void() WorldFlame_touch = +{ + local entity flame; + local vector vtemp; + deathmsg = 15; + TF_T_Damage(other, self, self.enemy, 2, 2, 16); + if (other != world && other.solid != TF_FLARE_OFF && other.health > TF_FLARE_LIT) + { + if (other.numflames >= 3) + { + return; + } + if (other.classname == "player") + { + if (teamplay & 16 && other.team_no > TF_FLARE_LIT && other.team_no == self.owner.team_no) + { + return; + } + CenterPrint(other, "You are on fire!\n"); + stuffcmd(other, "bf\n"); + } + if (other.numflames < TF_FLARE_OFF) + { + flame = FlameSpawn("1", other); + sound(flame, 2, "ambience/fire1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + flame = FlameSpawn("3", other); + if (flame == world) + { + return; + } + } + flame.classname = "fire"; + flame.health = TF_FLARE_LIT; + other.numflames = other.numflames + TF_FLARE_OFF; + flame.velocity = other.velocity; + flame.enemy = other; + flame.touch = OnPlayerFlame_touch; + flame.owner = self.owner; + vtemp = self.origin + '0 0 10'; + setorigin(flame, vtemp); + flame.nextthink = time + 0.15; + flame.think = FlameFollow; + } +}; + +void() Flamer_stream_touch = +{ + local entity flame; + local vector vtemp; + local entity _l_9140; + + if (other.classname == "fire") + { + return; + } + if (other != world) + { + if (other.takedamage == 2 && other.health > TF_FLARE_LIT) + { + deathmsg = 15; + TF_T_Damage(other, self, self.owner, 10, 2, 16); + if (other.numflames >= 3) + { + return; + } + if (other.armorclass & 16) + { + if (other.armorvalue > TF_FLARE_LIT) + { + return; + } + } + if (other.classname == "player") + { + if (((self.owner.stats_on == 1) && (self.owner != other))) + { + _l_9140 = self; + self = self.owner; + Stats_Hit (4096); + self = _l_9140; + } + if (teamplay & 16 && other.team_no > TF_FLARE_LIT && other.team_no == self.owner.team_no) + { + return; + } + CenterPrint(other, "You are on fire!\n"); + stuffcmd(other, "bf\n"); + } + if (other.numflames < TF_FLARE_OFF) + { + flame = FlameSpawn("1", other); + sound(flame, 2, "ambience/fire1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + flame = FlameSpawn("3", other); + if (flame == world) + { + return; + } + } + flame.classname = "fire"; + flame.health = 30; + other.numflames = other.numflames + TF_FLARE_OFF; + flame.velocity = other.velocity; + flame.enemy = other; + flame.touch = OnPlayerFlame_touch; + flame.owner = self.owner; + vtemp = self.origin; + setorigin(flame, vtemp); + flame.nextthink = time + 0.1; + flame.think = FlameFollow; + } + } + else + { + if (random() < 0.4) + { + remove(self); + return; + } + flame = FlameSpawn("4", other); + if (flame != world) + { + flame.touch = WorldFlame_touch; + flame.classname = "fire"; + vtemp = self.origin + '0 0 10'; + setorigin(flame, vtemp); + flame.nextthink = time + 3; + flame.think = Remove; + flame.enemy = self.owner; + } + remove(self); + } +}; + +void() Napalm_touch = +{ + local entity flame; + local vector vtemp; + if (other.classname == "fire") + { + return; + } + if (other != world) + { + if (other.takedamage == 2 && other.health > TF_FLARE_LIT && other.waterlevel <= TF_FLARE_LIT) + { + deathmsg = 15; + TF_T_Damage(other, self, self.owner, 6, 2, 16); + if (other.numflames >= 3) + { + return; + } + if (other.armorclass & 16 && other.armorvalue > TF_FLARE_LIT) + { + return; + } + if (other.classname == "player" && other.waterlevel <= TF_FLARE_LIT) + { + if (teamplay & 16 && other.team_no > TF_FLARE_LIT && other.team_no == self.owner.team_no) + { + return; + } + CenterPrint(other, "You are on fire!\n"); + stuffcmd(other, "bf\n"); + } + if (other.numflames < TF_FLARE_OFF) + { + flame = FlameSpawn("1", other); + sound(flame, 2, "ambience/fire1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + flame = FlameSpawn("3", other); + if (flame == world) + { + return; + } + } + flame.classname = "fire"; + flame.health = 30; + other.numflames = other.numflames + TF_FLARE_OFF; + flame.velocity = other.velocity; + flame.enemy = other; + if (other.waterlevel > TF_FLARE_LIT) + { + flame.touch = OnPlayerFlame_touch; + } + flame.owner = self.owner; + vtemp = self.origin; + setorigin(flame, vtemp); + flame.nextthink = time + 0.1; + flame.think = FlameFollow; + } + } + else + { + flame = FlameSpawn("4", other); + if (flame != world) + { + flame.touch = WorldFlame_touch; + flame.classname = "fire"; + vtemp = self.origin + '0 0 10'; + setorigin(flame, vtemp); + flame.nextthink = time + 15; + flame.think = Remove; + flame.enemy = self.owner; + } + FlameDestroy(self); + } +}; + +void(float num_bubbles, vector bub_origin) NewBubbles = +{ + local entity bubble_spawner; + bubble_spawner = spawn(); + setorigin(bubble_spawner, bub_origin); + bubble_spawner.movetype = TF_FLARE_LIT; + bubble_spawner.solid = TF_FLARE_LIT; + bubble_spawner.nextthink = time + 0.1; + if (self.classname == "player") + { + bubble_spawner.owner = self; + } + else + { + bubble_spawner.owner = self.enemy; + } + bubble_spawner.think = DeathBubblesSpawn; + bubble_spawner.bubble_count = num_bubbles; + return; +}; + +void() W_FireFlame = +{ + local entity flame; + local float rn; + if (self.waterlevel > 2) + { + makevectors(self.v_angle); + NewBubbles(2, self.origin + v_forward * 64); + rn = random(); + if (rn < 0.5) + { + sound(self, TF_FLARE_OFF, "misc/water1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + sound(self, TF_FLARE_OFF, "misc/water2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + return; + } + if (self.playerclass == 7) + { + self.currentammo = self.ammo_cells = self.ammo_cells - 2; + sound(self, TF_FLARE_LIT, "weapons/flmfire2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + flame = spawn(); + flame.owner = self; + flame.movetype = 9; + makevectors(self.v_angle); + flame.velocity = aim(self, 10000); + if (self.playerclass != 6) + { + flame.solid = 2; + flame.velocity = flame.velocity * 600; + } + else + { + flame.velocity = flame.velocity * 100; + flame.solid = TF_FLARE_LIT; + } + flame.classname = "flamerflame"; + flame.effects = 8; + if (self.classname == "airstrike") + { + flame.velocity = '0 0 200'; + } + flame.touch = Flamer_stream_touch; + flame.think = s2_explode1; + flame.nextthink = time + 0.15; + setmodel(flame, "progs/s_expl.spr"); + setsize(flame, '0 0 0', '0 0 0'); + setorigin(flame, self.origin + v_forward * 16 + '0 0 16'); +}; + +void () W_FireIncendiaryCannon = +{ + + if ((self.ammo_rockets < 2)) + { + return; + } + self.ammo_rockets = (self.ammo_rockets - 2); + self.currentammo = (self.ammo_rockets - 2); + sound (self, 1, "doors/airdoor2.wav", 1, 1); + KickPlayer (-3, self); + newmis = spawn (); + newmis.owner = self; + newmis.movetype = 9; + newmis.solid = 2; + makevectors (self.v_angle); + newmis.velocity = aim (self, 1000); +// newmis.velocity = (newmis.velocity * 750); + newmis.velocity = (newmis.velocity * 1000); + newmis.angles = vectoangles (newmis.velocity); + newmis.playerclass = 0; + newmis.touch = T_IncendiaryTouch; + newmis.nextthink = (time + 5); + newmis.think = SUB_Remove; + newmis.weapon = 33; + setmodel (newmis, "progs/incenrkt.mdl"); + setsize (newmis, '0 0 0', '0 0 0'); + setorigin (newmis, ((self.origin + (v_forward * 8)) + '0 0 16')); +}; + +void () TeamFortress_IncendiaryCannon = +{ + if (!(self.weapons_carried & 16384)) + { + return; + } + if ((self.ammo_rockets < 2)) + { + sprint (self, 2, "not enough ammo.\n"); + return; + } + self.current_weapon = 16384; + W_SetCurrentAmmo (); +}; + +void() TeamFortress_FlameThrower = +{ + if (!(self.weapons_carried & 4096)) + { + return; + } + if (self.ammo_cells < TF_FLARE_OFF) + { + sprint(self, 2, "not enough ammo.\n"); + return; + } + self.current_weapon = 4096; + W_SetCurrentAmmo(); +}; + diff --git a/qw.pqc b/qw.pqc new file mode 100644 index 0000000..f1f09e2 --- /dev/null +++ b/qw.pqc @@ -0,0 +1,265 @@ +void () SUB_CalcMoveDone; +void () SUB_CalcAngleMoveDone; +void () SUB_Null; +void () SUB_UseTargets; +void () SUB_Remove; +void(float normal) SUB_AttackFinished; + +void (entity targ,entity inflictor,entity attacker,float damage) T_Damage; +float (entity e,float healamount,float ignore) T_Heal; +float (entity targ,entity inflictor) CanDamage; +.float playerclass; +.float nextpc; +.float last_impulse; +.float armorclass; +.float tf_items; +.float tf_items_flags; +.float no_grenades_1; +.float no_grenades_2; +.string client; +.string clientv; +.float stats_on; +.float autoid; +.float autodiscard; +.float discard_max; +.float bugger; +.vector oldangle; +.vector cam_origin; +.float active_grenades_1; +.float active_grenades_2; +.float tp_grenades_1; +.float tp_grenades_2; +.float got_aliases; +.float cheat_check; +.float is_removed; +.float is_undercover; +.float is_building; +.float is_detpacking; +.float is_feigning; +.float is_unabletospy; +.float has_disconnected; +.float has_dispenser; +.float has_sentry; +.float has_holo; +//.float shieldOn; +.float tfstate; +.entity linked_list; +.entity observer_list; +.float maxammo_shells; +.float maxammo_nails; +.float maxammo_cells; +.float maxammo_rockets; +.float items_allowed; +.float armor_allowed; +.float maxarmor; +.float maxspeed; +.float weaponmode; +.float motd; +.float current_menu; +.float menu_count; +.float menu_displaytime; +float toggleflags /* = 0 */; +float respawn_delay_time /* = 0 */; +float number_of_teams /* = 0 */; +float illegalclasses /* = 0 */; +float illegalclasses1 /* = 0 */; +float illegalclasses2 /* = 0 */; +float illegalclasses3 /* = 0 */; +float illegalclasses4 /* = 0 */; +float civilianteams /* = 0 */; +float team1col /* = 0 */; +float team2col /* = 0 */; +float team3col /* = 0 */; +float team4col /* = 0 */; +float team1score /* = 0 */; +float team2score /* = 0 */; +float team3score /* = 0 */; +float team4score /* = 0 */; +float team1lives /* = 0 */; +float team2lives /* = 0 */; +float team3lives /* = 0 */; +float team4lives /* = 0 */; +float team1maxplayers /* = 0 */; +float team2maxplayers /* = 0 */; +float team3maxplayers /* = 0 */; +float team4maxplayers /* = 0 */; +float team1advantage /* = 0 */; +float team2advantage /* = 0 */; +float team3advantage /* = 0 */; +float team4advantage /* = 0 */; +.float team_no; +.float lives; +.float infection_team_no; +float CTF_Map; +float coop /* = 0 */; +float rj /* = 0 */; +entity pointer_prematchtimer; +entity pointer_timeleft; +float TF_FLARE_LIT = 0; +float TF_FLARE_OFF = 1; +.entity building; +.float building_wait; +.entity real_owner; +.float real_frags; +.float respawn_time; +.float suicide_time; +.float weapons_carried; +.float current_weapon; +.float ammo_medikit; +.float maxammo_medikit; +.float ammo_detpack; +.float maxammo_detpack; +.float reload_shotgun; +.float reload_super_shotgun; +.float reload_grenade_launcher; +.float reload_rocket_launcher; +.float heat; +.float immune_to_check; +.float last_saveme_sound; +.float goal_no; +.float group_no; +.float goal_state; +.float owned_by; +.float goal_activation; +.float goal_effects; +.float goal_result; +.float goal_group; +.float else_goal; +.float if_goal_is_active; +.float if_goal_is_inactive; +.float if_goal_is_removed; +.float if_group_is_active; +.float if_group_is_inactive; +.float if_group_is_removed; +.float activate_goal_no; +.float inactivate_goal_no; +.float remove_goal_no; +.float restore_goal_no; +.float activate_group_no; +.float inactivate_group_no; +.float remove_group_no; +.float restore_group_no; +.float has_item_from_group; +.float remove_item_group; +.float return_item_no; +.float if_item_has_moved; +.float if_item_hasnt_moved; +.float remove_spawnpoint; +.float restore_spawnpoint; +.float remove_spawngroup; +.float restore_spawngroup; +.float display_item_status1; +.float display_item_status2; +.float display_item_status3; +.float display_item_status4; +.string team_str_home; +.string team_str_moved; +.string team_str_carried; +.string non_team_str_home; +.string non_team_str_moved; +.string non_team_str_carried; +.float ex_skill_min; +.float ex_skill_max; +.float increase_team1; +.float increase_team2; +.float increase_team3; +.float increase_team4; +.string broadcast; +.string team_broadcast; +.string non_team_broadcast; +.string owners_team_broadcast; +.string netname_broadcast; +.string netname_team_broadcast; +.string netname_non_team_broadcast; +.string netname_owners_team_broadcast; +.string team_drop; +.string non_team_drop; +.string netname_team_drop; +.string netname_non_team_drop; +string team_menu_string /* = "" */; +.float all_active; +.float item_list; +float item_list_bit /* = 0 */; +.float delay_time; +.float dont_do_triggerwork; +.float g_a; +.float g_e; +.string t_s_h; +.string t_s_m; +.string t_s_c; +.string n_s_h; +.string n_s_m; +.string n_s_c; +.string b_b; +.string b_t; +.string b_n; +.string b_o; +.string n_b; +.string n_t; +.string n_n; +.string n_o; +.string d_t; +.string d_n; +.string d_n_t; +.string d_n_n; +float num_world_flames /* = 0 */; +.float numflames; +.string flame_id; +float num_world_pipebombs /* = 0 */; +float num_team_pipebombs_1 /* = 0 */; +float num_team_pipebombs_2 /* = 0 */; +float num_team_pipebombs_3 /* = 0 */; +float num_team_pipebombs_4 /* = 0 */; +float num_world_ammoboxes /* = 0 */; +float num_team_ammoboxes_1 /* = 0 */; +float num_team_ammoboxes_2 /* = 0 */; +float num_team_ammoboxes_3 /* = 0 */; +float num_team_ammoboxes_4 /* = 0 */; +.float undercover_team; +.float undercover_skin; +.string undercover_name; +float spy_off /* = 0 */; +float invis_only /* = 0 */; +float allow_hook /* = 0 */; +.float hook_out; +float live_camera /* = 0 */; +.float camdist; +.vector camangle; +.entity camera_list; +float already_chosen_map /* = 0 */; +.entity hook; +.float on_hook; +.float fire_held_down; +.vector head_shot_vector; +.float leg_damage; +.float FlashTime; +.float StatusRefreshTime; +.float StatusBarSize; +.float StatusBarRes; +.float gender; +.float active_airmirvs; +float deathmsg /* = 0 */; + +void(float psize, entity p) KickPlayer = +{ + msg_entity = p; + if (psize > -3) + { + WriteByte(1, 34); + } + else + { + WriteByte(1, 35); + } +}; + +void() muzzleflash = +{ + WriteByte(4, 39); + WriteEntity(4, self); + multicast(self.origin, 2); +}; + + + + diff --git a/qwprogs.dat b/qwprogs.dat new file mode 100644 index 0000000000000000000000000000000000000000..358c7f39bc8d53be68311903095050e1017e3356 GIT binary patch literal 696686 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

u&Io14 zK4Sh!PBXI>LOiCMxyc!3NphxHiJWEDAZMHP$VbhlX?{dLW$q>ynn%b*=C9;p^D?=_^a~??Pn(6vrDjEPnc0kd#_UTj zHyJ=CkA~^L6q$a|8Ljxr2Pc{F;2xJW0M}{z1NMW-fwoSDOXMSIjEp zt7dERHM1wV#vD$*Zazr9VLnd2X+BH7Wxh+kZEh#uF~23>HGd-CGcS>A&CEp+-a7L} z@_n-i`GHx6TyG|m8_ZVZhh{f&qdA1!WZqAHWKJVDoAb#n=2G%w^EpW~{E7J%)mzQ= zl6H8T`6<<(n)|5UZXTw3hxrq^(>zChX8uj?GP4##Ja?N#$USCl@^iB*xz`*>?lZ@e z`^~B37v?Y}N zJhG5gge+`TC5u>%$)Z+wvY0iDEN)FCZ?&eAC9HX5Noy%t%6g3~ZLK5ASX;=l);_YF zb(Ab`{Y+M{E|E!ArqYN{MGFT`+;Ao97P7KcmaJmcB&%Atlhv$FWOb`Ad7CwytYJ+c zldTzKP3uXrmh~c8+j^g@V{IktTKmX)))BJ4^)uPPx*i8U|l3T zT3N~>{7zOLva?l+>|!O8U9Fbn9ac}Wn>B*G)0#?lx1J<>STB)1t@UItYY*AmI!5-f zE|7h#tmP11KPx}k-zrHCucMg8giJmj=aa( zN)EU7lOwF7x``ZP6(`49RmgExL-IbWJ$b*?ha7K>CLgdS zk`t^MWY}6lPPCpQCt2^24_cea$<}A&6zc#v)jCB!WSu7;wyX+>&m&e2a+;NooNkpM zXINFpnN|aGmerP=ZS^1@wT6&$ta0RA>ml+n>v8gNYZ*DuT1`G-ttIDMpO6czedLqY zcjQyn8FHcZ7rDsFoP_u-w&Z0cl1r>YcQg!)ipnX>}mqvig#5TO-MLtOv<=t-0iT)-rOf^(wi}T2H=j?I%C5j*#oEi{u6? zb0x&%L+d7Tqjf8}$*M+vWHli-Tb;=*)&TNjYZUp3HHqA6%_X;4i^xx{mE?Bo9dd{D z5xLX)jQq^{hTLVHCU;xs$vqZ6(7NHzt?S9XRz7l{Rf61a-9~<4H6p*X+LK>dJ;|@F zVdOW~edGb_5lK6I(3(dcvKErxT1R9*Yljb8%V_V2wUYeKdWSq}Z6d$7c9X}fL*#Mm zBzeO6ojhqdRS@4(R!;H72#g6t|u>AH<5o@MafH6HS#a3A^Eq}mAq`-MP9Kclfqs= z8ul8}w0D!1{Ud4HS*jr%$1Xv-c5^ah_a`&iBgoA5G%|}lkIZVnKxVVwBd@c!lh@nd zlG*KF$Q<@1@&-Fob%c}C&PC?3OOu{mo%HRdWP;t6ywUDP=C%isH`$}eo9!@}$DTpv zwda%h>}SaQ_M2n@`vbC|y_HO~_mj8S-;;&xGh|`=PqK*Z+=loSwR4fh>_oD-U5dQb zu1=P)>ystzR%9vrPO`K;m@H$DAms4HQewD0bZzL<* zJIN~c*JM@uJXy`oUIXr`+r`P-?Al}vy9JqScOz@sgUDL;II^}qm8@gWCF|Nt$a?lG zWPSU6vVr{>+0Z^fHnLBWjqP(}6WdBg_)YEW$Yyqa@^-r{+1yShTiDIWmUb7il|7hj zZI2_{*we_i_LF2g`xUai{UO=G-a~e@50jnjGh}D`Z?cP>qbB0f)y_}eVV5Pl*)_>K z?G|Kry9e3B9!mDKCy~AE*<^2fDcQ$ba)A9iInXw1A>6y{oa7+8 zAUW8+l^kLxkwfkJ^|gF zdj$EAJ(+yievEv?eukW8zeP^Bw~#aJz2r>$7&*&6PtLZTI*7-kc207Rou8a*mnR>y z8?-7PyFR(Xz9ikb;g$AJaVi9lF!-w$mi{Q$QSJU$rtU( zlahjy6UXiq0M*-wxk*~`ey_Dkdz z`)%@Ldn5UYy@T9pe@Sk$kCLC-Katz*Kgb=nQ6KT%X=f!rvwd=xU4Yze-%9SWlgQ8Q z8suKP0lCj^LGHIZl3&<8$S>`I|`D%51H2~P3Chdllh%mWC5o!S>1&17lkGqQ~H1zFblmMrI-Aj>;v z$O_IMWRi1*tmuRqBVCo8>||x+0!kky^r$lILyWDTb|ne22RYdYP@ zTFwBnwsSXG#~Dr5b;gtRoXKQ;XFA!ynM*cwo+KMNOUcI0Dzb^QhHUDrBbzx}$lIM= zWOL_hvW4?K+0yx$Y~@@aTRUbGq_d5ajcn`ONVaosA=^8p$qr6cvZGUv?Bui{J3F1p zE>0h^t8+Jbhckxk=1e5-bf%HroyW)?&LXm>vy$xPtR{OqZ)@-F8ua**RTMS2E1ImjW-&E!z0FnPCAh8*TpCGT-+lf#|Hx9X1&NT8qXFhqq^Ex@+*-Sp*d__)hj*(&KEIH9}njyZE zoZRGtP6=|dQ<EzSS6Xa6o8FHDkntaB2k6i9-Ay+ti$d%3^@>%Bxa+PzQ ze9p0(!{6tf?Bom1&E$(t5%MLc9Qm?y8@bwPNWS8PV-*rAF-*Y}E*E-*l>zp6S_nkk;4;-rn;=A6-PHu4WkRLk5 z$c;`Cxyh+Te&jSGH#;54ElzLpW9M%26K6cR)tOFibDktWbyktvoj1uH&L(oFvzz?P z`Ig+}{7mk4{wDW0*;*ogpF4TTy-o>opHq$8?=&XAa5|D-I{nD6oKfW0&Sdf%=P~kt z^9*^=d5t{ed_aEdd`cd6z9f%0$H?!T-^ioR74my0TPwupm~#_(+$l<)a4M1~ojT+x zrv>?g)0O3E{5Wj40Zt^;}GQ$lUHe@+S8jd9xd83xD&txyih4MKYgTlg#fn zCJVT2$b#-2WTM-Tyu}?x7IMdth26KimLn^>)yXPueX^?Cf~@9t zBCET-$=lqaWDR#Lne0v`Yr3<^TJBS1ZFdD($6ZaAWDxf{v)?sl?)yPs_69wr;P zKah>x-^nKKWwNQ8sXfxs%*{#O?&c+%yG6+sZaK20Tb*p>)+bxLEyy-*7qYF}k8I}- zC)>LZkR9A*gc-xkbtTZdr1GTa_H>)*mk+Z9qte&i$WJ>)d^ zesa3|5IMu0OU`r`le65H$=U9D@=vrC^N_E&<;hpwdgNyxejr`PY zL~eIGkUQL7dqp+cNdYz+}FtC z?k4htyN^8S9wSe==g1#i_fEv)N7o}yyZOkU+!Ex^ZWZ#3TaWz3ZA1R*_9TCEhmmJp zc~nXI^Se8jJm)Sa&%0~LKiqZX1$P&D(LG51>7F1jxxbNrxmU=)-K^c=-_4;sWS&q} zGH<9WnJ+Yi%pV#{76?5=77RT_CWc-hZwaj<3xz%-3x|%9MMCGuqM_@1Ae>^MM6!6O zGNHd!Lnnk*UWO_mCcB1?xJBFluHAj^hUk>x^fk>x`lkrhIF$fVFQvSR2DvQo(F ziEt~23X@ermB^~0R%EqMFS2@QIC)!W5?LekD485uLe>nuMAizeC2NPak##~}k#$4A zlJ!DY$oioyy%27LP;Rnes0i68RGDlXYD_i>wIiE`dXmjTL&)1hW69>BDP)V#9I|C- zG1)5gJlQ(*CfO#mg=`zzOSTJrN45|BLUssUCOd|*^+vopg>EK0hl-P3LRHAFp@!rg zq4s3AP#^Nn&AoG@I-hT1@r|y-4;By-W59eM0sP?IZhzz9ajG&X5B_e~|-2 znfo9c8fr@39qLF93-u!J2@NHOhsKg4LQ~0+p?Tz}&=PWV z=y~$q&>Q5K&<1jBXq%)N9v9kA^?jkk5-$Ol4JU)Y-vx>3>%heP?uiJ@}j zq);vL!B9(ba;OJ6B{Ybf8X8MJ6q-Ul99l>|5?V%13q40p53MF=h29`%hdv}94SgZ$ zh!Wl#O$^DB-g-$>atm3?`;08@eM$2&-Vv(HcqhrS-mhdi?@yYS_pGMyr-GN6O!9oP zqL-hnM?y4REDw|V;t!u@UD5bD?P z#*oS0gEX({&7!)dH;=64Eg@@rt7u-wdzI=s-g{(SZwpz^+e7pE-XXGqH~CNGOGED@ z)s4LBIgqZ#-p^Dw@y<({qKS8jY$`VrL*2~FEa`~by&P2E?)hYMFE81`D@5~_-sVe4 zM@z2+^;>!6$<|&~nz!-B7DD)Ky^*!Rc3#zzV0&*sWw3)+i}pHtO~_8((+8m6+3P@c z7jLV~Cr5Pk?x6Y(ZvffN8%f^j$s;txpkrTZ4$*?!>b@)5cJ8>Q2J;^(KBlw{A3C$;ayU8iu*W^_1B>9l{v!p2= z^3IbFd!jkik9b)m9Wl*27=pjky*CrU8QvO}^Gwg9`7AFFIorF1eALS)4^TT|j(027 zbG;<;F|Q{1xOdrxKl8lCR6pUhCg*#d$pu~y@=0$H`II-3TS3!)LTI=^IjvL@z#>dy-&#%-dE&G?d9Mojg4dXQ(d$UQ z+KO?_=^UZ!h__SK%Gx%RAm7 zsWv5#k?(pxlka(d(B4{4v_yQ@d6~)gy&EJ=@xGTpe&FRJ*L#I&zQHR=^#-pz`Jq>h z-00Pz`6jOk)tkJQBOvcZKHry>^Mnr!Ty0 zt&k62dM~mZzw&ZOwJE;xeDZ5AFZqpEi1rS6C8$2&l_d{)mB~Y1GR?pB>XV1PX5dbP@LG@;y{_b+ zUVrkEH-h}jn?U~UJxpHq=8#vs#ia08kcR&nY5MC(%im1e{$A4Yzaw40!D*CB$p3}v zO#THjvwua>6q)@@ZNMykE;6g1U(%7c65mR7HoqcyonME%-fuzk?0#1=hd+e8!Jk0p z^kc*$y@vmWFfyVS=b*z7V#&NMg2KsG5=|@xc@SFtN#{R!e398^tX|v{LjeJ z{sFR#e}XLQUm(l*q8;K{-gn6ger__!Pb4e)Wywl@b+WSGfUM%TA*=e`$!h-HWOe@m z@-}}uS;JpQCi~BkHT`$UTK>mmZT|pS$N!zI>t}6`_|)@rkoEn7WCOnf+0d^}HuCF{ zjr|s66Tc(b)bCF=^GA}m`(d)VKb>sh&m&vy`ZdT=elv2k-=4hJ??aC9?zlogamnA3p)yW6_`s8H4B{{|KO-}XulMnfW$cO!V$VdEp$!Y$0 za=QN@Im3U1oaxUdXZeqjv;Fzxqy9p2j{h_{*I!OP=C2|j_g^IE`LB>q_^*@m{kO>l z{`=&U{wDG%e+RkH-%l>`kCTi2^W+lW?Sgba?Pn*K`Zr3NVyRz{T;`V~pYbcxe7RqT zT;cb*4*lRtzd6;<`t8Y8ejiCwtnx>Z&-o9N&-)8${(`@ne9?cGe97NLzU=QKSNliF zSNvbdSN%W8*Zfdd#B+_GK)&uLl5hAW$T$7UUxBI!t9e!SNr(cl#%r8vt@{5zZ{j%g9zcTr`UxVE1 z*CqG)jmZ7}?UJV0@3$wv@OzM7`h#fxl|P#5ulxz**Zwr}8-E_n5BN*TgMPAuaz5n0 zK=rr&I`Xi;jXdJ-C%^L#kw^U#lBPK7|4M%E|4knAGj~IJkNfu}!~D4KOSLIZ`1#3` zeleP#^2?Dw_?5^X{VB5F(?3)G1M;vXZ+%koupyK@Yzie0TLSX1C2#dt@~|zGJnRT1 z54!^Luqi?U@~|misDV5z$87<5SdQBQ@~|bc3MCI`6-pk?CX_sUoq#-SiR*=uhp!h( z9?mY5Je)&79=5~{LdnB72qh2a6iOb>B_I!5!V^j!_Jop$eWB#x1Oa*2lDAeVdH6=5 zx$-_4Z$is%bF%t5yA#ZSoJZ#GQ(;yF<^2KY&!=}8s7xJ(rZ-7(sZ~>v@;etZR z!-)d&uqAJ9Q}XaFLdnC0gp!8~3&_KkC?b?RTtp~&xTsL_a4`XS*p;_wK^}JHAtlJe zt|%cO54-Y4HORxJC?y~d+oH69JZy?G0`jma$_mKCrYI*M4;!MqfIMu<8`mHYoATx} z$it?*u^aNRT$d1#hvmA2fIMu9DgyGbDXI#{!?+g<@~|y$rh`0;d$Ax7Tk@r2B@fpS zN*>uY|2;AArH&-1_624 z6s-j0VN@9( zgC+TJHrLWgKAg?9a*_|Hxz;Y354U#7e3&nX$uAPFjgx#ha&4XD!wJ{UNj@C8_D=HQ z$aQd%4@d3+C;4#XIy%XRBiG4EKAhmLX_5~|uCtSTnEx-Lee|;kr4=hjX~@PV(U#u7{I+IGgL~Bp*(=UQY7igzN1jA5L(0 zHpzz*?lC9%aKb(ABp*(=C!FNN3D?(2KAdpnINj{u#8BX%ygnPzGKAdm^o#ev_H^@mooN$Ak3Mct+!aeIGALjc7C;4!~ z4RewY^ZkO8d^q8TJIRL=+&xb6;mD12k`G7jc_;aBntQ<|^Whgamjr6RhP_%UvrWVr@3)1 znGcV1$$a>Am&}L9JIRL=Zi171IKf@*Bp=S^-f)r+N6d>Z`7q-HC;4zTH`z%(oN#YB z$%hkeij#ae;ifvthjX}TPV(V2_qI#s!*9D}K0Mte^Whmz^5Hb@mY2+j-*L%&c&1C{ z!?T>^!wEOr-9bCM4y+=ou`Va5wi^5KNr z;3OYTxR0FV!wL7XlYBUh`=uuH;f*et4{vhGeE1V5`EcYmJIRL=Zi|zAIN`QB$%pwg zbdnGA{ezQyIN`QA$%hlnA0+v3!hP-}A5OS0oaDm^x5G(3%y_{`KAhk#gpv;@+%6~i zFyA*g$%hkex08H0;l6f~4@d4BC;4#XzIBohC%9{&L}1k`FUZaFP!v+#x6VaDw}oOFo=%KRL;V z6Yggx`EY`}BuYMtY(7e$f}C%B8FcshZ8P)B>8ZH`57f2 zX1o$fKAg?viX8Z{ z6^JAsPPp?T$%hlJU?ll)!kr&UKAdnDM3N6D+=Y?k!wGIHe3)@aB>8ZHyHZL%oN&b=$%hl}ib(R|gex9N zKAdnRBFTpn?#f8=;e;z0Nj{w5E|!uHC)`z$dMWuZtaSHzLW08E-_A z4>R6~Bp+tH5lKGGcq5X0nDIs=`EbJ3h$J6oyb(!0oZ#-7k`E``jgjQT30EtUd^mEo zBguy&mmWzz9JxA?8aUnn#ikC)_=e6Doib(Qd z#ubs|!;yP1l6;tPMKmRI{ZJ(NaO572Bp;64Ba!68k?RskJ{-BOk>taXdo+@KIN`cQ z>oT8rk0c*XxE_(@!wJ_jl6*LFy&}nn8COJ-4>PWaBp*(5k44FR_^~LN4?i9y^Wi5V z$%nJKzLDg^*|=M(taSGa|`{8D~V2 z4=3EnNb=!?dp?qUIN@H1Bp*(=QIX`s2{$^De36Doi%9a}gnKEHd^q7=jwByW zxUrGs!wK#JEBSE3y&6eAoN%v2k`E``xJdHhZ0_|)^5HZ$K1$}pB>8ZHyU$8KoM2u&$%px# zA(DJJ;bugV4=3C^k>tY(H#3raIN@eRk`Jf3*-6K zaL9|TwPek5@A|Mb=fkI^B+#*CKaa%;8FokYx~K(sG49BHd7oC^4DW={a?jonGi4f_2G@K#Ik$Ve=x`p?h zWeJaEE%yZ;4B~}4o>7k6Gni1BL|!_r9J!zHe;i-vzsi~99SISoB?FyOj@*Y>;>4Ge z%8`2%Yv*s}$o-4Op=lYtu(1A1IdX4fapL=aLOJVWj^8c!r*b|qoIjK!_e<7g{jQv^ z4ClCV_IrnF|7ZD4IdTu?P*$k(G36Zf4r#7SOUrB??q;6aH%=O5{i+W$D@X1XEoEiyn-BDpa^ybJ!AbMZVdcm@rp1Xbhm=##aCDp| zhNI&&GaMa9?rHr$)u+AT=r|7>j;>En!_jf%9@_s?eFhqijx*eFbbZDcj*cVu?EatX z^OoW0I5Q3BM|Ip6cqiUhe^Aa+!#Sv&RWV1-4OtE-XPr@>@0BC>9oPH5UpZeG&Uea@ z`;|+a_mWlv5(+_~v0o=hSPa+{azY$}G=IpDU-F5ofz{g3Y2IWjLob}3?Z8$5HBjdcxwxNwe|5>4&b%wKCIdYGF9cP(x zQ_UlUi-@y3slGzQ#i7(ZZBlAaSr;c|*6=ZG+?c9+!wJe!;;{EUj zUtk;M$ea{PalMuEk>SW(1M$8pb6My(Zz@OTxzLWjwlt;B>Epga#gTa}Bu>2l$lL?* z`pBFY+WAR2GS7vsPkq&YWDX3ekDMnVm#L>5nIA*B>1%?_tD&9Q>im*9 zH?%WdIWixIcAi&G8huwg6P1(SJMnfthwljE{aNPt&}}$J#mSuiLmjVkeH@7`i_8gf z7sMBt|3S(Mo7?e#T}wIc2UHxHOGG;dy(9Z8%QN1Q=RQ4kN0cLTkVu@k^P6&HeiH2r zSNkq=m1M?{vOt#Sl#@A+3ESiC{DN|1ZWA3xA5)q4M4Wh?N2)k7CyKlt@6RKYBlD%` zvQDUWmbp~&aZQRZiE~rWL78U-EoG58Hsbw9=3voIe(!|qo6OImoo*_Q%-y1$o~k}F zuZuYGcJAk$@L3>pzB~+>pHKdT@1H+e=kQr6^TG6ocpEPAjHw?pW{y7Ma&%3B>oSsEQ+Vp73AFa4L zjvt3B^N783L27+u-j;Ceq-GaI@9l##9O8AZdQmb?sI$xk zGYjH%Ze2LlS)%KFq{gSz7w9~(6 z(g}TD=B1G~jQ4q&dqCPJ?3c`0Qw`!}6}mLlk@;+B`V{9r?}Txq%ylFC9$!YQI5H28 zZlCGOkvVesFQu%l%8~hVw3FvD=gy@K^}Q$Lmt> zggz#72Z%6Snm?oXN_OIfrzdCCZWch_v&*awg#D^Wr=2guW{C80k3uu1Kx3 z%yFchr<5b}A8F^p;;C)8-#hX1;tKCLzsS5vI!;ODy(hlKHE&a|EX-=V=%-%iLDl=~*iE zSjfCry3UVzC(ZA?%!#GrRJ=MFC*d8LFRLTS^DyqM>YWfr=F*~iDPx;-@AxoI=GoHq zsjnQFgG)P&l_T?WY3CO2NPm$<=I+w_wZuE2&N8o;j`N+0BXfS~I7LdQwzJF!rsK#Q z1@ZGj<_go!H{J<#mU+Z<;eVF+Nq)(nVU>IgOyXmaCF`+bDBw< zc;DFTNq5S7mePq75P)2Y@+zDmLJauwRrM%36I_sg8lTPSk zGKZZ$?(g8#ij^hv+i{Ae#5tzo$lP}lC%*4_uS@MeFW}_Ci7#^RdZ}}0lS$r*?^i?b zg#D8F^dwH)dC)syzhtgG4r_|j)jOg5tvI3Fux+t-!giUXFN|G-Q|0>9{rbUh?(t5j zkIe0->m&EUk6-Hw(hkyw@nwj2LVu7s0d;*!S4oW{^95?BnsTZcPCezM8%{gr$Q*>a ztOu1N^Al=k8cw}J$vjf_x2@r{sG7Q8GOwYI(^WZ77|uZD3^trsy%XAbjCbPwd6sv= zF`eX{ct4!&ozQ<47|sTqn_~Me^DpZCdb(QbzRTQ<+IdAe`wVA}a%4_N9p^*kq)|8R ze65@!hI3pwGEbzAle;?qTLRld`^X%U;>6qVTAcWKA@fV>IGvT#*>Ij$j?7D`<1A24 zhT(jv9GTBj$N5(|GS{Vcn%79(uc?OfymDlYOdV&6a%BEY?d(v_2E)l#GqpZ4@1~A( zrE+9WPVKZ(j?CAooh{1w({PR`=lqMZ#>ss{YMo^cP+gYHV-W8@jSQ!ea%ApM9cPDk z!ZktW71hoKHzvypj?6h)IDP@=aZT@p>xRrn`ZC0q3u-wh{XBfe$=sy!c@e+%%Q5C z9(7WWm&~uKok7Z}YB(<{Cmp8=#Fug2iTp;HvsKzTzI3dcS|6FuRXcsW6ZT8ydL5(6 zdeb|hESU#Z@7HZ%j&YmdME7bmpDbk6Te=e;(TW~ z->Nt=U#%|dl!_yB+3Ni&RzJ1>$UL{&spOqBU%zrVRYBS!Y`ay(k@<0TeU_>?GIy?a zhBin&?lP}#ONcMym6JK=Zd~B;bnk>?D)aGXs5mz_Ox^bpysrD0+~;1dV>x_$na5Wg ziR=G#*S+bTY~GPMex+S99p7OVtFmPN-!DL34t+}Ql^?%m%G|)AeSK*6jdEn(VC~dz zlo}_kh~xh#PF>n5N9G&W``*htp$%m&V(rL%?C;}xnB9k$d5X1@r%AFtA&$&ptn1vt zJE1LPeq-(Izd0EvI5PLKF00iosrxSTBJ&k_%JQUgWX|NTAil_b#^c9A=2I>n7kE4# zr%mj$K;~N3^_h8VY8;t|SvyOWlQ~DTDr>WM!oFwD->jTd%8|L9^}biVEwv40-e++n zZiwAjIWi}-J{H&Ap1NN$U$ic(iFZQW)i{#F#+MB$j?6PHzbV9*Gs=-UsQG$1WvSgX zb-!eOYTeH7;dJ15h3^?;?&@=i65sc3cO>J4zM46&wQ}TM+0r*cpO-nWWxwKa+w$+u9lAop6nk`M0(6g>qzWZtYxq zSF%2#ell;jcG@dPepk~@KktP0`N?oLsyH$ixQ??;IWkYUc20UHw4ux)uANKoPVQGY z7BauMcCJ;9%ssB1M#_D*S|puNADKU$Qz@lB{k#+2Ds!u!AD;O2Qsv0J>)P4uop3B< zPWIv|PUU-3>m&2EYv&2?gg!5Gx$A4oJKhQ3d0vhqZ5Uq)-j~`wG6#GEh%c{rC$x{u z4<8-}Z<>lDbH|7NADm__Q_GTh<+XEdjTI!=anLi@;E_1Zb5 z;>bMq+R4)@^;o=VIM;b6^z&JU^Qw13TP!!6H@=K;ty9~1kKv>%=NH4t zP|jb5GhI2^8I0*R-0Gch{0nsGNa@bFFe-Fr4d@^Sa?wQO?_jQ%yMw z45y}dLjPIoo%l83Chvsn>JGzsT*WzLIKz|^6-)N#cv<7T6OLCA?}X>F-mRR{hI7C*EG&h`z-U)5k)^J*QCzSP&;SBOlh|||_wtC0; zWr*QK?UHp4*OS)`r-O2)8cx0T$vENqyufg7e;~E2)rRwFJ#?-q;e4;}7C+@0{Z+{grp*XdBfP@f#d zV{I5ED{wtd7Y2KLwV1hF-j z>0&rHE2qEV+^w9EhSNql6AfpUa%LM&p3bRlD1V=%+px59HX6=z%GqT&ik|8P0I;!XJAgm-dz z>1prCK7{`#Yql!uH6zZ4s;udTb5O;3-*B3BN$z`S!w+Ni3D?yw-U-*kZQjWyb@qRk z^0s%<{C<6Bl*Mi9Qoc+1&2SofC)DSRcjS4fPbU@U!Yi|$r(?Y1tK;PFs+^97lmF4w^WrJPS)-iiaf*e?`t^F{j5C~#%6Z#xwkT(z;cQdRYQx#7 zoGpg)lX7+&4!1B&$uABWPIl$|WjJ}1le=WrHms(c%MIrl?}TeYRm0h!;@n|4o0QYe zaJDL^r{Qc@&LG3tshpP$XSZ_RHk>`mS!y`@m9yD!eo)R{!}(b`zZlL@<@{qfr+|Q{$>9s1WR&%{ zcf8_e7*4i+sr&u`j$TT6Cv4wgIE$W4ZJ%EZXR&hrG@LEo32kxOJMs28t(?49W&PbD zZ~tU{Lcc2Mov;tGF6y1o$I=a_ig!YNTH@&Mg!?P!A;Zad+PNXTG1O;(;q1T}hLg=# z@>#`NNSy{;z(KXWzn#t6Sm!9IRAPl9E;B0i64t1 z&!v|2Bu=pq)UT&|C$!fPoUq?v+hP^x1;aV)oe+K;jxH-PJaxaO8O|-<3Fp^BoXZF* z$2g3`ANEc-?#FTDH^lf-dqlFV(8uzZNw%{*PyU~Q&fV*su%BhU6OWT?WNI5W@J?tW zaUaH67dube7|xqMPKezFN7s3tcS3!h_D;O4l{oVEa$&zl;9L=c`gMWllXVV#V?0h_ zUW>=c@J=Y}9m5%~;wy{r;XuU;hnG#-Mtgv_a@4D#)vaQl{La} zUQ^Ck!O5DhLi7=q!W(&2E)0*JE47c7|y6yQ{#M(Q#5|i zdA!j(Ve_vz#ljQ6{zN(d7|s^ueHG=jFv_Z-oQ{T5OF2Car>=6IHk^ja8EH68lrzq7Zd1-I!)d0Rm4?$? zIU5b9opN>W-)=a$lylH<@+s$U!zrkoycM$^_d?3K%y3F8 zr>x=hQcgX?nXH_94d*@OJZLz}l=GP3tWwSp!&$4Gmknowa;6y0Cgm(JoEERA9`_Z7 z(^@$j4X2HAb{bAQ<$P~A9h7s-a5^gIwBbCcoII7X_OUL?x!7xc883!0<8kkVarhhFksKiWW>ct(yqg!zEe4c3}=^eN*K;=Rq+oR)^OUpWsM&OzloZa6pg=X}FqYQL1fPmp_d=xbdK@qmDAC1&QVTp!^y9l zL56dla>f|W`O2AWI2S5sp5YW$&IdS~A-W{K5JPUlykA+e5IVyhI2qU)eYx2<=kXA|0?HR!#QtaYM<|HI9Dh~?&qT0`FiCH zG@Nwrgzt^V7|tW!31i3!hVz6fYntJ_rsBMBIB%&q9~w@rH(|5d2y(9Y&{*HQp zcfx*s9dp9ic%pZ5`8Y?6vi?Ny>Q|o-U;bc>e+@nXAm0daA4JWs9o-~|7-U-M3Il~#C;>f*z zE=%2Ym!X{Z4QIG=))~%HQUgyucQkLw~Q~T;N!zrhn&4zQca`qZdQ{@~p zoYuXP&l#!5qP5{Xt(->; zXNYq87|vVD$uOMR${A@mO!J;q>s1TmxiTj8ioE@IU`fQ*l-q&V28L z^J1gn>{4-d8qPiy=YZkloSEGBP}Whyso%M>Qop4P!-*9rw zO4cWob%o*F;++tuoZ)oyPH6ZVhBI0@^$ll&a+(^>+se7$aONwgi{Y&FPT2P+3@6v@ z)V?~~(%>*pPL z9>y)5y%Rp)pEcr4^-d0df{lsA3Ay>V-U;X68%CUbb5r~CyM|LpIV%mPvT{B(oST&M zjp5v{oI{2)OgVoV&hyGiyD@9ucvCs&7|wjoNdLvza2hG6t>Ls(&ZCC&ka7kZ&H&|% zGMo|0nPfQQlrzt8rYmQi;Vf3pcEefco$z__o#A}1;{0Ja$5fm|?W}zx+x*nyUeIt# zc_)muig`!s7d{^vD5tdHbo5TxugXSQy;Xhc8_tu;X=*sbl+(&^-c(K(!&%{-@LBnU zcjBLw>%5cQf5;6o;@r9*wVj_goWsg_&2aK8OpPs zW4hmP`lvWZ3}>v0^PA!9S8@I^oU}!$?UOq_Yo9NyobwH*ym!KWU1~UOlvCDl9#>9P z!+A;7=VqMqTYIVTL~LFJ^?%i0g$Q%)Y73*!yQ<8{g@h*O5` z@xJkqa*BE<9_m}=lr@|a%DK*PE?k;=OzYy5ju*t^!pgbDaB6rb;op0=;oRh%aJ(Ke zoPnyWo`&;*axx5Ot#U>f&U)p%VmKcwXR_gZqMX@=vsF1u3}>5i)*8+i%GqK#Un*yp z;p|q<_l9#^Ilmar3FZ7{IH!~o)z8|;&L}6Z;Ut!&_SFjwCx>z_H=I1mDQ!6CDyOpH z6jaU)hEqs64GgD!^N@1(8ctW`95$Rm%K6=J zhA8K>;S5zy&IVb}<>!=hp5cs8&LxKPymCq!&M4(nFq{{aQ{8Z0QcgX?8LOOI4d+$m z++#T7l+(^|#w+I$!`Hvraj=8fHDe)+^@%!}&-##SCYoa>^Ob zm&&=`aK2JbEyMX*IgJeGTjex0oW07q*Kod5PJ6@oUOA5#&Ozn$Hk==oGr({TE9Y6m z`B^!m4d)l-$Q(j?tbSBEQw`@g<;*pl-<9*e;rywbwTAPTa%3(dUFVa^*=accC}*GH z0&tRl+(v>HYn$5!`Y~u=L~1Fa$Yi=Pn9## zaJDOFy5a0l&V0k!rJUu4^R;r;8_pi(d}=uRmGhP~bD46Q8%}ZMv@x7g%IR!4m6g-YaH=ZjF~g~;oB@VYTRDRbr=D^~7)~SQ zj4_;>l{3z8ZdcAE!@1Kt;XAbHhSNjESztJQl(WKc`YLCG;q+I|XNHrZoZW^qSUCp_ zXP9z+HJp*k`P*WJ*SCw;-;fz;Kal?62Ipqy!igKzM&UEF}Gn|>q zxy^9qD(7CqS)iN;4Cg)NbTgb)%6YR%I>Z z^>T56$BUG+-f%Xl`g~CW=#L>SG7Fv~T!!%!q-wo$c?}Tb*zd381VcrS*Uf6JE zsW@c}XP$DZ7|verWcL-SV>k;xNbMW98qN~s+;2F`y%YAU8%_brmFHpGX5~C-I0uyT zf>BnE)v0xU({OStXP)7lNC z^OV>6~o!7oVN^TmvZJB&Ti!_Gn{Xfv%zroC}+Fj>{HGj!`ZK# zpA6@Ka!we|kIKn*Yu0u?tepIYb3{2s4CknFN*c~_S& z8RfJxoM=tzweCT~$)=oMhLck{Pa94i<%}?#bCmO{;S^BL6vH`RIqw=yA>}MLoQsw7 zk>M0o&gX`6xpMXzPI2Y@Y&a#A^OxaVt(>&mvYr=Zm6P9au2Ie#Ztl^ARPQIpD`{Ap~x!7>VDW{a-j91QehBHw)bqwcC<=kdC zlaILB=WoMVuAJ<5WbLafl~d4gK2Xl(hOUk%8SMZ79JgMUBHk=*GIb=Ayl=C-EahJLr@J{46=WUkN>9Q`lU%@Ht9eEzMz3H8V zk5k?|@;rRUcwEJ)X2dz+9UsOu%9FJ|C%u!+OAU-VH~%oT&i5G3eDCD;ak?1JJ?m5B zJYhKRC}*VMWZRG$XQJVZ^-lQSZ@zaj+b}Iz$$2Wy3Y`4B6h9U}ddKgU+u@z?T-Nu0 zlv& zkCfBQa5gHZmEnA%oKA+bMLFFK=TqhMGn{S88EiP8E9V8n*`b_qhV!LzrW(#y%9(38 zUn}Q*!}(S@YYk_wayA>zcgopmINvL0pWz%-&QFH(qjLT*oWsgFV>mx6C)ZtB&z)bC zQ_ygZDyOL7{HB~zhV#2}DjLq8%Bf*Ee<`QF;ha>?ZHDuYa#|S9Y2|bzAw!?{Q~KN-%&%K5`^E>X@I!?{#Bx$e$-4qmRDf`)U2a*7&G3FVYBoRZ3^XgF6X zr-tE_R!)7xDXW~@45z$u?lYVU%IRb{m6X%da4IY3DZ{y5Il~R7s&Za2oa)MX%W!Hc zXRhJgsGMbnQ(HOf45yBAHXBYoHjkw&6QKia9Sv*g5lh!oN9*CN;!25=YHihF`Tx_xzljkE2ov= zJfNIThSNzo-3_O+a{3w0!^##V9z3B$Q|bLxK8Hk_xGbFbkn zQciEf+3%gO?_<0Z{~qbKEvfaHV#IktIqPxGRqgz`a=tN~72e6~-}|R`b{29j9E)uCCd-oV0lngu;heefzZE#oJOACneD&T5{jh}LocC!mPH3NN45zDi z{8w|XE>3}XK|EgVov^u?;cQlM+8fTS&yw{Cb?$9AUv5j?_c4a^mvSZ<&L!JZb%i#mZ&(pa1KL!`A9h@c>S8Vz~ddt$$ei|XRmj{F}=ia@_e4U@0D;a zRb}0%oO*_HlX7k~oEF{*-($D-j?^#oseaxGb$--{ljDnIox}IW&)}S|>RfC`(g|@V z;1u@dB+oAA9`Q~nYp!?Vq2_oeY+G$OU#U1djQUjFnXFGJ>#*S*_fF_PIa((7OP+_{ z6#h`om4;K~%ha-Jdq>I+<(E}X3-5&el=T_!gl)YH=h|J#vVt?haQb>D?AHwM#P@5I zin9bqj#qqnTR9&Z&O+sEGn`MAv&V4ucqg>i&xUj9SE>7c(s1rnPX1O|_v;PiTw*vM zDW|;QoxDh_r1`!smE)YcjA5Q67PgMziX5=SUDdU&b!_T zW3VlTGht6^eZDs8Ge0J7M38dMAFon(a;2Ika;*@5I}= zy>~*pHZsZ@?w!zAo8ibfCw@#{RB_rEaeh+u>1@s zykI!LDQAM=oK((y!%6!tb-&gb&N<$Z<0H!s!x^regNBoHe`;BO;#`po`JaD_D<{YO zS)JV%BpHOi&a_m4Cj62G&7u{->0@uJHvTXIo)xt z`cLa6AH3}yIp<`_z_}#(@IU|V@=mz6jPXtaBizIPoCB%#nPS8#q?`qYbFFtmeO7o! zj$hbzi;DA^5$6T(gzNmbhVzq(^P}OM@J>$O8ppkpx$nMHl{uKY?`MrT>D~$Zkhe{; zoh42fYYq2~Y?I{@obnJ~)_N!O=W4uOAujNEr*}e~TN=)yA5!bw)o_-1CzRFKaB}^a z8fU2CT}R^+^i^fuVL0=Z)4^~KDyNU()H+C8O~zmd}ui9m9yP&4k_oL;Us=a?t3_w|1zA)%DJFj*1qwmcbs3YG@OIp z$>yEwaq2;QDfn};K9S$pl-Dc91s-4Kov^vR;Z*icD66O8Oi*PFG@K2}8ErUQy%YNU z8-{brJGp$NXM0E5J@Owse;r9Z7R%#~zp(!6oxDEIrnuw3WNh_IYJdI;=ODzF2fY*d zjlc1FrMST3c`D9X!};DjVc+w#&l=}}UsI21Ved%Uq5RIuDQP%el~ctiYrb+C8_q%H z++{dNyc3$Fo#C8PPFKS@tDL@ulkI5g@fu<{d6n~`;S^BLM8mmIIqw)wG36{aoRZ4f zU^o?(^M&DDublmcQ$sn&45z+w&KS;3%E{LuYhS(1JE30|F`RbZ31i5s4QG%ltE%BV zr{Xj;oS7=l-G(zy#d*MRws|M)S1-f)MV0l8;T%)WD8u<(ITH=%gsRUh!zp+y^}4at zaIW=EI8Q$|oZ8CSVK}!aXTRaxtLk&qa2{82{xzI_%E|pe)_yoZIfV=-Lpdc3XM}Pp z8qSN#xzTW5RZbJbneCm>$L=wlt=>ua1J>R<@;u}YJ5^ba8gY)RIDHN0%HNXxCzSQ9 z;Y{#O=s#m|vWF*rJxw`p7|vYpgwOYPyd$xqwB$E-t&Tglr_g_Y?_1=Z_`Z+DiT@_G z+9+$XcS1XFGMp7E&OV%MYQH{Gaeg+Oy(-RMhV!>_(mG}>tHkfg{R(xs)I0J#{2uqX zcfx*E#F6%t=V99j<4X6n>z>QD~YC}5Ifx1u+>O%u)2#ugI+yqVFX1E1z zh1=kEXbN{gGq@A(g1ezP+ygD(UbqkVNz3tbg5&Gn%!RMg9ACYpENyw#&TnZSdxc>` z=JEjla>}?)$*1l?)}8%hSv>>~!z0iIy27K-4Z1@Q_}?r&k$OSz{~Ngv+aH6+;R)yq z{oqOH4+G#Scp7BMfM;MJ41&Qh1j6zx4~F_D!&pBD!(jxBgy-P}7zLx@MHmAw!OQUf zttCUc*8gkESR%awufl6E4qk`xFaajQ8}KGfg30g}Oo6E|4c><7FazF!nJ^1x!yK3k z@4`Ho4+~%+EP}=G9xQ?PVJR$w<*)))!YcRxR>K-t3+v!RSPvWEBls9L!Y23xHp3R! z3ZKGfuno4u=kNvWfSvFq?1HagH+&7>z_+jm_QF2+4)%jA-@^eo2tUA&a0m{=Pw+Dw zfnVTPI10z$H#iQz!yoV`oPfXJZ#W63;2-!GPQw{E3oa1NXc`Jn)u2L<7LxBxDMLU0ijhKr#HTmnVmQn(B*hhlIA6o(RUC6t6xa215* zY95z{GEf%EL3y|aDnLc31lK}kxDKv|Do_=wL3OABHQ@%h5o$qgNQXL57wSQMXaEhN z5j2LIpb6Xzx4^A%8{7^};SOj9cfwt8H#CQPpat9u_d!c&1+C$JXajAb9khoI@Bnm# zPVgXfhKJx`cm%pYS9lbD!*rMd@4!r$1+!re%!PMh9?XXYun-o(|8`l7`yMQT_hBh4gXORSR>CUy09L~q zSPSdmLs$8}6Z{NE;1~E6j>0kc4UWU_@CW<}C*Uvm8&1M0_y_)l({KjP zf(+IoNI)87gY1w4azZZ14S66h$db>m&++SXS?7lWa2^zd^Wg%x5DLLXP#7+TB5(;5 zh5yZRDc)r<_i`Q=i#`9JVqAe+97@2IP!dYPRd6+whB8nV;!8Q6mxpVh0#t-ba4l4Z z>)?8*0#%_J#Fy$kuK_jT2DlMwL2XEfI#3ttL49Zd4WSV zXa;w}U2r!vhkKv}+zaeSg>~>DtcMNo5qu0AVH11;n_&xV zg-_u#*aq9-bNB*wz)tuQcEMM$8@`5b;9J-Odto1Z2m9fBH~V!D09beug9P z3;YU4;TZe|$KiMQ1O9{)@E80IC*c(Q1OLKlI0I)v62u4+pcnZGDjQ^n9FP-oL2k$c zc_AO11Ls11C;;a{K{y{SfD54zTm*&TVkiQaKvB39E`!UV7+e9xp#)qBC7~2t1y@69 zCAhX&9P8bM>Y z37Wvoa0}cDx54eu6z+g#a3|aacSCcy2U@_ra38dUR?r&mhc?g_+Ch8h01rS%=mZZ! zXLtx6hDV?abcIKu8+3;r&=Yz=Z|DP$!Q=1*^o4%#B=m;?@Dw}^8So4Ygh4PEhQPBh z6o$cbFdRm}NO&GzfKf0SUW76561)s!;T3olUW0M)I*f-2FcIE>H(?S?hPPk}OoeIi zHcW>Z@D9v`Suh*sz+8A2=D~be01IIeEQa@B3A_(WVHqrk|EFaIudjqv@ByrbHLw=e z!H2LOHo!;lF>HiQ@Cj^&EwB|nh0kCcY=_U`3)lfW;Y-*BU%_tp8oq&VVGrzueefOZ zhwtG49E2a>M>qtB;V1YRj=(SQD;$Mm@EaV5-{BAV6HdTi@Hd=oCTMS zYXu}A4YEOY$N@Pa7vzRKkQeg7IdCrIhXQaO6om8P0=N(g!9`FQE`}m-2^57(;WD@! zioq3797@2IP!dYPRd6+whB8nV%0YR!1}Z>Bs07zSWw;KmhbmANszG(A0X5+UxDjeW zZAgbYP#5Y!eP{p;p%FBOo1h8Y47b3oa2wnXP2mn`26w_;a5prEd!Pl}3->`wXa%j| zerN-2p&hh`4)6eUgii1vbcToEVR!_(Kv#Gax8koa1@TgZ*Uxbhd3&1(1L=$OhRV2jqlYkQ?$qUdRXMz`2kg3cz_#5YC4S;6f+_ z7eQgT7>d9pP!ukO%iwY-23J6FC;?YONhk$Z!PQV2%0O8t2j$@!r~nnA5?l+F;X1e; zsz6n!2GyYk)Px)0MyLg~Asy;KU8o23p#e06M$i~;f+lb?+yb}4ZE!m@g*%`b+zEHV z-OwEFffjHt+y^b86|{!?p$)W!cF-O=zyr_`I>Cd`86JX%;SuNpUExva2Hl|t^n_l} z8~VUw@HjjHeW4#b3H@OJJOxif20Q};VGs<4A@D2=g<HiQ@Cj^&EwB|nh0kCc zY=_U`3)lfW;Y-*BU%_tp8oq&VVGrzueefOZhwtG49E2a>M>qtB;V1YRj=(SQD;$Mm z@EaV5-{BAV6HdTi@Hd=oCTMI^B)qB2H7Ax4Br02QGU zTnm-qI=CLHKvk#))u9H|gd5;Ss0Fnl9qK?`s0a0-0W^e0&=_ulCU7&{0=L3#a62@G zJD?fd33tKW&>Zf87H}`z2Q8r$w1)ek4YY-J&>lL#1JDsV!Gq8l9)gGA5$FP4;Zf)Y z-Ju8cgkI1a`hYBtv3?w$fWCfPKh{q|e;5Ey!PAfd&%i(!1cPA+_$B>W9uI|K|Jjz= zpX6tW^khFtUrq0hx*WV>s~dqIA7Y}@GdapO1_ z8siMC%VQk*3Gx^*UF}h8|Ga^#4e!~omglT@)#=o!6aGG4&&KmZtXE5H_N_b59dRvieb<(?8;zUMn5&Y+zKPz5pH8fP_^WuFL0vB9d7*m5V=X_49+U038Pw_H zwOrwOz6c7fbLmCdht;)RMpw$Yj`wVqy02#6)7fXXt)`rIQjc1%kNb*vx75w^Wr-W| zd^zQY%9ShEc1_o@{~7oh4cxwesb6}7Su%7l!I#U0PbDT7M|pJAIJ&ULvOYfW?dc1KxwE1*Ft4D!s|D(z8P+V8{k%W z7#@Kh&=YQf;kZp$Ujw-z4bFjcAwQf41)vI4g%|MOg04J%6l#O~44!f0teIt4_vf|0 zIW`4YUjT*SO1K)zK}EO$(xE;yg%;2So`AvdEDVFuFa}UfVJ=;Y=X_O6+VOQ@CEFIU9cPWz&_Xy2jB-d1V6!X_ybPB-*5{4g)+G~~yC#%}ez`h0oR$Q7I1(6!HKoKZloL&fW_`*TLEb$?#X zwPag8mtMYpw}OLexQwy&T*g8;%K4w8zFU1Ew5{*VS8p7l+zZZE`ltfKC(S5t9c*Szl@q3n|>bueD&@I$zvwh!>~-km(QAjY?sHf zq*IQN`4}%9Tzcly%zxxFAS~1+SthYh)#sXhqad%AZk4|l*YC{7!KN<}E3~m}&HOB; z%~q%LM9K_EnV$c&DVt=`&*zEfm(afQbYQHWVc+C4Hf7YBPr5@dRE=WB> zJ>zBX^5rh_<;ZwJkmWy**CgZ1XLhKAyq@> zWi0=Y_pePNuS%@IDf&Uct>#5fMmkP_`ei^{SyP@+4Du0EknQ>ECJF5$`;xivnzU2K zYSz3*khoz9Z6VJy-$OhHtL1&f6r`*S&uZ3T$+uRy1me<2V+(i&y;%zV6PsQS-dsnu_mr3cdXSBVPBToFdcjmq6 z)F+VHF1$^g^wlwlmF|i6+4wmu?-3+Mu{B8~Mls?GQbt&~7X0_T#!W7?@5=BvIpzz` zn#SI{FFkBcmJyzfUXvWBW^jF%@v1D>QJ2iNOy@~}hqA0*bGRcTh)$esP#&R zeUQ-*jEAT*pJvb%)_?yj7s`2GJTv;YF~P9KfXtJk{rE1 zdCgPA&tL@k3?sOKwB;a9C>SxAk;o9f?|@3rvhUDuDBowmFHmzBBTkqH*F48a59UEM zoDmwl3s;XIpMv#p1{#lKGz&}N+~1C^&Ts)XXx_^t^iz#Lc&Uzes2y-iuLbvpH&!S^KZ zF!F;-XVSNzJp6M#^6|w_?h7Mf4y=T&un&&GzmRtxK2(MJa4U4VkWnHGhI@J58M?zWu#as=VKWpdM1O^f z@FK6xhgI;YcyJQ(%x9zwSHiVW5AK3a@E8n(mtj1VyN{7S>she339;{F#LwgRU6j(+(LnY|J_Ip_mhL>PG zEQW3H2(KMx9WCd236-EO+zowTD7+3+;3N1MeuHc)$nc;DRDo8|4_<_c@D4n~Ik}Ma z7Wfuq{^7pG_|#{84xg;gRpB#$bya8v9pG_z4qk#KumN_#pO9F^c?~zigD?o*gr)E? z9Dvhs*#}&spgr`4S3u@n-2z|1UvU0v_7!f2_V6r}ERoFc=J9wnd=7`;AIP_c>n7BI zJE0@=hgV<@Y=-aPG!$9OIRH082N(r!!7Nw;tKoAv2qz%tI@%t}zzuL4w1FNl2*@{@<*)_*hCCZM z*P$7-fQO+kjD%^h5%xijk0>8*hVC#7X2Dk24?ltY0doPk0xClTXaU{eId~mr!|#yT zNZ*Hxp&V3(T2KL+Kr^@xu7QW32lR(AFdNpwHz4<^mwSz00}Vj#`z!Z%mHUBChqbT` zzJ~AN2>cDvC+s_10GGklPz`Q^yP*^GhQTlvrotll5O%;1@E7FT%sxOFs0mG=C3J!Q zFcK!hTv!R4;cNH_PD1W2951*Esz3v{8#=;cFce;e>97Pof-m7m_yZDKX>+&?%0Ufi z49%evJPyyoSeOQjU>$6SAK)b9`joLKTnX1gI@|`W;9+P#5li_RtHSg>f(gmcRzs0SDkO z$i0hW0rhk8`N+Bs^nur48hiv_!3ntHEBX=K0JsIzVx#1U2DCs0)qZcDM`P zhp*ryT>Lekzi=<~g>kSHzJl-I2bfThbC&h5a01Rk?r-Qba0!%x4qS`Mv#th>p*1`N zz2IpW31i`HSOn`}JA4Pn;4GZ`E#q(~2Q{Gy+zXxIad;NS!cKuW%aj?Pb593{;24a1V5XJ}?+wg12BktcFiv z5BviELf(CRMnY+*292OObcEh82*$u2nd27ZQ9kb6JZShxzRKm)i7IzUf&21di1Fc((BX80O@f|HQzd&Y)P3a*Fx za3{2f9*_Z};0>4qE8r8@4Ts@x$a#S4ER=-npdK`XcF-N3h8JKW%!cK#3BH0u@E7Db z$aoB{gvwAC?tr$?4W5GMVFJv8Wv~%;!H;kPvj4z!2TH)TPzRdA|Ha;!z*&A&_5R-= z0v8ccQJ%=-A4C#DGShv#XGNA-GLwOsWSH(G5WwqQ{@s1kcbmI(PmiE6>`O2Sfv^+V z7g-dD5D;0CKm-C0!YaG$JIErU^1kPss{g<0c26=w^z+~`$**tib!t0Rb?Q|8E1&}& z0iFb&1zrx`2;K!g0=@{o4}RrK^nGwwFa_=h&IEr9+Th{fiQt*wW#A3qo#4aZ3*dX; z=3i#M04IP+a9?l+co=AbKLt+!&j2q4e+RAs9|E5T{{n9I6?g(j!A2nO6CD5#1xw&4 zcszJIcnP=yTn(-V{|vqhCcesC1MUJgfO~`e;342VunHarE(0$HuLoCw4}#Bu?*O?h zbvq#M?VJk!2s{9s3!2~vcr17tcoC3y_Fm8L9dA!x;aA?yc@JovOC2?+{|8V`?Eiie zuy>~(aC-^nFPsQ30Y3mQ{onNAKW5yJ$8NA6%z}r3^S}yt6u1~X7rX+z z0bC6}06q=A4t@lF^&9jVkb+aecCZ(m1@3%L>ixIjGp8^vvA^|N`XRqh1kV9ifRBPV zeT(qlfoJ^-^#%IhhbMw(fxiXs0{;R&abNftzrXPV#w)lFcqlju9uF=A7lWsQ3VHq^ zcn0QogHMC&e@GhObKpzh8{oU(U%`KXiGQU$;5WdXz}-L%906|vp9d2^f)@jMul4Ty zozO|zuSO60Fz)BI2$a1^TBh#mEa%2$H6zi9sYwh2M+~!Pmg;eq{pP-U;+}C(yy2K*x3ho!ALsva{^t- z33M7K&{3Q~pKt;l!3p&ICeY2BK;Lcx{kaKr;wI2*n?R=wTEV-)C%`wr4?*cyC(!31 z9@ql*f`@?~cqF(GyaN0kco+B-_#v3M z4qOku3;tJWBAEu;!5N?h9tU0s-V8nhz5{M~n~CJkU<0@xI0PDC89W|53%nA%1-uV@ z27CwH?AIoeJAjkGy}%iu3WngZ;2GfM;7#B<@LBLZaO>MnBEI_YY(I+>JRM^ZPI#W$oI%74-vuulx%96Zd_X z&&BOr%oR`ri{RPd)!;gC<;PgN@OzuvO(c836Ts!*CE(5A8t?(|uVDLcOeFUOr-Osw zL7)oG1AVXx&Id07?`Pin48OOyJ^kgMm?!61KVUu^EP^HQ=it%cao|Gm6z~l2Jn#bW zQt)bU1$Y~{2D~491bhZO9^B$L>3`rpU>^MX$Kf;lJ_$SnycWCzd=PvQ{0RKoZ$bNZ z+JN6};4Cl?9)sHozfS?r0j~j9gO7r*f`0>-yqfv+x9Mm1BR;>=U=KJK^uS}lv%sst zJHW@l*MVGM{w;74xEFXJ$iPu>A^0osI`B^LN$?$Ti{GK$!A5XjFbn3v1>lJQZJ}g0 zI0&AK{pH|I;630o;Je_X_UcE>Hu9!3E$F@O%a%V^}otm5BwA6&x3D*AA_B&zix3i`aakK&IJST0`La#k6_{tp%L5z zOoFZ8bZ{0}07qCiwfG%@KLd{gPX(8Q*MV!m$H7;?H^FzokHCMx|9-;nZSKz42fq*Q z0`3Z?z;5tB@W-GH9tAD}&jl|4uL5rbSAq9{4};HuFN3duuY(_hTbxKeg9dc|4!?g0 zHiFYZ4Lkxo8Qk{cto`_X0eA&?Gq?_X7JLWX>?HajxCht*P6M-`3cBDC;ECWF;KksL z;2Q8j@Hy~J@bBPP?g2gE4a^zmQNQ=Wd;lzhKLw8imw@Mk*MqCU2f(Mm*TH{)+nhX+ z+#cKs{2|x?wtyYr0bmY16g0qjU<4ikE(Fg7uK{ld9{`^N-vK`Xzj;s615ajcdoOnfZgCB;4pYRcpi8u_#5!{ zH?f}P_dVcSVB*w?hktrTHy`o!|^G2hIg`@Nn>Ga0&R04HL=lfZqoxI1x;P zzxrMFfz0#o0UrUM178E*12?}1>t@272F?KIfGSu7U9b!u0UiyW1fBw(37!vL3SI?X z3*HF+0bC8<4L$%q20jD61ilOY6a30X`WUzaxHGsLI0bA5JHP`$0}Q|;!IQwH;5p!h z;8XCNm-G9#;7#Bv@Lup?@M-X6@E!1P;O3Le7neM`TZ970XV5lU4cIZF9ELsZv@wa&w#IhTTPP|{p2?M z-X7c$oCIEQEA~kI-VdAyo&w$m-U)sTZZQMB;5_hL@L?eDtNjzdUj;t^zqN^R4DJsW z!4SL(h-Pnt{`)!1-vGDVOkIHg1?~ytF;P4W0xp22Tgi0at*Jf!lATO~EAC4$cK#Fam!GUJ2d5i|j|VRVSAe&IPl7Lj?}49y-@P|!g9m}D{)GJrI04kLUjSYR z?p9^Y@q04m{1m@m0zU$`xexswoC>DFZg79_Krj!Mz{9~s;053c@DA`1@Kx~d;I{Xr z4Z$CQ2ZJWK0K5eJ1Nad5Dv-xz?f~uqUd9|V#qSPqI(R7PgUi6%!H2-jb`Tys04#yW zfVn%c-)CKL4fq6jGH#cG%fU;)Yr&hqHQo;)jjV*<%i#}i;rE^38@Gi2^7~QnN$?f$12C}{dcYmQ-M~h$9h?RZ zf`@=bFaUoBE(A{pF9v@D-VELf-UB`cJ`cVPehhATI&%=XGdKy{3+x56paRYVE8qff zA$T@;33xqtE4U47fp_!!e(-s4`+d|IxDPlT8~}&FgFppzz$3sV;5p!>K>o?!n*p|_ z3ER%(7J%-MP$kh@d$+;PQtX#+=TQe|fHT2Cz_#SS{B|DQQs2${6MkVuNe$FN17u(x zEPzGO1m}Sz&;o71vLkvAuaA8IhF}Di!3sD6R>4v5r{Lk>5#Z0jpM&$kUw{k1Bf+D< zqrqdqW5MIV z2QCMH1)dLH0A2`Q1YQhY0$vJU23`(c0sb1i61)m9CH+FZ_4dz{=kwqT;EUi(;LG4E z;H%(k;OpQU;G5uE;M?Fk;JbjONAf-JeeeVDLx6bu=lY$ulVDEw04)1|`Mw)<&;o7H z0bS4ohe00UJG6aUJtGSe+S+G-UzM)Zvt-ye-GXQ z{sFudybb*F-!E(6mo@MUTmyrwHJ@~ci&;Ne>GoTVWY}zH$$Y=s&eYV&R@%)$GT-gj zvr0c3c1QKaq+RWG2#^f2{&LozZ&eot$*?=Dwkm_HP9Se=-*BHceDQ8qJOvQ-);JLYSMlz_LN1RviMV$z?7vhwK-X? zP>PjmzfqVfM*{O|U_Od@)YCs2X4I>QH$URjZ!Rnj{jd6~iv}^%(PY@KQe)LtYtU^q zsaCZPhSmNsbfBW^!)CYR{IgD@*QNF}uvthxvaZHfpHZ(>?PQfsx8JU|T!_#qPbG5n zX+@54ijC%AnCIwC%}%$Md77J@l`4&#vRzo zRb9>c2m9IFVzaZ9)LTuWXdvg)9SqHDmwG*bu9BE>SGUv2>ciyVXlM@mIu1%aq+jhcy6t2j zqbaer7SF8Thqi9*JTok}Xd6v@wYriFdexOq($A!1){w1cCrj#!S$)Z>KbdcmT(6(i ztGHGy_1x;{7>?%W>+Oby?N=Mk(IBbys3Hn(KV~aCYuWiuJNvY=&p7*xvu|?tP0qgA z**81;7H8k$>|2wDWj8-$oGiSx8g*m{bw=%qj3t>s#Jt=cQla`+7)k~o$A!75qHHzk_ZBoU zaa|=OlNz4Mauxmyhtlfl^}9!_b>_Cku5@{|1Ysn6Pg1NgzTy8iKwtiJJ-<=J6#HElFhoRl>5>?X`wv+wc?$X?1zdKr3luX)G9?VA=OFubMU2b;!nl24h3H{0m3{2|HyN=t- z!m6iqcE?cmhN<~xpSBVwGc8tIL&ge3dy~e5Ezvl}KS!(pnB2Op26;+>cWL)JD2!o7 z`2KKEIUOEorahFfA@z11!ne;E$FP^&V| z+Le~fMT4x`uP;_=nej=rz{I^f6(kL<%ag;*NbvDGvFp9VD}!ZkYcDqn%Y47NcAf8q|8v7A9a{?NOnX)4^=x$gUVSw=}%^J7A@djol}HMFEMvm&z2aKJup}ep$UXh z%wb2P!Su)?N<)iH`nd_^YOK_Uyu14hD?)*g7?4FOS)$$Lupny}8_MHLGw)NnHL;)w?#S zm%U-y8)m#=%KEPaFBit?!Z=eHr&`TrVNDXYFisc7nZh{Lt{(CHPa}-kr^oCwWA>?P zW0|tRGc3Q@IvrbQ3hS=9J(UA6!a8F=>7QrQA+_#%nsFeVByklREymK2GQn~>BN

G`@@TpIu)68Y-u=HNFLCvFCElLFFCxTqoqAMdQ^u5_vagK9oNWeBb)3zua|X+GE|ny z_0d4s*IqbjwUN!~gh3Y^+2}hRsz&u@M}s@h-l`2uSl8hZLjbmJKD%U@xC3&94YO{{ zY|hce4J$*|MHX>SB_HVLRAyOnkNV_3+(C^eHQoH_9#1+HUB2c%0& zlv!B=SN3&!BW6h)l@|4#tFi-dK2e%tVZUMxy00VFm=tl@H`wL)PV6_^TeTu+@uPHe zuXT#OlLmzEhBZO(Jy~<1qccf@%`t3NDGMVSJ83PqrdS?!hW%AWudH>Uh&Ktoe?R+0ro>dl+&}8 z3#=)KwQSznOu6G&6xT?WUw0?-vdq*j;$nBjyG*Tha>*acdd$Z~_SB{eOSNiCY2s4J z);PJJn3!H?7;L9P|qx4H7xIu!pii zHWXjil`3l1;L=6MQe|&wteX-~mPs-EoT&rJd+ic|!R{{G^4;CN zY~jx7_Lq#kF%@V?+*$Yc)C0aGYp_PMpX}>2hjT~>7HD-@Yx(6{WI2sZsrSrRaBE#8 z*ltoRA>$BMVY=7Q-^M1^F$lLm9aBVNPO z5ms}K?j@6R2sZE*nQAH~uhf-Do0X#ME=jrH9ov(V#DVG&ofCA%JM9QtjjU785*NeL zk^1Oo3#_F(-MY>zaJYK5kA;p2xzwb&Sv+=%>}f+P)Pa?$tc}#nsx&w6>n!W4pDE0h zNIABy?<>xQ8r4;?W@US5m%g(MMm=^9i{0S@48XZ{s?Anl)gWVTvhQNG&|)fM7lbre ztCXrj&@~))Rq07b7J0hW^DB+jUY1am&U&y*U#YR0Kq9DRWJ7>B)R}ut1QlksJe;Lo zgfS8l1PZQ%Vq!?Ez`_N`$<-z%#1e?lT48;w154PItdHpLnbI*9!IOU(y)EcPNV@M5wIa6Y{k1IVv+GLO*u$pPc$pi zcol}|_+tyK>o%1dOviJ&M3Oxvf;dTM4?=jA9(a)of(V@>8014%WQ_KHw%p8CiUoT# zj%2x~%lOFk43UzZO*z@AAMAH^){$+#n47ziUhHHssUs%gl%TFeM+wM~V##fVk9=l( z-Jy1)EKeG4Zrra7x3<8zoak<6Tdo z?(Lo>%~)q8F;;TFsI+|pf*p22^(MSX4>aO-t5-W?S!P35%-CI`A>m$`717>Uy?DO^ znFw=yzd^*gpSeclsdTHMH=mu=y-^o4-f}2gj_h!x^JJ*BG9RLFk@}K!3l|AbT|(oH@7K7K4i|TMR}`AR7-6&RAPB@ROa*?!L~vv5CrVB*&|<(*ax2nU8TvnTjZKxqPqJOa_g1r%!^{yT%C3O;$gDaB_ zia6ASgR`UwY0oKB*O98**S@%yxx` z<9IGD9zQf;k~WKV3(pfzNAz;~sNGJ)uv_M%S($kDGs`3gstYDa!f*ijk>3X-be_SY zdX>!_=T~-JZ^seNz_b%G-Esaa-AcOT0ro>nbR4rW1l(GYv%Xe^1FvpfR-HOU9)R1< z_WBG9H-SqLYC3PK|E|RmC((LXCFj@9 zfq1!bwJ;tvqea@);&kJHoSV75&JJeu)ySdI2(4;%11e$6)-xMpi7tka){BJRRiN7v zIGZ#P99nk?64+*_of^f*&`Il1b6yT2wc2I&iR>InL9Lr}Z7A+&u|kx#cEfMSzTLBd zRU1CA&&oys%6l$29i_u=OycJ$*`W0anJrJp4|$i2S&LN6uI#Kbki6U`z_v+&gY9uF zj8tXka3yw1D+RrZgnYEt-?uTWk3<`&n1tle@~-?Fy*ItMwRtTzxbgaX@h zD!QaUqpKTYAE@H@l!b%zp|#En#wuLx>5#Q-+-9=y&}`W3nzvgFSE@(gzHW_-xfWXL zp{0>qgtXiu8{6EXTa4UhJI&l$r91bfdlxR&p;_m!h+N-w#DS=%E)3m3pp*N^9uEFA zZZFE>0u<$O4n>)2o~h-DG?L+b%?HXiNn*6sH2)Ci;wH zD$+3!{bz1rx@#4^2Q%+-N94#W8vEM4QA>{FoWc3I15I5O%E2(nT3n7knR!*xv2#>I z2*r9)#@gOyO~qF73x^Sjj9V5UTxl$EP@)2{o!!PNYu6qrOTFVcbGqFeUqE)IS<&)Ry?GTDhd|~kvLji&Vgf7RF#k9gz zE)x0KRIlr|u~?LO)T67h@c(_E9p} z!!TfPz6h21Vz3bdL=Sp3?aBORP{ynRMh`|(XfJAWO#XbMXyR}-WO!24ricV z5;^Ye4!hzgyE^2~v1b_41obj@M?=n%L+!4@>{d5UKoy08S!kn3RZ6YTitV82x+P~* zqoUKowp1F0?G{Vs+;@$fzszC(U}znTUWwp845B^LbW%cRRVQ$LN~*_rs|#Wt()x zg1)m^@)b&+O74;;#Tu#bJ(7j)c@DCU3Io-`P_-~vJq%V4gVn=ejWAdv4A#hl>C$4V z>dT_ma&C1Co;)3A&y#ZYJT+%8is2o`V-&@4A&Me-hw&&y(Oih4c-~<=N>R*w!Ic*! zcgZ8=E_rcsm!d$0)7p4Nq4H2gu?nZP5sRYbp^Cy4PHQ6;1(XGKUN*ETWXoqOG}J;GY9S4^kcMI)kXpgA#1fXZ9_CXI^QnjV)Wdx0 zQ9e;w>r-J_>vH)duZOzaK?!UT8FC{f_bbLCWwI7gGdD z7juMI!hEtYpDfHL3-igse6lbf=Eblgu!c2(HOvibm>#OnE`7xH23IZd_^LjGsC~VXi2)WMsFuDxOYfwWRYnoWRQ+FMn>h zQbp?I&OLD+^*i3C1$RC^NoSSJoY56RlQ$>yg;>dRDNX;%l{7nT6|HBdM&g9Dns-~o zr4<*(dALN)OEPnTROsfDQ#Uy<^$uuG7M8xMxqB~HW|h(+^O7XJmvhrG&9=Ff_2goQ z?a%yb+_^fdu8Ms~_NoJpJWP2rcMLP|j(Ls)DV|T-)y)7wuQ=y{L;)3D6_uKB+0Gi# z(;Ryyi=+M!jaB=NLyA|PW{;Elv6RFq_ZPi>Q3;N!*&OpQPRB=F#{vdE@kUfPE98{Ui5vYey)3Dky?d$ zlkXwX=uoP#h^OvzMQLl)V(%g@#a4KT&0VD$_E~dOGT?g-cS5&0c%OaXlmyODqRj(u;RxTji5iRmnE~8EpZ{pL!u@rnWNTA(3GC$iy%Y6kpY& z!O5@+v=dpG;wT4N7JOce*o}Pn`s}bvUCtf(HkV}vTncSb;jNb1^Hh*)A&lo5M`e|RSiV)}lNS$* zbW9IB<`%6VRd=b8cv7pP_1*I4pVoA$dxHW^Y%7bN8%M(Y<$A(?hHt+zr)cX2%{6cTw?pF{-dK@km0p0X|WvoZgO3YT;L-nLE@2_GrcX;SXRE0!; zQ3GbZ<^U1?%){dOcaM2B2d21Q&1S9XuZQV|- zE7#$?@2Iobm8%0Tux)#skTQ2&B+<%>umK+qrR1f^LF7Y4E^YP?w671{t!HR*c$-Mw z7%8$w@J=ZDBbf9yI`jhQ!?uzgB7mcPURugTF$L@KCJ618^`3{m-A$2qq7)a z@HE;uJphwHze^6Xgc<53PX6HQz9V*+q!ye{!bm;QWI`RT6Vo;I2B{%8B zNR3+WQY%LlwHocQLZ^ehtFTc!W9aTPKsGLeUpbXyJ&Z&&EmblnCxsjl(BpK7ioT%@ zv;hN9oLE0|8Os=wP_e*lsh4{^!*avP25jXZ^QF(3LsG`DV`+PYvCZkFFt0^i=_2CK zElWBSa_eA`s%9wU4kEN?=k1mO^q-?LF1%G#MJi)SP^?U=&;?)@Kb&=b7qT>zKgV*Mu5( zO9m@V)ECFnTI0wTWQ3Xqdd;jC#U%~VfDp|I)Mj&wUA>c<;LfpcUvI3;a|0TcYL+=NnodWv-Sq)gb~7P| zN}MfbwVA)dfKjg5!l!K@xL+DgA8EiUl`Y;@n zdR3{j>Z*y*NcTDZX=N}TXEE({Zyg}?_I~1qI{iVy23$g2b99rUrASIVxyv z$kkpC3OCD9+$>8mS)O9DOvPlmipjE-X0lYoWT}YBQW2A-A|^{k zOqPn6id2kxlN1W|CM5JGOIh43WieUGVzQLQ#JPiyf~YJv7SR!t<*r2nh{$qRBTf@D z>eN_}S98^C*#-F_uF4ZZSXG#VED=-{?nS2R$V_3WVX&kySUMOi5e$|B28)itD8^v) zVlZkkxcU%No+M&Jp+Vg8L=hNzw>()yh2AYs7$Ko^Gv=_nyKq3+fwBs0G7fX@Pf%3k zZQ~>6c|S1cQC2jWk+~ooG6PZ}GawE!19BiUAOJGM7H`<<4cokdrg4Gj`QDT#PNR6Y zJb4<#yX6^7)A_>a?w;xFZo20;x#OFt7;z#20BNXxD;z18h;JEL+dwoR`lc8PL zVwy>kG?S!iCP~;#lD3&7c{524W|BgiNsH}_MJ`%&=UU{W#doenPCPc0CsyR8?W2dI zlByb{D%2n;szC@>gQTVgNlOiqk{X0)H3-dWP?F7*r>z8=Tb{a-Yi@b^O02o%IRvEU zd6cEQYPhoGAsog3N-@MP`N*#nLVhI=`IREbucR-(QULjN4J*cc7)n#i=DhE<@ol1H zVcXAi6h?l!G7eq5zN#rGs1FC)da?BoFH|uBJ6o_O@h-sv);WdC8B64#(CU15vs(6X zMPM6Vl&uaKcHuo)bx_7*QH&++Fa#Po!R1^Z1=)oW zi-U&9FYEdcp#x9#u%WG}N(91Cv1mQ#8ywbzqB}(xT_CBcj}qdPIf~JxAx2*Mk)UGa zksoj5eIIY+X&-OoRUdEMS{Sz#M*4Lg0w!6QgA8Gmg?o@C45@GrGKDRvyDP9uwb>9Y zK=lx#OJ9sGc`>@w#pn_jqf1+iE@?5k0*TQTNQ}NfY7X*au;zLD0%@2aOJ5*$4>I)y zQuiR+sUTklZ=OEGw=f6!mV=U(gM7mTu320_vpC|-;z&1(Bit;GY_m9`&EiNlizC=9z82NSf~_Ed zHCtc_Nnqs`_=F^|lns1B5;*M*d_odrNn3cKt`k^75;zDBd_od92o8Kg5;zDBd_od9 z2o8Ka2{vt-k4=q%+2yb9E_*e*+|}$dSF_7o%`R&-yPVbRGp??PD9Q^Dgff%eia^S) z9~SIeBpIlvaiKAHOU|hFs;#!uIky?soSZm4pFZ2!9&S6KUyFt~gn{EAjsNU6__j-cQLIXO9Z}lQTOaN6Px@=JMpWd#e#Ts2M#?-VGC#I~5P}u3xSs zjB9?>!)+irSXry7h(~er&2-52RtJtWk?LWi1apW(4(~=xW(5ee3|&=F3q~?h=~dZ} zF#fy=*}ij=_wLNs9)yu_^2VLH$?JAzl6URQv^6(v%T2Vh_h!~}Mh2TV<@vEY@@{#4 z?2f!!o*%m-@0RDs?#Q_@hP)|HnbG6j@{}1j-Yrj=5#!zRlo>1Dttg48OXRLaHcWQ8 zYmpICopV)%SFI^DCA?c62OSCTR>a6@Lp8$t=Cq*{;oO++y(v$b$=)Jg zdheE}%rx)ZP)*3w#+;{)IZq#Ro&)AQ56pQknDcxv=Q&}vyhc6ODKJ#p;RNq!Qc}_nZ~*J1W}@KEvydE&19 z#Vt?Xwf?B*8XtoXkA{q;?^+%&PfWuTO-Rm04UJ`r4fY>YuPpA@dX@-TWLFm6iZ$ zhYKzkSyF+64-=hUyXy+*XD92q-%uROV7*wV$I9aY>v`>B@8zCEv0Kw7&4ux=8{ATw zbLY})pS;qkVvTc7b;TZd+DWEJeCM2X7M(_!*anMHg{q5cx<{TqF+Hi=*=-Ho`Q>Q` z4o1-nyN?l-pKYk#h0XVXxehVf#7?srCshBTG{{RgzNGCF&7;{AcLpk(5gGF8Fq4rz ztPuG6_<@rcPiwP8$dj-$S#d~qH2b0u!8JM`Gj|F6_Ow=at_F60BoN$!KT97`j9b@H zjFLE7xBk_redqzr+Cvw?tnAMA0~a}vx0A9%nf4xkYlOqxG2IOHR;>+5c+8XM7ySzz zlJ%G`Yo2<)S<80F!!A7A7TumLUZaTG*wxfQo@L>*De^ibugUQC2y%&IxbM>UP-gWt z1be<=*CBa3fW?S=c?Ju`=nsY3+(*v&#G*cGF|DKdhTW%7ThG)GhpKua%Q_cEPXq(A zo&fdj0Tiooy~g&%C#Fx$0-yU zv&PiRB`%Ix)Lr^kc=Mz#XH8N|PUG#6D!vJA`Kz6~s@%6aK+)kJ3yJmi9W~x@UT&(c z7w^|p(17Cau)vejE$l{0x}f)mq5 zvV+%zP;m6Va+co98V|_avs2i4wp{s|M1W_EcSrP3HN8s)tk9*JUD zqF6}j*-{|`TWt1lRN6d8!NLM2b9+XS&cOS`%NDxwNG$W^zbVH@-NCZA=M_ zT}FWUp2;jn{Y#6)kqBXW;%9bzI*u&%dK}_9y@A+GI)ChfPQ+jss2D`PcDQR!KAzQx z#c+YmDM;HKRK+U_0$<=g4N*T0o!Q7PXPgvxrN-Rqb;ojtfKKn`$&&ZaxhUq+)t1rF z<+Vr575)~p@e*TEL_~miwolVhMMc|2P%34KDX`Q zG53{GK!4pq4S*XfNbedi;W@E4U+WPRij;^vWTRHk(B|u5(v*jj*@a zSgSFgj9f6g`sgimZFA5uKBqbC&?A_{2aywWXGW`4)KPOfrULVHV4exgn*#IZz`P|e zZw<`y^#q2u%VgA{xOp~e<4QCpshsfXpsNFzp;JW27%Qxr>{pjh(s#FCd?EP2sI zbt+F<8otMktL5%G|GSAbqlu0sWm0D1s;}KDqSB179d#Hij<>Zr3 z-g(yE^f*AsQgY6jhxYGI7psG`!;2)X)wGsnowTpD+1QXW9iKQ%SGvrbrR2R|_|j*u zzvl9bl8Z~FCV$_DL8Gfro8hvNKq0>+t~@F5~WV(8I>vPTJ|S{wA)GP1cS6E-`Ut+S{x30 z+c$1pSy|a2di2sO7P7_$6bv_NFL7Tb*jTy|l9k#sJ6W3k7eY#rG~(P!mxx7S#WZfc zjKDj%Uu<>t)93QkJk!N~mi-Uq@-&|**m?meXWIeSV>oJUH(U?6+wy?OdsU z0(r1uZOQBKyg|`>P^ljcr2?gT?b#YEQtVmV69IdK;~L##P@7d=y~vppePQht_Lb9yhjM63nHtde^vLqpc`+cie~ zM~9(4xHX79yiF@tcKpZiw+cTb7n+9a2hm2*-K$S?>{olq9B+oEQ>j}u#UZq@G(hT6|9`dU&qYn#NQ)|4L#P$u0|=k~x#I-^p8;&>xHoZhu*@9?DM z>AO0|EO0D)$9{U(doIXJEZ$+>IpiUh)4MXe%F}Q@NF5hAjL5sZ(~rqJPEPLA^ASkDjlycH@8XDtNLV}W=hk)!cDuwPbDr@6Zc04`j|HWVY z1r=CSWQxNDrPBFNxgb>@@&{8g)Jo@HdOU69JlUkhACS(NaX zU62OP=$6iZ`UUC!>S`+Q*=u^wAU*khfVLjtpLszl@12_!`!?biEUu()0Z-Xa*?y)= zy!qPdmXc<_#FIQM$%c|(DUr)Nr9?{>WKopsP3-1#?^~j!^Pd&fRgjNWLQtz(kpi5k@nM5R3BmBQLFlIay(zQUE9t z0^d$s=&o_*F+Qo$HSV&jl}b{Nw_W>z55D7lAG$uhFf{?X-+OE?UH-!_eD>Sl`sTk} zdHMK1ItNR|lykkJ!#I<8U3zf}vy{geBX99~+Qn(RT0eDaGV)>j@TKp5;hUfR{1@WP zBoMKbH9qCa6e;jvF%|Y+HFo2?F1<44k+OQ=la?<3{CB_g?SHv4&PHt{D2((eS6*)E z(S?06oYzyYyu6{Odr}wj>amb<`9FW_8{hcsH$NXzsOeo!EP9)~GJIuvo{LapB(tn9 zB_F)*+V@}mfwi?ODgG?=Ym0Jy@6VSJI#{Bo@}^E2c}OK5PyO0Q7>jBoL9Ke~m#ShA z7XOZ`eycHN*cjgLPbXaoXbBlBf3Ns+ZEP^R@K)r(f*L z64kwU(JKBK;Lz`99uV^EX`U&Sa$K!q9YgxPMweK}#Z_QK`Zl{3WuU_-8(wzh<>@At z*781M&ZuOBWy4D^x$^Szm%>{(8qqt zN?cQe(x-mvN~G7bo{^`m;I#7ks}U&);#Hn(wt~!HeyRbnmQ5w^|JVoKw{9IC zM^F4IDiPMf+}6%c9omN!Tx+_TVj%e-wQqY*`i}R#mo?>8novoU7*QzO zo{BJTYVs75$>~p-4L@H~l1s1KW!EK7FqNdhQzApX}gk* zV2+wr0aLDwNRjfr5}xw4sr~Y%f#knEz2^Wsv2KbI$|1>`Vy|Dq-B!n{@R82hPGh@D z7pJr#rXfvBm~yy%qBUJ#ix+gHyQ9*y2+-Zk2Qs)8aog+(oO%Q*;bk5O5Zkbfhb}B|<*lWfh_W zCZO>q;7&4c#JpB|==zKm1*>7|)wH3}c)f5Q*o&|w4qF%25P3`vV6oUgw19$ zt=X*BVfGTanoeu^w1BtC)R<4aR(r`!4MpPl#KBpzmz>=|nTuwdmR6K6q~vW0_30K| z?bJLqCD*K9I(8ipA)H=hsXR94Q*FjwZ62W)2F%4TK#no5P{k^dde61jUrXOhMKX0< zMcYIn_7{RBH-bzJptKoJKc;*UDF^>b6y8r5Md^!$(3&nloN&%szxbSB-QZkBA{6SF z(^XJ`i0kAbNnK#%@+P4h9VZp`tY0}(6j+ov_}|N`Xel{ojGxZw2aWoS)3PCIC5{eC))j3-?fj?7tdhF zAmoXl;n>tMlbO6gc1e4U%dhPn&>3<{tXm=5Y0`6Gh+trBK8W}y;lml2vr;!Ik3sq| z=iq|Fcy7AGPsfxr-$AZlTp1kbZpxm-4~awc^J5nJhT9;Rua8j*z3;MSnwG5jcdTie z5nf9CHtO;VEpYs|#Bu7fIXzn#`ij`mv*+8U;>x_SAUYHnpDjn~_=~;Dp_{ll?{eVn zS){m?(5!SP1<&UEm`Cg2+f0-m;lW z_wClirP*}j`D~jH2XeTt4(81po?MrZ#I=F>CW>mqYLF5~0H$(=w_K|js)KxIhRBd+ zvkyiWTkgwfnG0_zBHlXwDA+L9p0L=eHxb6x@I)!GlU^|4(zD^Pg=&V|6lvb`+;j1H zbNVczNz(-@C8BD27W`Z^Mz^P@rH9fz>DeeIJTQGwx;H&nRon{ySzLGHD`9rxe}<|Q znx?Dn-9@j4J!r1&R!aU48Ngb&o-waFgphnSPC7KD%=)kN0i3K$NSjODl&*=LC~)b+ zI5C9K`14z;(mTXSw~R90M!b5Da%2m8&OKCzv!|Mp-MVCTt#S6{8RnK zKzFC`aVEIV|7%5!N|+P;3t7~4`;Dm!|6;W2WyKKqdFY=qx2!)Ff8mDWaTWC!V<;Y1 zQGYRp;tdq_=WHncth3@T&ZPHqR+1YSNIy3v`G1Gd8yL_}V{X0C#o^CcNp4`m`8g}e z&&4pfk=}J9RnD1~DA;ffbD^8+#}QP?I_0|@Y(n@R2;W~=;4K*NZ`S9{&S$+;qjY(ujoi?)pYiT9o#GtlFjDudVi?hHt`Jz0u)BaaCBaC?Di9 zm&)yVT3hCu`ZCQiJyH+sJ@i6Wx^C6{XEV>&oC3n5K$(N%#Lnfi1=jB24%JYp3 zD4DXT2A7I3>O3Ww`Hc_z^^06|KOx2y`K%tQmWZ-rPop+2@_Hdi#cp)x#I6lhvRmFa zSY%f_H}F%sXtQ4M)>nhlUGgQN6<*j5V;q+-@wlqy=dIuuZIQY;tD{FK>t0F!|F>>R ziGBHMuyNQ~;z^998D%9h#73^~>q@AY{TTTz`J#Qw!$*sUM`$f3N9{+>VedB3kfJ>` zTulAyvV%5VF=9F5;cX8VU)hNR^!;^Sg;}}9Xb~>X7;k-WB=>LF(;-m;MJ|mzlazR) zb`$+Xxpt7OrILG&hh*T$5^-h|OGA$4vO&trDmIGbQmK|?vAUeGmX>}*N~`ivh2>5; z+(o52Z-`|CmxGO*E3JQ0;TZ2Z&EX;+np#PtV>i!$VqcrF8P#qGiuM}SeE0P1YMn0~ z`SI@94$20zqvkL@X$S9pxjV`CkhnL*WEl#+M@W%c{i&+&5q%ndfmdDFO=wH#n=jJR zS>uFKvRsh|<~b^avs0tg4uPnzAXM6&w_2-nw{XNOSKZEy1mufctq~=&C-Hc9rrMXI z7*6YW2219l{0v(|r1}mgmzoxubsAy0QXecf=ZEQ}{dXgoDi~ij(>E^5blA zusD=A1J@yx!!@p2#so6Vq!4l=hPp_(G|cz8v^M3Kl*zp!zjoJl&JHiz^vt4O8{H9a z%2E4lc9vZqkXL!M(p^8TahY76H{oipCTe5T5|weTsa1JDM|+DV<$KPtlM-qeiMA9G z!uc5QaFsfjT@r8mw9vvu0Z(^W>SQnb=;KG}L(+!@Gm||f0*7#(5AvRzx|h;qW8$vS z4pLDS<~DkRJITkDO`ekEHl9sRgJsieTf<3BQY_gea;ZJzVL$3O*)3oD%^Hkq{Z8e^ zA)mjoHCLA>8ns%v1URG}r`0)UZ1A;|uh^juFjNiGQIDM^4>S$r5r?E&4&HC(f8N=tUmpVa09Cb-_9&inBR$}D;3Fym8!!hMxX zl@gbpJng3;7HD(S?z+56Kwea-@1g2w9h6#K7;IFB4edtD@g{qLb343v34ufhR?Xe4 z4!iX{U70&_M%G($SG+AXKB zG^N~={Rt{CiLx54ig{($RT_agP1H>a?k=;NP4=!6@J-rQYbxwH>Js%Osf8$rI9LcV z4Sb)I(nsOMAxf#nSCOI+;$R`_&_PP5oouAbpq-&3LhXF?DT^FxDCBtuYqOQgpdv2P zTL#URywQNw)hQpN9QSldx&XDc0f;U7FD}4JWg$;tfyV=)#K*kGlOFT-3G1L^EJ&Y~ zC@1i~oDF;?6dtLwa-obirG?6^)_HR4bnH75SW%!DwNSBAr-)r?)kZGH7!I;5tFrfL z3yV2utW91mwcG|QD}uDtD(^v9LSnU4m`B9oVnIc7(5%^bvYP#qbm@R8ChgPw zO7GQotddkar}!zy!eBKbU#gUM4U`s{KX@ra)TH>Hu#sb5dxbxD8>@UH+e$s=Xk;Gk z%C~(t9@V!xwSD}83|*>@rRH7u;OTtU=&xun_i5UVC~GesWyu@Gbr*Wn&42lHBL-fs zP&fa%)s5_{DTcJB&!jJ3Y_6d2IFdu128>f|*5h3J&AQR*lfuEu>>X6W zG!Da-0X7%bmAJ%Vv^T|0Eu9K9p6>z7f+){LN!9fE`N&C&*RjN`f5RbocT)qop{bwO z-oR_czGt%6(q8F0D%Oy3XsP(lZxBS&3{q$f`quM=rMg^Xh=j?=1!#H6GDwEzKDEuv z6gZJ`I}4+^OW+#Bx^F$(D19<4(z1QTTLUfHCw@0FgtXA!K9JS5MY7Ju%)!z)sy%sQ zG;*M0=tr^C(GA+{2qPTk7X{R}KOz@ic0mRgInB4)LbvTs8i|J6F?koF+$ADdQ$}6QQ zJ)KpE+m1$i86JpXG1f@gu*g(cZEzoht&Qf{EA&chCPxYKRb zxsND1k@^0GFJRYnpQN$W50284CrX#peaa%JBWr0y6l~+jT;^ugFXs}7q$qirbD#AZ zSED40I<@cewikakHam-Ddp^j4vwf?!E6ljm{`J1(S!1i51YWe)pocR+t(S4=I5LBCgX^^W72X#MLFJ!z;j)vfh-LYt_`GLXvIp#MtRA7W+gM#Iap#lO>=D`i z<+~vsJagN6>Db!%y5ly%2@46)if!OGnPw|RYSMFyyjDOtYrX$GVd(pJQmYcf@4r#4N${UjI4Kl;Jm zT3*Ow$QC13TUMK&q8>f!N0g=>Tv{S3A7u~X<((w-QKq5Qp#vzdP##B;4-DuXp8Y!x z9q{Du5Q{dI3xS6p9!kM_0VGvq9K2Gd32Ju!U6T{i?e`#wS@+6`4@MWTV6qvmlZj&( zZJC@lds}$PADY(q%>Rx8pDZOc`d~^L+e#8)mSL@tU zl=86>L~F7G6%i|br+Yu{1~F~4n)PbRDjcB>o>ub=GxpeF-7m`AVH1Z`jqHKKm4H3X zEm!pI1|2VgS9v>Y)J{92c8$F{+>nK%tQ#q_Bgry_FSXY4!Z-vD;VijaVfTdityn29s|YC$BiqR+h&aSS z3ek@hfiG~FR%XPu^eri-cA74D5U21kVVPfqviKAcSa3Jhbrk2}mrZNK_1tpH`M77rwMnQz z6-k=~rYG;suj-{M*16$TK347l&CKEFWUSof-F)glLv!kYlep#%zToT*5bLYePjYW7SMY3SPD%vdjfCaJwlY%jysp8O+7GgS_~OzdroIypQZ( zBs6(&_W=N2XJwnlBeaO}y4)J8^XBYfFE?EdPibPU4FtSBDK#6+ivk-hy%svMpZy$=FTsf5S+p!e{RuiwvP-4fN zxT+j*!r6Ah3OPsO^t7~xq0?!=0g^vtWy7?yFhpI_pLAHLFc|uaSWoL@Jc#UnaZ6lC ziq$WUlD#V>cV};Hr24wE2*b}({r%Ow9Ar3Ga}WmP!jq-_%gH@<5Tk7!|9t<$)}dAP zDJsQt;)3!d-vo3S6)wl7!NQD_X!(!%)mu$={UYgzIGZ$(^e3Cj*b1?(CRj&LSlzN^ z1M-VxVg3jMpaDZdg<(U#&SBiVFhThWMWVuXE_8~ayg>{N*7;K#_^YOJZkkpTiEZR% zm5i~!p~c5s#9n9l#7Rvrcj$EsGp`Z%2wsFnrHXB`kISqf{42LFHygs<2Dt;XH`(P@ z*sDmObNgYo6^BQKzdR|`=puFY890aXxWn|g!_2tDrg4YOkpo}tD~eHTE-+Yf|3&cQ3&0ZX1STCwgQ;uRfetDT4boc0eu8+$AQ~%;5Nci zpO-{#$B{YA2z_gD`CNU>;9vlrBw zy=YIf7tLw*qBU7X6y(S|UXwX3VkK%qz${`WB;b;|jNnC1>ZhM$M1X zvnf!&UN5{MOdj25~? zVHTaN|ZwWezspf+#bZZs4#< z9sHJ%wHnJe3*;$8Tp18NT1#EG-|5cJN2L%+T2xMPSQEmibNNV!C}VLj>Vgm^o^uXL zN|cSdMER&ol##kbIjKvO70MlmSRyACIY*h%RJyMSYG=@Dwrl;kq|J_;JQVfL;#c`z zSgWlXZ-PXLt4q+H0jt#3Q@bmv>d9oQEKLf@#A3xNDR5!|9SS(GhWZJEiXK@Nhn539 z#q2hMQ^;jLYaa@l+|E7719=-uC?O*};FkTM7S|sYvO#01WCeDoi30?RZdls#pM}eq zzzAs`C*?&Mo$6NL;@D5Vo)5^EcHJjDyo-oC!age!<0(7ibmLK6%4=Mv`s1<6=Hj=)*-{lv1`Xt# zv^*&IEg>(Iaz@T|#7yjRgHZ<)W#Kk3?E*WK??{nQbfU=Pk9`oo??iU0}4la%A=B>XDUY zK3Ca4j0CLRS~{<}xPU54y;dbH{#E5)VRGrXA9i)cf60v|opg*Iz5oM_{Ow8}l7Ug@ z^Haxm+j&|L`KzHkJ!Uh{Y9g-k@2LAnTp>-o&4i!Y3A&~#)+syksm@T&)e`v#=Jqt< zlb8HW?MFUPBsTZEx8D()|G`|^>Fx>1xq^tL;(y3mR8V)-)z`oOZSQ!ud6tqqQ}-eF zI8tcydwI8|zX^VB`V=85K~^ZQU+t{+sX4i1pfaYZ$@0vREt|JeH|q!3Iyre{^W@|) z{Ws4{9+}yCBmOrKf74X?$n@5kW2Qe{o;)(W>DcMdK;QHYq%ZNyGsljv{u&<*?IzDW zYcG>Nme7eftrYPn9mmAmVnD;O$b^>eNrcoWlc%RIucqhpIs=UI6-s{c&rPDE zIt(ryfhIt@6ohNn5yZRs_B@j>6ohNn5yZRs_B@j>6ogSn5vnWs+pLonV71Xn5vnWs+pLonV71X zn5vnWs!cIfn_{Xq#Z+yIsoE4%wJD}*Q%u#Sn5s=NRhwd}Hpf(Lj;Y!lQ?)s!YI980 z=9sF@F;$ymsy4?|ZH}qh5>vG$rfN$})s~p5EiqMFVyd>pRBef=+7eT>C8la?Ox4zy zs;x0qTVtxW##C*MsoEM-wKb+{YfRPFn5u0tRoh~!w#8I!i>cZcQ?)IoYFkXzwwS7I zF;&}QsyL2frYU&)f!&yuBRr_HxYI%Q0^+$Gp89^Y(Jg+siR; zFUP#S9P{>a%-hQ>+=F^9$GpAF!aeeh>xzYYNF;y(wL*JOUmt)>uX5k(Mj;Uhd9{I*pv2c%kW2#uVN4_ytF>f!k za1R5=yuHlAJ@SpIV&Ps&%2W512bg#m+|H&3h{~JoqVPrbGjUBy^L}j}PON$KnuG zt}Ry@a%(y{8BGn;QIeC7R!Av1dCzE({CGB^-s)G(Z>keomIF&U^eKlv)1l9F=ra@g z%!EFhLZ3~c&*so)bLg`r^w|>nYz=+3hCbUupKYPf)MV&2HMyMZ;mmoTD1RU+mKPDW zizr0CKNVJeCrz>=Sv@_x(yp)8TiHgAl9SVpG*z0Xsv|D8sxXO18m1}jvpan8Y>o>D zhq!7g$CNu;a*qR@VAOo&%1MpO{L4*IVQh9xQwmizQE+d_<8erd`)HR{`%46tdp^TK z2?DzIutN>?($0odRI$*|#wl8MF4GgfJ66UM2c?5F(F(PkB8Kmr zqNI_9svpi*Nm&ZW;~(|KQ}=coX#U8z)$Aixw52Ez&g%<(C_t688act@GICw+?(>>R zYeONrpZ6qE26nJ6n zN~2jn;p-SfAxN4AhJf;)#_5-&r&wWl?|>IrTm#t^G#XIVnypiz7~j~C?$yTzR8Z0u4je4*OlbaaLMvHZtlU<-Q!^W4IU{zRN={Jm^76 zN1B{5(dZ@9TICjNi>e4L; zP+g$~(fF6g76~Cvr?n7^md=s(w36Ec9reW~g@I;*xS?Cppw=X((DpsfI&Dnr5J6{D z>atYrbFQAz+XfBp?4~=jRr$X0Lbq%6A+>o*sb;P%(W{oi=!mgCEV-2^2hXBpgHxp0 zk^G7(W!h}ZWiq}=KoRBU6cI~sE{qn_=-Zh|`^KZZ#L3<=nHK5A4TqUIOpbaX3sOSz(K<(6xcpL20Y+IS8sj5p9?vwJy zkd>WlKK+GN>Q#9bd9`i4*Epu8tr_*&lnj7urMg;L!y{szz$FmgT#`OTHiVr=u~Op) zoRlFUoKX02DqI?6Dm3~Rq}wvAkjbxv{VC#H#<%TP&nW1r7v$X7=O zjHG3&-_nSnd^)e%v0Hxff(8c#+$kJuXKw7nYUFkdRHFcv_um2h#2DJJTPhkoXl9O| zbslJTC_%Mxitr7qLzhll(xkJ|P|{e7`rQ(`Ali_08TzBR!p`I-+H#c>X&GYFqrL`O z($RRTbTHVNavYj_UU(YOtfquP(}F0Iwt1RGYEdded5YYZVkB~$-lTic7sMu=SiaFg zax!H>2TGWI#*An7wX8(MrsXD8)6vBAIh7i^EE{xEkLGR;N}{QpIjOURqpSx;!>ppO zo1&0I_c#ef_jT86xWcJ96BE4(-eqZ|r%v4qj>d|@j(XKkG+#-8HKV4M2+NZvv!rC| z!bu?ve!;xuion8xjFE0OkauR4P06|h#wj0yvDcR1I*X}}V!dJ}GbbO>lADDOrZrW8 zirdL@yPx*slSSNe91QX0ljU3>W&H6yPKq@gOo1|(1~Un75pse>+wbel>IzktO|ndN zx+fK-LG-&F>2j_PqeVT*Uym*&_R-R6wZhvddi5BF2A|{F^2}t(JnO9r?<(=!*}7h$ z9KdDAHL*yNlk@dFScJ<(&UL)*DGT&t_=y+u)_SqHleB`)0-bv;8O!iuRC5BKO{K&= znv=8-^G%p^a>KUGg>h41oK8+|_L7rj$zI+tGkNOd)=gVE?)FucpdFySCOOA0v4{m$ z)2#CrTE;C8%IF`6+h`BOr6;YdtZeX(8yG3tUs=Plx$wye7msd?@RCNiB!AKi8I9al zXfZ`d%b!9%qEDil-OAAI%AN+M1Lap(&g1M6)+3AyP7o);K$_EQA8=*T5ZWzG>G!!@=lr*E6%mNxo)CfCzSxKHrvRE{lWb?%$ zySeP9DDqRRzkznIlAC;hy-S?Q-Z=5X_99pWxtLumwvh1*Fp`n@F2Dc(sj72Mv$Ylh z_NjX6x5zyX>V{eGHB3phqM8KjW~hhN<1_t}y=staG7|As+w|d% zQ2lTXH+eG%f6Vky>yb&=gX;T5P%aOJl(zxyQu3)Wyr(FQ9o?I+KOnX?tYB=iu%Q9t z9iSj-(efsg3H8c+@MO3i$SVB+e15RAk$U=4HpiE;`>t(D(!Rr~kKFu9g1z(pa#~sG zU;QAhT)TYrQo6Ey?ds)pb*2Bo)wHsF?b7?{$_MXXxt1=!zw-WyaSZ0?-0{>HEXDU> zYh!_LNQ*PxfW0GI0~(y;9k%(6;c-~-N{5-rq)r%1w<;3($uud&cgFas038ejZ{ED7 z%gw@6D&CxnY4u&;`?o7^~}V_A^^_!m0x2H)h#-(*pqo!DL{utwH)MKy$_nQ15uPACWp{e-u}ZUzQwK?Xjk zhqg@694|A23H_PP+-~}Qchqr<`H-in&eXMEaSYO~(%cpq3M+1ibLR2(f$0r7wN?4> zBYzJjBw2?t=%L;vt+3*4qtzHq*foyCwJlA&^aLUl!{VBu&I!-lst56N1-8F_+_4?}#DYVh~(?#DORR@R;WobK2$ex4WWG;mOulf@&<@`Jbi(80&%8xX{^mYadni^eAhAvAUqaM zLV!1RJRsAI^&kD;zmk5)^uhyE1O4%4aBlLA2 z2)DKHnzNc0B0sb88bYR)#V@th8N=j-zoiTfUUYeyM-LgGT7xj)e6AluWj8r|&l3S6b?}SmO9uSiDFfo z`PfVW^Bh#!bh5q!&B+AS<-Zh?k6Uq8AY0i1#oCFy`cNCTMD`g*jl>L@Erv#Uf=sbc z_YR9!TedhptD466ir<*OazP#%h{N%gjGtXLyDf1cO|~Z@V{54vzT&k??~b!U+(imW zy015ZhG0)%Z~73%>Cp%e4hOl3D9h`t-p*sW0eb6@p0w#8xHR5dN~8HWdm0&fqsd*H zrNc~s*I-uwhvJe);F!=s+NcoxHm&4Z4rB@)$lSGSP%>=cDW=ukPd@px+)bu|96Pzn z7-J2wnJaauDWRWp}NEKa-EnOOAdX7 zi~(7fk&Wy)?UOgC_Ee4=*KO;ZzspEnY1JG;_cRBtD#KG3*?P4i^LqJjpJ--1SuHR%A!yln^ zXkr$VQ5MVg0EYxDk5>Qe63`#UxCXaetyRBZhgLV`(VF!#jzLjG^|^h+Rpe2 zW94O5^L45^osTw&!QDbStrvTK@2g_6jh>k?lLv*3Ohkd^u#Tn7;UN{-Cs0mWqgri^ zwhvb6bql8Zz z;!aA=z&kCR&`2n|KF=P;+|lx33(bjd#DDW9zOUSG1|-rzqOp5w#q2${KG_p^3w6D z`RK+Vr-~yh1a(3Ih?>c)0r9vRr++B@`ecU_;PacKgEP1$2Sws*ZD$PoQ0I|t`Qabp zOGxzfW5zP}hN+z3OCTs`ewMD#EVBzlhM)TT`l~;@{N^`HDdb7{ym`^qNf?OONJO3) z2l_@IG6=hy7dZ7WnrA+C%qQk>7eo^p&%O4&D_-Gz8l&K?X>GO1WLD+M>b&HJc5)wd{py&>_L%?jCZ^X zTX_i7upi72hIB9c&<)7;F~*=_w$%cJl}-Srv++i@d~N~SIqbT%T?Ytb^rTxTgWARH z61STxgW9=Z7Oc;@xiYAoOPJ>g9LCn51*koYh}PD(+oibFtP9{|qCU3!qLF5KEC5AK z#Q-k5J&MsT-oQkkiHGH8nVZZ)7aKgPV>i`>3=*JmgqT?LJQ3FP4dJYOQIML<#W8oR zQ+c)@p3&Na29+R55=#-%IEA@zA>AKyT3A^GTwVn1&jBC7j+Nk&2^>x*aA;r8csP=P z(`jS9YSI^;XJa&&i;-&g>NS?C%{-2Vqwf{MN7&fhZF%j6`ooun%*56>45VX3a7i?O zI(rrl6TS!2V}8xoWY=Nf5VgGr;VsFXRa%q`iegM~dtnb`5EU_6Y$bA)Gtm%%b)Atd z#gco35f_#ov-u9U;GcTn&uM_OTQSbqssD+HB{h-%1STX_I!L_va$r{{oZ@l|R{Y-pD%7$+TFb;x3-$RY-3rs{u=@XgyW3Dw~ z{X8Cy(*wkT={^o)wnj+B4)7|IZlax&gXBAQJPOEgaB^gT>xk0%@ZMyl-qj?J+WO*%LjRdvY>)n6Nekt>u}>K5_L2?^fq+K zN^M2fLSIE*fVNbTnJj=*dBG7XG8?d8O6=z|H3wTspv>r=O)n}v(2_zC4}=zRX5W04 z3~J}U7CaxT8V@q_r?)WnOXc=I-D$VqQBuImv_KqSHaR8Eho=b7u>1KL`*HO zH7+#-fp!j0B=v1U^M%2413ZxFxv+i({TP-8UW+;~sZ3x397feOCmb348=+g$$%~hx z2?SghcsS-57`sg^zN|fH4z@oUaw*#Ui?rD1-m=G$c+z&Mk5BT+`Uqc;oyNd8)3@jX zNAiK&1u>>u{D%{Q+CnjzvX}b`L&yoA;h;@d7xoq0*=RmW# zM`R8PpXyXj!(uHI+9x0VqwpNCn{)5#C3m7^;;gYFPJqU*z=G4&>g#NPDiy>?nepQZ zNF+UEiNT29Pmj*4XD@`|r zcGD5=qI4a(rO??baBG5UoqA#MtPfoerLne#3%3R&)Ecm8l@$)OJi*eaU@h#YJQiZ5 zE?pgn9FB(Q=M2Fs>23xF?a?CFbHO7;vbkkxKwwY}#%8LkN3M|~(I37~~f2^#~i$_hCI>z#~?}|1iTNgK)48<{r zAu+p<%&lE)#h=27!l3&iZcz2=JO$AkKr4y%ya|?PWhY}a&rU2c0GF`#i(AKuZ{2aWWmdl45~A~1A}l%Vczi2FE% zb50x0`a2%YD5Jr4)T+{ORlWJi*KyvM;T+kKzSiGE<96`P-e?u=(my*KNs6(wv5;4UHix)xy-v|{`|0apjEH`Q$ zIN%kEaSuj98X#$hv^@Dv7J{h#L55{gH6x1A&X&ZIW{y$mf<#KmS1O;f$h)AtX-@BF zKmX;gT<$;r>>s|A_*mYc8|W{-{4WK_V$h*TG+1E{ow{M1O82H*WAu;T{=WCscQ1Os ze);M*zkm7a#jlsrFaOWWZ+fp@yzagJ79#kk-+uk=cdttPS1-Q$9YDPyNYA7C3b`3| z(eGYR_&+X{k|nw-O+O|nH^kEL_QiyKs7-1-$M8=lDD-LY7+JQK7#}4t+E%Nd?&A6T zSfc&LIcgsdua|tQfZe02akvphfmi2s6D+E$b6DitRY`aAIcQfNJF!&TdBn(rt1Z?W z2>uF*@SQfa&Q!o$E58lu%KDEgjCw){+{x8P(?70eu--zx$Kp}$RL&Rd!dkcbm{YO~ z5bBTspLr}sCVI!@D6rs2t=@Tft9R#K@A0R%dY|6^>=r$`39&BC>aE%wRScpmZxzE7 z%@Ip|B>|Ybkzw&o4DIiyk9jcJ#WkX=AW&XIpA8V|)a%nWH-Q`9fY%V1$7cvy9jHO+}E-H08u_<^R zYCzu6#4jz{2*D6x*%dW3_!ubI?`x_^65{jzR2RbC3YiU_j%j}5t2xti%pOmz4WHkA z>d$_o6UIbTpH43(+Z36Gvfk@nD^lKI4@hh z={-a%+LS|gJbfmmVA7h}aG=r<=%<)uhUoDgGZjw7|mXY!zT&=^BXBRP3ocmVN%00PdX1rThyk9{oe-Mjx- zRw%aUv0#y1i~7aGIuWkBf3F=`U5z>7`O5n=FU2v{1*(kMXWIWYmjKba5IPEo<=So5 zAnQnolhjpY&(Ni(;CBO>=b?IJz7SkgshE(Tlu!*VJ0RzJ*^z*DOBM-J*#08k@S2!3 zp>C`lSXr#WEa|OczV}E1Aj!XZ&-G2=9BURdTIoW}$i%GO-b>jvd0K;`wkDxy!jF0~ zLorE5G|jkiYzBooOHv7zuhhgLa$j4!1JIItQ*8ltJ}VLvFU=-foZ7cMYFs}%g>mC4 zZRKq%*Jl0>TC)eo$T<&~32r+4-qC;35&1aIL8Bm4r z6{L~pn=(vLKjQB4u7^HTalKK^!I+6UQW;GO_8c%AdfZc~lUrf?3OD=!kcL$Uz!W~> z^wPjsLQ*)s5n4swHI1iQ+%b-Qhciy6usIJ>_Lsy~xrdRJCjAuioH3Vm?%^1|ch@}6 zPi;W+h1I5~z1uK9gkAc_FMsy4pZ|~acfa`Z%m407U~Vafq8cSj z2`cl~Qs954|J6(3g}5;Ead5m~E)m2upIL;sO3KWf+bL6S_(u;Eg;V(R#r&74?lxKo#>t1I6dj^ zwRGKlKW?2g_lBKGcN_Fj=F@6tcHPeN5A9;K7O?6HjE@9n8$E0$sNg~{GJ4b!!)K)N z4JvG~8X50llq}Wf3Lm&S4%sre#X?d_P9P&~QARw-w0%3-AY&tO$l)1*ycFu7t%!H9 zR)88*=fb5X2;WlEg%9THQq7&3x+pVAe1a$o6fcB_MGk@*A-xFkwH**Y$N@%7UgF4Q z`Hn*p@HoJp=qDl`s76*DM2@PDpeTxKwA;oJep^^3McjzC4Ty=>f~XCUl`V)H(~7%E zt+*Q2iqgDRj7EYYU>Mpw%8gjx!De!&^NQd@NCYvBj8u}fy3(z3S-sa|mT3-dk7itY zAzUQ8E$lB4c7VQwn=JU>mnN%F_4Vl*teOdWRbODUiQQnrWE&Nk^hoNxyqFVw`qR-< z5MM9dUkhqt!M<4EVN`@zDYnkS(L|SBes?^63cf*9$^+%7pTS3{l%eKVT ziJVqY#E}mGn$L!r#ow~et9+p@*yQV}%nh5Uo7+S#x!J_>=H&9+#w*Bv*m`iT*XF<` z$4*RU302`5na0XX@;y_kBDzp{g4VnP8Kjk*IYboVn}8rv?`$!yN*{@Q{ivE$)dBYa zc}?l8i8xN@Q{Q(3kpWM8eLL+14-!DGu$@{33>19=ce5p?9kIpWoAKEd&dH-TTlhA%Tnr)__j7^?ZdOb6{ z_t%kAfj>dk5ttoKl0SsLLHeP7`|(&#=OgCFvM5lg7^k?(BkBCx$E1bFN<84fIJ)WI zkqTVV&+;V)FQp$Ea^AlRlb{F>r$h{M8Fd3hBa0dZ-4Vhv-aIyatX1hGZcWE;#z-o` zkY~F5Mcco$irn#?jRBWr>&T+e=4MIM;=xVuvrarnC+E&}l)^Pi4WiNYg%k9yjFD7@ zwXo83Q#`&DzcvZt-SMQH19;ZSfnp3K%OEGoOeg}_3^^bJq6lD3>JH}=cFb$dqPoV^GVD?V>t6!6bPpX1h-c9G z#uQO>?;J;*b2_$d;=|xcFbx2)c6;YO9UVJK`X#+{oPf@pbBRwm5IMo8AfF4+gHsYm zrHNClRD$$a8l`a`9(!}X^UgWzysw(Q&raf->e=JwuYue6e7&8A^(atfn`5})9u zs(zCJ)#8}MI)!WZeF}@VACF~ddh4|ec(Mmc|6NKa)^gEIEEcvis7oXHrL+(n@7R-=(+@AAe~8F)?E<3Ei)a%d5@2C89&J*-{px92!kF>N=nFg1Fi@0p z-l=;}(~VoHKN@bMJ}YQX0HROV>-42D!0Z*jgWPk(EUR-#NXrEy0sxRd#h zwipj3cSX=_4YKy{`J7ICtBfKlg7RNbt%jZLOZq{>-UWn;STpMe$7T%QgP|om``!f+ z6@$FbEv5RwYH1J;Ru?EX)$wo2O1Oe*XIv@Bgv&1^Ctqnn{$LHYN|+G-us7Q*-*S*e zEl6MDY>$|w=Na_z$Dtls=^6Nx+c>ibf(e-iYxG~Jht@$QpcFNoE?-2mKZJxDMVue4 z3O)7y?&l%@h&7~n4ij5T30y$gbNNi%U1q`)KmAXC|EqtHeB@M;2$MIb`t8f{c5Y+- z!4Ejv`njYAy*vHBv?!Vj{RQGk1@f_LvD>-B_CZb64kU_| zs$9g)ZwVtb2KgJ_umwVFhEnM?L#_xfRjzGF7{aEoY|R`mMyz_OKxS5%=?pkzp>1GU zMjF0O#>{~4=FWrD+hUhHjbtS9 ztokE;yV5Ck^=*q??G$_eZHv9%DfYqJ7W<%6?AqHFyVfbzXBNEOnDj4o3%>PW_Pe90 zdG~g2TvyE1xO^d&5d>+}0F|U&$VI5<(T~t|kU9Rj#~QgTTsdfb#_V$<;+r zn!Ho2>p}%B8j8Upi8)(|(lKW)?t8`uUKy*!-!d>M$eQh z5%hdXxKog&OF_LWI5KxA5KlO_7Ue%`Yl@MV1N$fk+Rv3 zj5zCWQQCwTyzbNGIqa#t*oqwo8SOTJn$+lSn^z?q6?LV9d}*vKfdxYQgj$WB`n=dMYh$qbyS{z@msSom2u$S6yBG=j(fTp_J%( zxG%x2_?mwq?KI?ts9ma)^k3(yVk@J}!tNUEM$jx;P&X{9C|9LLk$m>vY z(T=bq9+K#1*C29Rt>s=M3~q6C8b?CQ^TYHy^o zyA!OA#dYavsz%fG>69m&4W-_Bx!0)mF;E^Hd#7`c;KYo3S1$dlvhC!tTN|-`MKAKi z(Wv|7c34UaXn;;EZ2!9LG3+qKv|&iz>Hh=*l>Zg}FY|we|Ev7J&;JMfU*o@jNk7Wj zS5_on2R((Xekrjxx3hB%Iv+&mlvUFUfWXppZxzv=_==J1^ZSp{KfC^@w|f1~XSZ&W zE2*iBNNNr08|R<8*37}j#A23k0BCu&Q?9>Bf1{bJ8>O*~NH&Ss-#hh^{XLC3-mH3O zv#!KhPxRJ{;A8%X4`Ymx^T2Pzb_7R3iZx6ns-wGu@6jA27jeT&qp(+dfJ-1!Vk3w>I#E(K;bGn&;Ju>}hjHX-hu z&uDm=py`ap*f9mf=0&~zNxP2W^uykbyEl6!Ex*@lARRbZh$)3Q3Pdm3DQXib)nFPF zdk_`OSZMI7kYJ5_mGA=@)TI=cftw6N^~K66@HLq$!Q9L~sX4I$5La5aN)BKOIxJ2| zjZC+iU@JUsfm`AIwVE3>#!}%y6P#lDoL{roR3Wb}6+T?A!Od9>%9e1vQKM_a8bn2C z{FgO$(A2us2db^E>Ed>~izPz0YOociTNT_2)5QX&izP@GOOP&Z^H%0@9bJJCs(5q> z@3zA0CCqS?8ax~&!f=!z!%>2HI7*b^D8U$x5@R?@km1-)7iQ09o?;wJVwMHdB|Vl# zj8+eFDz;rsVw=Hn#yKBZgpF43{F}SC*ks;SI!A-0rH{|Y-^U;-9dOXUfJ~kCDm*QT zt@oi782FJA4?73i2Hdm;g9Rg4*m$<1i#(BEm$1n~KG6S5|@hKAl|Tu6`>2A%oai-k*5BktilxY;{@FQ zj1+#9q6aB@oWP_z83FX;I36dk!=BBgnfN4a*|Q4xi~c3KpPJ^QkiS+AM=LU-v&d0D zgRGLs^ry6GFm{8`MNP$w(dxqq z6)uD?nqv;38iBE@C0^Ffj-b=oFcG4l?wzFaZFvJqDpEtWR49-51~^8`B`F}etpm_c zND(>qCD;IPFRdlIQ=j_AOm*B->oeyNJ(68oKOW2RSV`4iLy~8vIAEtRqq$AZdyK7zt{H#MnjO#LZxS;r9xScQ3~*N)e9L80|iZ zX*4HcK^wFsp-BkuL8Q{Ptuh$HtbW^oaN&v5$e23Qtu7f-+?JdY~Vm$B7^P z_|0kkoY>E)(rB2@mUHTIPF;2?`#{Q`Bxv>sPQRzwWj-6^q({bRH!O&UUenCwv`&YN zVfrl0@sPPf`)Y_+HDT~h$-yffj{Y~nlD~{YD}{{!cfcr=_WeUnh3SJICweUVCsNcq zfp`S{G<*4e*t&nN(jZ z?Crg5P&P4kx*VpL0+v|pc_nrt-IphWth_V9oOB=niaZVn`Y#dKJ|%$(R>QaznhrRt=e+v=H*;aGY3IQYQLS{jxB@T zXIaOD4TVi)h9`8~K*pFETPxVyIICDO-B1{Tk8};71{JdsO%5O088`}e_@U6WW2SOM z4A(ye5LOtDWi5H-l=cY29jF)@4Bi+f_N+)QRk7AV#Mt)Q8+(by-dCoEfg4cm8fmo1C*4;tur4GhS&#HhifwNoph-7QcK~_tz?F)ENHqzZhcBxKz&`R8q z{1IzniHFJP>+I@y$K8rnLvd*@28_8J4TDHcdEm=R3F$ z9gs#7QWN#o@~&2<0OiFL@7LEqWaC@_geHh(*Uq`J2zVJ1nMKJl3^c=jS!3~SYqYE- zj<2y?Yl#jdN_9Y` z0lLQjjQ=tJlLWcUKgYg-p!x-VxCgZeD@=#4z0rUZd$TFJNA0-O@Y`|IFe0G_$XvC7 zGhO`*x&T1Xir(o9*;t{b3y=%tO>i8_>oTRAwv{KZiN!z46%o^V>DiO zH`=FiUd>SYFrlE&5<)D~V~MmmvhBi*t@rn*rv_Dga({ql1^Ws`2EbfhpL%M#kv?zM7laLs$BM~f?TYGntS4}BnCzy z-^9ge!foH!F<&cF1iLqr?3Tb|jC(P1Z5f zV9WMURgNy60_@ZnPF*;sVMlE#llV16 (num_players * 0.5)) + { + self.has_voted = 0; + themap = infokey (world, "themap"); + if (infokey(world, "fteserver") == "1" || infokey(world, "fteserver") == "on") + themap = strzone(themap); + bprint (1, themap); + bprint (1, " it is!\n"); + if (prozacmethod == 1) + { + localcmd ("exec qwmcycle/"); + localcmd (themap); + localcmd (".cfg\n"); + changelevel (themap); + newmis = spawn(); + newmis.classname = "timer"; + newmis.nextthink = time + 2; + newmis.think = MapNotFound; + return; + } + localcmd ("exec qwmcycle/"); + localcmd (themap); + localcmd (".cfg\n"); +// changelevel (themap); //changed for map error compatability reasons + localcmd ("map "); + localcmd (themap); + localcmd ("\n"); + newmis = spawn(); + newmis.classname = "timer"; + newmis.nextthink = time + 2; + newmis.think = MapNotFound; + if (infokey(world, "fteserver") == "1" || infokey(world, "fteserver") == "on") + strunzone(themap); + return; + } + local string votesneeded; + votesneeded = votesneededtostring (); + if (votesneeded == "1") + { + bprint (1, votesneeded); + bprint (1, " more vote needed.\n"); + } + else + { + bprint (1, votesneeded); + bprint (1, " more votes needed"); + bprint (1, " "); + themap = infokey (world, "themap"); + bprint (1, themap); + bprint (1, "‘ \n"); + } + } +}; + +void(string put) votemap_start = +{ + local string checkallowvote; + + if ((self.is_ingame != 1)) + { + sprint (self, 2, "You must join the game in order to vote.\n"); + return; + } + if ((self.has_voted == 1)) + { + sprint (self, 2, "You've already voted!\n"); + return; + } + if ((self.startedvote == 1)) + { + sprint (self, 2, "You can only initiate one vote per game!\n"); + return; + } + if (votestarted == 1) + { + sprint (self, 2, "A vote is already in progress. Please use voteyes or wait until the vote ends.\n"); + return; + } + checkallowvote = infokey (world, "allowvote"); + if ((checkallowvote != "1")) + { + sprint (self, 2, "Voting has not been enabled on this server.\n"); + return; + } + if ((self.has_voted == 1)) + { + sprint (self, 2, "You've already voted!\n"); + return; + } + else + { + string mapdispfix; + votestarted = 1; + themap = put; + if (prozacmethod == 1) + { + themap = prozacmap; + } + localcmd ("localinfo themap "); + localcmd (put); + localcmd ("\n"); + bprint (1, self.netname); + bprint (1, " has voted for "); + bprint (1, put); + mapdispfix = put; + bprint (1, " - use voteyes to agree. If more than 50% is not agreed before one minute the vote will end.\n"); +// sound (world, 4, "misc/runekey.wav", 1, 0); +// Since the sound would not play for everyone in the game with the old sound code, I make it play the sound +// individually for all players + local entity head; + head = nextent(world); + while (head != world) + { + if (head.classname == "player") { stuffcmd(head, "play misc/runekey.wav \n"); } + head = nextent(head); + } + num_votes = num_votes + 1; + self.has_voted = 1; +// self.startedvote = 1; + self.vote_wait = (time + 90); + RemoveVote(); + if (num_votes > (num_players * 0.6)) + { + self.has_voted = 0; + localcmd ("exec qwmcycle/"); + localcmd (put); + localcmd (".cfg\n"); +// changelevel (put); // just wasnt working after map fails for some reason.. + localcmd ("map "); + localcmd (put); + localcmd ("\n"); + + newmis = spawn(); + newmis.classname = "timer"; + newmis.nextthink = time + 2; + newmis.think = MapNotFound; + return; + } + local string votesneeded; + votesneeded = votesneededtostring (); + if (votesneeded == "1") + { + bprint (1, votesneeded); + bprint (1, " more vote needed.\n"); + } + else + { + bprint (1, votesneeded); + bprint (1, " more votes needed"); + bprint (1, " "); + themap = infokey (world, "themap"); + bprint (1, mapdispfix); + bprint (1, "‘ \n"); + } + } +}; + +string() votesneededtostring = +{ + local float needed; + needed = ((num_players * 0.5) - num_votes); + + if (needed < 1) + { + return ("1‘"); + } + if (needed < 2) + { + return ("2‘"); + } + if (needed < 3) + { + return ("3‘"); + } + if (needed < 4) + { + return ("4‘"); + } + if (needed < 5) + { + return ("5‘"); + } + if (needed < 6) + { + return ("6‘"); + } + if (needed < 7) + { + return ("7‘"); + } + if (needed < 8) + { + return ("8‘"); + } + if (needed < 9) + { + return ("9‘"); + } + if (needed < 10) + { + return ("10‘"); + } + if (needed < 11) + { + return ("11‘"); + } + if (needed < 12) + { + return ("12‘"); + } + if (needed >= 13) + { + return ("over 12‘"); + } + return ("ERROR"); +}; + +void() MapNotFound = +{ + local entity finder_ent; + + localcmd("say -- Map Not Found --\n"); + nomap = 1; + finder_ent = find (world,classname,"VoteFailed"); + while (finder_ent) + { + if ((finder_ent.classname == "VoteFailed")) + { + dremove (finder_ent); + } + finder_ent = find (finder_ent, classname, "VoteFailed"); + } + RemoveVote2 (); + dremove (self); +} + +void() RemoveVote = +{ + newmis = spawn(); + newmis.classname = "VoteFailed"; +// newmis.classname = "timer"; // changed to "VoteFailed" + newmis.nextthink = time + 60; + newmis.think = RemoveVote2; + nomap = 0; + //dremove (self);// <- would have removed the player O.o +} + +void() RemoveVote2 = +{ + prozacmethod = 0; + local entity head; + localcmd("say -- VOTE HAS FAILED --"); + + votestarted = 0; + num_votes = 0; + self.startedvote = 0; + self.vote_wait = (time + 30); + + head = nextent(world); + while (head != world) + { + if (head.classname == "player") { head.has_voted = 0; } + head = nextent(head); + } + return; + dremove (self); +}; + +// PROZAC STUFF (Needs Often's Prozac Server.) +// Thank you Often for your wonderful help coding this. Credit for this vote system belongs to you, man! +float(string st1, string st2) strcasecmp = #87; + +float(float num_args, string arg1, string arg2, string arg3, string arg4, string arg5, string arg6, string arg7) ClientCommand = +{ + if (!strcasecmp("votemap",arg1)) + { + if ((self.vote_wait < 1)) + { + sprint (self, 2, "You must join the game in order to vote.\n"); + return 1; + } + local string thisiscnn; + thisiscnn = arg2; + if (!arg2) + { + sprint (self, 2, "Please use [cmd votemap mapname] in the console.\n"); + return 1; + } + if (validatemap(arg2)) + { + pmap_backup = thisiscnn; + prozacmethod = 1; + prozacmap = thisiscnn; + votemap_start(thisiscnn); + return 1; + } + else + { + sprint(self,2,"The server doesn't have the ¢"); + sprint(self,2,arg2); + sprint(self,2,"¢ map\n"); + return 1; + } + } +#ifdef clan_progs + else if (ShowReadyPlayers(arg1) == 1) + return 1; +#endif + return 0; +}; + +float(string mapstr) validatemap = +{ + mapstr = strcat("maps/",mapstr); + mapstr = strcat(mapstr,".bsp"); + + return validatefile(mapstr); +}; + +void (string d, string st) FTE_VoteMap = +{ + +}; + +//Basically this allows FTE/Fuh/EZQuake servers to use cmd. +//In the case of FTE, saying !map actually works (map check too) +void SV_ParseClientCommand (string st) +{ + local float args; +// local float h; // no refs yet (maybe for use in future release?) + local string c; + local string d; + local string f; + local string g; + local string i; + args = tokenize(st); + c = argv(0); + d = argv(1); + f = argv(2); + g = argv(3); + i = argv(4); + + if (c == "pm") + { + if (!d) + { + sprint (self, 2, "Please use [cmd pm userid \"message\"] in the console:\n"); + pm_list (); + return; + } + if (d) + { + if (!f) + { + sprint (self, 2, "Please use [cmd pm userid \"message\"] in the console:\n"); + pm_list (); + return; + } + if (g != "") + { + sprint (self, 2, "Use your message text inside \"quotes like this\"!\n"); + return; + } + else + { + local entity te; + local float gotthrough; + local float getid; + getid = stof(d); + te = find(world,classname,"player"); + while (te) + { + if (te.userid == getid) + { + gotthrough = 1; + stuffcmd(te, "play misc/talk.wav\n"); + sprint(te, 2, "ÐÍ ¨",self.netname,"©º ",f,"\n"); + sprint(self, 2, "PM to ",te.netname," sent\n"); + stuffcmd(self, "play misc/talk.wav\n"); + self.cooldown = (time + 4); + return; + } + te = find(te,classname,"player"); + } + sprint (self, 2, "User not found. Please choose a userid from this list:\n"); + pm_list (); + return; + } + } + return; + } + // edit this to do what you want with the received commands + else if (c == "votemap") + { + if (d) + { + FTE_VoteMap(d, st); + } + clientcommand(self, st); + sprint (self, 2, "Please use cmd votemap mapname\n"); + return; + } + else if (c == "say") + { + if (d == "!voteyes") + { + voteyes (); + return; + } + else if (d == "!map" || d == "!votemap") + { + FTE_VoteMap(f, st); + return; + } + clientcommand(self, st); + } +#ifdef fte_rankings + else if (MoreClientCommands(c, d, f, g) == 1) + return; +#endif +#ifdef clan_progs + else if (ShowReadyPlayers(c) == 1) + return; +#endif + else + { + clientcommand(self, st); + } + +}; + +#ifdef fte_rankings +float (string arg1, string arg2, string arg3, string arg4) MoreClientCommands = +{ + local entity te; + + if (arg1 == "showrank") + { + if (!arg2) + { + sprint(self, 2, "Please use as: CMD showrank userid, or CMD showrank all.\n"); + pm_list (); + return 1; + } + else if (arg2 == "all") + { + te = find(world,classname,"player"); + while (te) + { + if (te.has_disconnected == 0) + { + Rank_PrintRank(te); + } + te = find(te,classname,"player"); + } + return 1; + } + else + { + if (stof(arg2) == 0 || !stof(arg2)) + { + sprint (self, 2, "User not found. Please choose a userid from this list:\n"); + pm_list (); + return 1; + } + te = find(world,classname,"player"); + while (te) + { + if (te.userid == stof(arg2)) + { + //Rank_PrintRank(te); + sprint(self, 2, "Ranks for "); + sprint(self, 2, te.rank_name); + sprint(self, 2, ":\n"); + Rank_PrintStats(te); + return 1; + } + te = find(te,classname,"player"); + } + sprint (self, 2, "User not found. Please choose a userid from this list:\n"); + pm_list (); + return 1; + } + } + return 0; +}; +#endif + +#ifdef clan_progs +float (string arg1) ShowReadyPlayers = +{ + local entity te; + + if (arg1 == "showready") + { + if (clan_prematch < 1) + { + sprint(self, 2, "There is currently no Clan Prematch in progress.\n"); + return 1; + } + te = find(world,classname,"player"); + while (te) + { + if (te.userid > 0) + { + sprint(self, 2, te.netname); + sprint(self, 2, " ("); + if (te.is_ready == 1) + sprint(self, 2, "ready"); + else + sprint(self, 2, "not ready"); + sprint(self, 2, ")\n"); + } + te = find(te,classname,"player"); + } + return 1; + } + return 0; +}; +#endif \ No newline at end of file diff --git a/scout.pqc b/scout.pqc new file mode 100644 index 0000000..c11677b --- /dev/null +++ b/scout.pqc @@ -0,0 +1,560 @@ +// Functions inside this file +// Concussion Grenade Functions +void() ConcussionGrenadeTouch; +void() ConcussionGrenadeExplode; +void() ConcussionGrenadeTimer; +// Scanner Functions +void(float scanrange) TeamFortress_Scan; +//void(entity inflictor, entity attacker, float bounce, entity ignore) T_RadiusBounce; +void (entity _p_9676, entity _p_9677, float _p_9678, entity _p_9679, float _p_9680) T_RadiusBounce; +entity(entity scanner, float scanrange, float enemies, float friends) T_RadiusScan; + + +void() FlashGrenadeTouch = +{ + sound(self, TF_FLARE_OFF, "weapons/bounce.wav", TF_FLARE_OFF, TF_FLARE_OFF); + if (self.velocity == '0 0 0') + { + self.avelocity = '0 0 0'; + } +}; + +void () FlashTimer = +{ + local entity te; + local string st; + + te = self.owner; + te.FlashTime = (te.FlashTime - 0.100000); + if ((te.FlashTime < 0)) + { + te.FlashTime = 0; + stuffcmd (te, "v_cshift 0\n"); + remove (self); + return; + } + if ((te.FlashTime < 1.700000)) + { + st = ftos ((te.FlashTime * 150)); + stuffcmd (te, "v_cshift "); + stuffcmd (te, st); + stuffcmd (te, " "); + stuffcmd (te, st); + stuffcmd (te, " "); + stuffcmd (te, st); + stuffcmd (te, " "); + stuffcmd (te, st); + stuffcmd (te, "\n"); + } + if ((te.FlashTime >= 1.700000)) + { + stuffcmd (te, "v_cshift 255 255 255 255\n"); + } + if (((te.client != "zquake") && (te.client != "fuhquake"))) + { + stuffcmd (te, "gl_polyblend 1\n"); + } + if ((te.client == "moreqw")) + { + stuffcmd (te, "gl_cshiftpercent 100\n"); + } + self.nextthink = (time + 0.100000); +}; + +void() FlashGrenadeExplode = +{ + local entity te; + self.effects = self.effects | 4; + WriteByte(4, 23); + WriteByte(4, 4); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); + multicast(self.origin, TF_FLARE_OFF); + te = findradius(self.origin, 200); + while (te) + { + if (te.classname == "player" && te.team_no != self.owner.team_no) + { + deathmsg = 35; + TF_T_Damage(te, self, self.owner, 60, TF_FLARE_LIT, 16); + if (te.health > TF_FLARE_LIT) + { + if (te.FlashTime == TF_FLARE_LIT) + { + newmis = spawn (); + newmis.classname = "timer"; + newmis.netname = "flashtimer"; + newmis.team_no = self.owner.team_no; + newmis.owner = te; + newmis.think = FlashTimer; + newmis.nextthink = (time + 0.100000); + } +// te.FlashTime = 2.500000; //changed to 3 seconds + te.FlashTime = 3; + if (((te.client != "zquake") && (te.client != "fuhquake"))) + { + stuffcmd (te, "gl_polyblend 1\ngl_cshiftpercent 100\n"); + } + stuffcmd (te, "v_cshift 255 255 255 255\n"); + } + } + te = te.chain; + } + BecomeExplosion (); + self.owner.active_grenades_1 = (self.owner.active_grenades_1 - 1); + dremove (self); +}; + + +void() ConcussionGrenadeTouch = +{ + sound(self, TF_FLARE_OFF, "weapons/bounce.wav", TF_FLARE_OFF, TF_FLARE_OFF); + if (self.velocity == '0 0 0') + { + self.avelocity = '0 0 0'; + } +}; + +void () ConcussionGrenadeExplode = +{ + + T_RadiusBounce (self, self.owner, 240, world, 100); + WriteByte (4, 23); + WriteByte (4, 3); + WriteCoord (4, self.origin_x); + WriteCoord (4, self.origin_y); + WriteCoord (4, self.origin_z); + BecomeExplosion (); + multicast (self.origin, 1); + self.owner.active_grenades_2 = (self.owner.active_grenades_2 - 1); + dremove (self); +}; + +// new scout and medic conc timer code begin +void () ConcussionGrenadeTimer = +{ + if (!oldconc) + { + local string _l_9623; + local float _l_9624; + + self.cnt = (self.cnt + 0.200000); + if (((self.owner.client != "zquake") && (self.owner.client != "fuhquake"))) + { + _l_9623 = ftos (self.health); + stuffcmd (self.owner, "v_idlescale "); + stuffcmd (self.owner, _l_9623); + stuffcmd (self.owner, "\n"); + } + _l_9624 = rint ((self.cnt * 10)); + if (((((((((_l_9624 == 50) || (_l_9624 == 100)) || (_l_9624 == 150)) || (_l_9624 == 200)) || (_l_9624 == 250)) || (_l_9624 == 300)) || (_l_9624 == 350)) || (_l_9624 == 400))) + { + if ((self.owner.invincible_finished > time)) + { + stuffcmd (self.owner, "v_idlescale 0\n"); + dremove (self); + return; + } + newmis = spawn (); + setmodel (newmis, "progs/s_bubble.spr"); + setorigin (newmis, self.owner.origin); + newmis.movetype = 8; + newmis.solid = 0; + newmis.velocity = '0 0 15'; + newmis.nextthink = (time + 0.500000); + newmis.think = bubble_bob; + newmis.touch = bubble_remove; + newmis.classname = "bubble"; + newmis.frame = 0; + newmis.cnt = 0; + setsize (newmis, '-8 -8 -8', '8 8 8'); + self.health = (self.health - 20); + if ((self.owner.playerclass == 5)) + { + self.health = (self.health - 20); + } + if ((self.health < 0)) + { + self.health = 0; + } + self.nextthink = (time + 5); + _l_9623 = ftos (self.health); + stuffcmd (self.owner, "v_iroll_cycle 0.5\n"); + stuffcmd (self.owner, "v_ipitch_cycle 1\n"); + stuffcmd (self.owner, "v_iyaw_cycle 2\n"); + stuffcmd (self.owner, "v_iroll_level 0.1\n"); + stuffcmd (self.owner, "v_ipitch_level 0.3\n"); + stuffcmd (self.owner, "v_iyaw_level 0.3\n"); + stuffcmd (self.owner, "v_idlescale "); + stuffcmd (self.owner, _l_9623); + stuffcmd (self.owner, "\n"); + if ((self.health == 0)) + { + dremove (self); + } + } + self.nextthink = (time + 0.200000); + } + else + { + local vector src; + local float pos; + local float concadjust; + local float stumble; + + if (self.owner.invincible_finished > time) { + sprint (self.owner, 2, "Your head feels better now.\n"); + self.owner.fixangle = 0; + dremove (self); + return; + } + if ((self.health == 200) || (self.health == 400) || (self.health == 600) + || (self.health == 800) || (self.health == 1000)) { + newmis = spawn (); + setmodel (newmis, "progs/s_bubble.spr"); + setorigin (newmis, self.owner.origin); + newmis.movetype = 8; + newmis.solid = 0; + newmis.velocity = '0 0 15'; + newmis.nextthink = time + 0.5; + newmis.think = bubble_bob; + newmis.touch = bubble_remove; + newmis.classname = "bubble"; + newmis.frame = 0; + newmis.cnt = 0; + setsize (newmis, '-8 -8 -8', '8 8 8'); + } + self.health = self.health - 10; + if (self.owner.playerclass == 5) + self.health = self.health - 10; + + if (self.health < 0) + self.health = 0; + + concadjust = 1; + self.nextthink = time + 0.25 * concadjust; + + if (concadjust > 1) + self.health = self.health - concadjust; + + pos = pointcontents (self.owner.origin); + src_x = self.owner.origin_x + self.owner.maxs_x + 2; + src_y = self.owner.origin_y + self.owner.maxs_y + 2; + src_z = self.owner.origin_z; + pos = pointcontents (src); + + if ((self.owner.flags & 512) || (self.owner.flags & 16)) { + if (!((self.owner.tfstate & 65536) + && (self.owner.current_weapon == 32768))) { + if (self.owner.is_feigning == 0) { + makevectors (self.owner.v_angle); + stumble = crandom () * self.health; + if (!((pos == -2) && (self.owner.velocity == '0 0 0'))) { + if ((crandom () < 0)) { + self.owner.velocity_x = self.owner.velocity_y + stumble; + self.owner.velocity_y = self.owner.velocity_x + stumble; + } else { + self.owner.velocity_x = -1 * self.owner.velocity_y + stumble; + self.owner.velocity_y = -1 * self.owner.velocity_x + stumble; + } + } + } + } + } + if (self.health <= 0) { + sprint (self.owner, 2, "Your head feels better now.\n"); + dremove (self); + } + } +}; + +// new scout and medic conc timer code end + +void(float scanrange) TeamFortress_Scan = +{ + local entity list; + local float scen; + local float scfr; + local vector lightningvec; + local float enemy_detected; + local float any_detected; + self.impulse = TF_FLARE_LIT; + self.last_impulse = TF_FLARE_LIT; + if (self.classname == "player") + { + if (!(self.tf_items & TF_FLARE_OFF)) + { + return; + } + if (scanrange == 160) + { + if (self.tf_items_flags & TF_FLARE_OFF) + { + sprint(self, 2, "Enemy Scanning disabled.\n"); + self.tf_items_flags = self.tf_items_flags - TF_FLARE_OFF; + return; + } + sprint(self, 2, "Enemy Scanning enabled.\n"); + self.tf_items_flags = self.tf_items_flags | TF_FLARE_OFF; + return; + } + if (scanrange == 161) + { + if (self.tf_items_flags & 2) + { + sprint(self, 2, "Friendly Scanning disabled.\n"); + self.tf_items_flags = self.tf_items_flags - 2; + return; + } + sprint(self, 2, "Friendly Scanning enabled.\n"); + self.tf_items_flags = self.tf_items_flags | 2; + return; + } + scen = TF_FLARE_LIT; + scfr = TF_FLARE_LIT; + if (self.tf_items_flags & TF_FLARE_OFF) + { + scen = TF_FLARE_OFF; + } + if (self.tf_items_flags & 2) + { + scfr = TF_FLARE_OFF; + } + if (scen == TF_FLARE_LIT && scfr == TF_FLARE_LIT) + { + sprint(self, 2, "All scanner functions are disabled.\n"); + return; + } + scanrange = scanrange * 100; + list = T_RadiusScan(self, scanrange, scen, scfr); + } + scen = TF_FLARE_LIT; + scfr = TF_FLARE_LIT; + makevectors(self.v_angle); + while (list) + { + any_detected = TF_FLARE_OFF; + if (self.tf_items_flags & 4) + { + if (vlen(list.velocity) > 50) + { + if (list.team_no > TF_FLARE_LIT && self.team_no > TF_FLARE_LIT && list.team_no == self.team_no) + { + scfr = scfr + TF_FLARE_OFF; + enemy_detected = TF_FLARE_LIT; + } + else + { + scen = scen + TF_FLARE_OFF; + enemy_detected = TF_FLARE_OFF; + } + } + else + { + any_detected = TF_FLARE_LIT; + } + } + else + { + if (list.team_no > TF_FLARE_LIT && self.team_no > TF_FLARE_LIT && list.team_no == self.team_no) + { + scfr = scfr + TF_FLARE_OFF; + enemy_detected = TF_FLARE_LIT; + } + else + { + scen = scen + TF_FLARE_OFF; + enemy_detected = TF_FLARE_OFF; + } + } + if (any_detected) + { + lightningvec = normalize(list.origin - self.origin); + lightningvec = lightningvec * (vlen(list.origin - self.origin) / 5); + lightningvec = lightningvec + self.origin; + msg_entity = self; + WriteByte(TF_FLARE_OFF, 23); + WriteByte(TF_FLARE_OFF, 6); + WriteEntity(TF_FLARE_OFF, self); + WriteCoord(TF_FLARE_OFF, self.origin_x); + WriteCoord(TF_FLARE_OFF, self.origin_y); + WriteCoord(TF_FLARE_OFF, self.origin_z + 8); + WriteCoord(TF_FLARE_OFF, lightningvec_x); + WriteCoord(TF_FLARE_OFF, lightningvec_y); + WriteCoord(TF_FLARE_OFF, lightningvec_z + 8); + } + list = list.linked_list; + } + if (scen == TF_FLARE_LIT && scfr == TF_FLARE_LIT) + { + sprint(self, 2, "No blips.\n"); + return; + } + W_SetCurrentAmmo(); + return; +}; + +void (entity _p_9676, entity _p_9677, float _p_9678, entity _p_9679, float _p_9680) T_RadiusBounce = +{ + local float _l_9681; + local entity _l_9682; + local entity _l_9683; + local entity _l_9684; + local vector _l_9685; + + _l_9682 = findradius (_p_9676.origin, (_p_9678 + 40)); + while (_l_9682) + { + if ((_l_9682 != _p_9679)) + { + if (_l_9682.takedamage) + { + _l_9685 = _l_9682.origin + ((_l_9682.mins + _l_9682.maxs) * 0.500000); + _l_9681 = 0.500000 * vlen ((_l_9685 - _p_9676.origin)); + if ((_l_9681 < 0)) + { + _l_9681 = 0; + } + _l_9681 = _p_9678 - _l_9681; + if ((((_l_9682.classname != "building_sentrygun") && (_l_9682.classname != "building_sentrygun_base")) && (_l_9681 > 0))) + { + if (((_l_9682.classname == "player") && (_l_9682.bugger > 0))) + { + return; + } + if ((_l_9682.classname == "player_prop")) + { + _l_9684 = self; + self = _l_9682.owner; + LookThroughCam (); + self = _l_9684; + _l_9682 = _l_9682.owner; + } + _l_9682.velocity = (_l_9685 - _p_9676.origin); + _l_9682.velocity = (_l_9682.velocity * (_l_9681 / 20)); + if ((_l_9682.classname != "player")) + { + if ((_l_9682.flags & 512)) + { + _l_9682.flags = (_l_9682.flags - 512); + } + } + else + { + _l_9683 = find (world, classname, "timer"); + while ((((_l_9683.owner != _l_9682) || (_l_9683.think != ConcussionGrenadeTimer)) && (_l_9683 != world))) + { + _l_9683 = find (_l_9683, classname, "timer"); + } + if (((_l_9683 != world) && (_l_9683.playerclass != 6))) + { + stuffcmd (_l_9682, "v_iroll_cycle 0.5\n"); + stuffcmd (_l_9682, "v_ipitch_cycle 1\n"); + stuffcmd (_l_9682, "v_iyaw_cycle 2\n"); + stuffcmd (self.owner, "v_iroll_level 0.1\n"); + stuffcmd (self.owner, "v_ipitch_level 0.3\n"); + stuffcmd (self.owner, "v_iyaw_level 0.3\n"); + stuffcmd (_l_9682, "v_idlescale "); + stuffcmd (_l_9682, ftos (_p_9680)); + stuffcmd (_l_9682, "\n"); + _l_9683.health = _p_9680; + _l_9683.nextthink = (time + 0.200000); + } + else + { + if (((_l_9682.team_no != _p_9677.team_no) || (_l_9682 == _p_9677))) + { + if (oldconc) + { + local entity te; + te = spawn (); + te.nextthink = time + 0.25; + te.think = ConcussionGrenadeTimer; + te.team_no = _p_9677.team_no; + te.classname = "timer"; + te.owner = _l_9682; + te.health = 750; + } + else + { + stuffcmd (_l_9682, "v_iroll_cycle 0.5\n"); + stuffcmd (_l_9682, "v_ipitch_cycle 1\n"); + stuffcmd (_l_9682, "v_iyaw_cycle 2\n"); + stuffcmd (self.owner, "v_iroll_level 0.1\n"); + stuffcmd (self.owner, "v_ipitch_level 0.3\n"); + stuffcmd (self.owner, "v_iyaw_level 0.3\n"); + stuffcmd (_l_9682, "v_idlescale "); + stuffcmd (_l_9682, ftos (_p_9680)); + stuffcmd (_l_9682, "\n"); + stuffcmd (_l_9682, "bf\n"); + _l_9683 = spawn (); + _l_9683.nextthink = (time + 0.200000); + _l_9683.think = ConcussionGrenadeTimer; + _l_9683.team_no = _p_9677.team_no; + _l_9683.classname = "timer"; + _l_9683.owner = _l_9682; + _l_9683.health = _p_9680; + } + } + } + } + } + } + } + _l_9682 = _l_9682.chain; + } +}; + +entity(entity scanner, float scanrange, float enemies, float friends) T_RadiusScan = +{ + local entity head; + local entity list_head; + local entity list; + local float gotatarget; + head = findradius(scanner.origin, scanrange + 40); + while (head) + { + gotatarget = TF_FLARE_LIT; + if (head != scanner) + { + if (head.takedamage) + { + if (head.classname == "player" && (friends || enemies)) + { + if (teamplay) + { + if (friends && head.team_no > TF_FLARE_LIT && scanner.team_no > TF_FLARE_LIT && head.team_no == scanner.team_no) + { + gotatarget = TF_FLARE_OFF; + } + if (enemies && head.team_no > TF_FLARE_LIT && scanner.team_no > TF_FLARE_LIT && head.team_no != scanner.team_no) + { + gotatarget = TF_FLARE_OFF; + } + } + else + { + gotatarget = TF_FLARE_OFF; + } + } + } + } + if (gotatarget) + { + if (list) + { + list.linked_list = head; + list = list.linked_list; + } + else + { + list_head = head; + list = head; + } + } + head = head.chain; + } + return list_head; +}; + diff --git a/sentry.pqc b/sentry.pqc new file mode 100644 index 0000000..271d266 --- /dev/null +++ b/sentry.pqc @@ -0,0 +1,448 @@ +// This is a temporary hack... they'll be replaced with real bots when +// the bot code is in (should that be if? :) +// SentryGun AI Functions +void() Sentry_Rotate; +float() Sentry_FindTarget; +void() Sentry_FoundTarget; +void() Sentry_HuntTarget; +void() Sentry_Pain; +void() Sentry_Die; +float() Sentry_Fire; +void() lvl2_sentry_atk3; +void() lvl3_sentry_atk3; +void(entity gunhead) CheckSentry; +void(entity bld) CheckBelowBuilding; + +void() ai_face = +{ + self.ideal_yaw = vectoyaw(self.enemy.origin - self.origin); + self.ideal_yaw = anglemod(self.ideal_yaw); + ChangeYaw(); +}; + +void() lvl1_sentry_stand = [0, lvl1_sentry_stand] +{ + Sentry_Rotate(); +}; + +void() lvl1_sentry_atk1 = [1, lvl1_sentry_atk3] +{ + ai_face(); + if (self.enemy == world || self.enemy.health <= 0 || !visible(self.enemy) || self.enemy.has_disconnected == 1 || self.enemy.team_no == 0) + { + lvl1_sentry_stand(); + } + else + { + if (self.ammo_shells <= 0) + { + lvl1_sentry_stand(); + } + else + { + if (Sentry_Fire() == 0) + { + lvl1_sentry_atk3(); + } + } + } +}; + +void() lvl1_sentry_atk2 = [2, lvl1_sentry_atk3] +{ + ai_face(); + Sentry_Fire(); +}; + +void() lvl1_sentry_atk3 = [0, lvl1_sentry_atk1] +{ + ai_face(); +}; + +void() lvl2_sentry_stand = [3, lvl2_sentry_stand] +{ + Sentry_Rotate(); +}; + +void() lvl2_sentry_atk1 = [4, lvl2_sentry_atk2] +{ + ai_face(); + if (self.enemy == world || self.enemy.health <= 0 || !visible(self.enemy) || self.enemy.has_disconnected == 1 || self.enemy.team_no == 0) + { + lvl2_sentry_stand(); + } + else + { + if (self.ammo_shells <= 0) + { + lvl2_sentry_stand(); + } + else + { + if (Sentry_Fire() == 0) + { + lvl2_sentry_atk3(); + } + } + } +}; + +void() lvl2_sentry_atk2 = [5, lvl2_sentry_atk3] +{ + ai_face(); + Sentry_Fire(); +}; + +void() lvl2_sentry_atk3 = [3, lvl2_sentry_atk1] +{ + ai_face(); + Sentry_Fire(); +}; + +void() lvl3_sentry_stand = [6, lvl3_sentry_stand] +{ + Sentry_Rotate(); +}; + +void() lvl3_sentry_atk1 = [7, lvl3_sentry_atk2] +{ + ai_face(); + if (self.enemy == world || self.enemy.health <= 0 || !visible(self.enemy) || self.enemy.has_disconnected == 1 || self.enemy.team_no == 0) + { + lvl3_sentry_stand(); + } + else + { + if (self.ammo_shells <= 0 && self.ammo_rockets <= 0) + { + lvl3_sentry_stand(); + } + else + { + if (Sentry_Fire() == 0) + { + lvl3_sentry_atk3(); + } + } + } +}; + +void() lvl3_sentry_atk2 = [8, lvl3_sentry_atk3] +{ + ai_face(); + Sentry_Fire(); +}; + +void() lvl3_sentry_atk3 = [6, lvl3_sentry_atk1] +{ + ai_face(); + Sentry_Fire(); +}; + +void() Sentry_Rotate = +{ + local float ay; + CheckSentry(self); + if (Sentry_FindTarget()) + { + return; + } + self.effects = 0; + if (self.heat == 0) + { + self.ideal_yaw = self.waitmin; + ChangeYaw(); + ay = anglemod(self.angles_y); + ay = rint(ay); + if (ay == rint(self.waitmin)) + { + CheckBelowBuilding(self.trigger_field); + self.heat = 1; + if (random() < 0.1) + { + sound(self, 3, "weapons/gunidle1.wav", 0.5, 1); + } + } + } + else + { + self.ideal_yaw = self.waitmax; + ChangeYaw(); + ay = anglemod(self.angles_y); + ay = rint(ay); + if (ay == rint(self.waitmax)) + { + CheckBelowBuilding(self.trigger_field); + self.heat = 0; + } + } +}; + +float() Sentry_FindTarget = +{ +// local entity client; //client is a global + local entity f_client; + local float r; + local float gotone; + local float loopc; + r = 0; + loopc = 0; + gotone = 0; + f_client = findradius(self.origin, 1000); + while (f_client != world && gotone != 1) + { + gotone = 1; + if (!f_client) + { + gotone = 0; + } + if (f_client == self) + { + gotone = 0; + } + if (f_client.has_disconnected == 1) + { + gotone = 0; + } + if (!(f_client.takedamage)) + { + gotone = 0; + } + if (teamplay) + { + if (f_client.team_no == self.team_no && self.team_no != 0) + { + gotone = 0; + } + if (f_client.undercover_team == self.team_no && self.team_no != 0) + { + gotone = 0; + } + } + if (f_client == self.real_owner) + { + gotone = 0; + } + if (f_client.is_feigning) + { + gotone = 0; + } + if (f_client.flags & 128) + { + gotone = 0; + } + if (f_client.items & 524288) + { + gotone = 0; + } + if (!visible(f_client)) + { + gotone = 0; + } + r = range(f_client); + if (r == 3) + { + gotone = 0; + } + else + { + if (r == 2 && !infront(f_client)) + { + gotone = 0; + } + } + if (!gotone) + { + f_client = f_client.chain; + } + } + if (!gotone) + { + return 0; + } + self.enemy = f_client; + Sentry_FoundTarget(); + return 1; +}; + +void() Sentry_FoundTarget = +{ + if (self.ammo_shells > 0 || (self.ammo_rockets > 0 && self.weapon == 3)) + { + sound(self, 2, "weapons/pain.wav", 1, 1); + self.last_saveme_sound = time + 5; + } + Sentry_HuntTarget(); + if (self.super_damage_finished < time) + { + self.super_damage_finished = time + 0.5; + } +}; + +void() Sentry_HuntTarget = +{ + self.goalentity = self.enemy; + if (self.weapon == 1) + { + self.think = lvl1_sentry_atk1; + } + else + { + if (self.weapon == 2) + { + self.think = lvl2_sentry_atk1; + } + else + { + self.think = lvl3_sentry_atk1; + } + } + self.ideal_yaw = vectoyaw(self.enemy.origin - self.origin); + self.nextthink = time + 0.1; + if (engbat) + { + self.nextthink = (time + 0.200000); + } + SUB_AttackFinished(1); +}; + +void() Sentry_Pain = +{ + self.real_owner.StatusRefreshTime = time + 0.2; +}; + +void() Sentry_Die = +{ + sprint(self.real_owner, 2, "Your sentry gun was destroyed.\n"); + self.real_owner.has_sentry = 0; + ThrowGib("progs/tgib1.mdl", -70); + ThrowGib("progs/tgib2.mdl", -70); + ThrowGib("progs/tgib3.mdl", -70); + if (self.classname == "building_sentrygun_base") + { + if (self.oldenemy) + { + dremove(self.oldenemy); + } + } + else + { + dremove(self.trigger_field); + } + WriteByte(4, 23); + WriteByte(4, 3); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); + multicast(self.origin, 1); + BecomeExplosion(); +}; + +float() Sentry_Fire = +{ + local vector dir; + + dir = self.enemy.origin - self.origin; + if ((self.enemy.classname == "bot")) + { + if ((self.enemy.netname == "airmirv")) + { + dir = dir - (0.150000 * self.enemy.velocity); + } + else + { + dir = (self.enemy.origin + '0 0 -35') - self.origin; + } + } + if ((((self.ideal_yaw - anglemod (self.angles_y)) < -10) || ((self.ideal_yaw - anglemod (self.angles_y)) > 10))) + { + return (0); + } + sound (self, 1, "weapons/plaser.wav", 1, 1); + self.ammo_shells = (self.ammo_shells - 1); + if ((self.ammo_shells < 0)) + { + self.ammo_shells = 0; + } +#ifdef clan_progs + //CH this further checks while firing + traceline (self.origin + '0 0 20', self.enemy.origin, TL_BSP_ONLY, self); + if (trace_fraction != 1 || trace_endpos != self.enemy.origin) + { + return 0; + } + // dont fire if you cant hit enemy + traceline (self.origin + '0 0 20', self.enemy.origin, TL_ANY_SOLID, self); + if (trace_fraction != 1.0 && trace_ent.takedamage && self.ammo_shells > 0) +#else + if ((self.ammo_shells > 0)) +#endif + { + deathmsg = 27; + if (coloredlights) + { + if ((self.real_owner.team_no == 1)) + { + self.effects = (self.effects | 64); + } + else + { + if ((self.real_owner.team_no == 2)) + { + self.effects = (self.effects | 128); + } + else + { + self.effects = (self.effects | 2); + } + } + } + else + { + self.effects = (self.effects | 2); + } + + + FireBullets (1, dir, '0.100000 0.100000 0'); + } + if ((((self.weapon == 3) && (self.ammo_rockets > 0)) && (self.super_damage_finished < time))) + { + sound (self, 1, "weapons/rocklr1a.wav", 1, 1); + newmis = spawn (); + newmis.owner = self; + newmis.movetype = 9; + newmis.solid = 2; + newmis.velocity = (normalize (dir) * 800); + newmis.angles = vectoangles (newmis.velocity); + newmis.weapon = 34; + newmis.touch = T_MissileTouch; + newmis.nextthink = (time + 5); + newmis.think = SUB_Remove; + setmodel (newmis, "progs/missile.mdl"); + setsize (newmis, '0 0 0', '0 0 0'); + setorigin (newmis, ((self.origin + (v_forward * 8)) + '0 0 16')); + self.super_damage_finished = (time + 3); + self.ammo_rockets = (self.ammo_rockets - 1); + if ((self.ammo_rockets == 10)) + { + sprint (self.real_owner, 2, "Sentry Gun is low on rockets.\n"); + } + } + if (((self.ammo_shells == 0) && (random () < 0.100000))) + { + sprint (self.real_owner, 2, "Sentry Gun is out of shells.\n"); + } + else + { + if ((self.ammo_shells == 20)) + { + sprint (self.real_owner, 2, "Sentry Gun is low on shells.\n"); + } + } + if ((((self.ammo_rockets == 0) && (self.weapon == 3)) && (random () < 0.100000))) + { + sprint (self.real_owner, 2, "Sentry Gun is out of rockets.\n"); + } + return (1); +}; + diff --git a/sniper.pqc b/sniper.pqc new file mode 100644 index 0000000..3df5871 --- /dev/null +++ b/sniper.pqc @@ -0,0 +1,244 @@ +void() AirStrike_Explode; + +void() MushroomFlame = +{ + local entity flame; + flame = spawn(); + flame.owner = self; + flame.movetype = 9; + flame.solid = TF_FLARE_LIT; + flame.classname = "flamerflame"; + flame.effects = 4; + if (self.classname == "airstrike") + { + flame.velocity_x = random() * 1000; + } + flame.velocity_y = random() * 1000; + flame.velocity_z = 200; + flame.think = s_explode1; + flame.nextthink = time + 0.3; + setmodel(flame, "progs/s_explod.spr"); + setsize(flame, '0 0 0', '0 0 0'); + setorigin(flame, self.origin + '0 0 16'); +}; + +void() AirStrike = +{ + sound(self, TF_FLARE_LIT, "weapons/airstrik.wav", TF_FLARE_OFF, TF_FLARE_LIT); + self.think = AirStrike_Explode; + self.nextthink = time + 1.7; +}; + +void() AirStrike_FlyBy = +{ + bprint(TF_FLARE_OFF, "INCOMING AIRSTRIKE!\n"); + sound(self, TF_FLARE_LIT, "weapons/fighter.wav", TF_FLARE_OFF, TF_FLARE_LIT); + self.think = AirStrike; + self.nextthink = time + 5; +}; + +void() AirStrike_Explode = +{ + WriteByte(4, 23); + WriteByte(4, 3); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); + multicast(self.origin, TF_FLARE_OFF); + self.classname = "airstrike"; + MushroomFlame(); + MushroomFlame(); + MushroomFlame(); + MushroomFlame(); + WriteByte(4, 23); + WriteByte(4, 10); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); + multicast(self.origin, TF_FLARE_OFF); + deathmsg = 43; + T_RadiusDamage(self, self.owner, 300, world); + dremove(self); +}; + +void(vector org) AirStrike_Target = +{ + newmis = spawn(); + newmis.movetype = TF_FLARE_LIT; + newmis.solid = TF_FLARE_LIT; + newmis.team_no = self.owner.team_no; + newmis.owner = self.owner; + setsize(newmis, '0 0 0', '0 0 1'); + setmodel(newmis, "progs/dot3.spr"); + newmis.effects = 8; + setorigin(newmis, org + '0 0 5'); + newmis.nextthink = time + 10 + random() * 10; + newmis.think = AirStrike_FlyBy; +}; + +void() TeamFortress_SniperWeapon = +{ + self.impulse = TF_FLARE_LIT; + if (self.tfstate & 2) + { + return; + } + if (!(self.weapons_carried & 32 && (self.weapons_carried & 64))) + { + return; + } + if (self.ammo_shells < TF_FLARE_OFF) + { + sprint(self, 2, "not enough ammo.\n"); + return; + } + if (self.current_weapon == 32) + { + self.current_weapon = 64; + } + else + { + self.current_weapon = 32; + } + W_SetCurrentAmmo(); +}; + +void(float zoom_level) TF_zoom = +{ + local string zl; + if (self.tfstate & 4096) + { + return; + } + zl = ftos(zoom_level); + stuffcmd(self, "fov "); + stuffcmd(self, zl); + stuffcmd(self, "\n"); +}; + +void () SniperSight_Update = +{ + local vector org; + + self.frame = 0; + if ((!(self.owner.tfstate & 2048) || (self.owner.current_weapon != 32))) + { + self.owner.tfstate = (self.owner.tfstate - (self.owner.tfstate & 2048)); + TeamFortress_SetSpeed (self.owner); + self.owner.heat = 0; + dremove (self); + return; + } + makevectors (self.owner.v_angle); + org = self.owner.origin + (v_forward * 10); + org_z = self.owner.absmin_z + (self.owner.size_z * 0.700000); + traceline (org, (org + (v_forward * 9192)), 0, self); + if ((trace_fraction == 1)) + { + setorigin (self, self.owner.origin); + return; + } + self.angles = vectoangles (v_forward); + setorigin (self, trace_endpos); + if ((self.owner.option == 9)) + { + traceline(self.origin + '0 0 5', self.origin + '0 0 2048', TF_FLARE_LIT, self); + if ((pointcontents (trace_endpos) == -6)) + { + if ((self.owner.last_used > time)) + { + sprint (self.owner, 2, "Reinforcements not in attack position yet... wait 2 minutes\n"); + self.owner.option = 0; + } + else + { + sound (self.owner, 0, "weapons/radioair.wav", 1, 1); + self.owner.last_used = (time + 120); + self.owner.option = 0; + AirStrike_Target(self.origin + '0 0 5'); + } + } + else + { + sprint (self.owner, 2, "Target NOT visible from air!\n"); + if ((self.owner.last_saveme_sound < time)) + { + sound (self.owner, 0, "weapons/notarget.wav", 1, 1); + self.owner.last_saveme_sound = (time + 3); + } + self.owner.option = 0; + } + } + if ((self.owner.option2 == 1)) + { + self.effects = 8; + } + else + { + self.effects = 0; + } + self.nextthink = (time + 0.100000); +}; + +void () SniperSight_Create = +{ + local entity sight; + + self.tfstate = (self.tfstate | 2048); + sight = spawn (); + sight.owner = self; + sight.movetype = 8; + sight.solid = 0; + if ((self.option2 == 1)) + { + sight.effects = 8; + } + if ((self.option4 != 1)) + { + if ((self.team_no == 1)) + { + setmodel (sight, "progs/dot1.spr"); + } + else + { + if ((self.team_no == 3)) + { + setmodel (sight, "progs/dot3.spr"); + } + else + { + if ((self.team_no == 4)) + { + setmodel (sight, "progs/dot4.spr"); + } + else + { + setmodel (sight, "progs/dot2.spr"); + } + } + } + } + sight.classname = "timer"; + setorigin (sight, self.origin); + sight.think = SniperSight_Update; + if ((self.option > 1)) + { + self.option = 1; + } + sight.nextthink = (time + 0.050000); +}; + +void() TeamFortress_AutoZoomToggle = +{ + if (self.tfstate & 4096) + { + self.tfstate = self.tfstate - 4096; + sprint(self, 2, "autozoom ON\n"); + } + else + { + self.tfstate = self.tfstate | 4096; + sprint(self, 2, "autozoom OFF\n"); + } +}; + diff --git a/spy.pqc b/spy.pqc new file mode 100644 index 0000000..07e5dbb --- /dev/null +++ b/spy.pqc @@ -0,0 +1,1274 @@ +// I changed the spy messages to spam less and look more colorful. +// Also fixed is the spy disguise-cancel bug which would allow players +// to keep undercover while shooting. + +void() TeamFortress_SpyGoUndercover; +void (float _p_9330) TeamFortress_SpyFeignDeath; +void(entity spy) TeamFortress_SpyCalcName; +void() TeamFortress_SpyUndercoverThink; +void(float class) TeamFortress_SpyChangeSkin; +void(float teamno) TeamFortress_SpyChangeColor; +void() GasGrenadeMakeGas; +void() HallucinationTimer; +void() W_FireTranq; +void() T_TranqDartTouch; +void() TranquiliserTimer; +void(entity spy) Spy_RemoveDisguise; + +void(entity Item, entity AP, float method) tfgoalitem_RemoveFromPlayer; + +void() spy_diea1 = [50, spy_diea2] +{ +}; + +void() spy_diea2 = [51, spy_diea3] +{ +}; + +void() spy_diea3 = [52, spy_diea4] +{ +}; + +void() spy_diea4 = [53, spy_diea5] +{ +}; + +void() spy_diea5 = [54, spy_diea6] +{ +}; + +void() spy_diea6 = [55, spy_diea7] +{ +}; + +void() spy_diea7 = [56, spy_diea8] +{ +}; + +void() spy_diea8 = [57, spy_diea9] +{ +}; + +void() spy_diea9 = [58, spy_diea10] +{ +}; + +void() spy_diea10 = [59, spy_diea11] +{ +}; + +void() spy_diea11 = [60, spy_diea11] +{ +}; + +void() spy_dieb1 = [61, spy_dieb2] +{ +}; + +void() spy_dieb2 = [62, spy_dieb3] +{ +}; + +void() spy_dieb3 = [63, spy_dieb4] +{ +}; + +void() spy_dieb4 = [64, spy_dieb5] +{ +}; + +void() spy_dieb5 = [65, spy_dieb6] +{ +}; + +void() spy_dieb6 = [66, spy_dieb7] +{ +}; + +void() spy_dieb7 = [67, spy_dieb8] +{ +}; + +void() spy_dieb8 = [68, spy_dieb9] +{ +}; + +void() spy_dieb9 = [69, spy_dieb9] +{ +}; + +void() spy_diec1 = [70, spy_diec2] +{ +}; + +void() spy_diec2 = [71, spy_diec3] +{ +}; + +void() spy_diec3 = [72, spy_diec4] +{ +}; + +void() spy_diec4 = [73, spy_diec5] +{ +}; + +void() spy_diec5 = [74, spy_diec6] +{ +}; + +void() spy_diec6 = [75, spy_diec7] +{ +}; + +void() spy_diec7 = [76, spy_diec8] +{ +}; + +void() spy_diec8 = [77, spy_diec9] +{ +}; + +void() spy_diec9 = [78, spy_diec10] +{ +}; + +void() spy_diec10 = [79, spy_diec11] +{ +}; + +void() spy_diec11 = [80, spy_diec12] +{ +}; + +void() spy_diec12 = [81, spy_diec13] +{ +}; + +void() spy_diec13 = [82, spy_diec14] +{ +}; + +void() spy_diec14 = [83, spy_diec15] +{ +}; + +void() spy_diec15 = [84, spy_diec15] +{ +}; + +void() spy_died1 = [85, spy_died2] +{ +}; + +void() spy_died2 = [86, spy_died3] +{ +}; + +void() spy_died3 = [87, spy_died4] +{ +}; + +void() spy_died4 = [88, spy_died5] +{ +}; + +void() spy_died5 = [89, spy_died6] +{ +}; + +void() spy_died6 = [90, spy_died7] +{ +}; + +void() spy_died7 = [91, spy_died8] +{ +}; + +void() spy_died8 = [92, spy_died9] +{ +}; + +void() spy_died9 = [93, spy_died9] +{ +}; + +void() spy_diee1 = [94, spy_diee2] +{ +}; + +void() spy_diee2 = [95, spy_diee3] +{ +}; + +void() spy_diee3 = [96, spy_diee4] +{ +}; + +void() spy_diee4 = [97, spy_diee5] +{ +}; + +void() spy_diee5 = [98, spy_diee6] +{ +}; + +void() spy_diee6 = [99, spy_diee7] +{ +}; + +void() spy_diee7 = [100, spy_diee8] +{ +}; + +void() spy_diee8 = [101, spy_diee9] +{ +}; + +void() spy_diee9 = [102, spy_diee9] +{ +}; + +void() spy_die_ax1 = [41, spy_die_ax2] +{ +}; + +void() spy_die_ax2 = [42, spy_die_ax3] +{ +}; + +void() spy_die_ax3 = [43, spy_die_ax4] +{ +}; + +void() spy_die_ax4 = [44, spy_die_ax5] +{ +}; + +void() spy_die_ax5 = [45, spy_die_ax6] +{ +}; + +void() spy_die_ax6 = [46, spy_die_ax7] +{ +}; + +void() spy_die_ax7 = [47, spy_die_ax8] +{ +}; + +void() spy_die_ax8 = [48, spy_die_ax9] +{ +}; + +void() spy_die_ax9 = [49, spy_die_ax9] +{ +}; + +void() spy_upb1 = [69, spy_upb2] +{ +}; + +void() spy_upb2 = [68, spy_upb3] +{ +}; + +void() spy_upb3 = [67, spy_upb4] +{ +}; + +void() spy_upb4 = [66, spy_upb5] +{ +}; + +void() spy_upb5 = [65, spy_upb6] +{ +}; + +void() spy_upb6 = [64, spy_upb7] +{ +}; + +void() spy_upb7 = [63, spy_upb8] +{ +}; + +void() spy_upb8 = [62, spy_upb9] +{ +}; + +void() spy_upb9 = [61, spy_upb9] +{ + player_stand1(); +}; + +void() spy_upc1 = [84, spy_upc2] +{ +}; + +void() spy_upc2 = [83, spy_upc3] +{ +}; + +void() spy_upc3 = [82, spy_upc4] +{ +}; + +void() spy_upc4 = [81, spy_upc5] +{ +}; + +void() spy_upc5 = [80, spy_upc6] +{ +}; + +void() spy_upc6 = [79, spy_upc7] +{ +}; + +void() spy_upc7 = [78, spy_upc8] +{ +}; + +void() spy_upc8 = [77, spy_upc9] +{ +}; + +void() spy_upc9 = [76, spy_upc10] +{ +}; + +void() spy_upc10 = [75, spy_upc11] +{ +}; + +void() spy_upc11 = [74, spy_upc12] +{ +}; + +void() spy_upc12 = [73, spy_upc13] +{ +}; + +void() spy_upc13 = [72, spy_upc14] +{ +}; + +void() spy_upc14 = [71, spy_upc15] +{ +}; + +void() spy_upc15 = [70, spy_upc15] +{ + player_stand1(); +}; + +void() spy_upd1 = [93, spy_upd2] +{ +}; + +void() spy_upd2 = [92, spy_upd3] +{ +}; + +void() spy_upd3 = [91, spy_upd4] +{ +}; + +void() spy_upd4 = [90, spy_upd5] +{ +}; + +void() spy_upd5 = [89, spy_upd6] +{ +}; + +void() spy_upd6 = [88, spy_upd7] +{ +}; + +void() spy_upd7 = [87, spy_upd8] +{ +}; + +void() spy_upd8 = [86, spy_upd9] +{ +}; + +void() spy_upd9 = [85, spy_upd9] +{ + player_stand1(); +}; + +void() spy_upe1 = [94, spy_upe9] +{ +}; + +void() spy_upe2 = [95, spy_upe8] +{ +}; + +void() spy_upe3 = [96, spy_upe7] +{ +}; + +void() spy_upe4 = [97, spy_upe6] +{ +}; + +void() spy_upe5 = [98, spy_upe5] +{ +}; + +void() spy_upe6 = [99, spy_upe4] +{ +}; + +void() spy_upe7 = [100, spy_upe3] +{ +}; + +void() spy_upe8 = [101, spy_upe2] +{ +}; + +void() spy_upe9 = [102, spy_upe1] +{ + player_stand1(); +}; + +void() spy_upaxe1 = [49, spy_upaxe2] +{ +}; + +void() spy_upaxe2 = [48, spy_upaxe3] +{ +}; + +void() spy_upaxe3 = [47, spy_upaxe4] +{ +}; + +void() spy_upaxe4 = [46, spy_upaxe5] +{ +}; + +void() spy_upaxe5 = [45, spy_upaxe6] +{ +}; + +void() spy_upaxe6 = [44, spy_upaxe7] +{ +}; + +void() spy_upaxe7 = [43, spy_upaxe8] +{ +}; + +void() spy_upaxe8 = [42, spy_upaxe9] +{ +}; + +void() spy_upaxe9 = [41, spy_upaxe9] +{ + player_stand1(); +}; + +// begin new spy code + +void (float _p_9330) TeamFortress_SpyFeignDeath = +{ + local float _l_9331; + local entity _l_9332; + local entity te; + + if ((self.bugger == 8)) + { + return; + } + if (self.hook_out) + { + return; + } + if (self.is_feigning) + { + _l_9332 = findradius (self.origin, 48); + _l_9331 = 1; + while ((_l_9332 != world)) + { + if ((((_l_9332.classname == "player") && (_l_9332.deadflag == 0)) && (self != _l_9332))) + { + _l_9331 = 0; + } + _l_9332 = _l_9332.chain; + } + if ((_l_9331 == 1)) + { + _l_9331 = 1 + floor ((random () * 5)); + self.velocity = '0 0 0'; + unlay (); + self.view_ofs = '0 0 22'; + self.movetype = 3; + self.is_feigning = 0; + self.current_weapon = self.weapon; + W_SetCurrentAmmo (); + self.tfstate = (self.tfstate - (self.tfstate & 65536)); + TeamFortress_SetSpeed (self); + if ((self.weapon <= 16)) + { + spy_upaxe1 (); + return; + } + if ((_l_9331 == 1)) + { + spy_upb1 (); + } + else + { + if ((_l_9331 == 2)) + { + spy_upc1 (); + } + else + { + if ((_l_9331 == 3)) + { + spy_upd1 (); + } + else + { + spy_upe1 (); + } + } + } + } + else + { + sprint (self, 2, "You can't get up while someone is standing on you.\n"); + } + } + else + { + if ((!(self.flags & 512) && (self.waterlevel == 0))) + { + sprint (self, 2, "You can't feign in the air.\n"); + return; + } + _l_9332 = findradius (self.origin, 64); + while ((_l_9332 != world)) + { + if ((((_l_9332.classname == "player") && (self != _l_9332)) && (_l_9332.is_feigning == 1))) + { + sprint (self, 2, "You can't feign on top of another spy!\n"); + return; + } + _l_9332 = _l_9332.chain; + } + self.immune_to_check = (time + 5); + self.tfstate = (self.tfstate | 65536); + self.velocity = (self.velocity * 0.650000); + self.is_feigning = 1; + Attack_Finished (0.800000); + if (self.hook_out) + { + Reset_Grapple (self.hook); + Attack_Finished (0.750000); + self.hook_out = 1; + } + if (((self.undercover_team == 0) && (self.undercover_skin == 0))) + { + self.items = (self.items - (self.items & 524288)); + } + TeamFortress_ThrowGrenade (); + self.invisible_finished = 0; + self.modelindex = modelindex_player; + self.weapon = self.current_weapon; + self.current_weapon = 0; + self.weaponmodel = ""; + self.weaponframe = 0; + self.maxspeed = 0; + self.movetype = 6; + setsize (self, '-16 -16 -24', '16 16 4'); + self.view_ofs = '0 0 -8'; + if ((_p_9330 == 0)) + { + DeathSound (); + } + self.angles_x = 0; + self.angles_z = 0; + if ((self.weapon <= 16)) + { + spy_die_ax1 (); + return; + } + te = find (world, classname, "item_tfgoal"); + while (te) { + if (te.owner == self) { + if (!(te.goal_activation & 256) || (self.has_disconnected == 1)) { + tfgoalitem_RemoveFromPlayer (te, self, 0); + } + if (CTF_Map == 1) { + if (te.goal_no == 1) + bprint (2, self.netname, " ÌÏÓÔ the ÂÌÕÅ flag!\n"); + else if (te.goal_no == 2) + bprint (2, self.netname, " ÌÏÓÔ the ÒÅÄ flag!\n"); + } + } + te = find (te, classname, "item_tfgoal"); + } + _l_9331 = 1 + floor ((random () * 6)); + if ((_l_9331 == 1)) + { + spy_diea1 (); + } + else + { + if ((_l_9331 == 2)) + { + spy_dieb1 (); + } + else + { + if ((_l_9331 == 3)) + { + spy_diec1 (); + } + else + { + if ((_l_9331 == 4)) + { + spy_died1 (); + } + else + { + spy_diee1 (); + } + } + } + } + } +}; + + +// end new spy code + +void() TeamFortress_SpyGoUndercover = +{ + local entity te; + if (self.effects & (8 | 4)) + { + sprint(self, 1, "You cannot disguise while glowing.\n"); + return; + } + if (invis_only == 1) + { + if (self.is_undercover == 1) + { + self.is_undercover = 0; + self.modelindex = modelindex_player; + self.items = self.items - (self.items & 524288); + } + else + { + if (self.is_undercover == 2) + { +// There's no need for this function; MegaTF undercover is instant. +// sprint(self, 2, "You stop going undercover.\n"); +// self.is_undercover = 0; + return; + } + else + { + if (self.ammo_cells > 1) + { +// No need for this message either. +// sprint(self, 2, "Going undercover...\n"); + self.is_undercover = 2; + te = spawn(); + te.classname = "timer"; + te.owner = self; + te.think = TeamFortress_SpyUndercoverThink; + te.nextthink = time + 0; + } + } + } + self.StatusRefreshTime = time + 0.1; + } + else + { + if (self.is_undercover != 2) + { + self.current_menu = 12; + self.menu_count = 25; + } + else + { +// There's no need for this function; MegaTF undercover is instant. +// sprint(self, 2, "You stop going undercover.\n"); +// self.is_undercover = 0; + return; + } + } +}; + +void(entity spy) TeamFortress_SpyCalcName = +{ + local entity te; + spy.undercover_name = string_null; + if (spy.undercover_team != 0) + { + te = find(world, classname, "player"); + while (te) + { + if (te.team_no == spy.undercover_team && te.skin == spy.undercover_skin) + { + spy.undercover_name = te.netname; + te = world; + } + else + { + te = find(te, classname, "player"); + } + } + if (spy.undercover_name == string_null) + { + te = find(world, classname, "player"); + while (te) + { + if (te.team_no == spy.undercover_team) + { + spy.undercover_name = te.netname; + te = world; + } + else + { + te = find(te, classname, "player"); + } + } + } + } +}; + +void() TeamFortress_SpyUndercoverThink = +{ + local float tc; + local string st; + if (self.owner.playerclass != 8) + { + return; + } + if (self.owner.is_undercover == 2) + { +// sprint(self.owner, 2, "You Are Disguised\n"); + if (infokey(world, "spymsgs") == "1") + { + sprint(self.owner, 2, "Ùïõ áòå äéóçõéóåä\n"); + } + if (invis_only == 1) + { + self.owner.items = self.owner.items | 524288; + self.owner.frame = 0; + self.owner.modelindex = modelindex_eyes; + self.owner.is_undercover = 1; + } + else + { + self.owner.immune_to_check = time + 20; + if (self.skin != 0) + { +// sprint(self.owner, 2, "Skin set to "); + sprint(self.owner, 2, "Óëéî óåô ôï "); + TeamFortress_PrintClassName(self.owner, self.skin, 0, 2); + self.owner.undercover_skin = self.skin; + TeamFortress_SetSkin(self.owner); + } + if (self.team != 0) + { + self.owner.immune_to_check = time + 10; +// sprint(self.owner, 2, "Colors set to Team "); + sprint(self.owner, 2, "Ãïìïòó óåô ôï Ôåáí "); + st = ftos(self.team); + sprint(self.owner, 2, st); + sprint(self.owner, 2, "‘\n"); + self.owner.undercover_team = self.team; + stuffcmd(self.owner, "color "); + tc = TeamFortress_TeamGetColor(self.team) - 1; + st = ftos(tc); + stuffcmd(self.owner, st); + stuffcmd(self.owner, "\n"); + } + TeamFortress_SpyCalcName(self.owner); + if (self.owner.StatusBarSize == 0) + { + CenterPrint(self.owner, "You are now disguised.\n"); + } + self.owner.is_undercover = 1; + } + } + self.owner.StatusRefreshTime = time + 0.1; + dremove(self); +}; + +void(float class) TeamFortress_SpyChangeSkin = +{ + local entity te; + if (class == 8) + { +// sprint(self, 2, "Skin reset.\n"); + sprint(self, 2, "Óëéî òåóåô®\n"); + self.undercover_skin = 0; + TeamFortress_SetSkin(self); + if (self.undercover_team == 0) + { + self.items = self.items - (self.items & 524288); + self.is_undercover = 0; + } + return; + } +// No need for this message +// sprint(self, 2, "Going undercover...\n"); + self.is_undercover = 2; + te = spawn(); + te.classname = "timer"; + te.owner = self; + te.think = TeamFortress_SpyUndercoverThink; + te.nextthink = time + 0; + te.skin = class; + TeamFortress_SetSkin(self); +}; + +void(float teamno) TeamFortress_SpyChangeColor = +{ + local entity te; + local string st; + local float tc; + + // pablo. spy bug fix. + if (self.is_undercover && (self.undercover_team == teamno) ) + return; + // + + if (teamno == self.team_no) + { +// sprint(self, 2, "Colors reset.\n"); + sprint(self, 2, "Ãïìïòó òåóåô®\n"); + self.immune_to_check = time + 15; + self.undercover_team = 0; + stuffcmd(self, "color "); + tc = TeamFortress_TeamGetColor(self.team_no) - 1; + st = ftos(tc); + stuffcmd(self, st); + stuffcmd(self, "\n"); + if (self.undercover_skin == 0) + { + self.items = self.items - (self.items & 524288); + self.is_undercover = 0; + } + return; + } +// No need for this message +// sprint(self, 2, "Going undercover...\n"); + self.is_undercover = 2; + te = spawn(); + te.classname = "timer"; + te.owner = self; + te.think = TeamFortress_SpyUndercoverThink; + te.nextthink = time + 0; + te.team = teamno; +}; + +void() GasGrenadeTouch = +{ + sound(self, 1, "weapons/bounce.wav", 1, 1); + if (self.velocity == '0 0 0') + { + self.avelocity = '0 0 0'; + } +}; + +void() GasGrenadeExplode = +{ + local entity te; + local float pos; + pos = pointcontents(self.origin); + if (pos == -1) + { + te = spawn(); + te.think = GasGrenadeMakeGas; + te.nextthink = time + 0.1; + te.heat = 0; + te.origin = self.origin; + te.owner = self.owner; + te.team_no = self.owner.team_no; + te.weapon = 0; + } + else + { + pos = 0; + while (pos < 10) + { + newmis = spawn(); + setmodel(newmis, "progs/s_bubble.spr"); + setorigin(newmis, self.origin); + newmis.movetype = 8; + newmis.solid = 0; + newmis.velocity = '0 0 15'; + newmis.velocity_z = 10 + random() * 20; + newmis.nextthink = time + 0.5; + newmis.think = bubble_bob; + newmis.classname = "bubble"; + newmis.frame = 0; + newmis.cnt = 0; + setsize(newmis, '-8 -8 -8', '8 8 8'); + pos = pos + 1; + } + } + BecomeExplosion(); + dremove(self); +}; + +void () GasGrenadeMakeGas = +{ + local entity _l_9407; + local entity _l_9408; + local entity _l_9409; + + self.nextthink = (time + 0.750000); + _l_9407 = findradius (self.origin, 200); + while ((_l_9407 != world)) + { + if ((((_l_9407.team_no == self.owner.team_no) && (_l_9407.last_used < time)) && (_l_9407.classname == "player"))) + { + sound (_l_9407, 4, "player/gas_mask.wav", 1, 1); + _l_9407.last_used = (time + 2); + } + if (!(_l_9407.items & 2097152)) + { + if (((((_l_9407.classname == "player") && (_l_9407.deadflag == 0)) && (_l_9407.team_no != self.owner.team_no)) && (_l_9407.bugger == 0))) + { + deathmsg = 24; + TF_T_Damage (_l_9407, world, self.owner, 10, 2, 0); + if ((_l_9407.tfstate & 16384)) + { + _l_9409 = find (world, classname, "timer"); + while ((((_l_9409.owner != _l_9407) || (_l_9409.think != HallucinationTimer)) && (_l_9409 != world))) + { + _l_9409 = find (_l_9409, classname, "timer"); + } + if ((_l_9409 != world)) + { + _l_9409.health = (_l_9409.health + 25); + if ((_l_9409.health < 100)) + { + _l_9409.health = 100; + } + _l_9409.nextthink = (time + 0.500000); + } + } + else + { + sprint (_l_9407, 2, "Far out man!\n"); + _l_9408 = find (world, classname, "timer"); + while ((((_l_9408.owner != _l_9407) || (_l_9408.think != ConcussionGrenadeTimer)) && (_l_9408 != world))) + { + _l_9408 = find (_l_9408, classname, "timer"); + } + if ((_l_9408 == world)) + { + stuffcmd (_l_9407, "v_idlescale 10\n"); + } + _l_9407.tfstate = (_l_9407.tfstate | 16384); + _l_9409 = spawn (); + _l_9409.nextthink = (time + 0.500000); + _l_9409.think = HallucinationTimer; + _l_9409.classname = "timer"; + _l_9409.owner = _l_9407; + _l_9409.health = 100; + _l_9409.team_no = self.team_no; + } + } + } + _l_9407 = _l_9407.chain; + } + self.heat = (self.heat + 1); + if ((self.heat == 1)) + { + WriteByte (4, 23); + WriteByte (4, 4); + WriteCoord (4, self.origin_x); + WriteCoord (4, self.origin_y); + WriteCoord (4, self.origin_z); + multicast (self.origin, 2); + return; + } + if ((self.heat <= 20)) + { + self.weapon = (self.weapon + 1); + if ((self.weapon == 1)) + { + WriteByte (4, 23); + WriteByte (4, 10); + WriteCoord (4, self.origin_x); + WriteCoord (4, self.origin_y); + WriteCoord (4, (self.origin_z - 24)); + multicast (self.origin, 2); + sound (self, 0, "misc/vapeur2.wav", 1, 1); + } + else + { + if ((self.weapon == 2)) + { + self.weapon = 0; + } + } + return; + } + self.owner.active_grenades_2 = (self.owner.active_grenades_2 - 1); + dremove (self); +}; + +void () HallucinationTimer = +{ + local entity _l_9418; + local entity _l_9419; + local float _l_9420; + local float _l_9421; + local float _l_9422; + + self.health = (self.health - 2.500000); + if ((self.owner.playerclass == 5)) + { + self.health = (self.health - 2.500000); + } + if ((self.health <= 0)) + { + self.owner.tfstate = (self.owner.tfstate - (self.owner.tfstate & 16384)); + } + if (!(self.owner.tfstate & 16384)) + { + sprint (self.owner, 2, "You're sobering up now.\n"); + stuffcmd (self.owner, "v_idlescale 0\n"); + dremove (self); + return; + } + _l_9419 = find (world, classname, "timer"); + while ((((_l_9419.owner != self.owner) || (_l_9419.think != ConcussionGrenadeTimer)) && (_l_9419 != world))) + { + _l_9419 = find (_l_9419, classname, "timer"); + } + if ((_l_9419 == world)) + { + stuffcmd (self.owner, "v_idlescale 10\n"); + } + self.nextthink = (time + 0.500000); + if ((random () < 0.500000)) + { + KickPlayer (-10, self.owner); + } + _l_9420 = (random () * 800) - 400; + _l_9421 = (random () * 800) - 400; + _l_9422 = random (); + msg_entity = self.owner; + if ((_l_9422 < 0.400000)) + { + WriteByte (1, 23); + if ((_l_9422 < 0.500000)) + { + WriteByte (1, 3); + } + else + { + if ((_l_9422 < 0.550000)) + { + WriteByte (1, 4); + } + else + { + WriteByte (1, 10); + } + } + WriteCoord (1, (msg_entity.origin_x + _l_9420)); + WriteCoord (1, (msg_entity.origin_y + _l_9421)); + WriteCoord (1, msg_entity.origin_z); + } + else + { + if ((_l_9422 < 0.700000)) + { + WriteByte (1, 23); + WriteByte (1, 11); + WriteCoord (1, (msg_entity.origin_x + _l_9420)); + WriteCoord (1, (msg_entity.origin_y + _l_9421)); + WriteCoord (1, msg_entity.origin_z); + } + else + { + _l_9418 = spawn (); + _l_9418.origin_x = (msg_entity.origin_x + _l_9420); + _l_9418.origin_y = (msg_entity.origin_y + _l_9421); + _l_9418.origin_z = msg_entity.origin_z; + WriteByte (1, 23); + WriteByte (1, 6); + WriteEntity (1, _l_9418); + WriteCoord (1, _l_9418.origin_x); + WriteCoord (1, _l_9418.origin_y); + WriteCoord (1, _l_9418.origin_z); + _l_9420 = (random () * 800) - 400; + _l_9421 = (random () * 800) - 400; + WriteCoord (1, (msg_entity.origin_x + _l_9420)); + WriteCoord (1, (msg_entity.origin_y + _l_9421)); + WriteCoord (1, msg_entity.origin_z); + dremove (_l_9418); + } + } +}; + +void() W_FireTranq = +{ + local vector dir; + self.currentammo = self.ammo_shells = self.ammo_shells - 1; + KickPlayer(-1, self); + dir = aim(self, 1000); + newmis = spawn(); + newmis.owner = self; + newmis.movetype = 9; + newmis.solid = 2; + newmis.angles = vectoangles(dir); + newmis.touch = T_TranqDartTouch; + newmis.classname = "spike"; + newmis.think = SUB_Remove; + newmis.nextthink = time + 3; + setmodel(newmis, "progs/spike.mdl"); + setsize(newmis, '0 0 0', '0 0 0'); + setorigin(newmis, self.origin + '0 0 16'); + newmis.velocity = dir * 2000; +}; + +void() T_TranqDartTouch = +{ + local entity timer; + if (other.solid == 1) + { + return; + } + if (pointcontents(self.origin) == -6) + { + dremove(self); + return; + } + if (other.takedamage) + { + spawn_touchblood(9); + deathmsg = 25; + TF_T_Damage(other, self, self.owner, 20, 2, 2); + if (other.classname == "player" && other.team_no != self.owner.team_no) + { + if (other.tfstate & 32768) + { + timer = find(world, classname, "timer"); + while (timer.owner != other || timer.think != TranquiliserTimer && timer != world) + { + timer = find(timer, classname, "timer"); + } + if (timer != world) + { + timer.nextthink = time + 15; + } + } + else + { + sprint(other, 2, "You're getting sleepy...\n"); + stuffcmd(other, "v_cshift 125 0 255 100\n"); + other.tfstate = other.tfstate | 32768; + timer = spawn(); + timer.nextthink = time + 15; + timer.think = TranquiliserTimer; + timer.classname = "timer"; + timer.owner = other; + timer.team_no = self.owner.team_no; + TeamFortress_SetSpeed(other); + } + } + } + else + { + WriteByte(4, 23); + if (self.classname == "wizspike") + { + WriteByte(4, 7); + } + else + { + if (self.classname == "knightspike") + { + WriteByte(4, 8); + } + else + { + WriteByte(4, 0); + } + } + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); + multicast(self.origin, 2); + } + dremove(self); +}; + +void() TranquiliserTimer = +{ + self.owner.tfstate = self.owner.tfstate - (self.owner.tfstate & 32768); + TeamFortress_SetSpeed(self.owner); + stuffcmd(self.owner, "v_cshift 0 0 0 0\n"); + sprint(self.owner, 2, "You feel more alert now\n"); + dremove(self); +}; + +void(entity spy) Spy_RemoveDisguise = +{ + local string st; + local float tc; + if (invis_only != 1) + { + if (spy.playerclass == 8) + { + if (spy.undercover_skin != 0) + { + spy.items = spy.items - (spy.items & 524288); + spy.immune_to_check = time + 10; + spy.undercover_skin = 0; + spy.skin = 0; + TeamFortress_SetSkin(spy); + } + if (spy.undercover_team != 0) + { + spy.items = spy.items - (spy.items & 524288); + spy.immune_to_check = time + 10; + spy.undercover_team = 0; + stuffcmd(spy, "color "); + tc = TeamFortress_TeamGetColor(spy.team_no) - 1; + st = ftos(tc); + stuffcmd(spy, st); + stuffcmd(spy, "\n"); + } + spy.is_undercover = 0; + self.StatusRefreshTime = time + 0.1; + TeamFortress_SpyCalcName(spy); + } + } + else + { + if (spy.is_undercover) + { + spy.is_undercover = 0; + spy.modelindex = modelindex_player; + if (spy.items & 524288) + { + spy.items = spy.items - 524288; + } + self.StatusRefreshTime = time + 0.1; + } + } +}; + diff --git a/status.pqc b/status.pqc new file mode 100644 index 0000000..64a7c2d --- /dev/null +++ b/status.pqc @@ -0,0 +1,2130 @@ +float(float tno) TeamFortress_TeamGetScore; +float() TeamFortress_TeamGetWinner; +float() TeamFortress_TeamGetSecond; + +string (entity pl) GetStatusSize; +string (entity pl) DetpackTimeToString; +string (entity pl) ClipSize; +string (entity pl) DisguiseString; +string (entity pl) SentryDetails; +string (entity pl) SentryHealth; + +void (entity pl, string s1) CenterPrint = +{ + centerprint (pl, s1); + pl.StatusRefreshTime = time + 1.5; +}; + +void (entity _p_3723, string _p_3724, string _p_3725) CenterPrint2 = +{ + + centerprint (_p_3723, _p_3724, "\n", _p_3725); + _p_3723.StatusRefreshTime = (time + 1.5); +}; + +void (entity _p_3729, float _p_3730, string _p_3731) StatusPrint = +{ + + centerprint (_p_3729, _p_3731); + _p_3729.StatusRefreshTime = (time + _p_3730); +}; + +void (entity pl) RefreshStatusBar = +{ + local string status_size, misc, clip_print; + local entity playerent; + local float t1_pl, t2_pl, t3_pl, t4_pl, no_teams; + local string t1name, t2name, t3name, t4name; + local string t1score, t2score, t3score, t4score; + local string t1full, t2full, t3full, t4full, t12full, t34full; + local string st, print_scores, gren1, gren2, gren_print; + local string spacer, dpacktime; + + if (pl.StatusBarSize == 0) { + pl.StatusRefreshTime = time + 60; + return; + } + pl.StatusRefreshTime = time + 1.5; + + if (pl.playerclass == 0) //PC_UNDEFINED doesn't exist in mega + return; + + no_teams = 0; + t1_pl = TeamFortress_TeamGetNoPlayers (1); + t2_pl = TeamFortress_TeamGetNoPlayers (2); + t3_pl = TeamFortress_TeamGetNoPlayers (3); + t4_pl = TeamFortress_TeamGetNoPlayers (4); + + if (t1_pl > 0) { + no_teams = no_teams + 1; + t1name = "\sBlue\s: "; + st = ftos(team1score); + t1score = substring(st, 0, 4); + } + if (t2_pl > 0) { + no_teams = no_teams + 1; + t2name = "\sRed\s: "; + if (t1_pl > 0) + t2name = " \sRed\s: "; + st = ftos(team2score); + t2score = substring(st, 0, 4); + } + if (t3_pl > 0) { + no_teams = no_teams + 1; + t3name = "\sYell\s: "; + if ( (t1_pl > 0) || (t2_pl > 0) ) + t3name = " \sYell\s: "; + st = ftos(team3score); + t3score = substring(st, 0, 4); + } + if (t4_pl > 0) { + no_teams = no_teams + 1; + t4name = "\sGrn\s: "; + if ( (t1_pl > 0) || (t2_pl > 0) || (t3_pl > 0) ) + t4name = " \sGrn\s: "; + st = ftos(team4score); + t4score = substring(st, 0, 4); + } + + t1full = strcat(t1name,t1score); + t2full = strcat(t2name,t2score); + t3full = strcat(t3name,t3score); + t4full = strcat(t4name,t4score); + + t12full = strcat(t1full,t2full); + t34full = strcat(t3full,t4full); + print_scores = strcat(t12full,t34full); + + + gren1 = strcat(" \sG\s: ", ftos (self.no_grenades_1)); + gren2 = strcat("/", ftos (self.no_grenades_2)); + gren_print = strcat(gren1, gren2); + + status_size = GetStatusSize (pl); + clip_print = ClipSize (pl); + misc = "\n"; + + if (pl.playerclass == 8) { + local string disguise_state; + disguise_state = DisguiseString (pl); + + centerprint (pl, status_size, disguise_state, print_scores, clip_print, gren_print); + return; + } + else if (pl.playerclass == 9) { + if (self.has_sentry) { + local string sentry_health, sentry_details; + sentry_health = SentryHealth (pl); + sentry_details = SentryDetails (pl); + + centerprint (pl, status_size, sentry_health, sentry_details, print_scores, clip_print, gren_print); + return; + } + else if (self.is_building) { + misc = "\nBuilding..\n"; + } + } + else if ((pl.playerclass == 4)) { + if (self.is_detpacking) + dpacktime = " setting ÄÅÔÐÁÃË \n"; + else { + playerent = find (world, classname, "countdown_timer"); + while (playerent) + { + if ((playerent.owner == pl)) { + dpacktime = DetpackTimeToString (playerent); + spacer = " "; + centerprint (pl, status_size, spacer, dpacktime, print_scores, clip_print, gren_print); + return; + } + playerent = find (playerent, classname, "countdown_timer"); + } + } + } + + centerprint (pl, status_size, misc, print_scores, clip_print, gren_print); +}; + +string (entity pl) GetStatusSize = +{ + if (pl.StatusBarSize == 1) { + if (pl.StatusBarRes > 7) // 768 + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + else if (pl.StatusBarRes == 7) // 600 + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + else if (pl.StatusBarRes == 6) // 480 + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + else if (pl.StatusBarRes == 5) // 400 + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + else if (pl.StatusBarRes == 4) // 384 + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + else if (pl.StatusBarRes == 3) // 350 + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + else if (pl.StatusBarRes == 2) // 300 + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + else if (pl.StatusBarRes == 1) // 240 + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + + return ("\n\n\n\n\n\n\n\n\n\n\n"); // 200 + } + else /* if (pl.StatusBarSize == 2) */ { + if (pl.StatusBarRes > 7) // 768 + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + else if (pl.StatusBarRes == 7) // 600 + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + else if (pl.StatusBarRes == 6) // 480 + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + else if (pl.StatusBarRes == 5) // 400 + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + else if (pl.StatusBarRes == 4) // 384 + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + else if (pl.StatusBarRes == 3) // 350 + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + else if (pl.StatusBarRes == 2) // 300 + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + else if (pl.StatusBarRes == 1) // 240 + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + return ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); // 200 + } +}; + +void (float res) StatusRes = +{ + self.StatusBarRes = res; + if (res > 7) + sprint (self, 2, "Status Bar Res set to 1024x768.\n"); + else if (res == 7) + sprint (self, 2, "Status Bar Res set to 800x600.\n"); + else if (res == 6) + sprint (self, 2, "Status Bar Res set to 640x480.\n"); + else if (res == 5) + sprint (self, 2, "Status Bar Res set to 640x400.\n"); + else if (res == 4) + sprint (self, 2, "Status Bar Res set to 512x384.\n"); + else if (res == 3) + sprint (self, 2, "Status Bar Res set to 320x350.\n"); + else if (res == 2) + sprint (self, 2, "Status Bar Res set to 400x300.\n"); + else if (res == 1) + sprint (self, 2, "Status Bar Res set to 320x240.\n"); + else + sprint (self, 2, "Status Bar Res set to 320x200.\n"); +}; + +string (entity pl) ClipSize = +{ + local float clip; + local string clip_print; + + if (pl.current_weapon == 128) { + if ((8 - pl.reload_shotgun) > pl.ammo_shells) + pl.reload_shotgun = 8 - pl.ammo_shells; + clip = 8 - pl.reload_shotgun; + clip_print = strcat (" \sClip\s: ", ftos(clip)); + } + else if (pl.current_weapon == 256) { + if ((16 - pl.reload_super_shotgun) > pl.ammo_shells) + pl.reload_super_shotgun = 16 - pl.ammo_shells; + clip = (16 - pl.reload_super_shotgun); + clip_print = strcat (" \sClip\s: ", ftos(clip)); + } + else if (pl.current_weapon == 2048) { + if ((6 - pl.reload_grenade_launcher) > pl.ammo_rockets) + pl.reload_grenade_launcher = (6 - pl.ammo_rockets); + clip = (6 - pl.reload_grenade_launcher); + clip_print = strcat (" \sClip\s: ", ftos(clip)); + } + else if (pl.current_weapon == 8192) { + if ((4 - pl.reload_rocket_launcher) > pl.ammo_rockets) + pl.reload_rocket_launcher = (4 - pl.ammo_rockets); + clip = (4 - pl.reload_rocket_launcher); + clip_print = strcat (" \sClip\s: ", ftos(clip)); + } + + return (clip_print); +}; + +string (entity pl) DisguiseString = +{ + local string under_team, under_class, disguise_print; + + if (pl.undercover_team == 1) + under_team = "Blue"; + if (pl.undercover_team == 2) + under_team = "Red"; + if (pl.undercover_team == 3) + under_team = "Yell"; + if (pl.undercover_team == 4) + under_team = "Grn"; + + if (!pl.undercover_skin) { + under_class = ("\n"); + } else if (pl.undercover_skin == 1) { + under_class = (" Scout\n"); + } else if (pl.undercover_skin == 2) { + under_class = (" Sniper\n"); + } else if (pl.undercover_skin == 3) { + under_class = (" Soldier\n"); + } else if (pl.undercover_skin == 4) { + under_class = (" Demoman\n"); + } else if (pl.undercover_skin == 5) { + under_class = (" Medic\n"); + } else if (pl.undercover_skin == 6) { + under_class = (" Hvy Wpns\n"); + } else if (pl.undercover_skin == 7) { + under_class = (" Pyro\n"); + } else if (pl.undercover_skin == 8) { + under_class = (" Spy\n"); + } else + under_class = (" Engineer\n"); + + if (pl.is_undercover == 0) + under_class = ("Not undercover\n"); + if (pl.is_undercover == 2) { + under_class = (" Going undercover..\n"); + } + if (invis_only) + under_class = ("Undercover\n"); + + disguise_print = strcat(under_team, under_class); + return (disguise_print); +}; + +string (entity pl) SentryDetails = +{ + local entity te; + + te = find (world, classname, "building_sentrygun"); + while (te) { + if (te.real_owner == self) { + if (te.ammo_shells == 0) { + if ((te.ammo_rockets == 0) && (te.weapon == 3)) + return (" no ammo\n"); + else + return (" no shells\n"); + } + else if ((te.ammo_rockets == 0) && (te.weapon == 3)) + return (" no rockets\n"); + else + return ("\n"); + } + te = find (te, classname, "building_sentrygun"); + } + return ("\n"); +}; + +string (entity pl) SentryHealth = +{ + local entity te; + local string sg_print; + local float st; + + te = find (world, classname, "building_sentrygun"); + while (te) { + if (te.real_owner == self) { + st = rint (te.health); + sg_print = strcat("SENTRY: ", ftos(st)); + return(sg_print); + } + te = find (te, classname, "building_sentrygun"); + } + return ("SENTRY: 0 health"); // Why is this needed? +}; + +string (entity pl) DetpackTimeToString = +{ + local float _l_5357; + + _l_5357 = pl.health + 1; + if ((_l_5357 == 0)) + { + return ("ÄÅÔÐÁÃË: 0 \n"); + } + else + { + if ((_l_5357 == 1)) + { + return ("ÄÅÔÐÁÃË: 1s \n"); + } + else + { + if ((_l_5357 == 2)) + { + return ("ÄÅÔÐÁÃË: 2s \n"); + } + else + { + if ((_l_5357 == 3)) + { + return ("ÄÅÔÐÁÃË: 3s \n"); + } + else + { + if ((_l_5357 == 4)) + { + return ("ÄÅÔÐÁÃË: 4s \n"); + } + else + { + if ((_l_5357 == 5)) + { + return ("ÄÅÔÐÁÃË: 5s \n"); + } + else + { + if ((_l_5357 == 6)) + { + return ("ÄÅÔÐÁÃË: 6s \n"); + } + else + { + if ((_l_5357 == 7)) + { + return ("ÄÅÔÐÁÃË: 7s \n"); + } + else + { + if ((_l_5357 == 8)) + { + return ("ÄÅÔÐÁÃË: 8s \n"); + } + else + { + if ((_l_5357 == 9)) + { + return ("ÄÅÔÐÁÃË: 9s \n"); + } + else + { + if ((_l_5357 == 10)) + { + return ("ÄÅÔÐÁÃË: 10s \n"); + } + else + { + if ((_l_5357 == 11)) + { + return ("ÄÅÔÐÁÃË: 11s \n"); + } + else + { + if ((_l_5357 == 12)) + { + return ("ÄÅÔÐÁÃË: 12s \n"); + } + else + { + if ((_l_5357 == 13)) + { + return ("ÄÅÔÐÁÃË: 13s \n"); + } + else + { + if ((_l_5357 == 14)) + { + return ("ÄÅÔÐÁÃË: 14s \n"); + } + else + { + if ((_l_5357 == 15)) + { + return ("ÄÅÔÐÁÃË: 15s \n"); + } + else + { + if ((_l_5357 == 16)) + { + return ("ÄÅÔÐÁÃË: 16s \n"); + } + else + { + if ((_l_5357 == 17)) + { + return ("ÄÅÔÐÁÃË: 17s \n"); + } + else + { + if ((_l_5357 == 18)) + { + return ("ÄÅÔÐÁÃË: 18s \n"); + } + else + { + if ((_l_5357 == 19)) + { + return ("ÄÅÔÐÁÃË: 19s \n"); + } + else + { + if ((_l_5357 == 20)) + { + return ("ÄÅÔÐÁÃË: 20s \n"); + } + else + { + if ((_l_5357 == 21)) + { + return ("ÄÅÔÐÁÃË: 21s \n"); + } + else + { + if ((_l_5357 == 22)) + { + return ("ÄÅÔÐÁÃË: 22s \n"); + } + else + { + if ((_l_5357 == 23)) + { + return ("ÄÅÔÐÁÃË: 23s \n"); + } + else + { + if ((_l_5357 == 24)) + { + return ("ÄÅÔÐÁÃË: 24s \n"); + } + else + { + if ((_l_5357 == 25)) + { + return ("ÄÅÔÐÁÃË: 25s \n"); + } + else + { + if ((_l_5357 == 26)) + { + return ("ÄÅÔÐÁÃË: 26s \n"); + } + else + { + if ((_l_5357 == 27)) + { + return ("ÄÅÔÐÁÃË: 27s \n"); + } + else + { + if ((_l_5357 == 28)) + { + return ("ÄÅÔÐÁÃË: 28s \n"); + } + else + { + if ((_l_5357 == 29)) + { + return ("ÄÅÔÐÁÃË: 29s \n"); + } + else + { + if ((_l_5357 == 30)) + { + return ("ÄÅÔÐÁÃË: 30s \n"); + } + else + { + if ((_l_5357 == 31)) + { + return ("ÄÅÔÐÁÃË: 31s \n"); + } + else + { + if ((_l_5357 == 32)) + { + return ("ÄÅÔÐÁÃË: 32s \n"); + } + else + { + if ((_l_5357 == 33)) + { + return ("ÄÅÔÐÁÃË: 33s \n"); + } + else + { + if ((_l_5357 == 34)) + { + return ("ÄÅÔÐÁÃË: 34s \n"); + } + else + { + if ((_l_5357 == 35)) + { + return ("ÄÅÔÐÁÃË: 35s \n"); + } + else + { + if ((_l_5357 == 36)) + { + return ("ÄÅÔÐÁÃË: 36s \n"); + } + else + { + if ((_l_5357 == 37)) + { + return ("ÄÅÔÐÁÃË: 37s \n"); + } + else + { + if ((_l_5357 == 38)) + { + return ("ÄÅÔÐÁÃË: 38s \n"); + } + else + { + if ((_l_5357 == 39)) + { + return ("ÄÅÔÐÁÃË: 39s \n"); + } + else + { + if ((_l_5357 == 40)) + { + return ("ÄÅÔÐÁÃË: 40s \n"); + } + else + { + if ((_l_5357 == 41)) + { + return ("ÄÅÔÐÁÃË: 41s \n"); + } + else + { + if ((_l_5357 == 42)) + { + return ("ÄÅÔÐÁÃË: 42s \n"); + } + else + { + if ((_l_5357 == 43)) + { + return ("ÄÅÔÐÁÃË: 43s \n"); + } + else + { + if ((_l_5357 == 44)) + { + return ("ÄÅÔÐÁÃË: 44s \n"); + } + else + { + if ((_l_5357 == 45)) + { + return ("ÄÅÔÐÁÃË: 45s \n"); + } + else + { + if ((_l_5357 == 46)) + { + return ("ÄÅÔÐÁÃË: 46s \n"); + } + else + { + if ((_l_5357 == 47)) + { + return ("ÄÅÔÐÁÃË: 47s \n"); + } + else + { + if ((_l_5357 == 48)) + { + return ("ÄÅÔÐÁÃË: 48s \n"); + } + else + { + if ((_l_5357 == 49)) + { + return ("ÄÅÔÐÁÃË: 49s \n"); + } + else + { + if ((_l_5357 == 50)) + { + return ("ÄÅÔÐÁÃË: 50s \n"); + } + else + { + if ((_l_5357 == 51)) + { + return ("ÄÅÔÐÁÃË: 51s \n"); + } + else + { + if ((_l_5357 == 52)) + { + return ("ÄÅÔÐÁÃË: 52s \n"); + } + else + { + if ((_l_5357 == 53)) + { + return ("ÄÅÔÐÁÃË: 53s \n"); + } + else + { + if ((_l_5357 == 54)) + { + return ("ÄÅÔÐÁÃË: 54s \n"); + } + else + { + if ((_l_5357 == 55)) + { + return ("ÄÅÔÐÁÃË: 55s \n"); + } + else + { + if ((_l_5357 == 56)) + { + return ("ÄÅÔÐÁÃË: 56s \n"); + } + else + { + if ((_l_5357 == 57)) + { + return ("ÄÅÔÐÁÃË: 57s \n"); + } + else + { + if ((_l_5357 == 58)) + { + return ("ÄÅÔÐÁÃË: 58s \n"); + } + else + { + if ((_l_5357 == 59)) + { + return ("ÄÅÔÐÁÃË: 59s \n"); + } + else + { + if ((_l_5357 == 60)) + { + return ("ÄÅÔÐÁÃË: 60s \n"); + } + else + { + if ((_l_5357 == 61)) + { + return ("ÄÅÔÐÁÃË: 61s \n"); + } + else + { + if ((_l_5357 == 62)) + { + return ("ÄÅÔÐÁÃË: 62s \n"); + } + else + { + if ((_l_5357 == 63)) + { + return ("ÄÅÔÐÁÃË: 63s \n"); + } + else + { + if ((_l_5357 == 64)) + { + return ("ÄÅÔÐÁÃË: 64s \n"); + } + else + { + if ((_l_5357 == 65)) + { + return ("ÄÅÔÐÁÃË: 65s \n"); + } + else + { + if ((_l_5357 == 66)) + { + return ("ÄÅÔÐÁÃË: 66s \n"); + } + else + { + if ((_l_5357 == 67)) + { + return ("ÄÅÔÐÁÃË: 67s \n"); + } + else + { + if ((_l_5357 == 68)) + { + return ("ÄÅÔÐÁÃË: 68s \n"); + } + else + { + if ((_l_5357 == 69)) + { + return ("ÄÅÔÐÁÃË: 69s \n"); + } + else + { + if ((_l_5357 == 70)) + { + return ("ÄÅÔÐÁÃË: 70s \n"); + } + else + { + if ((_l_5357 == 71)) + { + return ("ÄÅÔÐÁÃË: 71s \n"); + } + else + { + if ((_l_5357 == 72)) + { + return ("ÄÅÔÐÁÃË: 72s \n"); + } + else + { + if ((_l_5357 == 73)) + { + return ("ÄÅÔÐÁÃË: 73s \n"); + } + else + { + if ((_l_5357 == 74)) + { + return ("ÄÅÔÐÁÃË: 74s \n"); + } + else + { + if ((_l_5357 == 75)) + { + return ("ÄÅÔÐÁÃË: 75s \n"); + } + else + { + if ((_l_5357 == 76)) + { + return ("ÄÅÔÐÁÃË: 76s \n"); + } + else + { + if ((_l_5357 == 77)) + { + return ("ÄÅÔÐÁÃË: 77s \n"); + } + else + { + if ((_l_5357 == 78)) + { + return ("ÄÅÔÐÁÃË: 78s \n"); + } + else + { + if ((_l_5357 == 79)) + { + return ("ÄÅÔÐÁÃË: 79s \n"); + } + else + { + if ((_l_5357 == 80)) + { + return ("ÄÅÔÐÁÃË: 80s \n"); + } + else + { + if ((_l_5357 == 81)) + { + return ("ÄÅÔÐÁÃË: 81s \n"); + } + else + { + if ((_l_5357 == 82)) + { + return ("ÄÅÔÐÁÃË: 82s \n"); + } + else + { + if ((_l_5357 == 83)) + { + return ("ÄÅÔÐÁÃË: 83s \n"); + } + else + { + if ((_l_5357 == 84)) + { + return ("ÄÅÔÐÁÃË: 84s \n"); + } + else + { + if ((_l_5357 == 85)) + { + return ("ÄÅÔÐÁÃË: 85s \n"); + } + else + { + if ((_l_5357 == 86)) + { + return ("ÄÅÔÐÁÃË: 86s \n"); + } + else + { + if ((_l_5357 == 87)) + { + return ("ÄÅÔÐÁÃË: 87s \n"); + } + else + { + if ((_l_5357 == 88)) + { + return ("ÄÅÔÐÁÃË: 88s \n"); + } + else + { + if ((_l_5357 == 89)) + { + return ("ÄÅÔÐÁÃË: 89s \n"); + } + else + { + if ((_l_5357 == 90)) + { + return ("ÄÅÔÐÁÃË: 90s \n"); + } + else + { + if ((_l_5357 == 91)) + { + return ("ÄÅÔÐÁÃË: 91s \n"); + } + else + { + if ((_l_5357 == 92)) + { + return ("ÄÅÔÐÁÃË: 92s \n"); + } + else + { + if ((_l_5357 == 93)) + { + return ("ÄÅÔÐÁÃË: 93s \n"); + } + else + { + if ((_l_5357 == 94)) + { + return ("ÄÅÔÐÁÃË: 94s \n"); + } + else + { + if ((_l_5357 == 95)) + { + return ("ÄÅÔÐÁÃË: 95s \n"); + } + else + { + if ((_l_5357 == 96)) + { + return ("ÄÅÔÐÁÃË: 96s \n"); + } + else + { + if ((_l_5357 == 97)) + { + return ("ÄÅÔÐÁÃË: 97s \n"); + } + else + { + if ((_l_5357 == 98)) + { + return ("ÄÅÔÐÁÃË: 98s \n"); + } + else + { + if ((_l_5357 == 99)) + { + return ("ÄÅÔÐÁÃË: 99s \n"); + } + else + { + if ((_l_5357 == 100)) + { + return ("ÄÅÔÐÁÃË: 100s\n"); + } + else + { + if ((_l_5357 == 101)) + { + return ("ÄÅÔÐÁÃË: 101s\n"); + } + else + { + if ((_l_5357 == 102)) + { + return ("ÄÅÔÐÁÃË: 102s\n"); + } + else + { + if ((_l_5357 == 103)) + { + return ("ÄÅÔÐÁÃË: 103s\n"); + } + else + { + if ((_l_5357 == 104)) + { + return ("ÄÅÔÐÁÃË: 104s\n"); + } + else + { + if ((_l_5357 == 105)) + { + return ("ÄÅÔÐÁÃË: 105s\n"); + } + else + { + if ((_l_5357 == 106)) + { + return ("ÄÅÔÐÁÃË: 106s\n"); + } + else + { + if ((_l_5357 == 107)) + { + return ("ÄÅÔÐÁÃË: 107s\n"); + } + else + { + if ((_l_5357 == 108)) + { + return ("ÄÅÔÐÁÃË: 108s\n"); + } + else + { + if ((_l_5357 == 109)) + { + return ("ÄÅÔÐÁÃË: 109s\n"); + } + else + { + if ((_l_5357 == 110)) + { + return ("ÄÅÔÐÁÃË: 110s\n"); + } + else + { + if ((_l_5357 == 111)) + { + return ("ÄÅÔÐÁÃË: 111s\n"); + } + else + { + if ((_l_5357 == 112)) + { + return ("ÄÅÔÐÁÃË: 112s\n"); + } + else + { + if ((_l_5357 == 113)) + { + return ("ÄÅÔÐÁÃË: 113s\n"); + } + else + { + if ((_l_5357 == 114)) + { + return ("ÄÅÔÐÁÃË: 114s\n"); + } + else + { + if ((_l_5357 == 115)) + { + return ("ÄÅÔÐÁÃË: 115s\n"); + } + else + { + if ((_l_5357 == 116)) + { + return ("ÄÅÔÐÁÃË: 116s\n"); + } + else + { + if ((_l_5357 == 117)) + { + return ("ÄÅÔÐÁÃË: 117s\n"); + } + else + { + if ((_l_5357 == 118)) + { + return ("ÄÅÔÐÁÃË: 118s\n"); + } + else + { + if ((_l_5357 == 119)) + { + return ("ÄÅÔÐÁÃË: 119s\n"); + } + else + { + if ((_l_5357 == 120)) + { + return ("ÄÅÔÐÁÃË: 120s\n"); + } + else + { + if ((_l_5357 == 121)) + { + return ("ÄÅÔÐÁÃË: 121s\n"); + } + else + { + if ((_l_5357 == 122)) + { + return ("ÄÅÔÐÁÃË: 122s\n"); + } + else + { + if ((_l_5357 == 123)) + { + return ("ÄÅÔÐÁÃË: 123s\n"); + } + else + { + if ((_l_5357 == 124)) + { + return ("ÄÅÔÐÁÃË: 124s\n"); + } + else + { + if ((_l_5357 == 125)) + { + return ("ÄÅÔÐÁÃË: 125s\n"); + } + else + { + if ((_l_5357 == 126)) + { + return ("ÄÅÔÐÁÃË: 126s\n"); + } + else + { + if ((_l_5357 == 127)) + { + return ("ÄÅÔÐÁÃË: 127s\n"); + } + else + { + if ((_l_5357 == 128)) + { + return ("ÄÅÔÐÁÃË: 128s\n"); + } + else + { + if ((_l_5357 == 129)) + { + return ("ÄÅÔÐÁÃË: 129s\n"); + } + else + { + if ((_l_5357 == 130)) + { + return ("ÄÅÔÐÁÃË: 130s\n"); + } + else + { + if ((_l_5357 == 131)) + { + return ("ÄÅÔÐÁÃË: 131s\n"); + } + else + { + if ((_l_5357 == 132)) + { + return ("ÄÅÔÐÁÃË: 132s\n"); + } + else + { + if ((_l_5357 == 133)) + { + return ("ÄÅÔÐÁÃË: 133s\n"); + } + else + { + if ((_l_5357 == 134)) + { + return ("ÄÅÔÐÁÃË: 134s\n"); + } + else + { + if ((_l_5357 == 135)) + { + return ("ÄÅÔÐÁÃË: 135s\n"); + } + else + { + if ((_l_5357 == 136)) + { + return ("ÄÅÔÐÁÃË: 136s\n"); + } + else + { + if ((_l_5357 == 137)) + { + return ("ÄÅÔÐÁÃË: 137s\n"); + } + else + { + if ((_l_5357 == 138)) + { + return ("ÄÅÔÐÁÃË: 138s\n"); + } + else + { + if ((_l_5357 == 139)) + { + return ("ÄÅÔÐÁÃË: 139s\n"); + } + else + { + if ((_l_5357 == 140)) + { + return ("ÄÅÔÐÁÃË: 140s\n"); + } + else + { + if ((_l_5357 == 141)) + { + return ("ÄÅÔÐÁÃË: 141s\n"); + } + else + { + if ((_l_5357 == 142)) + { + return ("ÄÅÔÐÁÃË: 142s\n"); + } + else + { + if ((_l_5357 == 143)) + { + return ("ÄÅÔÐÁÃË: 143s\n"); + } + else + { + if ((_l_5357 == 144)) + { + return ("ÄÅÔÐÁÃË: 144s\n"); + } + else + { + if ((_l_5357 == 145)) + { + return ("ÄÅÔÐÁÃË: 145s\n"); + } + else + { + if ((_l_5357 == 146)) + { + return ("ÄÅÔÐÁÃË: 146s\n"); + } + else + { + if ((_l_5357 == 147)) + { + return ("ÄÅÔÐÁÃË: 147s\n"); + } + else + { + if ((_l_5357 == 148)) + { + return ("ÄÅÔÐÁÃË: 148s\n"); + } + else + { + if ((_l_5357 == 149)) + { + return ("ÄÅÔÐÁÃË: 149s\n"); + } + else + { + if ((_l_5357 == 150)) + { + return ("ÄÅÔÐÁÃË: 150s\n"); + } + else + { + if ((_l_5357 == 151)) + { + return ("ÄÅÔÐÁÃË: 151s\n"); + } + else + { + if ((_l_5357 == 152)) + { + return ("ÄÅÔÐÁÃË: 152s\n"); + } + else + { + if ((_l_5357 == 153)) + { + return ("ÄÅÔÐÁÃË: 153s\n"); + } + else + { + if ((_l_5357 == 154)) + { + return ("ÄÅÔÐÁÃË: 154s\n"); + } + else + { + if ((_l_5357 == 155)) + { + return ("ÄÅÔÐÁÃË: 155s\n"); + } + else + { + if ((_l_5357 == 156)) + { + return ("ÄÅÔÐÁÃË: 156s\n"); + } + else + { + if ((_l_5357 == 157)) + { + return ("ÄÅÔÐÁÃË: 157s\n"); + } + else + { + if ((_l_5357 == 158)) + { + return ("ÄÅÔÐÁÃË: 158s\n"); + } + else + { + if ((_l_5357 == 159)) + { + return ("ÄÅÔÐÁÃË: 159s\n"); + } + else + { + if ((_l_5357 == 160)) + { + return ("ÄÅÔÐÁÃË: 160s\n"); + } + else + { + if ((_l_5357 == 161)) + { + return ("ÄÅÔÐÁÃË: 161s\n"); + } + else + { + if ((_l_5357 == 162)) + { + return ("ÄÅÔÐÁÃË: 162s\n"); + } + else + { + if ((_l_5357 == 163)) + { + return ("ÄÅÔÐÁÃË: 163s\n"); + } + else + { + if ((_l_5357 == 164)) + { + return ("ÄÅÔÐÁÃË: 164s\n"); + } + else + { + if ((_l_5357 == 165)) + { + return ("ÄÅÔÐÁÃË: 165s\n"); + } + else + { + if ((_l_5357 == 166)) + { + return ("ÄÅÔÐÁÃË: 166s\n"); + } + else + { + if ((_l_5357 == 167)) + { + return ("ÄÅÔÐÁÃË: 167s\n"); + } + else + { + if ((_l_5357 == 168)) + { + return ("ÄÅÔÐÁÃË: 168s\n"); + } + else + { + if ((_l_5357 == 169)) + { + return ("ÄÅÔÐÁÃË: 169s\n"); + } + else + { + if ((_l_5357 == 170)) + { + return ("ÄÅÔÐÁÃË: 170s\n"); + } + else + { + if ((_l_5357 == 171)) + { + return ("ÄÅÔÐÁÃË: 171s\n"); + } + else + { + if ((_l_5357 == 172)) + { + return ("ÄÅÔÐÁÃË: 172s\n"); + } + else + { + if ((_l_5357 == 173)) + { + return ("ÄÅÔÐÁÃË: 173s\n"); + } + else + { + if ((_l_5357 == 174)) + { + return ("ÄÅÔÐÁÃË: 174s\n"); + } + else + { + if ((_l_5357 == 175)) + { + return ("ÄÅÔÐÁÃË: 175s\n"); + } + else + { + if ((_l_5357 == 176)) + { + return ("ÄÅÔÐÁÃË: 176s\n"); + } + else + { + if ((_l_5357 == 177)) + { + return ("ÄÅÔÐÁÃË: 177s\n"); + } + else + { + if ((_l_5357 == 178)) + { + return ("ÄÅÔÐÁÃË: 178s\n"); + } + else + { + if ((_l_5357 == 179)) + { + return ("ÄÅÔÐÁÃË: 179s\n"); + } + else + { + if ((_l_5357 == 180)) + { + return ("ÄÅÔÐÁÃË: 180s\n"); + } + else + { + if ((_l_5357 == 181)) + { + return ("ÄÅÔÐÁÃË: 181s\n"); + } + else + { + if ((_l_5357 == 182)) + { + return ("ÄÅÔÐÁÃË: 182s\n"); + } + else + { + if ((_l_5357 == 183)) + { + return ("ÄÅÔÐÁÃË: 183s\n"); + } + else + { + if ((_l_5357 == 184)) + { + return ("ÄÅÔÐÁÃË: 184s\n"); + } + else + { + if ((_l_5357 == 185)) + { + return ("ÄÅÔÐÁÃË: 185s\n"); + } + else + { + if ((_l_5357 == 186)) + { + return ("ÄÅÔÐÁÃË: 186s\n"); + } + else + { + if ((_l_5357 == 187)) + { + return ("ÄÅÔÐÁÃË: 187s\n"); + } + else + { + if ((_l_5357 == 188)) + { + return ("ÄÅÔÐÁÃË: 188s\n"); + } + else + { + if ((_l_5357 == 189)) + { + return ("ÄÅÔÐÁÃË: 189s\n"); + } + else + { + if ((_l_5357 == 190)) + { + return ("ÄÅÔÐÁÃË: 190s\n"); + } + else + { + if ((_l_5357 == 191)) + { + return ("ÄÅÔÐÁÃË: 191s\n"); + } + else + { + if ((_l_5357 == 192)) + { + return ("ÄÅÔÐÁÃË: 192s\n"); + } + else + { + if ((_l_5357 == 193)) + { + return ("ÄÅÔÐÁÃË: 193s\n"); + } + else + { + if ((_l_5357 == 194)) + { + return ("ÄÅÔÐÁÃË: 194s\n"); + } + else + { + if ((_l_5357 == 195)) + { + return ("ÄÅÔÐÁÃË: 195s\n"); + } + else + { + if ((_l_5357 == 196)) + { + return ("ÄÅÔÐÁÃË: 196s\n"); + } + else + { + if ((_l_5357 == 197)) + { + return ("ÄÅÔÐÁÃË: 197s\n"); + } + else + { + if ((_l_5357 == 198)) + { + return ("ÄÅÔÐÁÃË: 198s\n"); + } + else + { + if ((_l_5357 == 199)) + { + return ("ÄÅÔÐÁÃË: 199s\n"); + } + else + { + if ((_l_5357 == 200)) + { + return ("ÄÅÔÐÁÃË: 200s\n"); + } + else + { + if ((_l_5357 == 201)) + { + return ("ÄÅÔÐÁÃË: 201s\n"); + } + else + { + if ((_l_5357 == 202)) + { + return ("ÄÅÔÐÁÃË: 202s\n"); + } + else + { + if ((_l_5357 == 203)) + { + return ("ÄÅÔÐÁÃË: 203s\n"); + } + else + { + if ((_l_5357 == 204)) + { + return ("ÄÅÔÐÁÃË: 204s\n"); + } + else + { + if ((_l_5357 == 205)) + { + return ("ÄÅÔÐÁÃË: 205s\n"); + } + else + { + if ((_l_5357 == 206)) + { + return ("ÄÅÔÐÁÃË: 206s\n"); + } + else + { + if ((_l_5357 == 207)) + { + return ("ÄÅÔÐÁÃË: 207s\n"); + } + else + { + if ((_l_5357 == 208)) + { + return ("ÄÅÔÐÁÃË: 208s\n"); + } + else + { + if ((_l_5357 == 209)) + { + return ("ÄÅÔÐÁÃË: 209s\n"); + } + else + { + if ((_l_5357 == 210)) + { + return ("ÄÅÔÐÁÃË: 210s\n"); + } + else + { + if ((_l_5357 == 211)) + { + return ("ÄÅÔÐÁÃË: 211s\n"); + } + else + { + if ((_l_5357 == 212)) + { + return ("ÄÅÔÐÁÃË: 212s\n"); + } + else + { + if ((_l_5357 == 213)) + { + return ("ÄÅÔÐÁÃË: 213s\n"); + } + else + { + if ((_l_5357 == 214)) + { + return ("ÄÅÔÐÁÃË: 214s\n"); + } + else + { + if ((_l_5357 == 215)) + { + return ("ÄÅÔÐÁÃË: 215s\n"); + } + else + { + if ((_l_5357 == 216)) + { + return ("ÄÅÔÐÁÃË: 216s\n"); + } + else + { + if ((_l_5357 == 217)) + { + return ("ÄÅÔÐÁÃË: 217s\n"); + } + else + { + if ((_l_5357 == 218)) + { + return ("ÄÅÔÐÁÃË: 218s\n"); + } + else + { + if ((_l_5357 == 219)) + { + return ("ÄÅÔÐÁÃË: 219s\n"); + } + else + { + if ((_l_5357 == 220)) + { + return ("ÄÅÔÐÁÃË: 220s\n"); + } + else + { + if ((_l_5357 == 221)) + { + return ("ÄÅÔÐÁÃË: 221s\n"); + } + else + { + if ((_l_5357 == 222)) + { + return ("ÄÅÔÐÁÃË: 222s\n"); + } + else + { + if ((_l_5357 == 223)) + { + return ("ÄÅÔÐÁÃË: 223s\n"); + } + else + { + if ((_l_5357 == 224)) + { + return ("ÄÅÔÐÁÃË: 224s\n"); + } + else + { + if ((_l_5357 == 225)) + { + return ("ÄÅÔÐÁÃË: 225s\n"); + } + else + { + if ((_l_5357 == 226)) + { + return ("ÄÅÔÐÁÃË: 226s\n"); + } + else + { + if ((_l_5357 == 227)) + { + return ("ÄÅÔÐÁÃË: 227s\n"); + } + else + { + if ((_l_5357 == 228)) + { + return ("ÄÅÔÐÁÃË: 228s\n"); + } + else + { + if ((_l_5357 == 229)) + { + return ("ÄÅÔÐÁÃË: 229s\n"); + } + else + { + if ((_l_5357 == 230)) + { + return ("ÄÅÔÐÁÃË: 230s\n"); + } + else + { + if ((_l_5357 == 231)) + { + return ("ÄÅÔÐÁÃË: 231s\n"); + } + else + { + if ((_l_5357 == 232)) + { + return ("ÄÅÔÐÁÃË: 232s\n"); + } + else + { + if ((_l_5357 == 233)) + { + return ("ÄÅÔÐÁÃË: 233s\n"); + } + else + { + if ((_l_5357 == 234)) + { + return ("ÄÅÔÐÁÃË: 234s\n"); + } + else + { + if ((_l_5357 == 235)) + { + return ("ÄÅÔÐÁÃË: 235s\n"); + } + else + { + if ((_l_5357 == 236)) + { + return ("ÄÅÔÐÁÃË: 236s\n"); + } + else + { + if ((_l_5357 == 237)) + { + return ("ÄÅÔÐÁÃË: 237s\n"); + } + else + { + if ((_l_5357 == 238)) + { + return ("ÄÅÔÐÁÃË: 238s\n"); + } + else + { + if ((_l_5357 == 239)) + { + return ("ÄÅÔÐÁÃË: 239s\n"); + } + else + { + if ((_l_5357 == 240)) + { + return ("ÄÅÔÐÁÃË: 240s\n"); + } + else + { + if ((_l_5357 == 241)) + { + return ("ÄÅÔÐÁÃË: 241s\n"); + } + else + { + if ((_l_5357 == 242)) + { + return ("ÄÅÔÐÁÃË: 242s\n"); + } + else + { + if ((_l_5357 == 243)) + { + return ("ÄÅÔÐÁÃË: 243s\n"); + } + else + { + if ((_l_5357 == 244)) + { + return ("ÄÅÔÐÁÃË: 244s\n"); + } + else + { + if ((_l_5357 == 245)) + { + return ("ÄÅÔÐÁÃË: 245s\n"); + } + else + { + if ((_l_5357 == 246)) + { + return ("ÄÅÔÐÁÃË: 246s\n"); + } + else + { + if ((_l_5357 == 247)) + { + return ("ÄÅÔÐÁÃË: 247s\n"); + } + else + { + if ((_l_5357 == 248)) + { + return ("ÄÅÔÐÁÃË: 248s\n"); + } + else + { + if ((_l_5357 == 249)) + { + return ("ÄÅÔÐÁÃË: 249s\n"); + } + else + { + if ((_l_5357 == 250)) + { + return ("ÄÅÔÐÁÃË: 250s\n"); + } + else + { + if ((_l_5357 == 251)) + { + return ("ÄÅÔÐÁÃË: 251s\n"); + } + else + { + if ((_l_5357 == 252)) + { + return ("ÄÅÔÐÁÃË: 252s\n"); + } + else + { + if ((_l_5357 == 253)) + { + return ("ÄÅÔÐÁÃË: 253s\n"); + } + else + { + if ((_l_5357 == 254)) + { + return ("ÄÅÔÐÁÃË: 254s\n"); + } + else + { + if ((_l_5357 >= 254)) + { + return ("ÄÅÔÐÁÃË: 255s\n"); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + + } + } + return "0"; +}; \ No newline at end of file diff --git a/subs.pqc b/subs.pqc new file mode 100644 index 0000000..6fc22af --- /dev/null +++ b/subs.pqc @@ -0,0 +1,251 @@ +void (entity Goal,entity AP) DoGoalWork; +void (entity Goal,entity AP) DoGroupWork; + +void() SUB_Null = +{ +}; + +void() SUB_Remove = +{ + dremove(self); +}; + +void() SetMovedir = +{ + if (self.angles == '0 -1 0') + { + self.movedir = '0 0 1'; + } + else + { + if (self.angles == '0 -2 0') + { + self.movedir = '0 0 -1'; + } + else + { + makevectors(self.angles); + self.movedir = v_forward; + } + } + self.angles = '0 0 0'; +}; + +void() SUB_CalcMoveDone = +{ + setorigin(self, self.finaldest); + self.velocity = '0 0 0'; + self.nextthink = -1; + if (self.think1) + { + self.think1(); + } +}; + +void() InitTrigger = +{ + if (self.angles != '0 0 0') + { + SetMovedir(); + } + self.solid = TF_FLARE_OFF; + setmodel(self, self.model); + self.movetype = TF_FLARE_LIT; + self.modelindex = TF_FLARE_LIT; + self.model = ""; +}; + +void(vector tdest, float tspeed, void() func) SUB_CalcMove = +{ + local vector vdestdelta; + local float len; + local float traveltime; + if (!tspeed) + { + objerror("No speed is defined!"); + } + self.think1 = func; + self.finaldest = tdest; + self.think = SUB_CalcMoveDone; + if (tdest == self.origin) + { + self.velocity = '0 0 0'; + self.nextthink = self.ltime + 0.1; + return; + } + vdestdelta = tdest - self.origin; + len = vlen(vdestdelta); + traveltime = len / tspeed; + if (traveltime < 0.030000) + { + traveltime = 0.030000; + } + self.nextthink = self.ltime + traveltime; + self.velocity = vdestdelta * (TF_FLARE_OFF / traveltime); +}; + +void(entity ent, vector tdest, float tspeed, void() func) SUB_CalcMoveEnt = +{ + local entity stemp; + stemp = self; + self = ent; + SUB_CalcMove(tdest, tspeed, func); + self = stemp; +}; + + + + +void(vector destangle, float tspeed, void() func) SUB_CalcAngleMove = +{ + local vector destdelta; + local float len; + local float traveltime; + if (!tspeed) + { + objerror("No speed is defined!"); + } + destdelta = destangle - self.angles; + len = vlen(destdelta); + traveltime = len / tspeed; + self.nextthink = self.ltime + traveltime; + self.avelocity = destdelta * (TF_FLARE_OFF / traveltime); + self.think1 = func; + self.finalangle = destangle; + self.think = SUB_CalcAngleMoveDone; +}; + +void(entity ent, vector destangle, float tspeed, void() func) SUB_CalcAngleMoveEnt = +{ + local entity stemp; + stemp = self; + self = ent; + SUB_CalcAngleMove(destangle, tspeed, func); + self = stemp; +}; + +void() SUB_CalcAngleMoveDone = +{ + self.angles = self.finalangle; + self.avelocity = '0 0 0'; + self.nextthink = -1; + if (self.think1) + { + self.think1(); + } +}; + +void() DelayThink = +{ + activator = self.enemy; + SUB_UseTargets(); + dremove(self); +}; + +void() SUB_UseTargets = +{ + local entity t; + local entity stemp; + local entity otemp; + local entity act; + if (self.dont_do_triggerwork) + { + self.dont_do_triggerwork = TF_FLARE_LIT; + return; + } + if (self.delay) + { + t = spawn(); + t.classname = "DelayedUse"; + t.nextthink = time + self.delay; + t.think = DelayThink; + t.enemy = activator; + t.message = self.message; + t.killtarget = self.killtarget; + t.target = self.target; + return; + } + if (activator.classname == "player" && self.message != "") + { + CenterPrint(activator, self.message); + if (!(self.noise)) + { + sound(activator, 2, "misc/talk.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + } + if (activator.classname == "player") + { + DoGroupWork(self, activator); + DoGoalWork(self, activator); + } + if (self.killtarget) + { + t = world; + do + { + t = find(t, targetname, self.killtarget); + if (!t) + { + return; + } + remove(t); + } while (TF_FLARE_OFF); + } + if (self.target) + { + act = activator; + t = world; + do + { + t = find(t, targetname, self.target); + if (!t) + { + return; + } + stemp = self; + otemp = other; + self = t; + other = stemp; + if (self.use != SUB_Null) + { + if (self.use) + { + self.use(); + } + } + self = stemp; + other = otemp; + activator = act; + } while (TF_FLARE_OFF); + } +}; + +void(float normal) SUB_AttackFinished = +{ + self.cnt = TF_FLARE_LIT; + if (skill < 3) + { + self.attack_finished = time + normal; + } +}; +float (entity targ) visible; + +void (void() thinkst) SUB_CheckRefire = +{ + if (skill < 3) + { + return; + } + if (self.cnt == TF_FLARE_OFF) + { + return; + } + if (!visible(self.enemy)) + { + return; + } + self.cnt = TF_FLARE_OFF; + self.think = thinkst; +}; + + diff --git a/tf29ents.pqc b/tf29ents.pqc new file mode 100644 index 0000000..7cd4252 --- /dev/null +++ b/tf29ents.pqc @@ -0,0 +1,2 @@ +// defines compiler to compile with t 2.9 entities +#define tf29ents \ No newline at end of file diff --git a/tfort.pqc b/tfort.pqc new file mode 100644 index 0000000..30aaede --- /dev/null +++ b/tfort.pqc @@ -0,0 +1,4152 @@ +.float option3; +.float maxstrafespeed; // Maximum side speed + +void() TeamFortress_GrenadePrimed; +//11.11.04 +void (entity _p_11069, entity _p_11070, entity _p_11071) DisplayItemStatus; +void (entity _p_11027, entity _p_11028, float _p_11029) tfgoalitem_RemoveFromPlayer; +void () tfgoalitem_remove; +void() tfgoalitem_dropthink; + +// Function Prototypes +void() RemoveFlare; +void() GrenadeExplode; +void() spike_touch; +void(entity p) bound_other_ammo; +void(entity Goal, entity Player, entity Item) DisplayItemStatus; + +// Re-check localinfo class restrict function +// added by XavioR +void() ReCheckRestrictions; + +// Map Function Prototypes +void(entity Item, entity AP, float method) tfgoalitem_RemoveFromPlayer; + +// Help Functions +void() TeamFortress_MOTD; + +// Team Functions +float(float tno) TeamFortress_TeamGetColor; +void(float tno) TeamFortress_TeamSetColor; +float() TeamFortress_TeamPutPlayerInTeam; +float(float tno) TeamFortress_TeamGetScore; +float(float tno) TeamFortress_TeamGetIllegalClasses; + +// Impulse Functions +void() TeamFortress_ToggleGenderMessage; +void() TeamFortress_ChangeClass; +void() TeamFortress_DisplayLegalClasses; +void() TeamFortress_Inventory; +void() TeamFortress_ShowTF; +void() TeamFortress_PrimeGrenade; +void() TeamFortress_ThrowGrenade; +void() TeamFortress_DisplayDetectionItems; + +// Player Class Handling Functions +float(float pc) IsLegalClass; +void() TeamFortress_SetHealth; +void() TeamFortress_SetEquipment; +void(entity p) TeamFortress_SetSpeed; +void(entity p) TeamFortress_SetSkin; +void(entity Viewer, float pc, float rpc, float xavior_Var) TeamFortress_PrintClassName; +void() TeamFortress_RemoveTimers; +void(float Suicided) TeamFortress_SetupRespawn; +void() TeamFortress_CheckClassStats; +float(entity Retriever, float AmmoType) TeamFortress_GetMaxAmmo; +float(entity Retriever, float WeaponType) TeamFortress_CanGetWeapon; +float(entity Retriever, entity Items) TeamFortress_AddBackpackItems; +void(entity Player, float Armorclass) TeamFortress_DescribeArmor; + + +// AmmoBox Handling Functions +void () TeamFortress_AmmoboxTouch; +float (float tno) num_team_ammoboxes; +void(float tno) RemoveOldAmmobox; +void(float tno) increment_team_ammoboxes; +void(float tno) decrement_team_ammoboxes; + +// Weapon Handling Functions +void() TeamFortress_ExplodePerson; +void() NormalGrenadeTouch; +void() NormalGrenadeExplode; +void() PlayerObserverMode; + +// Utility Functions +void(string halias, float himpulse1, float himpulse2) TeamFortress_Alias; + +// Cyclic Event Functions +void() TeamFortress_Regenerate; +//void() TeamFortress_CheckforCheats; +void() TeamFortress_RegenerateCells; + +// + + + +void() TeamFortress_Spotlight = +{ + if (self.playerclass != 2) + { + return; + } + if (self.option2 == 0) + { + self.option2 = 1; + } + else + { + self.option2 = 0; + } + self.impulse = 0; +}; + +void() UseSpecialSkill = +{ + local vector src; + self.impulse = 0; + if (self.playerclass == 1) + { + self.impulse = 155; + } + else + { + if (self.playerclass == 2) + { + self.impulse = 174; + } + else + { + if (self.playerclass == 3) + { + self.impulse = 173; + } + else + { + if (self.playerclass == 4) + { + self.impulse = 170; + } + else + { + if (self.playerclass == 5) + { + self.impulse = 190; + } + else + { + if (self.playerclass == 6) + { + self.impulse = 3; + } + else + { + if (self.playerclass == 7) + { + self.impulse = 6; + } + else + { + if (self.playerclass == 8) + { + self.impulse = 177; + } + else + { + if (self.playerclass == 9) + { + self.impulse = 179; + } + else + { + if (self.playerclass == 0) + { + if (self.enemy == world) + { + src = self.origin + v_forward * 10; + src_z = self.absmin_z + self.size_z * 0.7; + traceline(src, src + v_forward * 2048, 0, self); + if (trace_ent != world && trace_ent.origin != world.origin) + { + sprint3(self, 2, "Locked onto ", trace_ent.classname, "\n"); + self.enemy = trace_ent; + self.camdist = vlen(self.enemy.origin - self.origin); + self.camangle = self.origin - self.enemy.origin; + self.camangle_z = 0 - self.camangle_z; + self.camangle = vectoangles(self.camangle); + } + } + else + { + sprint(self, 2, "Removed Lock\n"); + self.enemy = world; + } + } + } + } + } + } + } + } + } + } + } +}; +void() TeamFortress_ToggleGenderMessage = +{ + if (self.gender < 1) + { + self.gender = 1.0; + sprint (self, 2, "Gender set to Female.\n"); + } + else + { + self.gender = 0.0; + sprint (self, 2, "Gender set to Male.\n"); + } +}; + +void() TeamFortress_ChangeClass = +{ + local entity spot; + local entity te; + local float tc; + local string st; + + if (self.playerclass != 0) + { + if (deathmatch != 3) + { + return; + } + if (TeamFortress_TeamIsCivilian(self.team_no)) + { + sprint(self, 2, "You cannot change class.\n"); + return; + } + if (!IsLegalClass(self.impulse - 100)) + { + sprint(self, 2, "Your team cannot play that class.\n"); + TeamFortress_DisplayLegalClasses(); + return; + } + tc = IsRestrictedClass(self.impulse - 100); + if (tc != 0) + { + if (tc > 0) + { + sprint(self, 2, "That class is restricted to "); + st = ftos(tc); + sprint(self, 2, st); + sprint(self, 2, " per team.\n"); + } + else + { + sprint(self, 2, "That class is disabled.\n"); + } + return; + } + if (spy_off == 1 && self.impulse - 100 == 8) + { + sprint(self, 2, "The spy class has been disabled on the server by the administrator.\n"); + return; + } + self.nextpc = self.impulse - 100; + sprint(self, 2, "After dying, you will return as a "); + TeamFortress_PrintClassName(self, self.nextpc, self.tfstate & 8, 0); + self.immune_to_check = time + 10; + return; + } + TeamFortress_Alias("jetjump", 155, 0); + TeamFortress_Alias("bic", 157, 0); + TeamFortress_Alias("bhole", 58, 0); + TeamFortress_Alias("hey", 156, 0); + TeamFortress_Alias("pants", 250, 0); + TeamFortress_Alias("ir", 50, 0); + TeamFortress_Alias("holo", 200, 0); + TeamFortress_Alias("airstrike", 55, 0); + TeamFortress_Alias("drop1", 190, 0); + TeamFortress_Alias("drop2", 201, 0); + TeamFortress_Alias("drop3", 55, 0); + TeamFortress_Alias("lay", 158, 0); + TeamFortress_Alias("mega", 57, 0); + TeamFortress_Alias("taunt", 53, 0); + TeamFortress_Alias("airscout", 154, 0); + TeamFortress_Alias("dot", 61, 0); + TeamFortress_Alias("yell", 56, 0); +// avirox's vote menu + TeamFortress_Alias("votemenu", 251, 0); + TeamFortress_Alias("voteyes", 245, 0); +// medic self healing. + TeamFortress_Alias("heal", 189, 0); + +// dropflag no longer retired. + TeamFortress_Alias("dropflag", 203, 0); + TeamFortress_Alias("dropitems", 204, 0); +// dispenser detonation command + TeamFortress_Alias("detdispenser", 188, 0); +// sentry detonation command + TeamFortress_Alias("detsentry", 205, 0); +// timeleft command + TeamFortress_Alias("timeleft", 120, 0); + TeamFortress_Alias("togglegendermessage", 211, 0); + if (teamplay && self.team_no == 0) + { + if (toggleflags & 64) + { + if (TeamFortress_TeamPutPlayerInTeam() == 0) + { + return; + } + } + else + { + sprint(self, 2, "You must join a team first. \n"); + sprint(self, 2, "use imin1, imin2, imin3, or imin4\n"); + return; + } + } + if (self.lives == 0) + { + sprint(self, 2, "You have no lives left.\n"); + return; + } + if (!IsLegalClass(self.impulse - 100) && self.impulse != 1) + { + sprint(self, 2, "You cannot play that playerclass on this map. \n"); + TeamFortress_DisplayLegalClasses(); + return; + } + + tc = IsRestrictedClass(self.impulse - 100); + if (tc != 0) + { + if (tc > 0) + { + sprint(self, 2, "That class is restricted to "); + st = ftos(tc); + sprint(self, 2, st); + sprint(self, 2, " per team.\n"); + } + else + { + sprint(self, 2, "That class is disabled.\n"); + } + return; + } + if (spy_off == 1 && self.impulse - 100 == 8) + { + sprint(self, 2, "The spy class has been disabled on the server by the administrator.\n"); + return; + } + if (self.impulse != 1) + { + self.playerclass = self.impulse - 100; + } + else + { + self.playerclass = 11; + } + self.nextpc = 0; + self.takedamage = 2; + self.movetype = 3; + self.flags = 8 | 512; + self.waterlevel = 0; + self.air_finished = time + 12; + self.solid = 3; + self.pausetime = 0; + spot = SelectSpawnPoint(); + self.origin = spot.origin + '0 0 1'; + self.angles = spot.angles; + self.fixangle = 1; + setmodel(self, string_null); + modelindex_null = self.modelindex; + setmodel(self, "progs/eyes.mdl"); + modelindex_eyes = self.modelindex; + setmodel(self, "progs/player.mdl"); + modelindex_player = self.modelindex; + setsize(self, '-16 -16 -24', '16 16 32'); +// if (self.playerclass == 1) +// { +// setsize(self, '-8 -8 -24', '8 8 32'); +// } + self.view_ofs = '0 0 22'; + player_stand1(); + if (deathmatch || coop) + { + makevectors(self.angles); + spawn_tfog(self.origin + v_forward * 20); + } + if (self.playerclass == 10) + { + sprint(self, 2, "Random Playerclass.\n"); + self.tfstate = self.tfstate | 8; + tc = 1 + floor(random() * (10 - 1)); + while (IsRestrictedClass(tc) != 0) + { + tc = 1 + floor(random() * (10 - 1)); + } + self.playerclass = tc; + } + if (spot.classname == "info_player_teamspawn") + { + if (spot.items != 0) + { + te = Finditem(spot.items); + if (te) + { + tfgoalitem_GiveToPlayer(te, self, self); + } + if (!(spot.goal_activation & 1)) + { + spot.items = 0; + } + } + + if (prematch) + { + TeamFortress_PrintPMTimeLeft (self); + } + else + { + if (spot.message) + { + CenterPrint (self, spot.message); + if (!(spot.goal_activation & 2)) + { + spot.message = string_null; + } + } + } + if (spot.goal_effects == 1) + { + spot.classname = "deadpoint"; + spot.team_str_home = string_null; + spot.nextthink = time + 1; + spot.think = SUB_Remove; + } + } + spot = find(world, classname, "player"); + while (spot) + { + if (spot.team_no == self.team_no && spot != self) + { + sprint(spot, 2, self.netname); + sprint(spot, 2, " is playing as a "); + TeamFortress_PrintClassName(spot, self.playerclass, self.tfstate & 8, 0); + } + spot = find(spot, classname, "player"); + } + TeamFortress_PrintClassName(self, self.playerclass, self.tfstate & 8, 0); + TeamFortress_SetEquipment(); + TeamFortress_SetHealth(); + TeamFortress_SetSpeed(self); + TeamFortress_SetSkin(self); +//The following was causing a slight delay in the spawn so i put it in client.pqc +// stuffcmd (self, "alias aa_enabled impulse 240\nalias cl_accel impulse 240\nalias cl_speed impulse 240\nalias aa_lag impulse 240\nalias autofire impulse 240\nalias +autofire impulse 240\nalias autodet impulse 240\nalias +showradar impulse 240\n"); + stuffcmd (self, "cl_sidespeed 500\ncl_backspeed 500\ncl_forwardspeed 500\n"); + if ((quadscore > 0)) + { + if ((self.team_no == 2)) + { + self.frags = quadscore; + self.real_frags = quadscore; + } + } +}; + +void() TeamFortress_DisplayLegalClasses = +{ + local float gotone; + local float ill; + sprint(self, 2, "Legal Classes for your team are:\n"); + gotone = 0; + ill = TeamFortress_TeamGetIllegalClasses(self.team_no); + if (!(illegalclasses & 1) && !(ill & 1)) + { + if (gotone) + { + sprint(self, 2, ", "); + } + gotone = 1; + sprint(self, 2, "Scout"); + } + if (!(illegalclasses & 2) && !(ill & 2)) + { + if (gotone) + { + sprint(self, 2, ", "); + } + gotone = 1; + sprint(self, 2, "Sniper"); + } + if (!(illegalclasses & 4) && !(ill & 4)) + { + if (gotone) + { + sprint(self, 2, ", "); + } + gotone = 1; + sprint(self, 2, "Soldier"); + } + if (!(illegalclasses & 8) && !(ill & 8)) + { + if (gotone) + { + sprint(self, 2, ", "); + } + gotone = 1; + sprint(self, 2, "Demolitions Man"); + } + if (!(illegalclasses & 16) && !(ill & 16)) + { + if (gotone) + { + sprint(self, 2, ", "); + } + gotone = 1; + sprint(self, 2, "Combat Medic"); + } + if (!(illegalclasses & 32) && !(ill & 32)) + { + if (gotone) + { + sprint(self, 2, ", "); + } + gotone = 1; + sprint(self, 2, "Heavy Weapons Guy"); + } + if (!(illegalclasses & 64) && !(ill & 64)) + { + if (gotone) + { + sprint(self, 2, ", "); + } + gotone = 1; + sprint(self, 2, "Pyro"); + } + if (!(illegalclasses & 256) && !(ill & 256)) + { + if (gotone) + { + sprint(self, 2, ", "); + } + gotone = 1; + sprint(self, 2, "Spy"); + } + if (!(illegalclasses & 512) && !(ill & 512)) + { + if (gotone) + { + sprint(self, 2, ", "); + } + gotone = 1; + sprint(self, 2, "Engineer"); + } + if (!(illegalclasses & 128) && !(ill & 128)) + { + if (gotone) + { + sprint(self, 2, ", "); + } + gotone = 1; + sprint(self, 2, "RandomPC"); + } + sprint(self, 2, "\n"); +}; + +void (float _p_10136) TeamFortress_ItemStatus = +{ + local entity _l_10137; + local entity _l_10138; + local float _l_10139; + + _l_10139 = 0; + if ((_p_10136 >= 10)) + { + _l_10139 = 1; + _p_10136 = _p_10136 - 10; + } + if ((_p_10136 == 0)) + { + _p_10136 = self.team_no; + } + else + { + if ((self.team_no == 1)) + { + _p_10136 = 2; + } + else + { + _p_10136 = 1; + } + } + _l_10137 = find (world, classname, "item_tfgoal"); + while (_l_10137) + { + if ((_l_10137.owned_by == _p_10136)) + { + _l_10138 = _l_10137; + } + _l_10137 = find (_l_10137, classname, "item_tfgoal"); + } + if ((((((_l_10138 != world) && (_l_10138.owner == world)) && (_l_10138.think == tfgoalitem_remove)) && ((_l_10138.nextthink - time) > 0)) && (_l_10138.origin != _l_10138.oldorigin))) + { + if (_l_10139) + { + stuffcmd (self, "say_team "); + stuffcmd (self, _l_10138.netname); + stuffcmd (self, " returns in "); + stuffcmd (self, ftos (rint ((_l_10138.nextthink - time)))); + stuffcmd (self, " seconds.\n"); + } + else + { + sprint (self, 2, _l_10138.netname); + sprint (self, 2, " returns in "); + ftos (rint ((_l_10138.nextthink - time))); + sprint (self, 2, ftos (rint ((_l_10138.nextthink - time)))); + sprint (self, 2, " seconds.\n"); + } + return; + } + if ((((((_l_10138 != world) && (_l_10138.owner == world)) && (_l_10138.think == tfgoalitem_dropthink)) && ((_l_10138.nextthink - time) > 0)) && (_l_10138.origin != _l_10138.oldorigin))) + { + if (_l_10139) + { + stuffcmd (self, "say_team "); + stuffcmd (self, _l_10138.netname); + stuffcmd (self, " has been dropped.\n"); + } + else + { + sprint (self, 2, _l_10138.netname); + sprint (self, 2, " has been dropped.\n"); + } + return; + } + if (((_l_10138.origin == _l_10138.oldorigin) && (_l_10138.owner == world))) + { + if (_l_10139) + { + stuffcmd (self, "say_team "); + stuffcmd (self, _l_10138.netname); + stuffcmd (self, " is on its post.\n"); + } + else + { + sprint (self, 2, _l_10138.netname); + sprint (self, 2, " is on its post.\n"); + } + return; + } + if ((_l_10138.owner != world)) + { + if (_l_10139) + { + stuffcmd (self, "say_team "); + stuffcmd (self, _l_10138.netname); + stuffcmd (self, " is being carried.\n"); + } + else + { + sprint (self, 2, _l_10138.netname); + sprint (self, 2, " is being carried.\n"); + } + return; + } +}; + +void () TeamFortress_Inventory = +{ + local entity _l_10154; + local float _l_10155; + local entity _l_10156; + local string _l_10157; + local string _l_10159; + + sprint (self, 2, "You're on the "); + _l_10157 = ftos (self.team_no); + if ((_l_10157 == "1")) + { + sprint (self, 2, "ÂÌÕÅ"); + } + if ((_l_10157 == "2")) + { + sprint (self, 2, "ÒÅÄ"); + } + if ((_l_10157 == "3")) + { + sprint (self, 2, "ÙÅÌÌÏ×"); + } + if ((_l_10157 == "4")) + { + sprint (self, 2, "ÇÒÅÅÎ"); + } + sprint (self, 2, " team.\n"); + if ((self.lives != -1)) + { + _l_10157 = ftos (self.lives); + sprint (self, 2, "You've got "); + sprint (self, 2, _l_10157); + if ((self.lives == 1)) + { + sprint (self, 2, " life.\n"); + } + else + { + sprint (self, 2, " lives.\n"); + } + } + if ((self.no_grenades_1 > 0)) + { + sprint (self, 2, " Û"); + _l_10157 = ftos (self.no_grenades_1); + sprint (self, 2, _l_10157); + sprint (self, 2, "Ý "); + if ((self.tp_grenades_1 == 1)) + { + sprint (self, 2, "normal grenade"); + } + else + { + if ((self.tp_grenades_1 == 2)) + { + sprint (self, 2, "concussion grenade"); + } + else + { + if ((self.tp_grenades_1 == 3)) + { + sprint (self, 2, "nail grenade"); + } + else + { + if ((self.tp_grenades_1 == 4)) + { + sprint (self, 2, "MIRV grenade"); + } + else + { + if ((self.tp_grenades_1 == 5)) + { + sprint (self, 2, "napalm grenade"); + } + else + { + if ((self.tp_grenades_1 == 6)) + { + sprint (self, 2, "flare"); + } + else + { + if ((self.tp_grenades_1 == 7)) + { + sprint (self, 2, "hallucinogenic grenade"); + } + else + { + if ((self.tp_grenades_1 == 8)) + { + sprint (self, 2, "EMP grenade"); + } + else + { + if ((self.tp_grenades_1 == 9)) + { + sprint (self, 2, "flash grenade"); + } + else + { + sprint (self, 2, "BUG("); + } + } + } + } + } + } + } + } + } + if ((_l_10157 != "1")) + { + sprint (self, 2, "s"); + } + sprint (self, 2, "\n"); + } + if ((self.no_grenades_2 > 0)) + { + sprint (self, 2, " Û"); + _l_10157 = ftos (self.no_grenades_2); + sprint (self, 2, _l_10157); + sprint (self, 2, "Ý "); + if ((self.tp_grenades_2 == 1)) + { + sprint (self, 2, "normal grenade"); + } + else + { + if ((self.tp_grenades_2 == 2)) + { + sprint (self, 2, "concussion grenade"); + } + else + { + if ((self.tp_grenades_2 == 3)) + { + sprint (self, 2, "nail grenade"); + } + else + { + if ((self.tp_grenades_2 == 4)) + { + sprint (self, 2, "MIRV grenade"); + } + else + { + if ((self.tp_grenades_2 == 5)) + { + sprint (self, 2, "napalm grenade"); + } + else + { + if ((self.tp_grenades_2 == 6)) + { + sprint (self, 2, "flare"); + } + else + { + if ((self.tp_grenades_2 == 7)) + { + sprint (self, 2, "hallucinogenic grenade"); + } + else + { + if ((self.tp_grenades_2 == 8)) + { + sprint (self, 2, "EMP grenade"); + } + else + { + if ((self.tp_grenades_2 == 9)) + { + sprint (self, 2, "flash grenade"); + } + else + { + sprint (self, 2, "BUG("); + } + } + } + } + } + } + } + } + } + if ((_l_10157 != "1")) + { + sprint (self, 2, "s"); + } + sprint (self, 2, "\n"); + } + _l_10154 = find (world, classname, "drop1"); + while (_l_10154) + { + if ((_l_10154.owner == self)) + { + _l_10155 = _l_10155 + 1; + } + _l_10154 = find (_l_10154, classname, "drop1"); + } + if ((self.playerclass == 1)) + { + _l_10155 = 1 - _l_10155; + if ((_l_10155 <= 0)) + { + _l_10159 = ""; + } + else + { + _l_10159 = "Flash Mine"; + } + } + if ((self.playerclass == 2)) + { + _l_10159 = "used alarm"; + } + else + { + if (((self.playerclass == 3) || (self.playerclass == 6))) + { + _l_10155 = 2 - _l_10155; + _l_10159 = "Spike Trap"; + } + else + { + if ((self.playerclass == 5)) + { + _l_10155 = 1 - _l_10155; + _l_10159 = "Syringe"; + } + else + { + if ((self.playerclass == 7)) + { + _l_10155 = 1 - _l_10155; + _l_10159 = "Lava Pool"; + } + else + { + if ((self.playerclass == 8)) + { + _l_10155 = 1 - _l_10155; + _l_10159 = "Ammo Trap"; + } + else + { + if ((self.playerclass == 9)) + { + _l_10155 = 1 - _l_10155; + _l_10159 = "MagMine"; + } + } + } + } + } + } + if (_l_10155) + { + if ((_l_10155 <= 0)) + { + return; + } + if (!((self.playerclass == 7) && (self.has_syringe == 0))) + { + _l_10157 = ftos (_l_10155); + sprint (self, 2, _l_10157); + sprint (self, 2, " ", _l_10159); + if ((_l_10155 > 1)) + { + sprint (self, 2, "s. "); + } + else + { + sprint (self, 2, ". "); + } + } + } + if ((self.playerclass == 9)) + { + if ((self.option3 > 0)) + { + if ((self.last_used <= time)) + { + sprint (self, 2, "1 LaserDrone. "); + } + } + } + if ((self.tf_items & 1)) + { + sprint (self, 2, "Scanner. "); + } + if ((self.weapons_carried & 131072)) + { + if ((self.ammo_detpack > 0)) + { + _l_10157 = ftos (self.ammo_detpack); + sprint (self, 2, _l_10157); + sprint (self, 2, " Detpack"); + if ((self.ammo_detpack > 1)) + { + sprint (self, 2, "s"); + } + sprint (self, 2, ". "); + } + } + _l_10156 = find (world, classname, "item_tfgoal"); + while (_l_10156) + { + if ((_l_10156.owner == self)) + { + sprint (self, 2, _l_10156.netname); + sprint (self, 2, ". "); + } + _l_10156 = find (_l_10156, classname, "item_tfgoal"); + } + if ((self.armorvalue > 0)) + { + TeamFortress_DescribeArmor (self, self.armorclass); + } + if (!invis_only) + { + if (((self.playerclass == 8) && (invis_only == 0))) + { + sprint (self, 2, "Skin : "); + if ((self.undercover_skin != 0)) + { + TeamFortress_PrintClassName (self, self.undercover_skin, 0, 0); + } + else + { + sprint (self, 2, "Spy\n"); + } + sprint (self, 2, "Colors : Team "); + if ((self.undercover_team != 0)) + { + _l_10157 = ftos (self.undercover_team); + } + else + { + _l_10157 = ftos (self.team_no); + } + sprint (self, 2, _l_10157); + } + } + sprint (self, 2, "\n"); +}; + +float (string st, float ft) ShowTF_PrintCR = +{ + local string _l_10200; + + if ((ft == 0)) + { + return (0); + } + else + { + if ((ft == -1)) + { + sprint (self, 2, st, "disabled\n"); + } + else + { + _l_10200 = ftos (ft); + sprint (self, 2, st, _l_10200, "\n"); + } + } + return (1); +}; + + +void () TeamFortress_ShowTF = +{ + local string _l_10203; + local float _l_10205; + + sprint (self, 2, "ÔåáíÆïòôòåóó Óåôôéîçóº\n\n"); + if ((toggleflags & 1)) + { + sprint (self, 2, " Class Persistence On.\n"); + } + else + { + sprint (self, 2, " Class Persistence Off.\n"); + } + if ((toggleflags & 64)) + { + sprint (self, 2, " AutoTeam On.\n"); + } + else + { + sprint (self, 2, " AutoTeam Off.\n"); + } + sprint (self, 2, " "); + if ((toggleflags & 4)) + { + _l_10203 = ftos (respawn_delay_time); + } + else + { + _l_10203 = "No"; + } + sprint (self, 2, _l_10203); + if ((_l_10203 != "No")) + { + sprint (self, 2, " second"); + } + sprint (self, 2, " Respawn Delay.\n"); + if ((toggleflags & 128)) + { + sprint (self, 2, " TeamFrags On.\n"); + } + else + { + sprint (self, 2, " TeamFrags Off.\n"); + } + if (allow_hook) + { + sprint (self, 2, " Grapple On.\n"); + } + else + { + sprint (self, 2, " Grapple Off.\n"); + } + ReCheckRestrictions (); + sprint (self, 2, "\n\n\nÃìáóó Òåóôòéãôéïîóº\n\n"); + _l_10205 = 0; + _l_10205 = _l_10205 + ShowTF_PrintCR (" Scout : ", cr_scout); + _l_10205 = _l_10205 + ShowTF_PrintCR (" Sniper : ", cr_sniper); + _l_10205 = _l_10205 + ShowTF_PrintCR (" Soldier : ", cr_soldier); + _l_10205 = _l_10205 + ShowTF_PrintCR (" Demoman : ", cr_demoman); + _l_10205 = _l_10205 + ShowTF_PrintCR (" Medic : ", cr_medic); + _l_10205 = _l_10205 + ShowTF_PrintCR (" HWGuy : ", cr_hwguy); + _l_10205 = _l_10205 + ShowTF_PrintCR (" Pyro : ", cr_pyro); + _l_10205 = _l_10205 + ShowTF_PrintCR (" Spy : ", cr_spy); + _l_10205 = _l_10205 + ShowTF_PrintCR (" Engineer: ", cr_engineer); + if (!_l_10205) + { + sprint (self, 2, " none set\n"); + } +}; + +void () TeamFortress_PrimeGrenade = +{ + local float _l_10231; + local string _l_10232; + local string _l_10233; + local entity _l_10234; + + if ((self.bugger == 8)) + { + return; + } + if (((self.tfstate & 1) || (self.tfstate & 1024))) + { + return; + } + if ((self.impulse == 150)) + { + _l_10231 = self.tp_grenades_1; + if ((self.tp_grenades_1 == 2)) + { + _l_10232 = "Concussion grenade"; + } + else + { + if ((self.tp_grenades_1 == 3)) + { + _l_10232 = "Nail grenade"; + } + else + { + if ((self.tp_grenades_1 == 4)) + { + _l_10232 = "Mirv grenade"; + } + else + { + if ((self.tp_grenades_1 == 5)) + { + _l_10232 = "Napalm grenade"; + } + else + { + if ((self.tp_grenades_1 == 6)) + { + _l_10232 = "Flare"; + } + else + { + if ((self.tp_grenades_1 == 7)) + { + _l_10232 = "Gas grenade"; + } + else + { + if ((self.tp_grenades_1 == 8)) + { + _l_10232 = "EMP grenade"; + } + else + { + if ((self.tp_grenades_1 == 9)) + { + _l_10232 = "Flash grenade"; + } + else + { + _l_10232 = "Grenade"; + } + } + } + } + } + } + } + } + if ((self.active_grenades_1 < 0)) + { + self.active_grenades_1 = 0; + } + if ((self.no_grenades_1 > 0)) + { + if ((self.active_grenades_1 < sr_gren1)) + { + sound (self, 1, "weapons/prime.wav", 1, 1); + _l_10233 = ftos (3); + sprint (self, 2, _l_10232); + sprint (self, 2, " primed, "); + sprint (self, 2, _l_10233); + sprint (self, 2, " seconds...\n"); + self.no_grenades_1 = (self.no_grenades_1 - 1); + self.active_grenades_1 = (self.active_grenades_1 + 1); + if ((self.tp_grenades_1 == 1)) + { + Stats_Fired (666); + } + self.StatusRefreshTime = (time + 0.200000); + } + else + { + sound (self, 1, "player/pain2.wav", 1, 1); + sprint (self, 2, "Your arthritic priming hand is taking a break.\n"); + return; + } + } + else + { + sprint (self, 2, "No "); + sprint (self, 2, _l_10232); + sprint (self, 2, "s left.\n"); + return; + } + } + if ((self.impulse == 151)) + { + _l_10231 = self.tp_grenades_2; + if ((self.tp_grenades_2 == 2)) + { + _l_10232 = "Concussion grenade"; + } + else + { + if ((self.tp_grenades_2 == 3)) + { + _l_10232 = "Nail grenade"; + } + else + { + if ((self.tp_grenades_2 == 4)) + { + _l_10232 = "Mirv grenade"; + } + else + { + if ((self.tp_grenades_2 == 5)) + { + _l_10232 = "Napalm grenade"; + } + else + { + if ((self.tp_grenades_2 == 6)) + { + _l_10232 = "Flare"; + } + else + { + if ((self.tp_grenades_2 == 7)) + { + _l_10232 = "Gas grenade"; + } + else + { + if ((self.tp_grenades_2 == 8)) + { + _l_10232 = "EMP grenade"; + } + else + { + if ((self.tp_grenades_2 == 9)) + { + _l_10232 = "Flash grenade"; + } + else + { + _l_10232 = "Grenade"; + } + } + } + } + } + } + } + } + if ((self.no_grenades_2 > 0)) + { + if ((self.active_grenades_2 < 0)) + { + self.active_grenades_2 = 0; + } + if ((rint (self.active_grenades_2) < sr_gren2)) + { + sound (self, 1, "weapons/prime.wav", 1, 1); + _l_10233 = ftos (3); + sprint (self, 2, _l_10232); + sprint (self, 2, " primed, "); + sprint (self, 2, _l_10233); + sprint (self, 2, " seconds...\n"); + self.no_grenades_2 = (self.no_grenades_2 - 1); + self.active_grenades_2 = (self.active_grenades_2 + 1); + self.StatusRefreshTime = (time + 0.200000); + } + else + { + sound (self, 1, "player/pain2.wav", 1, 1); + sprint (self, 2, "Your arthritic priming hand is taking a break.\n"); + return; + } + } + else + { + sprint (self, 2, "No "); + sprint (self, 2, _l_10232); + sprint (self, 2, "s left.\n"); + return; + } + } + self.tfstate = (self.tfstate | 1); + _l_10234 = spawn (); + _l_10234.owner = self; + _l_10234.weapon = _l_10231; + _l_10234.nextthink = (time + 0.800000); + _l_10234.heat = (time + 3.800000); + _l_10234.classname = "aprimedgrenade"; + _l_10234.think = TeamFortress_GrenadePrimed; +}; + + +void () TeamFortress_GrenadePrimed = +{ + local entity _l_10249; + local entity _l_10250; + local entity _l_10251; + local float _l_10252; + + _l_10249 = self.owner; + if ((!(_l_10249.tfstate & 1024) && !_l_10249.deadflag)) + { + self.nextthink = (time + 0.100000); + if (!self.think) + { + dremove (self); + } + if ((time > self.heat)) + { + TeamFortress_ExplodePerson (); + } + return; + } + if (!(_l_10249.tfstate & 1)) + { + dprint ("GrenadePrimed logic error\n"); + } + _l_10249.tfstate = (_l_10249.tfstate - (_l_10249.tfstate & 1)); + _l_10249.tfstate = (_l_10249.tfstate - (_l_10249.tfstate & 1024)); + KickPlayer (-1, _l_10249); + newmis = spawn (); + newmis.owner = _l_10249; + newmis.movetype = 10; + newmis.solid = 2; + newmis.classname = "grenade"; + makevectors (_l_10249.v_angle); + if (_l_10249.deadflag) + { + newmis.velocity = '0 0 200'; + } + else + { + if (_l_10249.v_angle_x) + { + newmis.velocity = ((((v_forward * 600) + (v_up * 200)) + ((crandom () * v_right) * 10)) + ((crandom () * v_up) * 10)); + } + else + { + newmis.velocity = aim (_l_10249, 10000); + newmis.velocity = (newmis.velocity * 600); + newmis.velocity_z = 200; + } + } + newmis.angles = vectoangles (newmis.velocity); + newmis.think = SUB_Null; + newmis.nextthink = self.heat; + if ((self.weapon == 1)) + { + newmis.touch = NormalGrenadeTouch; + newmis.think = NormalGrenadeExplode; + newmis.skin = 0; + newmis.avelocity = '300 500 300'; + setmodel (newmis, "progs/hgren2.mdl"); + } + else + { + if ((self.weapon == 2)) + { + newmis.touch = ConcussionGrenadeTouch; + newmis.think = ConcussionGrenadeExplode; + newmis.skin = 1; + newmis.avelocity = '300 300 300'; + newmis.skin = 2; + setmodel (newmis, "progs/hgren2.mdl"); + } + else + { + if ((self.weapon == 3)) + { + newmis.touch = NailGrenadeTouch; + newmis.think = NailGrenadeExplode; + newmis.skin = 1; + newmis.avelocity = '0 300 0'; + setmodel (newmis, "progs/biggren.mdl"); + } + else + { + if ((self.weapon == 4)) + { + newmis.touch = MirvGrenadeTouch; + newmis.think = MirvGrenadeExplode; + newmis.skin = 0; + newmis.avelocity = '0 300 0'; + setmodel (newmis, "progs/biggren.mdl"); + } + else + { + if ((self.weapon == 5)) + { + newmis.touch = NapalmGrenadeTouch; + newmis.think = NapalmGrenadeExplode; + newmis.skin = 2; + newmis.playerclass = 0; + newmis.avelocity = '0 300 0'; + setmodel (newmis, "progs/biggren.mdl"); + } + else + { + if ((self.weapon == 6)) + { + newmis.classname = "flare"; + _l_10252 = 0; + _l_10250 = find (world, classname, "flare"); + while (_l_10250) + { + _l_10252 = _l_10252 + 1; + _l_10250 = find (_l_10250, classname, "flare"); + } + if ((_l_10252 > 9)) + { + dremove (newmis); + } + newmis.movetype = 5; + newmis.velocity_z = 0; + newmis.velocity = aim (self, 10000); + newmis.velocity = (newmis.velocity * 1300); + newmis.touch = FlareGrenadeTouch; + newmis.think = FlareGrenadeExplode; + newmis.skin = 1; + newmis.avelocity = '0 0 0'; + setmodel (newmis, "progs/flare.mdl"); + newmis.solid = 1; + } + else + { + if ((self.weapon == 7)) + { + newmis.touch = GasGrenadeTouch; + newmis.think = GasGrenadeExplode; + newmis.skin = 3; + newmis.avelocity = '300 300 300'; + setmodel (newmis, "progs/grenade2.mdl"); + } + else + { + if ((self.weapon == 8)) + { + newmis.touch = EMPGrenadeTouch; + newmis.think = EMPGrenadeExplode; + newmis.skin = 4; + newmis.avelocity = '300 300 300'; + setmodel (newmis, "progs/grenade2.mdl"); + } + else + { + if ((self.weapon == 9)) + { + newmis.touch = FlashGrenadeTouch; + newmis.think = FlashGrenadeExplode; + newmis.skin = 2; + newmis.avelocity = '300 300 300'; + setmodel (newmis, "progs/hgren2.mdl"); + } + } + } + } + } + } + } + } + } + setsize (newmis, '0 0 0', '1 1 1'); + setorigin (newmis, _l_10249.origin); + _l_10251 = self; + self = self.owner; + self = _l_10251; + dremove (self); +}; + + +void() TeamFortress_ThrowGrenade = +{ + if (!(self.tfstate & 1)) + { + return; + } + sound(self, 3, "weapons/throw.wav", 1, 1); + self.tfstate = self.tfstate | 1024; +}; + +float(float pc) IsLegalClass = +{ + local float bit; + if (spy_off == 1 && pc == 8) + { + return 0; + } + if (pc == 1) + { + bit = 1; + } + else + { + if (pc == 2) + { + bit = 2; + } + else + { + if (pc == 3) + { + bit = 4; + } + else + { + if (pc == 4) + { + bit = 8; + } + else + { + if (pc == 5) + { + bit = 16; + } + else + { + if (pc == 6) + { + bit = 32; + } + else + { + if (pc == 7) + { + bit = 64; + } + else + { + if (pc == 8) + { + bit = 256; + } + else + { + if (pc == 9) + { + bit = 512; + } + else + { + if (pc == 10) + { + bit = 128; + } + } + } + } + } + } + } + } + } + } + if (illegalclasses & bit || (TeamFortress_TeamGetIllegalClasses(self.team_no) & bit)) + { + return 0; + } + return 1; +}; + +void(entity p) TeamFortress_SetSpeed = +{ + local string sp; + local float tf; + local entity te; + stuffcmd(p, "cl_movespeedkey 1\n"); + if (p.playerclass == 1) + { + p.maxspeed = 400; + p.maxfbspeed = 400; + p.maxstrafespeed = 400; + } + else + { + if (p.playerclass == 2) + { + p.maxspeed = 300; + p.maxfbspeed = 300; + p.maxstrafespeed = 300; + } + else + { + if (p.playerclass == 3) + { + p.maxspeed = 250; + p.maxfbspeed = 250; + p.maxstrafespeed = 250; + } + else + { + if (p.playerclass == 4) + { + p.maxspeed = 280; + p.maxfbspeed = 280; + p.maxstrafespeed = 280; + } + else + { + if (p.playerclass == 5) + { + p.maxspeed = 320; + p.maxfbspeed = 320; + p.maxstrafespeed = 320; + } + else + { + if (p.playerclass == 6) + { + p.maxfbspeed = 230; + p.maxspeed = 230; + p.maxstrafespeed = 230; + } + else + { + if (p.playerclass == 7) + { + p.maxspeed = 300; + p.maxfbspeed = 300; + p.maxstrafespeed = 300; + } + else + { + if (p.playerclass == 11) + { + p.maxspeed = 500; + p.maxfbspeed = 500; + p.maxstrafespeed = 500; + } + else + { + if (p.playerclass == 8) + { + p.maxspeed = 300; + p.maxfbspeed = 300; + p.maxstrafespeed = 300; + } + else + { + if (p.playerclass == 9) + { + p.maxspeed = 300; + p.maxfbspeed = 300; + p.maxstrafespeed = 300; + } + else + { + if (p.playerclass == 0) + { + p.gravity = 0; + p.maxspeed = 500; + p.maxfbspeed = 500; + p.maxstrafespeed = 500; + return; + } + } + } + } + } + } + } + } + } + } + } + if (p.tfstate & 65536 || p.playerclass == 0) + { + p.maxspeed = 0; + p.maxfbspeed = 0; + p.maxstrafespeed = 0; +// if (1 == 1) +// { + stuffcmd(p, "m_forward 0\n"); + stuffcmd(p, "m_side 0\n"); +// } + p.velocity = '0 0 0'; + stuffcmd(p, "cl_backspeed 0\n"); + stuffcmd(p, "cl_forwardspeed 0\n"); + stuffcmd(p, "cl_sidespeed 0\n"); + return; + } + else + { +// if (1 == 1) +// { + stuffcmd(p, "m_forward 1\n"); + stuffcmd(p, "m_side 0.8\n"); +// } + } + tf = 0; + te = find(world, classname, "item_tfgoal"); + while (te != world && tf == 0) + { + if (te.owner == p) + { + if (te.goal_activation & 2) + { + tf = 1; + p.maxfbspeed = p.maxfbspeed / 2; + p.maxstrafespeed = p.maxstrafespeed / 2; + p.maxspeed = p.maxfbspeed; + } + } + te = find(te, classname, "item_tfgoal"); + } + if (p.tfstate & 32768) + { + p.maxfbspeed = p.maxfbspeed / 5 * 2; + p.maxstrafespeed = p.maxstrafespeed / 5 * 2; + p.maxspeed = p.maxfbspeed; + } + if (p.leg_damage) + { + if (p.leg_damage > 4) + { + p.leg_damage = 4; + } + p.maxfbspeed = p.maxfbspeed * ((10 - p.leg_damage) / 20); + p.maxstrafespeed = p.maxstrafespeed * (10 - p.leg_damage) / 20; + p.maxspeed = p.maxfbspeed; + } + if (p.tfstate & 2048) + { + if (p.maxfbspeed > 60) + { + p.maxfbspeed = 60; + p.maxspeed = p.maxfbspeed; + } + if (p.maxstrafespeed > 60) + { + p.maxstrafespeed = 60; + } + } + + // hwguy firing ac state by pablo. + if (p.tfstate & 131072) + { + if (p.maxspeed > 80) + { + p.maxspeed = 80; + } + } + + sp = ftos(p.maxfbspeed); + stuffcmd(p, "cl_backspeed "); + stuffcmd(p, sp); + stuffcmd(p, "\n"); + stuffcmd(p, "cl_forwardspeed "); + stuffcmd(p, sp); + stuffcmd(p, "\n"); + sp = ftos(p.maxstrafespeed); + stuffcmd(p, "cl_sidespeed "); + stuffcmd(p, sp); + stuffcmd(p, "\n"); +}; + +void() TeamFortress_SetHealth = +{ + if (self.playerclass == 1) + { + self.max_health = 100; + } + else + { + if (self.playerclass == 2) + { + self.max_health = 90; + } + else + { + if (self.playerclass == 3) + { + self.max_health = 100; + } + else + { + if (self.playerclass == 4) + { + self.max_health = 90; + } + else + { + if (self.playerclass == 5) + { + self.max_health = 90; + } + else + { + if (self.playerclass == 6) + { + self.max_health = 100; + } + else + { + if (self.playerclass == 7) + { + self.max_health = 100; + } + else + { + if (self.playerclass == 11) + { + self.max_health = 50; + } + else + { + if (self.playerclass == 8) + { + self.max_health = 90; + } + else + { + if (self.playerclass == 9) + { + self.max_health = 80; + } + else + { + if (self.playerclass == 0) + { + self.max_health = 1; + self.takedamage = 0; + } + } + } + } + } + } + } + } + } + } + } + self.health = self.max_health; +}; + +void(entity p) TeamFortress_SetSkin = +{ + self.immune_to_check = time + 20; + if (p.playerclass == 8 && p.undercover_skin != 0) + { + p.skin = p.undercover_skin; + } + else + { + p.skin = p.playerclass; + } + if (p.skin != 0) + { + stuffcmd(p, "skin "); + if (p.team_no == 4) + { + if (p.skin == 1) + { + stuffcmd(p, "airscout\n"); + } + else + { + if (p.skin == 2) + { + stuffcmd(p, "tf_snipe\n"); + } + else + { + if (p.skin == 3) + { + stuffcmd(p, "tf_sold\n"); + } + else + { + if (p.skin == 4) + { + stuffcmd(p, "tf_demo\n"); + } + else + { + if (p.skin == 5) + { + stuffcmd(p, "tf_medic\n"); + } + else + { + if (p.skin == 6) + { + stuffcmd(p, "tf_hwguy\n"); + } + else + { + if (p.skin == 7) + { + stuffcmd(p, "tf_pyro\n"); + } + else + { + if (p.skin == 8) + { + stuffcmd(p, "tf_spy\n"); + } + else + { + if (p.skin == 9) + { + stuffcmd(p, "tf_eng\n"); + } + } + } + } + } + } + } + } + } + } + else + { + if (p.team_no == 3) + { + if (p.skin == 1) + { + stuffcmd(p, "airscout\n"); + } + else + { + if (p.skin == 2) + { + stuffcmd(p, "tf_snipe\n"); + } + else + { + if (p.skin == 3) + { + stuffcmd(p, "tf_sold\n"); + } + else + { + if (p.skin == 4) + { + stuffcmd(p, "tf_demo\n"); + } + else + { + if (p.skin == 5) + { + stuffcmd(p, "tf_medic\n"); + } + else + { + if (p.skin == 6) + { + stuffcmd(p, "tf_hwguy\n"); + } + else + { + if (p.skin == 7) + { + stuffcmd(p, "tf_pyro\n"); + } + else + { + if (p.skin == 8) + { + stuffcmd(p, "tf_spy\n"); + } + else + { + if (p.skin == 9) + { + stuffcmd(p, "tf_eng\n"); + } + } + } + } + } + } + } + } + } + } + else + { + if (p.team_no == 2) + { + if (p.skin == 1) + { + stuffcmd(p, "airscout\n"); + } + else + { + if (p.skin == 2) + { + stuffcmd(p, "tf_snipe\n"); + } + else + { + if (p.skin == 3) + { + stuffcmd(p, "tf_sold\n"); + } + else + { + if (p.skin == 4) + { + stuffcmd(p, "tf_demo\n"); + } + else + { + if (p.skin == 5) + { + stuffcmd(p, "tf_medic\n"); + } + else + { + if (p.skin == 6) + { + stuffcmd(p, "tf_hwguy\n"); + } + else + { + if (p.skin == 7) + { + stuffcmd(p, "tf_pyro\n"); + } + else + { + if (p.skin == 8) + { + stuffcmd(p, "tf_spy\n"); + } + else + { + if (p.skin == 9) + { + stuffcmd(p, "tf_eng\n"); + } + } + } + } + } + } + } + } + } + } + else + { + if (p.skin == 1) + { + stuffcmd(p, "airscout\n"); + } + else + { + if (p.skin == 2) + { + stuffcmd(p, "tf_snipe\n"); + } + else + { + if (p.skin == 3) + { + stuffcmd(p, "tf_sold\n"); + } + else + { + if (p.skin == 4) + { + stuffcmd(p, "tf_demo\n"); + } + else + { + if (p.skin == 5) + { + stuffcmd(p, "tf_medic\n"); + } + else + { + if (p.skin == 6) + { + stuffcmd(p, "tf_hwguy\n"); + } + else + { + if (p.skin == 7) + { + stuffcmd(p, "tf_pyro\n"); + } + else + { + if (p.skin == 8) + { + stuffcmd(p, "tf_spy\n"); + } + else + { + if (p.skin == 9) + { + stuffcmd(p, "tf_eng\n"); + } + } + } + } + } + } + } + } + } + } + } + } + if (p.skin == 11) + { + stuffcmd(p, "base\n"); + } + } + else + { + stuffcmd(p, "skin base\n"); + } +}; + +void() TeamFortress_SetEquipment = +{ + local entity te; + local string st; + local float kept_items; + local entity grenfinder; + if (self.classname != "player") + { + return; + } + kept_items = self.tf_items & (131072 | 262144); + self.items = 0; + self.current_weapon = 0; + self.weapons_carried = 0; + self.tf_items = 0; + self.tf_items_flags = 0; + self.armorclass = 0; + self.impulse = 0; + self.undercover_skin = 0; + stuffcmd(self, "fov 90\n"); + if (self.undercover_team != 0) + { + self.immune_to_check = time + 5; + self.undercover_team = 0; + stuffcmd(self, "color "); + st = ftos(TeamFortress_TeamGetColor(self.team_no) - 1); + stuffcmd(self, st); + stuffcmd(self, "\n"); + } + self.is_building = 0; + self.is_detpacking = 0; + self.is_undercover = 0; + self.is_feigning = 0; + self.is_unabletospy = 0; + self.ammo_medikit = 0; + self.maxammo_medikit = 0; + self.ammo_detpack = 0; + self.maxammo_detpack = 0; + self.items_allowed = 0; + self.armor_allowed = 0; + self.maxarmor = 0; + self.weaponmode = 0; + self.respawn_time = 0; + self.heat = 0; + self.tfstate = self.tfstate - (self.tfstate & 2); +//this finds a primed grenade and removes it. + grenfinder = find (world,classname,"aprimedgrenade"); + while (grenfinder) + { + if ((grenfinder.owner == self)) + { + dremove (grenfinder); + } + grenfinder = find (grenfinder, classname, "aprimedgrenade"); + } + if (self.team_no == 0) + { + self.lives = -1; + } + self.items = self.items | kept_items; +// if (toggleflags & 2) +// { +// te = spawn(); +// te.nextthink = time + 4; +// te.think = TeamFortress_CheckforCheats; +// te.owner = self; +// te.classname = "timer"; // class specifics +// } + if (self.playerclass == 1) + { + self.weapons_carried = (self.weapons_carried | 656); + self.ammo_rockets = 0; + self.ammo_nails = 100; + self.ammo_shells = 25; + self.ammo_cells = 50; + self.maxammo_rockets = 25; + self.maxammo_nails = 200; + self.maxammo_shells = 50; + self.maxammo_cells = 100; + self.no_grenades_1 = 2; + self.no_grenades_2 = 3; + self.tp_grenades_1 = 9; + self.tp_grenades_2 = 2; + self.tf_items = 1; + self.tf_items_flags = (self.tf_items_flags | 1); + self.armorclass = (self.armorclass | 0); + self.armortype = 0.300000; + self.armorvalue = 25; + self.armor_allowed = 0.300000; + self.maxarmor = 50; + self.current_weapon = 512; + self.items_allowed = 656; + self.items = (self.items | 5); + } + else + { + if (self.playerclass == 2) + { + self.weapons_carried = (self.weapons_carried | 624); + self.ammo_rockets = 0; + self.ammo_nails = 50; + self.ammo_shells = 60; + self.ammo_cells = 25; + self.maxammo_rockets = 25; + self.maxammo_nails = 100; + self.maxammo_shells = 75; + self.maxammo_cells = 50; + self.no_grenades_1 = 2; + self.no_grenades_2 = 3; + self.tp_grenades_1 = 1; + self.tp_grenades_2 = 6; + self.tf_items = 0; + self.armorclass = (self.armorclass | 0); + self.armortype = 0.300000; + self.armorvalue = 0; + self.armor_allowed = 0.300000; + self.maxarmor = 50; + self.current_weapon = 32; + self.items_allowed = 624; + self.items = (self.items | 7); + } + else + { + if (self.playerclass == 3) + { + self.weapons_carried = (self.weapons_carried | 8592); + self.ammo_rockets = 25; + self.ammo_nails = 0; + self.ammo_shells = 50; + self.ammo_cells = 0; + self.maxammo_rockets = 50; + self.maxammo_nails = 100; + self.maxammo_shells = 100; + self.maxammo_cells = 50; + self.no_grenades_1 = 4; + self.no_grenades_2 = 1; + self.tp_grenades_1 = 1; + self.tp_grenades_2 = 3; + self.tf_items = 0; + self.armorclass = (self.armorclass | 0); + self.armortype = 0.800000; + self.armorvalue = 100; + self.armor_allowed = 0.800000; + self.maxarmor = 200; + self.current_weapon = 8192; + self.items_allowed = 8592; + self.items = (self.items | 35); + } + else + { + if (self.playerclass == 4) + { + self.weapons_carried = (self.weapons_carried | 133264); + self.ammo_rockets = 25; + self.ammo_nails = 0; + self.ammo_shells = 30; + self.ammo_cells = 0; + self.maxammo_rockets = 50; + self.maxammo_nails = 50; + self.maxammo_shells = 75; + self.maxammo_cells = 50; + self.no_grenades_1 = 4; + self.no_grenades_2 = 2; + self.tp_grenades_1 = 1; + self.tp_grenades_2 = 4; + self.tf_items = 0; + self.ammo_detpack = 1; + self.maxammo_detpack = 1; + self.armorclass = (self.armorclass | 4); + self.armortype = 0.600000; + self.armorvalue = 50; + self.armor_allowed = 0.600000; + self.maxarmor = 100; + self.current_weapon = 2048; + self.items_allowed = 133264; + self.items = (self.items | 17); + } + else + { + if (self.playerclass == 5) + { + self.weapons_carried = (self.weapons_carried | 1414); + self.ammo_rockets = 0; + self.ammo_nails = 150; + self.ammo_shells = 50; + self.ammo_cells = 0; + self.maxammo_rockets = 25; + self.maxammo_nails = 250; + self.maxammo_shells = 75; + self.maxammo_cells = 60; + self.no_grenades_1 = 3; + self.no_grenades_2 = 2; + self.tp_grenades_1 = 1; + self.tp_grenades_2 = 2; + self.tf_items = 0; + self.armorclass = (self.armorclass | 0); + self.armortype = 0.300000; + self.armorvalue = 50; + self.armor_allowed = 0.600000; + self.maxarmor = 100; + self.current_weapon = 1024; + self.ammo_medikit = 200; + self.maxammo_medikit = 200; + te = spawn(); + te.nextthink = time + 2; + te.think = TeamFortress_Regenerate; + te.owner = self; + te.classname = "timer"; + self.items_allowed = 2 | 4 | 128 | 256 | 1024; + self.items = self.items | 1 | 2 | 8; + } + else + { + if (self.playerclass == 6) + { + self.weapons_carried = (self.weapons_carried | 33680); + self.ammo_rockets = 0; + self.ammo_nails = 100; + self.ammo_shells = 200; + self.ammo_cells = 24; + self.maxammo_rockets = 10; + self.maxammo_nails = 250; + self.maxammo_shells = 250; + self.maxammo_cells = 50; + self.no_grenades_1 = 4; + self.no_grenades_2 = 1; + self.tp_grenades_1 = 1; + self.tp_grenades_2 = 4; + self.tf_items = 0; + self.armorclass = (self.armorclass | 0); + self.armortype = 0.800000; + self.armorvalue = 150; + self.armor_allowed = 0.800000; + self.maxarmor = 300; + self.current_weapon = 32768; + self.items_allowed = 33680; + self.items = (self.items | 39); + } + else + { + if (self.playerclass == 7) + { + self.weapons_carried = (self.weapons_carried | 20624); + self.ammo_rockets = 20; + self.ammo_nails = 0; + self.ammo_shells = 20; + self.ammo_cells = 150; + self.maxammo_rockets = 40; + self.maxammo_nails = 50; + self.maxammo_shells = 40; + self.maxammo_cells = 250; + self.no_grenades_1 = 1; + self.no_grenades_2 = 4; + self.tp_grenades_1 = 1; + self.tp_grenades_2 = 5; + self.tf_items = 0; + self.armorclass = (self.armorclass | 16); + self.armortype = 0.500000; + self.armorvalue = 70; + self.armor_allowed = 0.800000; + self.maxarmor = 150; + self.current_weapon = 4096; + self.items_allowed = 20624; + self.items = (self.items | 49); + } + else + { + if (self.playerclass == 11) + { + self.weapons_carried = (self.weapons_carried | 16); + self.ammo_rockets = 0; + self.ammo_nails = 0; + self.ammo_shells = 0; + self.ammo_cells = 0; + self.maxammo_rockets = 0; + self.maxammo_nails = 0; + self.maxammo_shells = 0; + self.maxammo_cells = 0; + self.no_grenades_1 = 0; + self.no_grenades_2 = 0; + self.tp_grenades_1 = 0; + self.tp_grenades_2 = 0; + self.tf_items = 0; + self.armorclass = (self.armorclass | 0); + self.armortype = 0; + self.armorvalue = 0; + self.armor_allowed = 0; + self.maxarmor = 0; + self.current_weapon = 16; + self.items_allowed = 16; + self.items = 0; + } + else + { + if (self.playerclass == 8) + { + self.weapons_carried = (self.weapons_carried | 262928); + self.ammo_rockets = 0; + self.ammo_nails = 25; + self.ammo_shells = 40; + self.ammo_cells = 30; + self.maxammo_rockets = 15; + self.maxammo_nails = 50; + self.maxammo_shells = 40; + self.maxammo_cells = 30; + self.no_grenades_1 = 2; + self.no_grenades_2 = 2; + self.tp_grenades_1 = 1; + self.tp_grenades_2 = 7; + self.tf_items = 0; + self.armorclass = (self.armorclass | 0); + self.armortype = 0.300000; + self.armorvalue = 25; + self.armor_allowed = 0.300000; + self.maxarmor = 100; + self.current_weapon = 262144; + self.items_allowed = 262928; + self.items = (self.items | 71); + if ((invis_only == 1)) + { + te = spawn(); + te.nextthink = time + 5; + te.think = TeamFortress_RegenerateCells; + te.owner = self; + te.classname = "timer"; + } + } + else + { + if (self.playerclass == 9) + { + self.weapons_carried = (self.weapons_carried | 524552); + self.ammo_rockets = 0; + self.ammo_nails = 25; + self.ammo_shells = 20; + self.ammo_cells = 100; + self.maxammo_rockets = 30; + self.maxammo_nails = 50; + self.maxammo_shells = 50; + self.maxammo_cells = 200; + self.no_grenades_1 = 2; + self.no_grenades_2 = 2; + self.tp_grenades_1 = 1; + self.tp_grenades_2 = 8; + self.tf_items = 0; + self.armorclass = (self.armorclass | 0); + self.armortype = 0.300000; + self.armorvalue = 25; + self.armor_allowed = 0.600000; + self.maxarmor = 50; + self.current_weapon = 524288; + self.items_allowed = 524552; + self.items = (self.items | 3); + self.weaponmode = 1; + } + else + { + if (self.playerclass == 0) + { + self.items = 0; + self.ammo_rockets = 0; + self.ammo_nails = 0; + self.ammo_shells = 0; + self.ammo_cells = 0; + self.no_grenades_1 = 0; + self.no_grenades_2 = 0; + self.tp_grenades_1 = 0; + self.tp_grenades_2 = 0; + self.armorclass = 0; + self.armortype = 0; + self.armorvalue = 0; + self.weapon = 0; + self.current_weapon = 0; + self.weapons_carried = 0; + self.flags = 8 | 128; + self.waterlevel = 3; + self.takedamage = 0; + self.solid = 0; + self.movetype = 8; + self.model = string_null; + self.mdl = string_null; + self.modelindex = 0; + self.weaponmodel = string_null; + modelindex_player = 0; + self.tfstate = self.tfstate | 2; + setmodel(self, string_null); + } + } + } + } + } + } + } + } + } + } + } + if (self.playerclass != 0) + { + self.has_syringe = 1; + self.has_holo = 1; + self.option = 0; + self.option4 = 0; + self.option3 = 1; + self.gravity = 1; + if (exec_class) + { + if (self.playerclass == 1) + { + stuffcmd(self, "exec scout.cfg\n"); + } + else + { + if (self.playerclass == 2) + { + stuffcmd(self, "exec sniper.cfg\n"); + } + else + { + if (self.playerclass == 3) + { + stuffcmd(self, "exec soldier.cfg\n"); + } + else + { + if (self.playerclass == 4) + { + stuffcmd(self, "exec demoman.cfg\n"); + } + else + { + if (self.playerclass == 5) + { + stuffcmd(self, "exec medic.cfg\n"); + } + else + { + if (self.playerclass == 6) + { + stuffcmd(self, "exec hwguy.cfg\n"); + } + else + { + if (self.playerclass == 7) + { + stuffcmd(self, "exec pyro.cfg\n"); + } + else + { + if (self.playerclass == 8) + { + stuffcmd(self, "exec spy.cfg\n"); + } + else + { + if (self.playerclass == 9) + { + stuffcmd(self, "exec engineer.cfg\n"); + } + else + { + if (self.playerclass == 11) + { + stuffcmd(self, "exec civilian.cfg\n"); + } + } + } + } + } + } + } + } + } + } + } + if ((self.stats_on == 1)) + { + stuffcmd (self, "exec progs/stats.cfg\n"); + } + } + else + { + self.has_syringe = 0; + } + self.vision = 0; + self.gravity = 1; + if (self.armortype >= 0.8) + { + self.items = self.items | 32768; + } + else + { + if (self.armortype >= 0.6) + { + self.items = self.items | 16384; + } + else + { + if (self.armortype >= 0.3) + { + self.items = self.items | 8192; + } + } + } + if (self.playerclass == 8) + { + self.weapons_carried = self.weapons_carried | 1; + allow_hook = 1; + st = infokey(world, "sg"); + if (st == string_null) + { + st = infokey(world, "spygrapple"); + } + if (st == "off") + { + allow_hook = 0; + } + } + if (self.playerclass != 0) + { + self.weapons_carried = self.weapons_carried | 16; + } + W_SetCurrentAmmo(); +}; + +float(entity Retriever, float AmmoType) TeamFortress_GetMaxAmmo = +{ + if (AmmoType == 256) + { + return Retriever.maxammo_shells; + } + else + { + if (AmmoType == 512) + { + return Retriever.maxammo_nails; + } + else + { + if (AmmoType == 2048) + { + return Retriever.maxammo_cells; + } + else + { + if (AmmoType == 1024) + { + return Retriever.maxammo_rockets; + } + else + { + if (AmmoType == 4) + { + return Retriever.maxammo_medikit; + } + else + { + if (AmmoType == 131072) + { + return Retriever.maxammo_detpack; + } + } + } + } + } + } + dprint("Error in TeamFortress_GetMaxAmmo()\n"); + dprint("Invalid ammo type passed.\n"); + return 0; +}; + +float(entity Retriever, float WeaponType) TeamFortress_CanGetWeapon = +{ + if (Retriever.items_allowed & WeaponType) + { + return 1; + } + return 0; +}; + +void(entity Player, float Armorclass) TeamFortress_DescribeArmor = +{ + if (Armorclass == 0) + { + return; + } + if (Armorclass & 16) + { + sprint(Player, 2, "Asbestos "); + } + if (Armorclass & 2) + { + sprint(Player, 2, "Wooden "); + } + if (Armorclass & 4) + { + sprint(Player, 2, "Blast "); + } + if (Armorclass & 8) + { + sprint(Player, 2, "Shockproof "); + } + if (Armorclass & 1) + { + sprint(Player, 2, "Kevlar "); + } + sprint(Player, 2, "armor\n"); +}; + +// pablo. never called? +float(entity Retriever, entity Items) TeamFortress_AddBackpackItems = +{ + return 0; +}; + +string(float pc) TeamFortress_GetClassName = +{ + if (pc == 1) + { + return "Scout"; + } + else + { + if (pc == 2) + { + return "Sniper"; + } + else + { + if (pc == 3) + { + return "Soldier"; + } + else + { + if (pc == 4) + { + return "Demolitions Man"; + } + else + { + if (pc == 5) + { + return "Combat Medic"; + } + else + { + if (pc == 6) + { + return "Heavy Weapons Guy"; + } + else + { + if (pc == 7) + { + return "Pyro"; + } + else + { + if (pc == 8) + { + return "Spy"; + } + else + { + if (pc == 9) + { + return "Engineer"; + } + else + { + if (pc == 11) + { + return "Civilian"; + } + else + { + if (pc == 0) + { + return "Observer"; + } + else + { + if (pc == 10) + { + return "Random Playerclass"; + } + } + } + } + } + } + } + } + } + } + } + } + return "Invalid Class"; +}; + +void(entity Viewer, float pc, float rpc, float xavior_Var) TeamFortress_PrintClassName = +{ + local string st; + st = TeamFortress_GetClassName(pc); + sprint(Viewer, 2, st); + if (rpc != 0) + { + sprint(Viewer, 2, " (Random)"); + } + if (xavior_Var == 2) + { + sprint(Viewer, 2, "‘\n"); + } + else + { + sprint(Viewer, 2, "\n"); + } +}; + +void() TeamFortress_RemoveTimers = +{ + local entity te; + self.leg_damage = 0; + self.is_undercover = 0; + self.is_building = 0; + self.building = world; + if (self.tfstate & 2048) + { + self.tfstate = self.tfstate - 2048; + TeamFortress_SetSpeed(self); + self.heat = 0; + } + te = find(world, classname, "timer"); + while (te != world) + { + if (te.owner == self) + { + dremove(te); + te = find(world, classname, "timer"); + } + else + { + te = find(te, classname, "timer"); + } + } + te = find(world, classname, "item_tfgoal"); + while (te) + { + if (te.owner == self) + { + if (!(te.goal_activation & 256)) + { + tfgoalitem_RemoveFromPlayer(te, self, 0); + } + if (CTF_Map == 1 && te.goal_no == 1) + { + bprint(2, self.netname); + bprint(2, " ÌÏÓÔ the ÂÌÕÅ flag!\n"); + } + else + { + if (CTF_Map == 1 && te.goal_no == 2) + { + bprint(2, self.netname); + bprint(2, " ÌÏÓÔ the ÒÅÄ flag!\n"); + } + } + } + te = find(te, classname, "item_tfgoal"); + } + te = find(world, classname, "detpack"); + while (te) + { + if (te.weaponmode == 1 && te.enemy == self) + { + te.weaponmode = 0; + } + te = find(te, classname, "detpack"); + } +// TeamFortress_DetonatePipebombs(); gold. this is the old code for removing pipebombs on quitting. new one written by pablo is below. + te = find(world, classname, "pipebomb"); + while (te != world) + { + if(te.owner == self) + { + decrement_team_pipebombs(self.team_no); + deathmsg = te.weapon; + te.weapon = 10; + T_RadiusDamage(te, self, 120, world); + WriteByte(4, 23); + WriteByte(4, 3); + WriteCoord(4, te.origin_x); + WriteCoord(4, te.origin_y); + WriteCoord(4, te.origin_z); + multicast(te.origin, TF_FLARE_OFF); + dremove(te); + } + te = find(te, classname, "pipebomb"); + } + stuffcmd(self, "v_idlescale 0\n"); + stuffcmd(self, "v_cshift 0 0 0 0\n"); + self.item_list = 0; + self.FlashTime = 0; + CenterPrint(self, "\n"); + self.menu_count = 25; + self.current_menu = 1; + self.impulse = 0; +}; + +void(float Suicided) TeamFortress_SetupRespawn = +{ + local float restime; + local string db; + if (self.respawn_time > time) + { + return; + } + if (toggleflags & 4) + { + restime = respawn_delay_time; + } + else + { + restime = 0; + } + if (Suicided) + { + if (self.lives > 0) + { + self.lives = self.lives - 1; + } + restime = restime + 5; + } + if (self.lives > 0) + { + self.lives = self.lives - 1; + } + if (self.lives != -1) + { + if (self.lives == 0) + { + sprint(self, 2, "NO lives left, returning to Observer mode.\n"); + self.playerclass = 0; + self.tfstate = self.tfstate - (self.tfstate & 8); + self.movetype = 8; + self.solid = 0; + self.model = ""; + self.mdl = ""; + self.velocity = '0 0 0'; + self.avelocity = '0 0 0'; + self.enemy = world; + setmodel(self, ""); + return; + } + if (self.lives == 1) + { + sprint(self, 2, "LAST life.\n"); + } + else + { + db = ftos(self.lives); + sprint(self, 2, db); + sprint(self, 2, " lives left.\n"); + } + } + self.respawn_time = time + restime; + if (restime > 3) + { + db = ftos(restime); + sprint(self, 2, db); + sprint(self, 2, " seconds till respawn.\n"); + } +}; + +void() TeamFortress_CheckClassStats = +{ + if (self.armortype > self.armor_allowed) + { + self.armortype = self.armor_allowed; + } + if (self.armorvalue > self.maxarmor) + { + self.armorvalue = self.maxarmor; + } + if (self.armortype < 0) + { + self.armortype = 0; + } + if (self.armorvalue < 0) + { + self.armorvalue = 0; + } + if (self.ammo_shells > TeamFortress_GetMaxAmmo(self, 256)) + { + self.ammo_shells = TeamFortress_GetMaxAmmo(self, 256); + } + if (self.ammo_shells < 0) + { + self.ammo_shells = 0; + } + if (self.ammo_nails > TeamFortress_GetMaxAmmo(self, 512)) + { + self.ammo_nails = TeamFortress_GetMaxAmmo(self, 512); + } + if (self.ammo_nails < 0) + { + self.ammo_nails = 0; + } + if (self.ammo_rockets > TeamFortress_GetMaxAmmo(self, 1024)) + { + self.ammo_rockets = TeamFortress_GetMaxAmmo(self, 1024); + } + if (self.ammo_rockets < 0) + { + self.ammo_rockets = 0; + } + if (self.ammo_cells > TeamFortress_GetMaxAmmo(self, 2048)) + { + self.ammo_cells = TeamFortress_GetMaxAmmo(self, 2048); + } + if (self.ammo_cells < 0) + { + self.ammo_cells = 0; + } + if (self.ammo_medikit > TeamFortress_GetMaxAmmo(self, 4)) + { + self.ammo_medikit = TeamFortress_GetMaxAmmo(self, 4); + } + if (self.ammo_medikit < 0) + { + self.ammo_medikit = 0; + } + if (self.ammo_detpack > TeamFortress_GetMaxAmmo(self, 131072)) + { + self.ammo_detpack = TeamFortress_GetMaxAmmo(self, 131072); + } + if (self.ammo_detpack < 0) + { + self.ammo_detpack = 0; + } + if (self.no_grenades_1 < 0) + { + self.no_grenades_1 = 0; + } + if (self.no_grenades_2 < 0) + { + self.no_grenades_2 = 0; + } + if (self.health > self.max_health && !(self.items & 65536)) + { + TF_T_Damage(self, world, world, self.max_health - self.health, 0, 256); + } + if (self.health < 0) + { + T_Heal(self, self.health - self.health, 0); + } + self.items = self.items - (self.items & (8192 | 16384 | 32768)); + if (self.armortype >= 0.8) + { + self.items = self.items | 32768; + } + else + { + if (self.armortype >= 0.6) + { + self.items = self.items | 16384; + } + else + { + if (self.armortype >= 0.3) + { + self.items = self.items | 8192; + } + } + } +}; + +void (float _p_10461) TeamFortress_DropAmmo = +{ + local float _l_10462; + + if ((_p_10461 == 1)) + { + _l_10462 = 20; + if ((self.ammo_shells < _l_10462)) + { + if ((self.playerclass == 9)) + { + if (((self.ammo_cells / 3) > (_l_10462 - self.ammo_shells))) + { + sprint (self, 2, "you make some shells.\n"); + self.ammo_cells = (self.ammo_cells - ((_l_10462 - self.ammo_shells) * 3)); + self.ammo_shells = _l_10462; + } + } + if ((self.ammo_shells < _l_10462)) + { + return; + } + } + self.ammo_shells = (self.ammo_shells - _l_10462); + } + else + { + if ((_p_10461 == 2)) + { + _l_10462 = 20; + if ((self.ammo_nails < _l_10462)) + { + if ((self.playerclass == 9)) + { + if (((self.ammo_cells / 2) > (_l_10462 - self.ammo_nails))) + { + sprint (self, 2, "you make some nails.\n"); + self.ammo_cells = (self.ammo_cells - ((_l_10462 - self.ammo_nails) * 2)); + self.ammo_nails = _l_10462; + } + } + if ((self.ammo_nails < _l_10462)) + { + return; + } + } + self.ammo_nails = (self.ammo_nails - _l_10462); + } + else + { + if ((_p_10461 == 3)) + { + _l_10462 = 10; + if ((self.ammo_rockets < _l_10462)) + { + if ((self.playerclass == 9)) + { + if (((self.ammo_cells / 5) > (_l_10462 - self.ammo_rockets))) + { + sprint (self, 2, "you make some rockets.\n"); + self.ammo_cells = (self.ammo_cells - ((_l_10462 - self.ammo_rockets) * 5)); + self.ammo_rockets = _l_10462; + } + } + if ((self.ammo_rockets < _l_10462)) + { + return; + } + } + self.ammo_rockets = (self.ammo_rockets - _l_10462); + } + else + { + if ((_p_10461 == 4)) + { + _l_10462 = 10; + if ((self.ammo_cells < _l_10462)) + { + if ((self.playerclass == 9)) + { + if (((self.ammo_cells / 5) > (_l_10462 - self.ammo_cells))) + { + sprint (self, 2, "you make some cells.\n"); + self.ammo_cells = (self.ammo_cells - ((_l_10462 - self.ammo_cells) * 5)); + self.ammo_cells = _l_10462; + } + } + if ((self.ammo_cells < _l_10462)) + { + return; + } + } + self.ammo_cells = (self.ammo_cells - _l_10462); + } + } + } + } + if ((_p_10461 == 5)) + { + if ((self.no_grenades_1 < 1)) + { + return; + } + self.no_grenades_1 = (self.no_grenades_1 - 1); + } + if ((_p_10461 == 6)) + { + if ((self.no_grenades_2 < 1)) + { + return; + } + self.no_grenades_2 = (self.no_grenades_2 - 1); + } + W_SetCurrentAmmo (); + if ((self.team_no != 0)) + { + increment_team_ammoboxes (self.team_no); + if ((num_team_ammoboxes (self.team_no) > (20 / number_of_teams))) + { + RemoveOldAmmobox (self.team_no); + } + } + else + { + num_world_ammoboxes = num_world_ammoboxes + 1; + if ((num_world_ammoboxes > 20)) + { + RemoveOldAmmobox (0); + } + } + newmis = spawn (); + newmis.aflag = _l_10462; + newmis.weapon = _p_10461; + if ((newmis.weapon == 1)) + { + newmis.ammo_shells = _l_10462; + } + else + { + if ((newmis.weapon == 2)) + { + newmis.ammo_nails = _l_10462; + } + else + { + if ((newmis.weapon == 3)) + { + newmis.ammo_rockets = _l_10462; + } + else + { + if ((newmis.weapon == 4)) + { + newmis.ammo_cells = _l_10462; + } + } + } + } + if ((newmis.weapon == 5)) + { + newmis.no_grenades_1 = 1; + } + if ((newmis.weapon == 6)) + { + newmis.no_grenades_2 = 1; + } + newmis.enemy = self; + newmis.health = time; + newmis.movetype = 6; + newmis.solid = 1; + newmis.classname = "ammobox"; + newmis.team_no = self.team_no; + makevectors (self.v_angle); + if (self.v_angle_x) + { + newmis.velocity = ((v_forward * 400) + (v_up * 200)); + } + else + { + newmis.velocity = aim (self, 10000); + newmis.velocity = (newmis.velocity * 400); + newmis.velocity_z = 200; + } + newmis.avelocity = '0 300 0'; + setsize (newmis, '0 0 0', '0 0 0'); + setorigin (newmis, self.origin); + newmis.nextthink = (time + 30); + newmis.think = SUB_Remove; + newmis.touch = TeamFortress_AmmoboxTouch; + newmis.skin = (_p_10461 - 1); + sound (newmis, 3, "knight/sword2.wav", 1, 1); + if ((sr_dropgrens == 1)) + { + setmodel (newmis, "progs/ammobox2.mdl"); + } + else + { + setmodel (newmis, "progs/ammobox.mdl"); + } +}; + +void() TeamFortress_AmmoboxTouch = +{ + local float took; + local string quantity; + local entity _l_10486; + took = 0; + if (other == self.enemy && time < self.health + 2) + { + return; + } + if (other.classname != "player") + { + return; + } + if (other.health <= 0) + { + return; + } + num_world_ammoboxes = num_world_ammoboxes - 1; + decrement_team_ammoboxes(self.team_no); + if (self.weapon == 0) + { + sprint(other, 0, "You got "); + if (self.ammo_shells > 0) + { + other.ammo_shells = other.ammo_shells + self.ammo_shells; + quantity = ftos(self.ammo_shells); + sprint2(other, 0, quantity, " shells "); + } + if (self.ammo_nails > 0) + { + other.ammo_nails = other.ammo_nails + self.ammo_nails; + quantity = ftos(self.ammo_nails); + sprint2(other, 0, quantity, " nails "); + } + if (self.ammo_rockets > 0) + { + other.ammo_rockets = other.ammo_rockets + self.ammo_rockets; + quantity = ftos(self.ammo_rockets); + sprint2(other, 0, quantity, " rockets "); + } + if (self.ammo_cells > 0) + { + other.ammo_cells = other.ammo_cells + self.ammo_cells; + quantity = ftos(self.ammo_cells); + sprint2(other, 0, quantity, " cells "); + } + sprint(other, 0, "\n"); + } + else + { + if (self.weapon == 1) + { + if (other.ammo_shells >= TeamFortress_GetMaxAmmo(other, 256)) + { + return; + } + other.ammo_shells = other.ammo_shells + self.aflag; + self.netname = "shells"; + } + else + { + if (self.weapon == 2) + { + if (other.ammo_nails >= TeamFortress_GetMaxAmmo(other, 512)) + { + return; + } + other.ammo_nails = other.ammo_nails + self.aflag; + self.netname = "nails"; + } + else + { + if (self.weapon == 3) + { + if (other.ammo_rockets >= TeamFortress_GetMaxAmmo(other, 1024)) + { + return; + } + other.ammo_rockets = other.ammo_rockets + self.aflag; + self.netname = "rockets"; + } + else + { + if (self.weapon == 4) + { + if (other.ammo_cells >= TeamFortress_GetMaxAmmo(other, 2048)) + { + return; + } + other.ammo_cells = other.ammo_cells + self.aflag; + self.netname = "cells"; + } + } + } + } + } + bound_other_ammo(other); + if (self.weapon > 0) + { + quantity = ftos(self.aflag); + sprint5(other, 0, "You picked up ", quantity, " ", self.netname, "\n"); + } + sound(other, 3, "weapons/lock4.wav", 1, 1); + stuffcmd(other, "bf\n"); + if (other.autodiscard) + { + _l_10486 = self; + self = other; + TeamFortress_Discard (); + self = _l_10486; + } + dremove(self); + self = other; + W_SetCurrentAmmo(); +}; + +float(float tno) num_team_ammoboxes = +{ + if (tno == 1) + { + return num_team_ammoboxes_1; + } + else + { + if (tno == 2) + { + return num_team_ammoboxes_2; + } + else + { + if (tno == 3) + { + return num_team_ammoboxes_3; + } + else + { + if (tno == 4) + { + return num_team_ammoboxes_4; + } + } + } + } + return 0; +}; + +void(float tno) RemoveOldAmmobox = +{ + local float index; + if (tno != 0) + { + index = num_team_ammoboxes(tno); + index = index - 20 / number_of_teams; + } + else + { + index = num_world_ammoboxes - 20; + } + old = find(world, classname, "ammobox"); + while (index > 0) + { + if (old == world) + { + dprint("***\n"); + return; + } + if (old.team_no == tno || tno == 0) + { + old.think = SUB_Remove; + old.nextthink = time + 0.1; + index = index - 1; + num_world_ammoboxes = num_world_ammoboxes - 1; + decrement_team_ammoboxes(old.team_no); + } + old = find(old, classname, "ammobox"); + } +}; + +void(float tno) increment_team_ammoboxes = +{ + if (tno == 1) + { + num_team_ammoboxes_1 = num_team_ammoboxes_1 + 1; + } + else + { + if (tno == 2) + { + num_team_ammoboxes_2 = num_team_ammoboxes_2 + 1; + } + else + { + if (tno == 3) + { + num_team_ammoboxes_3 = num_team_ammoboxes_3 + 1; + } + else + { + if (tno == 4) + { + num_team_ammoboxes_4 = num_team_ammoboxes_4 + 1; + } + } + } + } +}; + +void(float tno) decrement_team_ammoboxes = +{ + if (tno == 1) + { + num_team_ammoboxes_1 = num_team_ammoboxes_1 - 1; + } + else + { + if (tno == 2) + { + num_team_ammoboxes_2 = num_team_ammoboxes_2 - 1; + } + else + { + if (tno == 3) + { + num_team_ammoboxes_3 = num_team_ammoboxes_3 - 1; + } + else + { + if (tno == 4) + { + num_team_ammoboxes_4 = num_team_ammoboxes_4 - 1; + } + } + } + } +}; + +/*void() TeamFortress_AssaultWeapon = +{ + local float it; + self.impulse = 0; + if (self.tfstate & 2) + { + return; + } + if (!(self.weapons_carried & 32768)) + { + return; + } + if (self.heat > 0) + { + sprint(self, 2, "the assault cannon is still overheated.\n"); + return; + } + if (self.ammo_shells < 1) + { + sprint(self, 2, "not enough ammo.\n"); + return; + } + if (self.ammo_cells < 6) + { + sprint(self, 2, "not enough cells to power the assault cannon.\n"); + return; + } + self.current_weapon = 32768; + W_SetCurrentAmmo(); +};*/ + +void() TeamFortress_ExplodePerson = +{ + local entity te; + self.owner.tfstate = self.owner.tfstate - (self.owner.tfstate & 1); + KickPlayer(-2, self.owner); + newmis = spawn(); + newmis.movetype = 10; + newmis.solid = 2; + newmis.classname = "grenade"; + newmis.team_no = self.owner.team_no; + newmis.owner = self.owner; + newmis.velocity = '0 0 0'; + newmis.angles = vectoangles(newmis.velocity); + newmis.think = SUB_Null; + newmis.nextthink = time + 0.1; + if (self.weapon == 1) + { + newmis.touch = NormalGrenadeTouch; + newmis.think = NormalGrenadeExplode; + newmis.skin = 0; + newmis.avelocity = '300 300 300'; + setmodel(newmis, "progs/hgren2.mdl"); + } + else + { + if (self.weapon == 2) + { + newmis.touch = ConcussionGrenadeTouch; + newmis.think = ConcussionGrenadeExplode; + newmis.skin = 1; + newmis.avelocity = '300 300 300'; + setmodel(newmis, "progs/hgren2.mdl"); + } + else + { + if (self.weapon == 3) + { + newmis.touch = NailGrenadeTouch; + newmis.think = NailGrenadeExplode; + newmis.skin = 1; + newmis.avelocity = '0 300 0'; + setmodel(newmis, "progs/biggren.mdl"); + } + else + { + if (self.weapon == 4) + { + newmis.touch = MirvGrenadeTouch; + newmis.think = MirvGrenadeExplode; + newmis.skin = 0; + newmis.avelocity = '0 300 0'; + setmodel(newmis, "progs/biggren.mdl"); + } + else + { + if (self.weapon == 5) + { + newmis.touch = NapalmGrenadeTouch; + newmis.think = NapalmGrenadeExplode; + newmis.skin = 2; + newmis.avelocity = '0 300 0'; + setmodel(newmis, "progs/biggren.mdl"); + } + else + { + if (self.weapon == 6) + { + sprint(self.owner, 2, "Flare lit.\n"); + te = spawn(); + te.touch = SUB_Null; + te.think = RemoveFlare; + te.nextthink = time + 25; + te.owner = self.owner; + te.solid = 0; + self.owner.effects = self.owner.effects | 4; + dremove(self); + dremove(newmis); + return; + } + else + { + if (self.weapon == 7) + { + newmis.touch = GasGrenadeTouch; + newmis.think = GasGrenadeExplode; + newmis.skin = 2; + newmis.avelocity = '300 300 300'; + setmodel(newmis, "progs/grenade2.mdl"); + } + else + { + if (self.weapon == 8) + { + newmis.touch = EMPGrenadeTouch; + newmis.think = EMPGrenadeExplode; + newmis.skin = 4; + newmis.avelocity = '300 300 300'; + setmodel(newmis, "progs/grenade2.mdl"); + } + else + { + if (self.weapon == 9) + { + newmis.touch = FlashGrenadeTouch; + newmis.think = FlashGrenadeExplode; + newmis.skin = 1; + newmis.avelocity = '300 300 300'; + setmodel(newmis, "progs/grenade2.mdl"); + } + } + } + } + } + } + } + } + } + setsize(newmis, '0 0 0', '0 0 0'); + setorigin(newmis, self.owner.origin); + bprint(1, "No "); + bprint(1, self.owner.netname); + bprint(1, ", throw the grenade, not the pin!\n"); + dremove(self); +}; + +void() NormalGrenadeTouch = +{ + if (other == self.owner) + { + return; + } + sound(self, 1, "weapons/bounce.wav", 1, 1); + if (self.velocity == '0 0 0') + { + self.avelocity = '0 0 0'; + } +}; + +void () NormalGrenadeExplode = +{ + + deathmsg = 8; + T_RadiusDamage (self, self.owner, 180, world); + WriteByte (4, 23); + WriteByte (4, 3); + WriteCoord (4, self.origin_x); + WriteCoord (4, self.origin_y); + WriteCoord (4, self.origin_z); + multicast (self.origin, 1); + BecomeExplosion (); + self.owner.active_grenades_1 = (self.owner.active_grenades_1 - 1); + dremove (self); +}; + +void() TeamFortress_DisplayDetectionItems = +{ + local entity Goal; + local entity te; + Goal = find(world, classname, "info_tfdetect"); + if (!Goal) + { + return; + } + if (Goal.team_str_home == string_null) + { + return; + } + if (Goal.display_item_status1 != 0) + { + te = Finditem(Goal.display_item_status1); + if (te) + { + DisplayItemStatus(Goal, self, te); + } + else + { + sprint(self, 2, "Item is missing.\n"); + } + } + else + { + return; + } + if (Goal.display_item_status2 != 0) + { + te = Finditem(Goal.display_item_status2); + if (te) + { + DisplayItemStatus(Goal, self, te); + } + else + { + sprint(self, 2, "Item is missing.\n"); + } + } + else + { + return; + } + if (Goal.display_item_status3 != 0) + { + te = Finditem(Goal.display_item_status3); + if (te) + { + DisplayItemStatus(Goal, self, te); + } + else + { + sprint(self, 2, "Item is missing.\n"); + } + } + else + { + return; + } + if (Goal.display_item_status4 != 0) + { + te = Finditem(Goal.display_item_status4); + if (te) + { + DisplayItemStatus(Goal, self, te); + } + else + { + sprint(self, 2, "Item is missing.\n"); + } + } +}; + +void() BioInfection_Decay = +{ + if (teamplay & 16 && self.owner.team_no == self.enemy.team_no && self.owner.team_no != 0) + { + self.owner.tfstate = self.owner.tfstate - (self.owner.tfstate & 16); + dremove(self); + return; + } + if (self.invincible_finished > time) + { + self.owner.tfstate = self.owner.tfstate - (self.owner.tfstate & 16); + dremove(self); + return; + } + self.nextthink = time + 2; + deathmsg = 13; + TF_T_Damage(self.owner, self, self.enemy, 5, 1, 0); + SpawnBlood(self.owner.origin, 30); + if (!(self.owner.tfstate & 16)) + { + dremove(self); + } +}; + +void() BioInfection_MonsterDecay = +{ + self.nextthink = time + 2; + T_Damage(self.enemy, self, self.owner, 5); + SpawnBlood(self.enemy.origin, 20); + if (self.enemy.health < 1) + { + dremove(self); + } +}; + +void(string halias, float himpulse1, float himpulse2) TeamFortress_Alias = +{ + local string imp; + stuffcmd(self, "alias "); + stuffcmd(self, halias); + stuffcmd(self, " \"impulse "); + imp = ftos(himpulse1); + stuffcmd(self, imp); + if (himpulse2 != 0) + { + stuffcmd(self, ";wait; impulse "); + imp = ftos(himpulse2); + stuffcmd(self, imp); + } + stuffcmd(self, "\"\n"); +}; + +void() TeamFortress_Regenerate = +{ + if (self.owner.playerclass == 5) + { + self.nextthink = time + 2; + if (self.owner.health >= self.owner.max_health - 2) + { + return; + } + if (self.owner.ammo_medikit == 0) + { + return; + } + if (self.owner.ammo_medikit < 2) + { + self.owner.health = self.owner.health + self.owner.ammo_medikit; + //self.owner.ammo_medikit = 0; + } + else + { + self.owner.health = self.owner.health + 2; + //self.owner.ammo_medikit = self.owner.ammo_medikit - 2; + } + if (self.owner.health > self.owner.max_health) + { + self.owner.health = self.owner.max_health; + } + } +}; + +void() TeamFortress_RegenerateCells = +{ + if (self.owner.playerclass == 8) + { + self.nextthink = time + 5; + if (self.owner.is_undercover == 1) + { + if (self.owner.ammo_cells == 0) + { + self.owner.is_undercover = 0; + self.owner.modelindex = modelindex_player; + self.owner.items = self.owner.items - (self.owner.items & 524288); + } + else + { + self.owner.ammo_cells = self.owner.ammo_cells - 3; + if (self.owner.ammo_cells < 0) + { + self.owner.ammo_cells = 0; + } + } + } + else + { + if (self.owner.ammo_cells >= self.owner.maxammo_cells) + { + return; + } + self.owner.ammo_cells = self.owner.ammo_cells + 1; + if (self.owner.ammo_cells > self.owner.maxammo_cells) + { + self.owner.ammo_cells = self.owner.maxammo_cells; + } + } + return; + } +}; + +void() PlayerObserverMode = +{ + self.current_menu = 1; + self.impulse = 0; + self.playerclass = 0; + self.lives = 0; + self.team_no = -1; + self.flags = 8 | 128 | 512; + self.waterlevel = 3; + self.takedamage = 0; + self.solid = 0; + self.movetype = 0; + self.immune_to_check = time + 2; + self.tfstate = self.tfstate | 65536; + setmodel(self, string_null); + sprint(self, 2, "Observer mode\n"); + CenterPrint(self, "\n"); + stuffcmd(self, "cl_rollangle 0\n"); +}; + +float(vector veca, vector vecb) crossproduct = +{ + local float result; + result = veca_x * vecb_y - vecb_x * veca_y; + return result; +}; + +float(float pc) IsRestrictedClass = +{ + // Returns 0 if it's legal to change to + // non-zero if it's not legal to change to + // the non-zero number representing the number of this class + // you are allowed to have on each team. (-1 meaning none) + + local float NumOnTeam; + local float NumAllowed; + + local entity te; + + // Only restricts scout-engineer not observer, civilan, or whatever + if ( (pc < 1) || (pc > 9) || (self.playerclass == pc) ) + { + return 0; + } + + NumAllowed = 0; + + // -== Added by XavioR ==- + // Re-check of localinfo class restrics (code below) + // Added this so you can shift class restricts without a map restart + ReCheckRestrictions (); + + if (pc < 6) + { + if (pc < 3) + { + if (pc == 1) + NumAllowed = cr_scout; + else + NumAllowed = cr_sniper; + } + else + { + if (pc == 3) + NumAllowed = cr_soldier; + else + { + if (pc == 4) + NumAllowed = cr_demoman; + else + NumAllowed = cr_medic; + } + } + } + else + { + if (pc < 8) + { + if (pc == 6) + NumAllowed = cr_hwguy; + else + NumAllowed = cr_pyro; + } + else + { + if (pc == 8) + NumAllowed = cr_spy; + else + NumAllowed = cr_engineer; + } + } + + // Always legal. No restriction. + if (NumAllowed == 0) + return 0; + + // Class is turned off. + if (NumAllowed < 0) + return -1; + + // Get number of this class on your team + NumOnTeam = 0; + te = find (world, classname, "player"); + while (te) + { + if (te.playerclass == pc) + { + if (te.team_no == self.team_no) + { + NumOnTeam = NumOnTeam + 1; + } + } + te = find (te, classname, "player"); + } + + if (NumOnTeam < NumAllowed) + return 0; + else + return NumAllowed; +}; + +void () ReCheckRestrictions = +{ + if (infokey(world, "quickswitch") == "off" || infokey(world, "quickswitch") == "0") + { + return; + } + + local string st; + + st = infokey (world, "cr_scout"); + cr_scout = stof (st); + st = infokey (world, "cr_sniper"); + cr_sniper = stof (st); + st = infokey (world, "cr_soldier"); + cr_soldier = stof (st); + st = infokey (world, "cr_demoman"); + cr_demoman = stof (st); + st = infokey (world, "cr_medic"); + cr_medic = stof (st); + st = infokey (world, "cr_hwguy"); + cr_hwguy = stof (st); + st = infokey (world, "cr_pyro"); + cr_pyro = stof (st); + st = infokey (world, "cr_spy"); + cr_spy = stof (st); + st = infokey (world, "cr_engineer"); + cr_engineer = stof (st); + if ((((((((((cr_scout != 0) && (cr_sniper != 0)) && (cr_soldier != 0)) && (cr_demoman != 0)) && (cr_medic != 0)) && (cr_hwguy != 0)) && (cr_pyro != 0)) && (cr_spy != 0)) && (cr_engineer != 0))) + { + cr_engineer = 0; + } +} + +#ifdef tf29ents + +#define TFLAG_FULLTEAMSCORE 2048 +#define TFLAG_TEAMFRAGS 128 // Individual Frags, or Frags = TeamScore +float team1score; +float team2score; +float team3score; +float team4score; +float team1frags; +float team2frags; +float team3frags; +float team4frags; + +void (entity pl, float fr) TF_AddFrags = +{ + local entity e; + + if ((intermission_running != 0) || (intermission_exittime > time)) + return; + + pl.real_frags = pl.real_frags + fr; + + if (!pl.team_no) + return; + + if (toggleflags & TFLAG_FULLTEAMSCORE) { + if (pl.team_no == 1) + team1score = team1score + fr; + else if (pl.team_no == 2) + team2score = team2score + fr; + else if (pl.team_no == 3) + team3score = team3score + fr; + else if (pl.team_no == 4) + team4score = team4score + fr; + } + + if (pl.team_no == 1) + team1frags = team1frags + fr; + else if (pl.team_no == 2) + team2frags = team2frags + fr; + else if (pl.team_no == 3) + team3frags = team3frags + fr; + else if (pl.team_no == 4) + team4frags = team4frags + fr; + + if (toggleflags & TFLAG_FULLTEAMSCORE) { + e = find (world, classname, "player"); + while (e) { + if (e.team_no == pl.team_no) + e.frags = TeamFortress_TeamGetScore (e.team_no); + e = find (e, classname, "player"); + } + } else if (!(toggleflags & TFLAG_TEAMFRAGS)) + pl.frags = pl.real_frags; +}; +#endif \ No newline at end of file diff --git a/tforthlp.pqc b/tforthlp.pqc new file mode 100644 index 0000000..a57022f --- /dev/null +++ b/tforthlp.pqc @@ -0,0 +1,194 @@ +void() TeamFortress_MOTD = +{ + local string ya; + local string st; + local string st2; + local string mu; + local float rnum; + if (self.motd == 4) + { + st = infokey(world, "motd1"); + st2 = infokey(world, "motd2"); + if (st != string_null) + { + CenterPrint2(self, st, st2); + } + } + if (self.motd <= 20) + { + self.motd = self.motd + TF_FLARE_OFF; + return; + } + if (self.motd == 21) + { +// if (TF_FLARE_LIT == TF_FLARE_LIT) +// { + self.tfstate = self.tfstate | 4096; +// } + if (teamplay != TF_FLARE_LIT && self.team_no == TF_FLARE_LIT) + { + stuffcmd(self, "color "); + ya = ftos(TF_FLARE_OFF - TF_FLARE_OFF); + stuffcmd(self, ya); + stuffcmd(self, "\n"); + } + rnum = random(); + mu = infokey(self, "tf_music"); + if (mu != "off" && (infokey(world, "tf_music") != "off")) + { + if (rnum < 0.33) + { + stuffcmd(self, "play music/megamnu1.wav\n"); + } + else + { + if (rnum < 0.66) + { + stuffcmd(self, "play music/megamnu2.wav\n"); + } + else + { + stuffcmd(self, "play music/megamnu3.wav\n"); + } + } + } + st = infokey(world, "hostname"); + if (st != string_null) + { + sprint(self, 2, "\n"); + sprint(self, 2, st); + sprint(self, 2, "\n"); + } + self.maxspeed = TF_FLARE_LIT; + self.current_menu = 5; + self.menu_count = 25; + self.motd = 22; + if (!old_gl) + { + stuffcmd(self, "gl_polyblend 1\n"); + TeamFortress_Alias("gl_polyblend", TF_FLARE_LIT, TF_FLARE_LIT); + } + stuffcmd (self, "alias stats_dl \"setinfo tf_stats on; set stats_execed 0; echo óôáôó ÷éìì âåçéî ïî ùïõò îåøô ìéæå; download progs/stats.cfg;\"\n"); + TeamFortress_Alias("+spot", 60, TF_FLARE_LIT); + TeamFortress_Alias("-spot", 60, TF_FLARE_LIT); + TeamFortress_Alias("inv", 135, TF_FLARE_LIT); + TeamFortress_Alias("showtf", 136, TF_FLARE_LIT); + TeamFortress_Alias("changeclass", 202, TF_FLARE_LIT); + TeamFortress_Alias("autozoom", 174, TF_FLARE_LIT); + TeamFortress_Alias("scout", 100 + TF_FLARE_OFF, TF_FLARE_LIT); + TeamFortress_Alias("sniper", 100 + 2, TF_FLARE_LIT); + TeamFortress_Alias("soldier", 100 + 3, TF_FLARE_LIT); + TeamFortress_Alias("demoman", 100 + 4, TF_FLARE_LIT); + TeamFortress_Alias("medic", 100 + 5, TF_FLARE_LIT); + TeamFortress_Alias("hwguy", 100 + 6, TF_FLARE_LIT); + TeamFortress_Alias("pyro", 100 + 7, TF_FLARE_LIT); + TeamFortress_Alias("spy", 100 + 8, TF_FLARE_LIT); + TeamFortress_Alias("engineer", 100 + 9, TF_FLARE_LIT); + TeamFortress_Alias("randompc", 100 + 10, TF_FLARE_LIT); + TeamFortress_Alias("primeone", 150, TF_FLARE_LIT); + TeamFortress_Alias("primetwo", 151, TF_FLARE_LIT); + TeamFortress_Alias("throwgren", 152, TF_FLARE_LIT); + TeamFortress_Alias("+gren1", 150, TF_FLARE_LIT); + TeamFortress_Alias("+gren2", 151, TF_FLARE_LIT); + TeamFortress_Alias("-gren1", 152, TF_FLARE_LIT); + TeamFortress_Alias("-gren2", 152, TF_FLARE_LIT); + TeamFortress_Alias("detpipe", 170, TF_FLARE_LIT); + TeamFortress_Alias("reload", 173, TF_FLARE_LIT); + TeamFortress_Alias("scan10", 162, TF_FLARE_LIT); + TeamFortress_Alias("scan30", 163, TF_FLARE_LIT); + TeamFortress_Alias("scan100", 164, TF_FLARE_LIT); + TeamFortress_Alias("scanf", 161, TF_FLARE_LIT); + TeamFortress_Alias("scane", 160, TF_FLARE_LIT); + TeamFortress_Alias("det5", 165, TF_FLARE_LIT); + TeamFortress_Alias("det20", 166, TF_FLARE_LIT); + TeamFortress_Alias("det50", 167, TF_FLARE_LIT); + TeamFortress_Alias("+det5", 165, TF_FLARE_LIT); + TeamFortress_Alias("-det5", 169, TF_FLARE_LIT); + TeamFortress_Alias("+det20", 166, TF_FLARE_LIT); + TeamFortress_Alias("-det20", 169, TF_FLARE_LIT); + TeamFortress_Alias("+det50", 167, TF_FLARE_LIT); + TeamFortress_Alias("-det50", 169, TF_FLARE_LIT); + TeamFortress_Alias("showscores", 145, TF_FLARE_LIT); + TeamFortress_Alias("showclasses", 144, TF_FLARE_LIT); + TeamFortress_Alias("query", 119, TF_FLARE_LIT); +// TeamFortress_Alias("dropkey", 175, TF_FLARE_LIT); + TeamFortress_Alias("dropammo", 172, TF_FLARE_LIT); + TeamFortress_Alias("showloc", 118, TF_FLARE_LIT); + TeamFortress_Alias("special", 171, TF_FLARE_LIT); + TeamFortress_Alias("saveme", 181, TF_FLARE_LIT); + TeamFortress_Alias("discard", 184, TF_FLARE_LIT); + TeamFortress_Alias("id", 185, TF_FLARE_LIT); + TeamFortress_Alias ("autoid_on", 186, 0); + TeamFortress_Alias ("autoid_off", 187, 0); + TeamFortress_Alias ("discardmode_max", 236, 0); + TeamFortress_Alias ("discardmode_normal", 237, 0); + TeamFortress_Alias ("autodiscard_on", 238, 0); + TeamFortress_Alias ("autodiscard_off", 239, 0); +// TeamFortress_Alias("autoscreenshot", 186, TF_FLARE_LIT); + TeamFortress_Alias("flaginfo", 23, TF_FLARE_LIT); + TeamFortress_Alias("maphelp", 131, TF_FLARE_LIT); + TeamFortress_Alias("disguise", 177, TF_FLARE_LIT); + TeamFortress_Alias ("sfeign", 180, 0); + TeamFortress_Alias("feign", 178, TF_FLARE_LIT); + TeamFortress_Alias("build", 179, TF_FLARE_LIT); + TeamFortress_Alias("sbar_on", 182, TF_FLARE_LIT); + TeamFortress_Alias("sbar_off", 183, TF_FLARE_LIT); + TeamFortress_Alias("sbar_200", 71, TF_FLARE_LIT); + TeamFortress_Alias("sbar_240", 71 + TF_FLARE_OFF, TF_FLARE_LIT); + TeamFortress_Alias("sbar_300", 71 + 2, TF_FLARE_LIT); + TeamFortress_Alias("sbar_350", 71 + 3, TF_FLARE_LIT); + TeamFortress_Alias("sbar_384", 71 + 4, TF_FLARE_LIT); + TeamFortress_Alias("sbar_400", 71 + 5, TF_FLARE_LIT); + TeamFortress_Alias("sbar_480", 71 + 6, TF_FLARE_LIT); + TeamFortress_Alias("sbar_600", 71 + 7, TF_FLARE_LIT); + TeamFortress_Alias("sbar_768", 71 + 8, TF_FLARE_LIT); + TeamFortress_Alias ("efstatus", 234, 0); + TeamFortress_Alias ("ofstatus", 235, 0); + TeamFortress_Alias ("say_efstatus", 241, 0); + TeamFortress_Alias ("say_ofstatus", 242, 0); + TeamFortress_Alias("is_aliased", 13, TF_FLARE_LIT); +#ifdef clan_progs + TeamFortress_Alias("showstats", 69, TF_FLARE_LIT); + TeamFortress_Alias("throwflag", 206, TF_FLARE_LIT); +#endif + stuffcmd(self, "bind 9 \"impulse 9\"\n"); + stuffcmd(self, "bind 0 \"impulse 10\"\n"); + } +}; + +void() TeamFortress_HelpMap = +{ + local entity te; + te = find(world, classname, "info_tfdetect"); + if (te) + { + if (te.non_team_broadcast != string_null) + { + sprint(self, 2, te.non_team_broadcast); + sprint(self, 2, "\nNew Commands:\n"); + sprint(self, 2, " 'bic' to flick your bic!\n"); + sprint(self, 2, " 'Hey' to yell 'hey!'\n"); + sprint(self, 2, " 'bHole' to taunt player!\n"); + sprint(self, 2, " 'holo' to activate holographic replica!\n"); + sprint(self, 2, " 'jetjump' to activate AirScout jetPack\n"); + sprint(self, 2, " 'lay' to activate laydown mode\n"); + sprint(self, 2, " 'ir' to activate Night Vision (InfraRed)\n"); + sprint(self, 2, " 'lay' to activate laydown mode\n"); + sprint(self, 2, " 'drop2' to drop a Toaster (in water)\n"); + sprint(self, 2, " 'dropflag' to drop the enemy flag\n"); + return; + } + } + sprint(self, 2, "\nNew Commands:\n"); + sprint(self, 2, " 'bic' to flick your bic!\n"); + sprint(self, 2, " 'Hey' to yell 'hey!'\n"); + sprint(self, 2, " 'bHole' to taunt player!\n"); + sprint(self, 2, " 'holo' to activate holographic replica!\n"); + sprint(self, 2, " 'jetjump' to activate AirScout jetPack\n"); + sprint(self, 2, " 'lay' to activate laydown mode\n"); + sprint(self, 2, " 'ir' to activate Night Vision (InfraRed)\n"); + sprint(self, 2, " 'drop1' to drop a special mine\n"); + sprint(self, 2, " 'drop2' to drop a Toaster (in water)\n"); + sprint(self, 2, " 'dropflag' to drop the enemy flag\n"); +}; + diff --git a/tfortmap.pqc b/tfortmap.pqc new file mode 100644 index 0000000..cf3f885 --- /dev/null +++ b/tfortmap.pqc @@ -0,0 +1,3013 @@ +.float h_i_g, r_i_g, a_s, a_n, a_r, a_c, rv_s_h, rs_s_h, rv_gr, rs_gr, rs_g; +.float rv_g; +.vector goal_min, goal_max; + +.string old_model; // Added by XavioR + +.entity tent; + +// Prototypes +// Team Functions +void(float tno, float scoretoadd) TeamFortress_TeamIncreaseScore; +void(float all) TeamFortress_TeamShowScores; +float() TeamFortress_TeamGetWinner; + +// Functions to handle entity placement when spawned +void() TF_PlaceItem; +void() TF_StartItem; +void() TF_PlaceGoal; +void() TF_StartGoal; + +// Spawn functions for all Map Entities +float() CheckExistence; +void() info_tfdetect; +void() info_player_teamspawn; +void() info_tfgoal; +void() info_tfgoal_timer; +void() item_tfgoal; + +// AutoDetection Function +void(entity AD) ParseTFDetect; + +// Generic Functions +entity(float ino) Finditem; +entity(float gno) Findgoal; +entity(float gno) Findteamspawn; +void(entity Goal) InactivateGoal; +void(entity Goal) RestoreGoal; +void(entity Goal) RemoveGoal; +float(entity Goal, entity Player, entity AP) IsAffectedBy; +void(entity Goal, entity Player, entity AP, float addb) Apply_Results; +float(entity Goal, entity AP) APMeetsCriteria; +void(entity Goal) SetupRespawn; +void() DoRespawn; +void(entity Goal, entity AP) DoGoalWork; +void(entity Goal, entity AP) DoGroupWork; +void(entity Item, entity AP) DoItemGroupWork; +void(entity Goal, entity AP) DoTriggerWork; +void(entity Goal, entity AP, float addb) DoResults; +void(entity Goal, entity Player) RemoveResults; + +// Goal Functions +void() tfgoal_touch; +void() info_tfgoal_use; + +// Timer Goal Functions +void() tfgoal_timer_tick; + +// Item Functions +void() item_tfgoal_touch; +void(entity Item, entity AP, entity Goal) tfgoalitem_GiveToPlayer; +void(entity Item, entity AP, float method) tfgoalitem_RemoveFromPlayer; +void() tfgoalitem_remove; +#ifdef clan_progs +void (entity Item, float PAlive, entity P) tfgoalitem_drop; +#else +void(entity Item) tfgoalitem_drop; +#endif +void(entity Item) tfgoalitem_checkgoalreturn; +void() ReturnItem; +void(entity Goal, entity Player, entity Item) DisplayItemStatus; + +// CTF Support Functions +void() CTF_FlagCheck; + + +void () TF_PlaceItem; +void () TF_StartItem; +void () TF_PlaceGoal; +void () TF_StartGoal; +//void () TF_PlaceCamp; +//void () TF_StartCamp; +void () info_tfdetect; +//void () info_tfnocamp; +void () info_player_teamspawn; +void () info_tfgoal; +void () info_tfgoal_timer; +void () item_tfgoal; +entity (float gno) Findgoal; +entity (float gno) Findteamspawn; +void (entity Goal) InactivateGoal; +void (entity Goal) RestoreGoal; +void (entity Goal) RemoveGoal; +float (entity Goal,entity Player,entity AP) IsAffectedBy; +void (entity Goal,entity Player,entity AP,float addb) Apply_Results; +float (entity Goal,entity AP) APMeetsCriteria; +void (entity Goal) SetupRespawn; +void () DoRespawn; +void (entity Item,entity AP) DoItemGroupWork; +void (entity Goal,entity AP) DoTriggerWork; +void (entity Goal,entity Player) RemoveResults; +void () info_tfgoal_use; +void () tfgoal_timer_tick; +void () item_tfgoal_touch; +void () tfgoalitem_remove; +//void (entity Item) tfgoalitem_drop; +void (entity Item) tfgoalitem_checkgoalreturn; +void () ReturnItem; +#ifdef fte_rankings +// Rankings -- add points for capturing the flag +void (entity rank_ent, float addscore) Rank_AddCaps; +#endif + +void() MoveFlag = +{ + + if ( (prematch) )// && (self.owner.items & 131072) ) + { + T_Damage (self.owner, self.owner, self.owner, 500); + } + + makevectors(self.owner.v_angle); + setorigin(self, self.owner.origin - v_forward * 25 + '0 0 20'); + self.angles_x = self.owner.angles_z; + self.angles_y = self.owner.angles_y + 90; + self.angles_z = TF_FLARE_LIT - self.owner.angles_x; + self.nextthink = time + 0.010000; + self.think = MoveFlag; + if (self.owner.deadflag) + { + // pablo + //self.movetype = 10; + //self.velocity = '0 0 100'; + // + self.owner.effects = self.owner.effects - (self.owner.effects & 128); + self.owner.effects = self.owner.effects - (self.owner.effects & 64); + dremove(self); + } + if (!(self.owner.items & 131072) && !(self.owner.items & 262144)) + { + self.owner.effects = self.owner.effects - (self.owner.effects & 128); + self.owner.effects = self.owner.effects - (self.owner.effects & 64); + dremove(self); + } +}; + +void(entity Goal) UpdateAbbreviations = +{ + if (Goal.has_disconnected == TF_FLARE_LIT) + { + if (Goal.g_a != TF_FLARE_LIT && Goal.goal_activation == TF_FLARE_LIT) + { + Goal.goal_activation = Goal.g_a; + } + if (Goal.g_e != TF_FLARE_LIT && Goal.goal_effects == TF_FLARE_LIT) + { + Goal.goal_effects = Goal.g_e; + } + if (Goal.h_i_g != TF_FLARE_LIT && Goal.has_item_from_group == TF_FLARE_LIT) + { + Goal.has_item_from_group = Goal.h_i_g; + } + if (Goal.r_i_g != TF_FLARE_LIT && Goal.remove_item_group == TF_FLARE_LIT) + { + Goal.remove_item_group = Goal.r_i_g; + } + if (Goal.a_s != TF_FLARE_LIT && Goal.ammo_shells == TF_FLARE_LIT) + { + Goal.ammo_shells = Goal.a_s; + } + if (Goal.a_n != TF_FLARE_LIT && Goal.ammo_nails == TF_FLARE_LIT) + { + Goal.ammo_nails = Goal.a_n; + } + if (Goal.a_r != TF_FLARE_LIT && Goal.ammo_rockets == TF_FLARE_LIT) + { + Goal.ammo_rockets = Goal.a_r; + } + if (Goal.a_c != TF_FLARE_LIT && Goal.ammo_cells == TF_FLARE_LIT) + { + Goal.ammo_cells = Goal.a_c; + } + if (Goal.rv_s_h != TF_FLARE_LIT && Goal.remove_spawngroup == TF_FLARE_LIT) + { + Goal.remove_spawngroup = Goal.rv_s_h; + } + if (Goal.rs_s_h != TF_FLARE_LIT && Goal.restore_spawngroup == TF_FLARE_LIT) + { + Goal.restore_spawngroup = Goal.rs_s_h; + } + if (Goal.rv_gr != TF_FLARE_LIT && Goal.remove_group_no == TF_FLARE_LIT) + { + Goal.remove_group_no = Goal.rv_gr; + } + if (Goal.rs_gr != TF_FLARE_LIT && Goal.restore_group_no == TF_FLARE_LIT) + { + Goal.restore_group_no = Goal.rs_gr; + } + if (Goal.rs_g != TF_FLARE_LIT && Goal.restore_goal_no == TF_FLARE_LIT) + { + Goal.restore_goal_no = Goal.rs_g; + } + if (Goal.rv_g != TF_FLARE_LIT && Goal.remove_goal_no == TF_FLARE_LIT) + { + Goal.remove_goal_no = Goal.rv_g; + } + if (Goal.t_s_h != string_null) + { + Goal.team_str_home = Goal.t_s_h; + } + if (Goal.t_s_m != string_null) + { + Goal.team_str_moved = Goal.t_s_m; + } + if (Goal.t_s_c != string_null) + { + Goal.team_str_carried = Goal.t_s_c; + } + if (Goal.n_s_h != string_null) + { + Goal.non_team_str_home = Goal.n_s_h; + } + if (Goal.n_s_m != string_null) + { + Goal.non_team_str_moved = Goal.n_s_m; + } + if (Goal.n_s_c != string_null) + { + Goal.non_team_str_carried = Goal.n_s_c; + } + if (Goal.b_b != string_null) + { + Goal.broadcast = Goal.b_b; + } + if (Goal.b_t != string_null) + { + Goal.team_broadcast = Goal.b_t; + } + if (Goal.b_n != string_null) + { + Goal.non_team_broadcast = Goal.b_n; + } + if (Goal.b_o != string_null) + { + Goal.owners_team_broadcast = Goal.b_o; + } + if (Goal.n_b != string_null) + { + Goal.netname_broadcast = Goal.n_b; + } + if (Goal.n_t != string_null) + { + Goal.netname_team_broadcast = Goal.n_t; + } + if (Goal.n_n != string_null) + { + Goal.netname_non_team_broadcast = Goal.n_n; + } + if (Goal.n_o != string_null) + { + Goal.netname_owners_team_broadcast = Goal.n_o; + } + if (Goal.d_t != string_null) + { + Goal.team_drop = Goal.d_t; + } + if (Goal.d_n != string_null) + { + Goal.non_team_drop = Goal.d_n; + } + if (Goal.d_n_t != string_null) + { + Goal.netname_team_drop = Goal.d_n_t; + } + if (Goal.d_n_n != string_null) + { + Goal.netname_non_team_drop = Goal.d_n_n; + } + Goal.has_disconnected = TF_FLARE_OFF; + } +}; + +void() TF_PlaceItem = +{ + self.flags = 256; + self.movetype = TF_FLARE_LIT; + self.velocity = '0 0 0'; + self.oldorigin = self.origin; + if (self.goal_activation & 512) + { + self.effects = self.effects | 8; + } + if (item_list_bit == TF_FLARE_LIT) + { + item_list_bit = TF_FLARE_OFF; + } + self.item_list = item_list_bit; + item_list_bit = item_list_bit * 2; +}; + +void() TF_StartItem = +{ + UpdateAbbreviations(self); + self.nextthink = time + 0.2; + self.think = TF_PlaceItem; + if (self.goal_state == 3) + { + RemoveGoal(self); + } +}; + +void() TF_PlaceGoal = +{ + if (self.classname != "info_tfgoal_timer") + { + if (self.goal_activation & TF_FLARE_OFF) + { + self.touch = tfgoal_touch; + } + } + else + { + self.think = tfgoal_timer_tick; + self.nextthink = time + self.search_time; + self.classname = "info_tfgoal"; + } + self.flags = 256; + self.movetype = TF_FLARE_LIT; + self.velocity = '0 0 0'; + self.oldorigin = self.origin; +}; + +void() TF_StartGoal = +{ + UpdateAbbreviations(self); + self.nextthink = time + 0.2; + self.think = TF_PlaceGoal; + self.use = info_tfgoal_use; + if (self.goal_state == 3) + { + RemoveGoal(self); + } +}; + +float() CheckExistence = +{ + UpdateAbbreviations(self); + if (self.ex_skill_min && skill <= self.ex_skill_min) + { + return TF_FLARE_LIT; + } + else + { + if (self.ex_skill_max && skill >= self.ex_skill_max) + { + return TF_FLARE_LIT; + } + } + return TF_FLARE_OFF; +}; + +void () info_tfdetect = +{ + local entity te; + local string st; + + UpdateAbbreviations (self); + + //TIMELEFT TIMER + te = find (world,classname,"countdown"); + if (te != world) + { + return; + } + + st = infokey (world,"time"); + if (st == "off") + { + return; + } + newmis = spawn (); + newmis.classname = "countdown"; + newmis.no_grenades_1 = 0; + st = infokey (world,"timelimit"); + newmis.health = stof(st); + newmis.think = review_timeleft; + newmis.nextthink = (time + 1); + +// MESSAGE DISP CODE + if (haltloop1 != 1) { + local string msg1timer; + + msg1timer = infokey (world, "svmsg1"); + msg1time = stof(msg1timer); + + if (msg1time > 0) + { + display_message (); + } + haltloop1 = 1; + } + + if (haltloop2 != 1) { + local string msg2timer; + + msg2timer = infokey (world, "svmsg2"); + msg2time = stof(msg2timer); + + if (msg2time > 0) + { + pre_messagetimer2 (); + } + haltloop1 = 1; + } +}; + +/* Gold. this is the old info_tfdetect... new one is above +void() info_tfdetect = +{ + UpdateAbbreviations(self); + //gold. next 6 lines are part of plexi's code for the "timeleft" command. + newmis = spawn (); + newmis.classname = "countdown"; + newmis.netname = "countdown"; + newmis.no_grenades_1 = 0; + newmis.think = review_timeleft; + newmis.nextthink = (time + 1); +}; +*/ +void() info_player_teamspawn = +{ + local entity te; + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (number_of_teams < self.team_no) + { + number_of_teams = self.team_no; + } + if (self.team_no <= TF_FLARE_LIT) + { + dprint("no team_no associated with info_player_teamspawn\n"); + dremove(self); + } + if (self.items != TF_FLARE_LIT) + { + te = Finditem(self.items); + if (!te) + { + dprint("info_player_teamspawn specifies a GoalItem that does not exist\n"); + dremove(self); + } + } + if (self.team_no == TF_FLARE_OFF) + { + self.team_str_home = "ts1"; + } + else + { + if (self.team_no == 2) + { + self.team_str_home = "ts2"; + } + else + { + if (self.team_no == 3) + { + self.team_str_home = "ts3"; + } + else + { + if (self.team_no == 4) + { + self.team_str_home = "ts4"; + } + } + } + } +}; + +void() i_p_t = +{ + self.classname = "info_player_teamspawn"; + info_player_teamspawn(); +}; + +void() info_tfgoal = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (self.mdl) + { + precache_model(self.mdl); + precache_model2(self.mdl); + setmodel(self, self.mdl); + } + if (self.noise) + { + precache_sound(self.noise); + precache_sound2(self.noise); + } + else + { + if (self.mdl == "progs/backpack.mdl") + { + precache_sound("items/backpack.wav"); + precache_sound2("items/backpack.wav"); + self.noise = "items/backpack.wav"; + } + } + precache_sound("items/protect.wav"); + precache_sound("items/protect2.wav"); + precache_sound("items/protect3.wav"); + precache_sound("items/suit.wav"); + precache_sound("items/suit2.wav"); + precache_sound("items/inv1.wav"); + precache_sound("items/inv2.wav"); + precache_sound("items/inv3.wav"); + precache_sound("items/damage.wav"); + precache_sound("items/damage2.wav"); + precache_sound("items/damage3.wav"); + self.solid = TF_FLARE_OFF; + if (self.goal_state == TF_FLARE_LIT) + { + self.goal_state = 2; + } + if (self.goal_min != '0 0 0') + { + setsize(self, self.goal_min, self.goal_max); + } + else + { + setsize(self, '-16 -16 -24', '16 16 32'); + } + TF_StartGoal(); +}; + +void() i_t_g = +{ + self.classname = "info_tfgoal"; + info_tfgoal(); +}; + +void() info_tfgoal_timer = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (self.mdl) + { + precache_model(self.mdl); + precache_model2(self.mdl); + setmodel(self, self.mdl); + } + if (self.noise) + { + precache_sound(self.noise); + precache_sound2(self.noise); + } + if (self.search_time <= TF_FLARE_LIT) + { + dprint("Timer Goal created with no specified time.\n"); + dremove(self); + } + self.solid = TF_FLARE_LIT; + if (self.goal_state == TF_FLARE_LIT) + { + self.goal_state = 2; + } + setsize(self, '-16 -16 -24', '16 16 32'); + TF_StartGoal(); +}; + +void() i_t_t = +{ + self.classname = "info_tfgoal_timer"; + info_tfgoal_timer(); +}; + +void() item_tfgoal = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (self.mdl) + { + precache_model(self.mdl); + precache_model2(self.mdl); + setmodel(self, self.mdl); + } + else + { + self.mdl = ""; + setmodel(self, ""); + } + precache_sound2("items/itembk2.wav"); + if (self.noise) + { + precache_sound(self.noise); + precache_sound2(self.noise); + } + self.touch = item_tfgoal_touch; + if (self.goal_state == TF_FLARE_LIT) + { + self.goal_state = 2; + } + self.solid = TF_FLARE_OFF; + setorigin(self, self.origin); + if (!(self.netname)) + { + self.netname = "goalitem"; + } + if (self.pausetime <= TF_FLARE_LIT) + { + self.pausetime = 60; + } + if (self.delay != TF_FLARE_LIT && self.pausetime == TF_FLARE_LIT) + { + self.pausetime = self.delay; + } + setsize(self, '-16 -16 -24', '16 16 32'); + TF_StartItem(); +}; + +void(entity AD) ParseTFDetect = +{ + local string mtf_ver; + local string mtf_website; + mtf_ver = mtf_Ver; // #mtf_Ver defined in defs.pqc now.. + mtf_website = mtf_Website; + + if (AD.team_broadcast != string_null) + { + team_menu_string = AD.team_broadcast; + } + localcmd(AD.message); + localcmd("serverinfo "); + localcmd("MegaTF v"); + localcmd(mtf_ver); + + sprint (self, 2, "\nQuakeWorld MegaTeamFortress v", mtf_ver); + + +#ifdef clan_progs + localcmd("CE"); + sprint (self, 2, "CE"); +#endif + + sprint (self, 2, "\n", mtf_website, "\n\n"); + + localcmd("\n"); + team1lives = AD.ammo_shells; + team2lives = AD.ammo_nails; + team3lives = AD.ammo_rockets; + team4lives = AD.ammo_cells; + if (team1lives == TF_FLARE_LIT) + { + team1lives = -1; + } + if (team2lives == TF_FLARE_LIT) + { + team2lives = -1; + } + if (team3lives == TF_FLARE_LIT) + { + team3lives = -1; + } + if (team4lives == TF_FLARE_LIT) + { + team4lives = -1; + } + if (AD.hook_out == TF_FLARE_OFF) + { + allow_hook = TF_FLARE_LIT; + } + team1maxplayers = AD.ammo_medikit; + team2maxplayers = AD.ammo_detpack; + team3maxplayers = AD.maxammo_medikit; + team4maxplayers = AD.maxammo_detpack; + if (team1maxplayers == TF_FLARE_LIT) + { + team1maxplayers = 30; + } + if (team2maxplayers == TF_FLARE_LIT) + { + team2maxplayers = 30; + } + if (team3maxplayers == TF_FLARE_LIT) + { + team3maxplayers = 30; + } + if (team4maxplayers == TF_FLARE_LIT) + { + team4maxplayers = 30; + } + illegalclasses = AD.playerclass; + illegalclasses1 = AD.maxammo_shells; + illegalclasses2 = AD.maxammo_nails; + illegalclasses3 = AD.maxammo_rockets; + illegalclasses4 = AD.maxammo_cells; + if (mapname == "1on1r") + { + illegalclasses1 = 419; + illegalclasses2 = 419; + } + if (mapname == "2FORT5") + { + localcmd("sv_gravity 800\n"); + } + if (((AD.message == "engbat\n") || (mapname == "engbat"))) + { + engbat = 1; + bprint (1, "engbat mode on\n"); + } + else + { + engbat = 0; + } + civilianteams = TF_FLARE_LIT; + if (illegalclasses1 == -1) + { + illegalclasses1 = TF_FLARE_LIT; + civilianteams = civilianteams | TF_FLARE_OFF; + } + if (illegalclasses2 == -1) + { + illegalclasses2 = TF_FLARE_LIT; + civilianteams = civilianteams | 2; + } + if (illegalclasses3 == -1) + { + illegalclasses3 = TF_FLARE_LIT; + civilianteams = civilianteams | 4; + } + if (illegalclasses4 == -1) + { + illegalclasses4 = TF_FLARE_LIT; + civilianteams = civilianteams | 8; + } +}; + +entity(float ino) Finditem = +{ + local entity tg; + local string st; + tg = find(world, classname, "item_tfgoal"); + while (tg) + { + if (tg.goal_no == ino) + { + return tg; + } + tg = find(tg, classname, "item_tfgoal"); + } + dprint("Could not find an item with a goal_no of "); + st = ftos(ino); + dprint(st); + dprint(".\n"); + return world; +}; + +entity(float gno) Findgoal = +{ + local entity tg; + local string st; + tg = find(world, classname, "info_tfgoal"); + while (tg) + { + if (tg.goal_no == gno) + { + return tg; + } + tg = find(tg, classname, "info_tfgoal"); + } + dprint("Could not find a goal with a goal_no of "); + st = ftos(gno); + dprint(st); + dprint(".\n"); + return tg; // dirty fix!! +}; + +entity(float gno) Findteamspawn = +{ + local entity tg; + local string st; + tg = find(world, classname, "info_player_teamspawn"); + while (tg) + { + if (tg.goal_no == gno) + { + return tg; + } + tg = find(tg, classname, "info_player_teamspawn"); + } + dprint("Could not find a Teamspawn with a goal_no of "); + st = ftos(gno); + dprint(st); + dprint(".\n"); + return tg; // DIRTY FIX!!! +}; + +void(entity Goal) InactivateGoal = +{ + if (Goal.goal_state == TF_FLARE_OFF) + { + if (Goal.search_time == TF_FLARE_LIT) + { + Goal.solid = TF_FLARE_OFF; + } + Goal.goal_state = 2; + if (Goal.mdl != string_null) + { + setmodel(Goal, Goal.mdl); + } + } +}; + +void(entity Goal) RestoreGoal = +{ + if (Goal.goal_state == 3) + { + if (Goal.search_time == TF_FLARE_LIT) + { + Goal.solid = TF_FLARE_OFF; + } + else + { + Goal.nextthink = time + Goal.search_time; + } + Goal.goal_state = 2; + if (Goal.mdl != string_null) + { + setmodel(Goal, Goal.old_model); + } + } +}; + +void(entity Goal) RemoveGoal = +{ + Goal.solid = TF_FLARE_LIT; + Goal.goal_state = 3; + if (Goal.mdl != string_null) + { + Goal.old_model = Goal.mdl; + setmodel(Goal, string_null); + } +}; + +float(entity Goal, entity Player, entity AP) IsAffectedBy = +{ + local float genv; + if (Player.playerclass == TF_FLARE_LIT) + { + return TF_FLARE_LIT; + } + if (Goal.goal_effects & 32) + { + genv = pointcontents(Goal.origin); + if (pointcontents(Player.origin) != genv) + { + return TF_FLARE_LIT; + } + } + if (Goal.t_length != TF_FLARE_LIT) + { + if (vlen(Goal.origin - Player.origin) <= Goal.t_length) + { + if (Goal.goal_effects & 16) + { + traceline(Goal.origin, Player.origin, TF_FLARE_OFF, Goal); + if (trace_fraction == TF_FLARE_OFF) + { + return TF_FLARE_OFF; + } + } + else + { + return TF_FLARE_OFF; + } + } + } + if (Goal.classname != "info_tfgoal_timer") + { + if (Goal.goal_effects & TF_FLARE_OFF && Player == AP) + { + return TF_FLARE_OFF; + } + if (Goal.goal_effects & 2 && AP.team_no == Player.team_no) + { + return TF_FLARE_OFF; + } + if (Goal.goal_effects & 4 && AP.team_no != Player.team_no) + { + return TF_FLARE_OFF; + } + if (Goal.goal_effects & 8 && Player != AP) + { + return TF_FLARE_OFF; + } + } + if (Goal.maxammo_shells != TF_FLARE_LIT && Player.team_no == Goal.maxammo_shells) + { + return TF_FLARE_OFF; + } + if (Goal.maxammo_nails != TF_FLARE_LIT && Player.team_no != Goal.maxammo_shells) + { + return TF_FLARE_OFF; + } + return TF_FLARE_LIT; +}; + +void(entity Goal, entity Player, entity AP, float addb) Apply_Results = +{ + local entity oldself; + local entity te; + local entity oldte; + local float oa; + stuffcmd(Player, "bf\n"); + if (Goal.classname == "item_tfgoal") + { + Player.item_list = Player.item_list | Goal.item_list; + } + if (Player == AP) + { + if (Goal.count != TF_FLARE_LIT) + { + if (Player.team_no > TF_FLARE_LIT) + { + TeamFortress_TeamIncreaseScore(Player.team_no, Goal.count); + TeamFortress_TeamShowScores(2); + } + } + } + if (addb) + { + if (Player.health > TF_FLARE_LIT) + { + if (Goal.health > TF_FLARE_LIT) + { + T_Heal(Player, Goal.health, TF_FLARE_LIT); + } + if (Goal.health < TF_FLARE_LIT) + { + if (TF_FLARE_LIT - Player.health > Goal.health) + { + Player.armorvalue = TF_FLARE_LIT; + T_Damage(Player, Goal, Goal, Player.health + TF_FLARE_OFF); + } + else + { + oa = Player.armorvalue; + Player.armorvalue = TF_FLARE_LIT; + T_Damage(Player, Goal, Goal, TF_FLARE_LIT - Goal.health); + Player.armorvalue = oa; + } + } + } + if (Player.health > TF_FLARE_LIT) + { + if (Goal.armortype) + { + Player.armortype = Goal.armortype; + } + Player.armorvalue = Player.armorvalue + Goal.armorvalue; + if (Goal.armorclass) + { + Player.armorclass = Goal.armorclass; + } + if (Goal.gravity > TF_FLARE_LIT) + { + Player.gravity = Goal.gravity; + } + Player.ammo_shells = Player.ammo_shells + Goal.ammo_shells; + Player.ammo_nails = Player.ammo_nails + Goal.ammo_nails; + Player.ammo_rockets = Player.ammo_rockets + Goal.ammo_rockets; + Player.ammo_cells = Player.ammo_cells + Goal.ammo_cells; + Player.ammo_medikit = Player.ammo_medikit + Goal.ammo_medikit; + Player.ammo_detpack = Player.ammo_detpack + Goal.ammo_detpack; + Player.no_grenades_1 = Player.no_grenades_1 + Goal.no_grenades_1; + Player.no_grenades_2 = Player.no_grenades_2 + Goal.no_grenades_2; + if (Player.no_grenades_1 > 4) + { + Player.no_grenades_1 = 4; + } + if (Player.no_grenades_2 > 4) + { + Player.no_grenades_2 = 4; + } + if (Player.ammo_detpack > Player.maxammo_detpack) + { + Player.ammo_detpack = Player.maxammo_detpack; + } + if (Goal.invincible_finished > TF_FLARE_LIT) + { + Player.items = Player.items | 1048576; + Player.invincible_time = TF_FLARE_OFF; + Player.invincible_finished = time + Goal.invincible_finished; + if (Goal.classname == "item_tfgoal") + { + Player.tfstate = Player.tfstate | 32; + Player.invincible_finished = time + 666; + } + } + if (Goal.invisible_finished > TF_FLARE_LIT) + { + Player.items = Player.items | 524288; + Player.invisible_time = TF_FLARE_OFF; + Player.invisible_finished = time + Goal.invisible_finished; + if (Goal.classname == "item_tfgoal") + { + Player.tfstate = Player.tfstate | 64; + Player.invisible_finished = time + 666; + } + } + if (Goal.super_damage_finished > TF_FLARE_LIT) + { + Player.items = Player.items | 4194304; + Player.super_time = TF_FLARE_OFF; + Player.super_damage_finished = time + Goal.super_damage_finished; + if (Goal.classname == "item_tfgoal") + { + Player.tfstate = Player.tfstate | 128; + Player.super_damage_finished = time + 666; + } + } + if (Goal.radsuit_finished > TF_FLARE_LIT) + { + Player.items = Player.items | 2097152; + Player.rad_time = TF_FLARE_OFF; + Player.radsuit_finished = time + Goal.radsuit_finished; + if (Goal.classname == "item_tfgoal") + { + Player.tfstate = Player.tfstate | 256; + Player.radsuit_finished = time + 666; + } + } + } + Player.lives = Player.lives + Goal.lives; + Player.real_frags = Player.real_frags + Goal.frags; + if (!(toggleflags & 128)) + { + Player.frags = Player.real_frags; + } + + oldself = self; + self = Player; + TeamFortress_CheckClassStats(); + W_SetCurrentAmmo(); + self = oldself; + } + if (Player.playerclass == 8 && (Goal.goal_result & 16)) + { + self.immune_to_check = time + 4; + Spy_RemoveDisguise(Player); + } + if (Goal.items != TF_FLARE_LIT && Goal.classname != "item_tfgoal") + { + te = Finditem(Goal.items); + if (te) + { + tfgoalitem_GiveToPlayer(te, Player, Goal); + } + } + if (Goal.axhitme != TF_FLARE_LIT) + { + te = Finditem(Goal.axhitme); + if (te.owner == Player) + { + tfgoalitem_RemoveFromPlayer(te, Player, TF_FLARE_OFF); + } + } + if (Goal.remove_item_group != TF_FLARE_LIT) + { + te = find(world, classname, "item_tfgoal"); + while (te) + { + if (te.group_no == Goal.remove_item_group && te.owner == AP) + { + oldte = te; + te = find(te, classname, "item_tfgoal"); + tfgoalitem_RemoveFromPlayer(oldte, Player, TF_FLARE_OFF); + } + else + { + te = find(te, classname, "item_tfgoal"); + } + } + } + if (Goal.display_item_status1 != TF_FLARE_LIT) + { + te = Finditem(Goal.display_item_status1); + if (te) + { + DisplayItemStatus(Goal, Player, te); + } + else + { + sprint(Player, 2, "Item is missing.\n"); + } + } + if (Goal.display_item_status2 != TF_FLARE_LIT) + { + te = Finditem(Goal.display_item_status2); + if (te) + { + DisplayItemStatus(Goal, Player, te); + } + else + { + sprint(Player, 2, "Item is missing.\n"); + } + } + if (Goal.display_item_status3 != TF_FLARE_LIT) + { + te = Finditem(Goal.display_item_status3); + if (te) + { + DisplayItemStatus(Goal, Player, te); + } + else + { + sprint(Player, 2, "Item is missing.\n"); + } + } + if (Goal.display_item_status4 != TF_FLARE_LIT) + { + te = Finditem(Goal.display_item_status4); + if (te) + { + DisplayItemStatus(Goal, Player, te); + } + else + { + sprint(Player, 2, "Item is missing.\n"); + } + } + if (Player.autodiscard) + { + oldself = self; + self = Player; + TeamFortress_Discard (); + self = oldself; + } +}; + +void(entity Goal, entity Player) RemoveResults = +{ + local entity oldself; + local entity te; + local float puinvin; + local float puinvis; + local float puquad; + local float purad; + if (Goal.classname == "item_tfgoal") + { + if (!(Player.item_list & Goal.item_list)) + { + return; + } + if (Goal.goal_activation & 1024) + { + return; + } + Player.item_list = Player.item_list - (Player.item_list & Goal.item_list); + } + if (Goal.health > TF_FLARE_LIT) + { + TF_T_Damage(Player, Goal, Goal, Goal.health, TF_FLARE_OFF, TF_FLARE_LIT); + } + if (Goal.health < TF_FLARE_LIT) + { + T_Heal(Player, TF_FLARE_LIT - Goal.health, TF_FLARE_LIT); + } + Player.lives = Player.lives - Goal.lives; + Player.armortype = Player.armortype - Goal.armortype; + Player.armorvalue = Player.armorvalue - Goal.armorvalue; + Player.armorclass = Player.armorclass - (Player.armorclass & Goal.armorclass); + Player.real_frags = Player.real_frags - Goal.frags; + if (!(toggleflags & 128)) + { + Player.frags = Player.real_frags; + } + Player.ammo_shells = Player.ammo_shells - Goal.ammo_shells; + Player.ammo_nails = Player.ammo_nails - Goal.ammo_nails; + Player.ammo_rockets = Player.ammo_rockets - Goal.ammo_rockets; + Player.ammo_cells = Player.ammo_cells - Goal.ammo_cells; + Player.ammo_medikit = Player.ammo_medikit - Goal.ammo_medikit; + Player.ammo_detpack = Player.ammo_detpack - Goal.ammo_detpack; + Player.no_grenades_1 = Player.no_grenades_1 - Goal.no_grenades_1; + Player.no_grenades_2 = Player.no_grenades_2 - Goal.no_grenades_2; + puinvin = TF_FLARE_LIT; + puinvis = TF_FLARE_LIT; + puquad = TF_FLARE_LIT; + purad = TF_FLARE_LIT; + te = find(world, classname, "item_tfgoal"); + while (te) + { + if (te.owner == Player && te != Goal) + { + if (te.invincible_finished > TF_FLARE_LIT) + { + puinvin = TF_FLARE_OFF; + } + if (te.invisible_finished > TF_FLARE_LIT) + { + puinvis = TF_FLARE_OFF; + } + if (te.super_damage_finished > TF_FLARE_LIT) + { + puquad = TF_FLARE_OFF; + } + if (te.radsuit_finished > TF_FLARE_LIT) + { + purad = TF_FLARE_OFF; + } + } + te = find(te, classname, "item_tfgoal"); + } + if (Goal.invincible_finished > TF_FLARE_LIT && !puinvin) + { + Player.tfstate = Player.tfstate - (Player.tfstate & 32); + Player.items = Player.items | 1048576; + Player.invincible_time = TF_FLARE_OFF; + Player.invincible_finished = time + Goal.invincible_finished; + } + if (Goal.invisible_finished > TF_FLARE_LIT && !puinvis) + { + Player.tfstate = Player.tfstate - (Player.tfstate & 64); + Player.items = Player.items | 524288; + Player.invisible_time = TF_FLARE_OFF; + Player.invisible_finished = time + Goal.invisible_finished; + } + if (Goal.super_damage_finished > TF_FLARE_LIT && !puquad) + { + Player.tfstate = Player.tfstate - (Player.tfstate & 128); + Player.items = Player.items | 4194304; + Player.super_time = TF_FLARE_OFF; + Player.super_damage_finished = time + Goal.super_damage_finished; + } + if (Goal.radsuit_finished > TF_FLARE_LIT && !purad) + { + Player.tfstate = Player.tfstate - (Player.tfstate & 256); + Player.items = Player.items | 2097152; + Player.rad_time = TF_FLARE_OFF; + Player.radsuit_finished = time + Goal.radsuit_finished; + } + oldself = self; + self = Player; + TeamFortress_CheckClassStats(); + W_SetCurrentAmmo(); + self = oldself; +}; + +float(entity Goal, entity AP) APMeetsCriteria = +{ + local float gotone; + local entity te; + if (AP != world) + { + if (Goal.team_no) + { + if (Goal.team_no != AP.team_no) + { + return TF_FLARE_LIT; + } + } + if (Goal.playerclass) + { + if (Goal.playerclass != AP.playerclass) + { + return TF_FLARE_LIT; + } + } + if (Goal.items_allowed) + { + te = Finditem(Goal.items_allowed); + if (te.owner != AP) + { + return TF_FLARE_LIT; + } + } + } + if (Goal.if_goal_is_active) + { + te = Findgoal(Goal.if_goal_is_active); + if (te.goal_state != TF_FLARE_OFF) + { + return TF_FLARE_LIT; + } + } + if (Goal.if_goal_is_inactive) + { + te = Findgoal(Goal.if_goal_is_inactive); + if (te.goal_state != 2) + { + return TF_FLARE_LIT; + } + } + if (Goal.if_goal_is_removed) + { + te = Findgoal(Goal.if_goal_is_removed); + if (te.goal_state != 3) + { + return TF_FLARE_LIT; + } + } + if (Goal.if_group_is_active) + { + te = find(world, classname, "info_tfgoal"); + while (te) + { + if (te.group_no == Goal.if_group_is_active) + { + if (te.goal_state != TF_FLARE_OFF) + { + return TF_FLARE_LIT; + } + } + te = find(te, classname, "info_tfgoal"); + } + } + if (Goal.if_group_is_inactive) + { + te = find(world, classname, "info_tfgoal"); + while (te) + { + if (te.group_no == Goal.if_group_is_inactive) + { + if (te.goal_state != 2) + { + return TF_FLARE_LIT; + } + } + te = find(te, classname, "info_tfgoal"); + } + } + if (Goal.if_group_is_removed) + { + te = find(world, classname, "info_tfgoal"); + while (te) + { + if (te.group_no == Goal.if_group_is_removed) + { + if (te.goal_state != 3) + { + return TF_FLARE_LIT; + } + } + te = find(te, classname, "info_tfgoal"); + } + } + if (Goal.if_item_has_moved) + { + te = Finditem(Goal.if_item_has_moved); + if (te) + { + if (te.goal_state != TF_FLARE_OFF && te.origin == te.oldorigin) + { + return TF_FLARE_LIT; + } + } + } + if (Goal.if_item_hasnt_moved) + { + te = Finditem(Goal.if_item_hasnt_moved); + if (te) + { + if (te.goal_state == TF_FLARE_OFF || te.origin != te.oldorigin) + { + return TF_FLARE_LIT; + } + } + } + if (AP != world) + { + gotone = TF_FLARE_LIT; + if (Goal.has_item_from_group) + { + te = find(world, classname, "item_tfgoal"); + while (te != world && !gotone) + { + if (te.group_no == Goal.has_item_from_group && te.owner == AP) + { + gotone = TF_FLARE_OFF; + } + te = find(te, classname, "item_tfgoal"); + } + if (!gotone) + { + return TF_FLARE_LIT; + } + } + } + return TF_FLARE_OFF; +}; + +void(entity Goal) SetupRespawn = +{ + if (Goal.search_time != TF_FLARE_LIT) + { + InactivateGoal(Goal); + Goal.think = tfgoal_timer_tick; + Goal.nextthink = time + Goal.search_time; + return; + } + if (Goal.goal_result & TF_FLARE_OFF) + { + RemoveGoal(Goal); + return; + } + if (Goal.wait > TF_FLARE_LIT) + { + Goal.nextthink = time + Goal.wait; + Goal.think = DoRespawn; + return; + } + else + { + if (Goal.wait == -1) + { + return; + } + } + InactivateGoal(Goal); +}; + +void() DoRespawn = +{ + RestoreGoal(self); + InactivateGoal(self); +}; + +float(entity Goal, entity AP) Activated = +{ + local float APMet; + local float RevAct; + local float Act; + if (Goal.goal_state == TF_FLARE_OFF) + { + return TF_FLARE_LIT; + } + if (Goal.goal_state == 3) + { + return TF_FLARE_LIT; + } + if (Goal.goal_state == 4) + { + return TF_FLARE_LIT; + } + APMet = APMeetsCriteria(Goal, AP); + if (Goal.classname == "item_tfgoal") + { + RevAct = Goal.goal_activation & 64; + } + else + { + RevAct = Goal.goal_activation & 4; + } + Act = TF_FLARE_LIT; + if (APMet) + { + if (!RevAct) + { + Act = TF_FLARE_OFF; + } + } + else + { + if (RevAct) + { + Act = TF_FLARE_OFF; + } + } + return Act; +}; + +void(entity Goal, entity AP, entity ActivatingGoal) AttemptToActivate = +{ + local entity te; + if (Activated(Goal, AP)) + { + if (ActivatingGoal == Goal) + { + DoResults(Goal, AP, TF_FLARE_OFF); + } + else + { + if (ActivatingGoal != world) + { + DoResults(Goal, AP, ActivatingGoal.goal_result & 2); + } + else + { + DoResults(Goal, AP, TF_FLARE_LIT); + } + } + } + else + { + if (Goal.else_goal != TF_FLARE_LIT) + { + te = Findgoal(Goal.else_goal); + if (te) + { + AttemptToActivate(te, AP, ActivatingGoal); + } + } + } +}; + +void(entity Goal, entity AP) DoGoalWork = +{ + local entity te; + local entity RI; + if (Goal.activate_goal_no != TF_FLARE_LIT) + { + te = Findgoal(Goal.activate_goal_no); + if (te) + { + AttemptToActivate(te, AP, Goal); + } + } + if (Goal.inactivate_goal_no != TF_FLARE_LIT) + { + te = Findgoal(Goal.inactivate_goal_no); + if (te) + { + InactivateGoal(te); + } + } + if (Goal.restore_goal_no != TF_FLARE_LIT) + { + te = Findgoal(Goal.restore_goal_no); + if (te) + { + RestoreGoal(te); + } + } + if (Goal.remove_goal_no != TF_FLARE_LIT) + { + te = Findgoal(Goal.remove_goal_no); + if (te) + { + RemoveGoal(te); + } + } + if (Goal.return_item_no != TF_FLARE_LIT) + { + te = Finditem(Goal.return_item_no); + if (te) + { + if (te.goal_state == TF_FLARE_OFF) + { + tfgoalitem_RemoveFromPlayer(te, te.owner, TF_FLARE_OFF); + } + RI = spawn(); + RI.enemy = te; + RI.think = ReturnItem; + RI.nextthink = time + 0.1; + te.solid = TF_FLARE_LIT; + } + } + if (Goal.remove_spawnpoint != TF_FLARE_LIT) + { + te = Findteamspawn(Goal.remove_spawnpoint); + if (te) + { + te.goal_state = 3; + te.team_str_home = string_null; + } + } + if (Goal.restore_spawnpoint != TF_FLARE_LIT) + { + te = Findteamspawn(Goal.restore_spawnpoint); + if (te) + { + if (te.goal_state == 3) + { + te.goal_state = 2; + if (te.team_no == TF_FLARE_OFF) + { + te.team_str_home = "ts1"; + } + else + { + if (te.team_no == 2) + { + te.team_str_home = "ts2"; + } + else + { + if (te.team_no == 3) + { + te.team_str_home = "ts3"; + } + else + { + if (te.team_no == 4) + { + te.team_str_home = "ts4"; + } + } + } + } + } + } + } +}; + +void(entity Goal, entity AP) DoGroupWork = +{ + local string st; + local entity tg; + local float allset; + if (Goal.all_active != TF_FLARE_LIT) + { + if (Goal.last_impulse == TF_FLARE_LIT) + { + dprint("Goal "); + st = ftos(Goal.goal_no); + dprint(st); + dprint(" has a .all_active specified, but no .last_impulse\n"); + } + else + { + allset = TF_FLARE_OFF; + tg = find(world, classname, "info_tfgoal"); + while (tg) + { + if (tg.group_no == Goal.all_active) + { + if (tg.goal_state != TF_FLARE_OFF) + { + allset = TF_FLARE_LIT; + } + } + tg = find(tg, classname, "info_tfgoal"); + } + if (allset) + { + tg = Findgoal(Goal.last_impulse); + if (tg) + { + DoResults(tg, AP, Goal.goal_result & 2); + } + } + } + } + if (Goal.activate_group_no != TF_FLARE_LIT) + { + tg = find(world, classname, "info_tfgoal"); + while (tg) + { + if (tg.group_no == Goal.activate_group_no) + { + DoResults(tg, AP, TF_FLARE_LIT); + } + tg = find(tg, classname, "info_tfgoal"); + } + } + if (Goal.inactivate_group_no != TF_FLARE_LIT) + { + tg = find(world, classname, "info_tfgoal"); + while (tg) + { + if (tg.group_no == Goal.inactivate_group_no) + { + InactivateGoal(tg); + } + tg = find(tg, classname, "info_tfgoal"); + } + } + if (Goal.remove_group_no != TF_FLARE_LIT) + { + tg = find(world, classname, "info_tfgoal"); + while (tg) + { + if (tg.group_no == Goal.remove_group_no) + { + RemoveGoal(tg); + } + tg = find(tg, classname, "info_tfgoal"); + } + } + if (Goal.restore_group_no != TF_FLARE_LIT) + { + tg = find(world, classname, "info_tfgoal"); + while (tg) + { + if (tg.group_no == Goal.restore_group_no) + { + RestoreGoal(tg); + } + tg = find(tg, classname, "info_tfgoal"); + } + } + if (Goal.remove_spawngroup != TF_FLARE_LIT) + { + tg = find(world, classname, "info_player_teamspawn"); + while (tg) + { + if (tg.group_no == Goal.remove_spawngroup) + { + tg.goal_state = 3; + tg.team_str_home = string_null; + } + tg = find(tg, classname, "info_player_teamspawn"); + } + } + if (Goal.restore_spawngroup != TF_FLARE_LIT) + { + tg = find(world, classname, "info_player_teamspawn"); + while (tg) + { + if (tg.group_no == Goal.restore_spawngroup) + { + tg.goal_state = 2; + if (tg.team_no == TF_FLARE_OFF) + { + tg.team_str_home = "ts1"; + } + else + { + if (tg.team_no == 2) + { + tg.team_str_home = "ts2"; + } + else + { + if (tg.team_no == 3) + { + tg.team_str_home = "ts3"; + } + else + { + if (tg.team_no == 4) + { + tg.team_str_home = "ts4"; + } + } + } + } + } + tg = find(tg, classname, "info_player_teamspawn"); + } + } +}; + +void(entity Item, entity AP) DoItemGroupWork = +{ + local entity tg; + local entity carrier; + local float allcarried; + local string st; + allcarried = TF_FLARE_OFF; + if (Item.distance != TF_FLARE_LIT) + { + if (Item.pain_finished == TF_FLARE_LIT) + { + dprint("GoalItem "); + st = ftos(Item.goal_no); + dprint(st); + dprint(" has a .distance specified, but no .pain_finished\n"); + } + tg = find(world, classname, "item_tfgoal"); + while (tg) + { + if (tg.group_no == Item.distance) + { + if (tg.goal_state != TF_FLARE_OFF) + { + allcarried = TF_FLARE_LIT; + } + } + tg = find(tg, classname, "item_tfgoal"); + } + if (allcarried == TF_FLARE_OFF) + { + tg = Findgoal(Item.pain_finished); + if (tg) + { + DoResults(tg, AP, Item.goal_result & 2); + } + } + } + allcarried = TF_FLARE_OFF; + if (Item.speed != TF_FLARE_LIT) + { + if (Item.attack_finished == TF_FLARE_LIT) + { + dprint("GoalItem "); + st = ftos(Item.goal_no); + dprint(st); + dprint(" has a .speed specified, but no .attack_finished\n"); + } + carrier = world; + tg = find(world, classname, "item_tfgoal"); + while (tg) + { + if (tg.group_no == Item.speed) + { + if (tg.goal_state != TF_FLARE_OFF) + { + allcarried = TF_FLARE_LIT; + } + else + { + if (carrier == world) + { + carrier = tg.owner; + } + else + { + if (carrier != tg.owner) + { + allcarried = TF_FLARE_LIT; + } + } + } + } + tg = find(tg, classname, "item_tfgoal"); + } + if (allcarried == TF_FLARE_OFF) + { + tg = Findgoal(Item.attack_finished); + if (tg) + { + DoResults(tg, AP, Item.goal_result & 2); + } + } + } +}; + +void(entity Goal, entity AP) DoTriggerWork = +{ + local entity t; + if (Goal.killtarget) + { + t = world; + do + { + t = find(t, targetname, Goal.killtarget); + if (t != world) + { + remove(t); + } + } while (t != world); + } + if (Goal.target) + { + t = world; + activator = AP; + do + { + t = find(t, targetname, Goal.target); + if (t == world) + { + return; + } + stemp = self; + otemp = other; + self = t; + other = stemp; + if (self.use != SUB_Null) + { + if (self.use) + { + self.use(); + } + } + self = stemp; + other = otemp; + activator = AP; + } while (t != world); + } +}; + +void() DelayedResult = +{ + if (self.enemy.goal_state == 4) + { + DoResults(self.enemy, self.owner, self.weapon); + } + dremove(self); +}; + +void(entity Goal, entity AP, float addb) DoResults = +{ + local entity te; + local float winners; + + if (Goal.goal_state == TF_FLARE_OFF) + { + return; + } + if (Goal.delay_time > TF_FLARE_LIT && Goal.goal_state != 4) + { + Goal.goal_state = 4; + te = spawn(); + te.think = DelayedResult; + te.nextthink = time + Goal.delay_time; + te.owner = AP; + te.enemy = Goal; + te.weapon = addb; + return; + } + UpdateAbbreviations(Goal); + Goal.goal_state = 2; + if (Goal.noise) + { + if (Goal.volume == TF_FLARE_OFF) + { + sound(other, 3, Goal.noise, TF_FLARE_OFF, TF_FLARE_LIT); + } + else + { + sound(other, 3, Goal.noise, TF_FLARE_OFF, TF_FLARE_OFF); + } + } + winners = TF_FLARE_LIT; + if (Goal.increase_team1 != TF_FLARE_LIT) + { + TeamFortress_TeamIncreaseScore(TF_FLARE_OFF, Goal.increase_team1); + winners = TF_FLARE_OFF; + } + if (Goal.increase_team2 != TF_FLARE_LIT) + { + TeamFortress_TeamIncreaseScore(2, Goal.increase_team2); + winners = TF_FLARE_OFF; + } + if (Goal.increase_team3 != TF_FLARE_LIT) + { + TeamFortress_TeamIncreaseScore(3, Goal.increase_team3); + winners = TF_FLARE_OFF; + } + if (Goal.increase_team4 != TF_FLARE_LIT) + { + TeamFortress_TeamIncreaseScore(4, Goal.increase_team4); + winners = TF_FLARE_OFF; + } + if (winners == TF_FLARE_OFF) + { + TeamFortress_TeamShowScores(2); + } + te = find(world, classname, "player"); + while (te != world) + { + if (Goal.broadcast != string_null && CTF_Map == TF_FLARE_LIT) + { + CenterPrint2(te, "\n\n\n", Goal.broadcast); + } + if (Goal.netname_broadcast != string_null && CTF_Map == TF_FLARE_LIT) + { + sprint(te, 2, AP.netname); + sprint(te, 2, Goal.netname_broadcast); + } + if (AP == te) + { + if (Goal.message != string_null) + { + CenterPrint2(te, Goal.message, AP.netname); + } + } + else + { + if (AP.team_no == te.team_no) + { + if (Goal.owners_team_broadcast != string_null && te.team_no == Goal.owned_by) + { + CenterPrint2(te, Goal.owners_team_broadcast, AP.netname); + } + else + { + if (Goal.team_broadcast != string_null) + { + CenterPrint2(te, Goal.team_broadcast, AP.netname); + } + } + if (Goal.netname_owners_team_broadcast != string_null && te.team_no == Goal.owned_by) + { + sprint(te, 2, AP.netname); + sprint(te, 2, Goal.netname_owners_team_broadcast); + } + else + { + if (Goal.netname_team_broadcast != string_null) + { + sprint(te, 2, AP.netname); + sprint(te, 2, Goal.netname_team_broadcast); + } + } + } + else + { + if (Goal.owners_team_broadcast != string_null && te.team_no == Goal.owned_by) + { + CenterPrint2(te, Goal.owners_team_broadcast, AP.netname); + } + else + { + if (Goal.non_team_broadcast != string_null) + { + CenterPrint2(te, Goal.non_team_broadcast, AP.netname); + } + } + if (Goal.netname_owners_team_broadcast != string_null && te.team_no == Goal.owned_by) + { + sprint(te, 2, AP.netname); + sprint(te, 2, Goal.netname_owners_team_broadcast); + } + else + { + if (Goal.netname_non_team_broadcast != string_null) + { + sprint(te, 2, AP.netname); + sprint(te, 2, Goal.netname_non_team_broadcast); + } + } + } + } + if (IsAffectedBy(Goal, te, AP)) + { + if (Goal.search_time != TF_FLARE_LIT && (Goal.goal_effects & 64)) + { + if (APMeetsCriteria(Goal, te)) + { + Apply_Results(Goal, te, AP, addb); + } + } + else + { + Apply_Results(Goal, te, AP, addb); + } + } + te = find(te, classname, "player"); + } + if (Goal.classname != "item_tfgoal") + { + Goal.goal_state = TF_FLARE_OFF; + } + if (Goal.goal_result & 4) + { + TeamFortress_TeamShowScores(TF_FLARE_OFF); + winners = TeamFortress_TeamGetWinner(); + te = find(world, classname, "player"); + while (te) + { + te.takedamage = TF_FLARE_LIT; + te.movetype = TF_FLARE_LIT; + te.velocity = '0 0 0'; + te.avelocity = '0 0 0'; + te = find(te, classname, "player"); + } + te = spawn(); + te.nextthink = time + 5; + te.think = execute_changelevel; + dremove(Goal); + return; + } + + DoGroupWork(Goal, AP); + DoGoalWork(Goal, AP); + DoTriggerWork(Goal, AP); + if (Goal.classname == "info_tfgoal") + { + SetupRespawn(Goal); + } +}; + +void() tfgoal_touch = +{ + if (!(self.goal_activation & TF_FLARE_OFF)) + { + return; + } + if (other.classname != "player") + { + return; + } + if (self.goal_state == TF_FLARE_OFF) + { + return; + } + AttemptToActivate(self, other, self); +}; + +void() info_tfgoal_use = +{ + AttemptToActivate(self, activator, self); +}; + +void() tfgoal_timer_tick = +{ + if (self.goal_state != 3) + { + if (APMeetsCriteria(self, world)) + { + DoResults(self, world, TF_FLARE_OFF); + } + else + { + InactivateGoal(self); + self.think = tfgoal_timer_tick; + self.nextthink = time + self.search_time; + } + } +}; + +void() item_tfgoal_touch = +{ + local entity te; + if (other.classname != "player") + { + return; + } + if (other.health <= TF_FLARE_LIT) + { + return; + } + if (other.is_feigning) // TF 2.9'd! + return; + // for flag dropping + if ( (self.tent == other) && (time < self.option5) ) + { + return; + } + if (Activated(self, other)) + { + tfgoalitem_GiveToPlayer(self, other, self); + self.goal_state = TF_FLARE_OFF; + } + else + { + if (self.else_goal != TF_FLARE_LIT) + { + te = Findgoal(self.else_goal); + if (te) + { + AttemptToActivate(te, other, self); + } + } + } +}; + +void(entity Item, entity AP, entity Goal) tfgoalitem_GiveToPlayer = +{ + Item.owner = AP; + if (Item.mdl != string_null) + { + setmodel(Item, string_null); + } + Item.solid = TF_FLARE_LIT; + if (Item.goal_activation & TF_FLARE_OFF) + { + AP.effects = AP.effects | 8; + } + if (Item.goal_activation & 2) + { + TeamFortress_SetSpeed(AP); + } + if (Item.goal_activation & 512) + { + Item.effects = Item.effects - (Item.effects | 8); + } + if (Item.items & 131072) + { + AP.items = AP.items | 131072; + AP.effects = AP.effects | 64; + newmis = spawn(); + newmis.owner = AP; + newmis.movetype = 4; + newmis.solid = TF_FLARE_LIT; + setsize(newmis, '0 0 0', '0 0 0'); + newmis.angles = AP.angles; + newmis.nextthink = time + 0.5; + newmis.think = MoveFlag; + newmis.skin = TF_FLARE_OFF; + setmodel(newmis, "progs/tf_flag.mdl"); + setorigin(newmis, AP.origin); + } + if (Item.items & 262144) + { + AP.items = AP.items | 262144; + AP.effects = AP.effects | 128; + newmis = spawn(); + newmis.owner = AP; + newmis.movetype = 4; + newmis.solid = TF_FLARE_LIT; + setsize(newmis, '0 0 0', '0 0 0'); + newmis.angles = AP.angles; + newmis.nextthink = time + 0.5; + newmis.think = MoveFlag; + newmis.skin = 2; + setmodel(newmis, "progs/tf_flag.mdl"); + setorigin(newmis, AP.origin); + } + if (Goal != Item) + { + if (Goal.goal_result & 8) + { + Item.goal_state = TF_FLARE_OFF; + return; + } + } + if (AP.playerclass == 8 && (Item.goal_result & 16)) + { + AP.is_unabletospy = TF_FLARE_OFF; + } + DoResults(Item, AP, TF_FLARE_OFF); + DoItemGroupWork(Item, AP); +}; + +void() ReturnItem = +{ + self.enemy.goal_state = 2; + self.enemy.solid = TF_FLARE_OFF; + self.enemy.movetype = TF_FLARE_LIT; + self.enemy.touch = item_tfgoal_touch; + self.enemy.origin = self.enemy.oldorigin; + if (self.enemy.mdl != string_null) + { + setmodel(self.enemy, self.enemy.mdl); + } + setorigin(self.enemy, self.enemy.origin); + sound(self.enemy, 2, "items/itembk2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + tfgoalitem_checkgoalreturn(self.enemy); + dremove(self); +}; + +#ifdef clan_progs +void (entity Item, entity AP, float method) tfgoalitem_RemoveFromPlayer = +{ + local entity te; + local float lighton; + local float slowon; + local float key1on; + local float key2on; + local float spyoff; + local entity DelayReturn; + + if (Item == world) { + objerror ("error: tfgoalitem_RemoveFromPlayer(): Item == world"); + return; + } + lighton = 0; + slowon = 0; + key1on = 0; + key2on = 0; + spyoff = 0; + + te = find (world, classname, "item_tfgoal"); + while (te) { + if ((te.owner == AP) && (te != Item)) { + if (te.goal_activation & 1) + lighton = 1; + + if (te.goal_activation & 2) + slowon = 1; + + if (te.items & 131072) + key1on = 1; + + if (te.items & 262144) + key2on = 1; + + if (te.goal_result & 16) + spyoff = 1; + } + te = find (te, classname, "item_tfgoal"); + } + if (!lighton) { + if (AP.invincible_finished > (time + 3)) { + lighton = 1; + } else if (AP.super_damage_finished > (time + 3)) { + lighton = 1; + } + } + if (!lighton) { + AP.effects = AP.effects - (AP.effects & 8); + AP.effects = AP.effects - (AP.effects & 64); + AP.effects = AP.effects - (AP.effects & 128); + } + if (Item.goal_activation & 512) + Item.effects = Item.effects | 8; + + if (!spyoff) + AP.is_unabletospy = 0; + + if (!key1on) + AP.items = AP.items - (AP.items & 131072); + + if (!key2on) + AP.items = AP.items - (AP.items & 262144); + + te = find (world, classname, "player"); + while (te != world) { + if (IsAffectedBy (Item, te, AP)) + RemoveResults (Item, te); + te = find (te, classname, "player"); + } + if ((method == 0) || (method == 2)) { + te = find (world, classname, "player"); + while (te != world) { + if (te.team_no == Item.owned_by) { + if (Item.team_drop != string_null) + CenterPrint2 (te, "\n\n\n", Item.team_drop); + + if (Item.netname_team_drop != string_null) { + sprint (te, 2, AP.netname, Item.netname_team_drop); + } + } else { + if (Item.non_team_drop != string_null) + CenterPrint2 (te, "\n\n\n", Item.non_team_drop); + + if (Item.netname_non_team_drop != string_null) { + sprint (te, 2, AP.netname, Item.netname_non_team_drop); + } + } + te = find (te, classname, "player"); + } + if (Item.goal_activation & 8) { + DelayReturn = spawn (); + DelayReturn.enemy = Item; + if (method == 0) { + DelayReturn.weapon = 0; + } else { + DelayReturn.weapon = 1; + } + DelayReturn.think = ReturnItem; + DelayReturn.nextthink = time + 0.5; + } else { + if (Item.goal_activation & 4) { + if ((method == 2) /*&& (Item.goal_activation & 4096)*/) { + tfgoalitem_drop (Item, 1, AP); + } else { + tfgoalitem_drop (Item, 0, AP); + } + } else { + Item.owner = world; + dremove (Item); + TeamFortress_SetSpeed (AP); + return; + } + } + Item.owner = world; + Item.flags = Item.flags - (Item.flags & 512); +// setsize (Item, Item.goal_min, Item.goal_max); + setsize(Item, '-16 -16 0', '16 16 56'); // mtf size + TeamFortress_SetSpeed (AP); + return; + } else { + if (method == 1) { + if (Item.goal_activation & 16) { + DelayReturn = spawn (); + DelayReturn.enemy = Item; + DelayReturn.weapon = 2; + DelayReturn.think = ReturnItem; + DelayReturn.nextthink = time + 0.5; + Item.owner = world; + TeamFortress_SetSpeed (AP); + return; + } + Item.solid = 0; + Item.owner = world; + TeamFortress_SetSpeed (AP); + return; + } + } + objerror ("Invalid method passed into tfgoalitem_RemoveFromPlayer\n"); +}; +#else +void(entity Item, entity AP, float method) tfgoalitem_RemoveFromPlayer = +{ + local entity te; + local float lighton; + local float slowon; + local float key1on; + local float key2on; + local float spyoff; + local entity DelayReturn; + if (Item == world) + { + dprint("error: tfgoalitem_RemoveFromPlayer(): Item == world"); + return; + } + lighton = TF_FLARE_LIT; + slowon = TF_FLARE_LIT; + key1on = TF_FLARE_LIT; + key2on = TF_FLARE_LIT; + spyoff = TF_FLARE_LIT; + te = find(world, classname, "item_tfgoal"); + while (te) + { + if (te.owner == AP && te != Item) + { + if (te.goal_activation & TF_FLARE_OFF) + { + lighton = TF_FLARE_OFF; + } + if (te.goal_activation & 2) + { + slowon = TF_FLARE_OFF; + } + if (te.items & 131072) + { + key1on = TF_FLARE_OFF; + } + if (te.items & 262144) + { + key2on = TF_FLARE_OFF; + } + if (te.goal_result & 16) + { + spyoff = TF_FLARE_OFF; + } + } + te = find(te, classname, "item_tfgoal"); + } + if (!lighton) + { + if (AP.invincible_finished > time + 3) + { + lighton = TF_FLARE_OFF; + } + } + if (!lighton) + { + AP.effects = AP.effects - (AP.effects & 8); + } + if (Item.goal_activation & 512) + { + Item.effects = Item.effects | 8; + } + if (!spyoff) + { + AP.is_unabletospy = TF_FLARE_LIT; + } + if (!key1on) + { + AP.items = AP.items - (AP.items & 131072); + } + if (!key2on) + { + AP.items = AP.items - (AP.items & 262144); + } + te = find(world, classname, "player"); + while (te != world) + { + if (IsAffectedBy(Item, te, AP)) + { + RemoveResults(Item, te); + } + te = find(te, classname, "player"); + } + if ((method == TF_FLARE_LIT) || (method == 2)) + { + te = find(world, classname, "player"); + while (te != world) + { + if (te.team_no == Item.owned_by) + { + if (Item.team_drop != string_null) + { + CenterPrint2(te, "\n\n\n", Item.team_drop); + } + if (Item.netname_team_drop != string_null) + { + sprint(te, 2, AP.netname); + sprint(te, 2, Item.netname_team_drop); + } + } + else + { + if (Item.non_team_drop != string_null) + { + CenterPrint2(te, "\n\n\n", Item.non_team_drop); + } + if (Item.netname_non_team_drop != string_null) + { + sprint(te, 2, AP.netname); + sprint(te, 2, Item.netname_non_team_drop); + } + } + te = find(te, classname, "player"); + } + if (Item.goal_activation & 8) + { + DelayReturn = spawn(); + DelayReturn.enemy = Item; + DelayReturn.think = ReturnItem; + DelayReturn.nextthink = time + 0.5; + } + else + { + if (Item.goal_activation & 4) + { + if (method == 0) + tfgoalitem_drop(Item); + } + else + { + Item.owner = world; + dremove(Item); + TeamFortress_SetSpeed(AP); + return; + } + } + Item.owner = world; + TeamFortress_SetSpeed(AP); + return; + } + if (method == TF_FLARE_OFF) + { + if (Item.goal_activation & 16) + { + DelayReturn = spawn(); + DelayReturn.enemy = Item; + DelayReturn.think = ReturnItem; + DelayReturn.nextthink = time + 0.5; + Item.owner = world; + TeamFortress_SetSpeed(AP); + return; + } + Item.solid = TF_FLARE_LIT; + Item.owner = world; + TeamFortress_SetSpeed(AP); + return; + } + + dprint("Invalid method passed into tfgoalitem_RemoveFromPlayer\n"); +}; +#endif + +void() tfgoalitem_dropthink = +{ + local float pos; + if (self.userid == 1) + self.movetype = 6; + else + self.movetype = 10; //6; + + if (self.pausetime != TF_FLARE_LIT) + { + pos = pointcontents(self.origin); + if (pos == -4) + { + self.nextthink = time + self.pausetime / 4; + } + else + { + if (pos == -5) + { + self.nextthink = time + 5; + } + else + { + if (pos == -2 || pos == -6) + { + self.nextthink = time + 2; + } + else + { + self.nextthink = time + self.pausetime; + } + } + } + self.think = tfgoalitem_remove; + } +}; + +#ifdef clan_progs +void () tfgoalitem_droptouch = +{ + self.touch = item_tfgoal_touch; +// self.nextthink = time + 4.25; + self.nextthink = time + .25; + self.think = tfgoalitem_dropthink; +}; +/* +void (entity Item, float PAlive, entity P) tfgoalitem_drop = +{ + Item.origin = Item.owner.origin; + setorigin (Item, Item.origin); + Item.camangle = Item.owner.origin - '0 0 8'; + Item.camdist = 0; + Item.velocity_z = 400; + Item.velocity_x = -50 + (random () * 100); + Item.velocity_y = -50 + (random () * 100); + Item.goal_state = 2; + Item.movetype = 6; + if (Item.goal_activation & 8192) { + Item.solid = 2; + } else { + Item.solid = 1; + } + if (Item.mdl != string_null) { + setmodel (Item, Item.mdl); + } + setsize (Item, Item.goal_min, Item.goal_max); + Item.owner = P; + if (PAlive == 1) { + makevectors (P.v_angle); + if (P.v_angle_x) { + Item.velocity = (v_forward * 400) + (v_up * 200); + } else { + Item.velocity = aim (P, 10000); + Item.velocity = Item.velocity * 400; + Item.velocity_z = 200; + } + Item.touch = SUB_Null; + Item.nextthink = time + 0.75; + Item.think = tfgoalitem_droptouch; + } else { + Item.touch = item_tfgoal_touch; + Item.nextthink = time + 5; + Item.think = tfgoalitem_dropthink; + } +}; +*/ + +void (entity Item, float PAlive, entity P) tfgoalitem_drop = +{ + Item.origin = Item.owner.origin; + setorigin (Item, Item.origin); + Item.camangle = Item.owner.origin - '0 0 8'; + Item.camdist = 0; + Item.velocity_z = 50; + Item.velocity_x = -50 + (random () * 100); + Item.velocity_y = -50 + (random () * 100); + Item.goal_state = 2; + Item.movetype = 6; + if (Item.goal_activation & 8192) { + Item.solid = 2; + } else { + Item.solid = 1; + } + if (Item.mdl != string_null) { + setmodel (Item, Item.mdl); + } + //setsize (Item, Item.goal_min, Item.goal_max); + setsize(Item, '-16 -16 0', '16 16 56'); // MTF size + Item.owner = P; + if (PAlive == 1) + { + setsize(Item, '-16 -16 0', '16 16 56'); + makevectors (P.v_angle); + if (P.v_angle_x) + { + Item.velocity = (v_forward * 400) + (v_up * 200); + } + else + { + Item.velocity = aim (P, 10000); + Item.velocity = Item.velocity * 400; + Item.velocity_z = 200; + } + Item.userid = 1; + Item.touch = SUB_Null; + Item.nextthink = time + 0.25; + Item.think = tfgoalitem_droptouch; + } + else + { + Item.touch = item_tfgoal_touch; + Item.nextthink = time + 5; + Item.think = tfgoalitem_dropthink; + } +}; +#else +void(entity Item) tfgoalitem_drop = +{ + Item.origin = Item.owner.origin - '0 0 8'; + //Item.velocity_z = 400; + //Item.velocity_x = -50 + random() * 100; + //Item.velocity_y = -50 + random() * 100; + Item.velocity_z = 1; + Item.velocity_x = 0; + Item.velocity_y = 0; + Item.goal_state = 2; + Item.movetype = 6; + Item.solid = TF_FLARE_OFF; + Item.touch = item_tfgoal_touch; + setorigin(Item, Item.origin - '0 0 16'); + setsize(Item, '-16 -16 0', '16 16 56'); + if (Item.mdl != string_null) + { + setmodel(Item, Item.mdl); + } + Item.nextthink = time + 5; + Item.think = tfgoalitem_dropthink; +}; +#endif + +void() tfgoalitem_remove = +{ + local entity te; + if (self.goal_state == TF_FLARE_OFF) + { + return; + } + if (self.goal_activation & 32) + { + self.solid = TF_FLARE_OFF; + self.touch = item_tfgoal_touch; + self.origin = self.oldorigin; + if (self.mdl != string_null) + { + setmodel(self, self.mdl); + } + setorigin(self, self.origin); + sound(self, 2, "items/itembk2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + tfgoalitem_checkgoalreturn(self); + if (self.noise3 != string_null || self.noise4 != string_null) + { + te = find(world, classname, "player"); + while (te) + { + if (te.team_no == self.owned_by) + { + CenterPrint2(te, "\n\n\n", self.noise3); + } + else + { + CenterPrint2(te, "\n\n\n", self.noise4); + } + te = find(te, classname, "player"); + } + } + return; + } + dremove(self); +}; + +void(entity Item) tfgoalitem_checkgoalreturn = +{ + local entity te; + if (Item.impulse != TF_FLARE_LIT) + { + te = Findgoal(Item.impulse); + if (te) + { + te = Findgoal(Item.impulse); + if (te) + { + AttemptToActivate(te, world, Item); + } + } + } +}; + +void(entity Goal, entity Player, entity Item) DisplayItemStatus = +{ + if (Item.goal_state == TF_FLARE_OFF) + { + if (Player.team_no == Item.owned_by) + { + sprint(Player, 2, Goal.team_str_carried); + } + else + { + sprint(Player, 2, Goal.non_team_str_carried); + } + sprint(Player, 2, " "); + if (Player == Item.owner) + { + sprint(Player, 2, " You"); + } + else + { + sprint(Player, 2, Item.owner.netname); + } + sprint(Player, 2, "."); + } + else + { + if (Item.origin != Item.oldorigin) + { + if (Player.team_no == Item.owned_by) + { + sprint(Player, 2, Goal.team_str_moved); + } + else + { + sprint(Player, 2, Goal.non_team_str_moved); + } + } + else + { + if (Player.team_no == Item.owned_by) + { + sprint(Player, 2, Goal.team_str_home); + } + else + { + sprint(Player, 2, Goal.non_team_str_home); + } + } + } + sprint(Player, 2, "\n"); +}; + +void() info_player_team1 = +{ + CTF_Map = TF_FLARE_OFF; + self.classname = "info_player_teamspawn"; + self.team_no = 2; + self.goal_effects = TF_FLARE_OFF; + self.team_str_home = "ts2"; +}; + +void() info_player_team2 = +{ + CTF_Map = TF_FLARE_OFF; + self.classname = "info_player_teamspawn"; + self.team_no = TF_FLARE_OFF; + self.goal_effects = TF_FLARE_OFF; + self.team_str_home = "ts1"; +}; + +void() item_flag_team2 = +{ + local entity dp; + CTF_Map = TF_FLARE_OFF; + precache_model("progs/w_s_key.mdl"); + precache_sound("ogre/ogwake.wav"); + precache_sound("boss2/pop2.wav"); + self.classname = "item_tfgoal"; + self.netname = "Team 1 Flag"; + self.broadcast = " ÇÏÔ the enemy team's flag!\n"; + self.deathtype = "You've got the enemy flag!\n"; + self.noise = "ogre/ogwake.wav"; + self.mdl = "progs/tf_flag.mdl"; + self.skin = TF_FLARE_LIT; + setmodel(self, self.mdl); + self.goal_no = TF_FLARE_OFF; + self.goal_activation = TF_FLARE_OFF | 4 | 128 | 32 | 16 | 512; + self.goal_effects = TF_FLARE_OFF; + self.pausetime = 128; + setsize(self, '-16 -16 -24', '16 16 32'); + self.touch = item_tfgoal_touch; + self.goal_state = 2; + self.solid = TF_FLARE_OFF; + setorigin(self, self.origin); + self.nextthink = time + 0.2; + self.think = TF_PlaceItem; + dp = spawn(); + dp.origin = self.origin; + dp.classname = "info_tfgoal"; + dp.goal_activation = TF_FLARE_OFF; + dp.team_no = TF_FLARE_OFF; + dp.items_allowed = 2; + dp.goal_no = 3; + dp.goal_effects = 3; + dp.broadcast = " ÃÁÐÔÕÒÅÄ the enemy flag!\n"; + dp.message = "You ÃÁÐÔÕÒÅÄ the enemy flag!\n"; + dp.noise = "boss2/pop2.wav"; + dp.goal_result = 2; + dp.activate_goal_no = 5; + dp.axhitme = 2; + dp.count = 10; + dp.frags = 10; + dp.solid = TF_FLARE_OFF; + dp.goal_state = 2; + setsize(dp, '-16 -16 -24', '16 16 32'); + dp.nextthink = time + 0.2; + dp.think = TF_PlaceGoal; + dp = spawn(); + dp.origin = dp.origin; + dp.classname = "info_tfgoal"; + dp.goal_effects = TF_FLARE_OFF; + dp.frags = 5; + dp.goal_activation = TF_FLARE_LIT; + dp.goal_no = 5; + dp.solid = TF_FLARE_LIT; + dp.goal_state = 2; + setsize(dp, '-16 -16 -24', '16 16 32'); + dp.nextthink = time + 0.2; + dp.think = TF_PlaceGoal; +}; + +void() item_flag_team1 = +{ + local entity dp; + CTF_Map = TF_FLARE_OFF; + precache_model("progs/tf_flag.mdl"); + precache_sound("ogre/ogwake.wav"); + precache_sound("boss2/pop2.wav"); + self.classname = "item_tfgoal"; + self.netname = "Team 2 Flag"; + self.broadcast = " ÇÏÔ the enemy team's flag!\n"; + self.deathtype = "You've got the enemy flag!\n"; + self.noise = "ogre/ogwake.wav"; + self.mdl = "progs/tf_flag.mdl"; + setmodel(self, self.mdl); + self.skin = TF_FLARE_OFF; + self.goal_no = 2; + self.goal_activation = TF_FLARE_OFF | 4 | 128 | 32 | 16 | 512; + self.goal_effects = TF_FLARE_OFF; + self.pausetime = 128; + setsize(self, '-16 -16 -24', '16 16 32'); + self.touch = item_tfgoal_touch; + self.goal_state = 2; + self.solid = TF_FLARE_OFF; + setorigin(self, self.origin); + self.nextthink = time + 0.2; + self.think = TF_PlaceItem; + dp = spawn(); + dp.origin = self.origin; + dp.classname = "info_tfgoal"; + dp.goal_activation = TF_FLARE_OFF; + dp.team_no = 2; + dp.items_allowed = TF_FLARE_OFF; + dp.goal_no = 4; + dp.goal_effects = 3; + dp.broadcast = " ÃÁÐÔÕÒÅÄ the enemy flag!\n"; + dp.message = "You ÃÁÐÔÕÒÅÄ the enemy flag!\n"; + dp.noise = "boss2/pop2.wav"; + dp.goal_result = 2; + dp.activate_goal_no = 6; + dp.axhitme = TF_FLARE_OFF; + dp.count = 10; + dp.frags = 10; + dp.solid = TF_FLARE_OFF; + dp.goal_state = 2; + setsize(dp, '-16 -16 -24', '16 16 32'); + dp.nextthink = time + 0.2; + dp.think = TF_PlaceGoal; + dp = spawn(); + dp.origin = dp.origin; + dp.classname = "info_tfgoal"; + dp.goal_effects = TF_FLARE_OFF; + dp.frags = 5; + dp.goal_activation = TF_FLARE_LIT; + dp.goal_no = 6; + dp.solid = TF_FLARE_LIT; + dp.goal_state = 2; + setsize(dp, '-16 -16 -24', '16 16 32'); + dp.nextthink = time + 0.2; + dp.think = TF_PlaceGoal; +}; + +void() CTF_FlagCheck = +{ + local entity te; + local float flagcount; + local float pos; + flagcount = TF_FLARE_LIT; + te = find(world, classname, "item_tfgoal"); + while (te != world) + { + if (te.goal_no == TF_FLARE_OFF) + { + pos = pointcontents(te.origin); + if (pos == -2 || pos == -6) + { + dprint("*****BUG*****\nFlag(s) outside world.\nPlease report this.\n"); + te.nextthink = time + 0.2; + te.think = tfgoalitem_remove; + } + flagcount = flagcount + TF_FLARE_OFF; + } + else + { + if (te.goal_no == 2) + { + pos = pointcontents(te.origin); + if (pos == -2 || pos == -6) + { + dprint("*****BUG*****\nFlag(s) outside world.\nPlease report this.\n"); + te.nextthink = time + 0.2; + te.think = tfgoalitem_remove; + } + flagcount = flagcount + TF_FLARE_OFF; + } + } + te = find(te, classname, "item_tfgoal"); + } + if (flagcount != 2) + { + dprint("*****BUG*****\nFlag(s) missing.\nPlease report this.\n"); + } + self.nextthink = time + 30; +}; + +#ifdef clan_progs +// tf 2.9 drop flag (throws) +void () DropGoalItems = +{ + local entity te; + + newmis = spawn (); + makevectors (self.v_angle); + v_forward = normalize (v_forward) * 64; + newmis.origin = self.origin + v_forward; + te = find (world, classname, "item_tfgoal"); + while (te) { + if (te.owner == self) + if (te.goal_activation & 4096 || te.owner == self) + tfgoalitem_RemoveFromPlayer (te, self, 2); + + te = find (te, classname, "item_tfgoal"); + } + dremove (newmis); +}; +#endif diff --git a/tforttm.pqc b/tforttm.pqc new file mode 100644 index 0000000..d655468 --- /dev/null +++ b/tforttm.pqc @@ -0,0 +1,1242 @@ +void (float tno) TeamFortress_TeamSetColor; +void (float tno,float scoretoadd) TeamFortress_TeamIncreaseScore; +float (float tno) TeamFortress_TeamGetLives; +float (float tno) TeamFortress_TeamGetMaxPlayers; +string (float tno) TeamFortress_TeamGetColorString; +float (float tno) TeamFortress_TeamGetIllegalClasses; +float quadscore; + +// pablo. get score. +float (float tno) TeamFortress_GetRealScore = +{ + local entity te; + local float total; + + te = find (world, classname, "player"); + while (te) + { + if (te.team_no == tno) + { + total = total + te.real_frags; + } + te = find (te, classname, "player"); + } + return total; +} +// + +float() TeamFortress_TeamPutPlayerInTeam = +{ + local float i; + local float j; + local float score1; + local float score2; + + local float lowest; + local float likely_team; + + i = 1; + likely_team = random() * number_of_teams; + likely_team = ceil(likely_team); + if (likely_team == 0) + { + likely_team = number_of_teams; + } + + lowest = 33; + while (i < number_of_teams + 1) + { + j = TeamFortress_TeamGetNoPlayers(i); + + if (j < lowest) + { + if (TeamFortress_TeamGetMaxPlayers(i) > j) + { + lowest = j; + likely_team = i; + } + } + // pablo. fancier autoteam for even teams. + else if (j == lowest) + { + + if (TeamFortress_TeamGetMaxPlayers(i) > j) + { + score1 = TeamFortress_GetRealScore(i); + score2 = TeamFortress_GetRealScore(likely_team); + + if ( score1 < score2 ) + { + likely_team = i; + } + else if (score1 == score2) + { + if (random() > 0.5) + { + likely_team = i; + } + } + } + } + // + i = i + 1; + } + return TeamFortress_TeamSet(likely_team, 1); +}; + +float(float tno) TeamFortress_TeamGetColor = +{ + if (tno == TF_FLARE_OFF) + { + return 14; + } + if (tno == 2) + { + return 5; + } + if (tno == 3) + { + return 13; + } + if (tno == 4) + { + return 12; + } + return 0; +}; + +void(float tno) TeamFortress_TeamSetColor = +{ + if (tno == TF_FLARE_OFF) + { + team1col = 14; + return; + } + if (tno == 2) + { + team2col = 5; + return; + } + if (tno == 3) + { + team3col = 13; + return; + } + if (tno == 4) + { + team4col = 12; + return; + } +}; + +string(float tno) GetTeamName = +{ + local string st; + if (tno == TF_FLARE_OFF) + { + st = infokey(world, "team1"); + if (st == string_null) + { + st = infokey(world, "t1"); + } + if (st == string_null || st == "") + { + return "blue"; + } + } + else + { + if (tno == 2) + { + st = infokey(world, "team2"); + if (st == string_null) + { + st = infokey(world, "t2"); + } + if (st == string_null || st == "") + { + return "red"; + } + } + else + { + if (tno == 3) + { + st = infokey(world, "team3"); + if (st == string_null) + { + st = infokey(world, "t3"); + } + if (st == string_null || st == "") + { + return "yell"; + } + } + else + { + if (tno == 4) + { + st = infokey(world, "team4"); + if (st == string_null) + { + st = infokey(world, "t4"); + } + if (st == string_null || st == "") + { + return "gren"; + } + } + else + { + st = "\"\""; + } + } + } + } + return st; +}; + +void(entity p) SetTeamName = +{ + local string st; + stuffcmd(p, "team "); + st = GetTeamName(p.team_no); + stuffcmd(p, st); + stuffcmd(p, "\n"); +}; + +float (float tno, float autoteam) TeamFortress_TeamSet = +{ + local string st; + local float tc; + if (teamplay < TF_FLARE_OFF) + { + sprint(self, 2, "Teamplay is not On, so FortressTeams are inactive.\n"); + return 0; + } + if (tno > number_of_teams && number_of_teams != 0) + { + sprint(self, 2, "There can be only "); + st = ftos(number_of_teams); + sprint(self, 2, st); + sprint(self, 2, " teams on this map.\nTry again\n"); + return 0; + } + if (self.team_no > 0) + { + sprint(self, 2, "You're already in Team No "); + st = ftos(self.team_no); + sprint(self, 2, st); + sprint(self, 2, ".\n"); + return 0; + } + tc = TeamFortress_TeamGetNoPlayers(tno); + if (tc >= TeamFortress_TeamGetMaxPlayers(tno)) + { + sprint(self, 2, "That team is full. Pick another.\n"); + return 0; + } + if (TeamFortress_TeamGetColor(tno) == 0) + { + TeamFortress_TeamSetColor(tno); + if (TeamFortress_TeamGetColor(tno) == 0) + { + sprint(self, 2, "You can't start a new team with your color, since another "); + sprint(self, 2, "already using that color. Change your pants color, then try again.\n"); + return 0; + } + bprint(2, self.netname); + bprint(2, " has started Team No "); + st = ftos(tno); + bprint(2, st); + bprint(2, ".\n"); + self.immune_to_check = time + 10; + stuffcmd(self, "color "); + tc = TeamFortress_TeamGetColor(tno) - TF_FLARE_OFF; + st = ftos(tc); + stuffcmd(self, st); + stuffcmd(self, "\n"); + self.team_no = tno; + self.lives = TeamFortress_TeamGetLives(tno); + SetTeamName(self); + if (self.playerclass == 0) + { + if (TeamFortress_TeamIsCivilian(self.team_no)) + { + self.impulse = TF_FLARE_OFF; + TeamFortress_ChangeClass(); + } + } + return TF_FLARE_OFF; + } + + bprint (2, self.netname, " has joined Team No "); + st = ftos (tno); + if (autoteam == 1) + bprint (2, st, ". \s[auto]\s\n"); // brown auto with gold brackets [] + else + bprint (2, st, ".\n"); + + stuffcmd(self, "color "); + tc = TeamFortress_TeamGetColor(tno) - TF_FLARE_OFF; + st = ftos(tc); + stuffcmd(self, st); + stuffcmd(self, "\n"); + self.team_no = tno; + self.immune_to_check = time + 10; + self.lives = TeamFortress_TeamGetLives(tno); + TeamFortress_TeamShowMemberClasses(self); + SetTeamName(self); + if (self.playerclass == 0) + { + if (TeamFortress_TeamIsCivilian(self.team_no)) + { + self.impulse = TF_FLARE_OFF; + TeamFortress_ChangeClass(); + } + } + return TF_FLARE_OFF; +}; + +void() TeamFortress_CheckTeamCheats = +{ + local string st; + local string sk; + local float tc; + if (self.immune_to_check > time) + { + return; + } + if (self.deadflag) + { + return; + } + if (self.team_no > 0 && teamplay > 0) + { + st = infokey(self, "bottomcolor"); + tc = stof(st); + if (self.playerclass == 8 && self.undercover_team != 0) + { + if (TeamFortress_TeamGetColor(self.undercover_team) - TF_FLARE_OFF != tc) + { + stuffcmd(self, "color "); + tc = TeamFortress_TeamGetColor(self.undercover_team) - TF_FLARE_OFF; + st = ftos(tc); + stuffcmd(self, st); + stuffcmd(self, "\n"); + bprint2(TF_FLARE_OFF, self.netname, " has been kicked for changing color.\n"); + sprint(self, 2, "You have been kicked for changing your pants color. Don't do it.\n"); + stuffcmd(self, "disconnect\n"); + stuffcmd(self, "quit\n"); + return; + } + } + else + { + if (tc != TeamFortress_TeamGetColor(self.team_no) - TF_FLARE_OFF) + { + stuffcmd(self, "color "); + tc = TeamFortress_TeamGetColor(self.team_no) - TF_FLARE_OFF; + st = ftos(tc); + stuffcmd(self, st); + stuffcmd(self, "\n"); + bprint2(TF_FLARE_OFF, self.netname, " has been kicked for changing color.\n"); + sprint(self, 2, "You have been kicked for changing your pants color. Don't do it.\n"); + stuffcmd(self, "disconnect\n"); + stuffcmd(self, "quit\n"); + return; + } + } + if (self.playerclass != 0) + { + st = infokey(self, "skin"); + tc = 0; + if (self.playerclass == 8 && self.undercover_skin != 0) + { + tc = 8; + self.playerclass = self.undercover_skin; + } + if (self.playerclass == TF_FLARE_OFF) + { + sk = "airscout"; + } + else + { + if (self.playerclass == 2) + { + sk = "tf_snipe"; + } + else + { + if (self.playerclass == 3) + { + sk = "tf_sold"; + } + else + { + if (self.playerclass == 4) + { + sk = "tf_demo"; + } + else + { + if (self.playerclass == 5) + { + sk = "tf_medic"; + } + else + { + if (self.playerclass == 6) + { + sk = "tf_hwguy"; + } + else + { + if (self.playerclass == 7) + { + sk = "tf_pyro"; + } + else + { + if (self.playerclass == 8) + { + sk = "tf_spy"; + } + else + { + if (self.playerclass == 9) + { + sk = "tf_eng"; + } + else + { + if (tc == 8) + { + self.playerclass = 8; + } + return; + } + } + } + } + } + } + } + } + } + if (st != sk) + { + TeamFortress_SetSkin(self); + bprint2(TF_FLARE_OFF, self.netname, " has been kicked for changing skin.\n"); + sprint(self, 2, "You have been kicked for changing your skin. Don't do it.\n"); + stuffcmd(self, "disconnect\n"); + stuffcmd(self, "quit\n"); + return; + } + if (tc == 8) + { + self.playerclass = 8; + } + } + st = GetTeamName(self.team_no); + if (st != infokey(self, "team")) + { + SetTeamName(self); + bprint2(TF_FLARE_OFF, self.netname, " has been kicked for changing team.\n"); + sprint(self, 2, "You have been kicked for changing your team. Don't do it.\n"); + stuffcmd(self, "disconnect\n"); + stuffcmd(self, "quit\n"); + return; + } + } +}; + +void(float tno, float scoretoadd) TeamFortress_TeamIncreaseScore = +{ + local entity e; + if (tno == 0 || scoretoadd == 0) + { + return; + } + if (scoretoadd > 100) + { + scoretoadd = scoretoadd - 100; + scoretoadd = scoretoadd * -1; + } + if (tno == TF_FLARE_OFF) + { + team1score = team1score + scoretoadd; + } + if (tno == 2) + { + team2score = team2score + scoretoadd; + } + if (tno == 3) + { + team3score = team3score + scoretoadd; + } + if (tno == 4) + { + team4score = team4score + scoretoadd; + } + if (toggleflags & 128) + { + e = find(world, classname, "player"); + while (e) + { + if (e.team_no == tno) + { + e.frags = TeamFortress_TeamGetScore(tno); + } + e = find(e, classname, "player"); + } + } +}; + +float(float tno) TeamFortress_TeamGetScore = +{ + if (tno == TF_FLARE_OFF) + { + return team1score; + } + if (tno == 2) + { + return team2score; + } + if (tno == 3) + { + return team3score; + } + if (tno == 4) + { + return team4score; + } + return 0; +}; + +float(float tno) TeamFortress_TeamGetLives = +{ + if (tno == TF_FLARE_OFF) + { + return team1lives; + } + if (tno == 2) + { + return team2lives; + } + if (tno == 3) + { + return team3lives; + } + if (tno == 4) + { + return team4lives; + } + return 0; +}; + +float(float tno) TeamFortress_TeamGetNoPlayers = +{ + local float size_team; + local entity search; + search = find(world, classname, "player"); + while (search != world) + { + if (search.team_no == tno) + { + size_team = size_team + TF_FLARE_OFF; + } + search = find(search, classname, "player"); + } + return size_team; +}; + +float(float tno) TeamFortress_TeamGetMaxPlayers = +{ + if (tno == TF_FLARE_OFF) + { + return team1maxplayers; + } + if (tno == 2) + { + return team2maxplayers; + } + if (tno == 3) + { + return team3maxplayers; + } + if (tno == 4) + { + return team4maxplayers; + } + return 0; +}; + +float() TeamFortress_TeamGetWinner = +{ + local float i; + local float j; + local float highest; + local float highestteam; + i = TF_FLARE_OFF; + highest = -100; + highestteam = 0; + while (i < number_of_teams + TF_FLARE_OFF) + { + j = TeamFortress_TeamGetScore(i); + if (j > highest) + { + highest = j; + highestteam = i; + } + i = i + TF_FLARE_OFF; + } + return highestteam; +}; + +float() TeamFortress_TeamGetSecond = +{ + local float i; + local float j; + local float highest; + local float highestteam; + local float secondteam; + local float second; + i = TF_FLARE_OFF; + highestteam = TeamFortress_TeamGetWinner(); + highest = TeamFortress_TeamGetScore(highestteam); + secondteam = 0; + second = -100; + while (i < number_of_teams + TF_FLARE_OFF) + { + if (i != highestteam) + { + j = TeamFortress_TeamGetScore(i); + if (j <= highest && j > second) + { + second = j; + secondteam = i; + } + } + i = i + TF_FLARE_OFF; + } + return secondteam; +}; + +void (float all) TeamFortress_TeamShowScores = +{ + local string st; + local float i; + local float j; + local float _l_7158; + local float _l_7159; + + i = 1; + _l_7158 = 0; + _l_7159 = 0; + if ((all == 2)) + { + while ((i <= number_of_teams)) + { + if ((TeamFortress_TeamGetColor (i) > 0)) + { + j = TeamFortress_TeamGetScore (i); + st = TeamFortress_TeamGetColorString (i); + bprint (2, st); + bprint (2, ": "); + st = ftos (j); + bprint (2, st); + bprint (2, " "); + if ((j >= TeamFortress_TeamGetScore (_l_7158))) + { + _l_7159 = _l_7158; + _l_7158 = i; + } + else + { + if ((j >= TeamFortress_TeamGetScore (_l_7159))) + { + _l_7159 = i; + } + } + } + i = i + 1; + } + bprint (2, "\n"); + sound (world, 4, "misc/update.wav", 1, 0); + if ((quadscore > 0)) + { + if ((team1score > team2score)) + { + bprint (2, ""); + bprint (2, TeamFortress_TeamGetColorString (1)); + bprint (2, "‘ èáó ÷ïî ôèå íáôãè¡\n"); + execute_changelevel (); + return; + } + } +// Here begins that damn code which I couldn't figure out + if ((TeamFortress_TeamGetScore (_l_7158) != TeamFortress_TeamGetScore (_l_7159))) + { + local float fix1; + local float fix2; + local float totalf; + local string totals; + fix1 = ((TeamFortress_TeamGetScore (_l_7158))); + fix2 = ((TeamFortress_TeamGetScore (_l_7159))); + totalf = (fix1 - fix2); + totals = ftos (totalf); + if (totalf != 0) { + bprint (2, ""); + bprint (2, TeamFortress_TeamGetColorString (_l_7158)); + bprint (2, "‘ éó ìåáäéîç âù "); + bprint (2, totals); +// bprint (2, ftos ((TeamFortress_TeamGetScore (_l_7158) - TeamFortress_TeamGetScore (_l_7159)))); + bprint (2, "‘\n"); } + else + { + bprint (2, "Ôèå çáíå éó tied‘\n"); + } + } + else + { + bprint (2, "Ôèå çáíå éó tied‘\n"); + } + return; + } + while ((i <= number_of_teams)) + { + if ((TeamFortress_TeamGetColor (i) > 0)) + { + if (all) + { + bprint (2, "Team "); + } + else + { + sprint (self, 2, "Team "); + } + st = ftos (i); + if (all) + { + bprint (2, st); + } + else + { + sprint (self, 2, st); + } + if (all) + { + bprint (2, " ("); + } + else + { + sprint (self, 2, " ("); + } + st = TeamFortress_TeamGetColorString (i); + if (all) + { + bprint (2, st); + } + else + { + sprint (self, 2, st); + } + if (all) + { + bprint (2, ") : "); + } + else + { + sprint (self, 2, ") : "); + } + j = TeamFortress_TeamGetScore (i); + st = ftos (j); + if (all) + { + bprint (2, st); + } + else + { + sprint (self, 2, st); + } + if (all) + { + bprint (2, "\n"); + } + else + { + sprint (self, 2, "\n"); + } + } + i = i + 1; + } +}; + +string(float tno) TeamFortress_TeamGetColorString = +{ + local float col; + col = TeamFortress_TeamGetColor(tno); + if (col == TF_FLARE_OFF) + { + return "White"; + } + if (col == 2) + { + return "Brown"; + } + if (col == 3) + { + return "Blue"; + } + if (col == 4) + { + return "Green"; + } + if (col == 5) + { + return "Red"; + } + if (col == 6) + { + return "Tan"; + } + if (col == 7) + { + return "Pink"; + } + if (col == 8) + { + return "Orange"; + } + if (col == 9) + { + return "Purple"; + } + if (col == 10) + { + return "DarkPurple"; + } + if (col == 11) + { + return "Grey"; + } + if (col == 12) + { + return "DarkGreen"; + } + if (col == 13) + { + return "Yellow"; + } + return "DarkBlue"; +}; + +void(entity Player) TeamFortress_TeamShowMemberClasses = +{ + local entity e; + local float found; + found = 0; + e = find(world, classname, "player"); + while (e) + { + if (e.team_no == Player.team_no || e.team_no == 0 && e != Player) + { + if (e.model != string_null) + { + if (!found) + { + found = TF_FLARE_OFF; + sprint(self, 2, "The other members of your team are:\n"); + } + sprint(Player, 2, e.netname); + sprint(Player, 2, " : "); + TeamFortress_PrintClassName(Player, e.playerclass, e.tfstate & 8, 0); + } + } + e = find(e, classname, "player"); + } + if (!found) + { + sprint(Player, 2, "There are no other players on your team.\n"); + } +}; + +void() CalculateTeamEqualiser = +{ + local float t1; + local float t2; + local float t3; + local float t4; + local float t_ave; + local float calc; + team1advantage = TF_FLARE_OFF; + team2advantage = TF_FLARE_OFF; + team3advantage = TF_FLARE_OFF; + team4advantage = TF_FLARE_OFF; + if (number_of_teams < 2) + { + self.nextthink = time + 60; + return; + } + if (teamplay & 32) + { + t1 = TeamFortress_TeamGetNoPlayers(TF_FLARE_OFF); + t2 = TeamFortress_TeamGetNoPlayers(2); + t3 = TeamFortress_TeamGetNoPlayers(3); + t4 = TeamFortress_TeamGetNoPlayers(4); + if (t1 + t2 + t3 + t4 < TF_FLARE_OFF) + { + self.nextthink = time + 30; + return; + } + t_ave = (t1 + t2 + t3 + t4) / number_of_teams; + if (t1 > 0) + { + calc = t_ave / t1 - TF_FLARE_OFF; + if (calc != 0) + { + calc = calc / 3 + TF_FLARE_OFF; + } + else + { + calc = calc + TF_FLARE_OFF; + } + team1advantage = calc; + } + if (t2 > 0 && number_of_teams >= 2) + { + calc = t_ave / t2 - TF_FLARE_OFF; + if (calc != 0) + { + calc = calc / 3 + TF_FLARE_OFF; + } + else + { + calc = calc + TF_FLARE_OFF; + } + team2advantage = calc; + } + if (t3 > 0 && number_of_teams >= 3) + { + calc = t_ave / t3 - TF_FLARE_OFF; + if (calc != 0) + { + calc = calc / 3 + TF_FLARE_OFF; + } + else + { + calc = calc + TF_FLARE_OFF; + } + team3advantage = calc; + } + if (t4 > 0 && number_of_teams >= 4) + { + calc = t_ave / t4 - TF_FLARE_OFF; + if (calc != 0) + { + calc = calc / 3 + TF_FLARE_OFF; + } + else + { + calc = calc + TF_FLARE_OFF; + } + team4advantage = calc; + } + } + if (teamplay & 64) + { + t1 = team1score + 60; + if (number_of_teams >= 2) + { + t2 = team2score + 60; + } + else + { + t2 = 0; + } + if (number_of_teams >= 3) + { + t3 = team3score + 60; + } + else + { + t3 = 0; + } + if (number_of_teams >= 4) + { + t4 = team4score + 60; + } + else + { + t4 = 0; + } + t_ave = (t2 + t3 + t4) / (number_of_teams - TF_FLARE_OFF); + calc = t_ave / t1 - TF_FLARE_OFF; + if (calc != 0) + { + calc = calc / 3 + TF_FLARE_OFF; + } + else + { + calc = calc + TF_FLARE_OFF; + } + team1advantage = calc * team1advantage; + if (number_of_teams >= 2) + { + t_ave = (t1 + t3 + t4) / (number_of_teams - TF_FLARE_OFF); + calc = t_ave / t2 - TF_FLARE_OFF; + if (calc != 0) + { + calc = calc / 3 + TF_FLARE_OFF; + } + else + { + calc = calc + TF_FLARE_OFF; + } + team2advantage = calc * team2advantage; + } + if (number_of_teams >= 3) + { + t_ave = (t2 + t1 + t4) / (number_of_teams - TF_FLARE_OFF); + calc = t_ave / t3 - TF_FLARE_OFF; + if (calc != 0) + { + calc = calc / 3 + TF_FLARE_OFF; + } + else + { + calc = calc + TF_FLARE_OFF; + } + team3advantage = calc * team3advantage; + } + if (number_of_teams >= 4) + { + t_ave = (t2 + t3 + t1) / (number_of_teams - TF_FLARE_OFF); + calc = t_ave / t4 - TF_FLARE_OFF; + if (calc != 0) + { + calc = calc / 3 + TF_FLARE_OFF; + } + else + { + calc = calc + TF_FLARE_OFF; + } + team4advantage = calc * team4advantage; + } + } + self.nextthink = time + 10; +}; + +void() SetupTeamEqualiser = +{ + local entity TE; + team1advantage = TF_FLARE_OFF; + team2advantage = TF_FLARE_OFF; + team3advantage = TF_FLARE_OFF; + team4advantage = TF_FLARE_OFF; + if (!(teamplay & (32 | 64))) + { + return; + } + TE = spawn(); + TE.classname = "Team Equaliser"; + TE.think = CalculateTeamEqualiser; + TE.nextthink = time + 30; +}; + +float(entity targ, entity attacker, float damage) TeamEqualiseDamage = +{ + local float adv; + local float newdam; + if (targ.classname != "player" || attacker.classname != "player") + { + return damage; + } + if (targ.team_no == 0 || attacker.team_no == 0 || attacker.team_no == targ.team_no) + { + return damage; + } + if (attacker.team_no == TF_FLARE_OFF) + { + adv = team1advantage; + } + else + { + if (attacker.team_no == 2) + { + adv = team2advantage; + } + else + { + if (attacker.team_no == 3) + { + adv = team3advantage; + } + else + { + if (attacker.team_no == 4) + { + adv = team4advantage; + } + } + } + } + if (adv == 0) + { + dprint("There is a team with an advantage of 0\n"); + adv = 0.1; + } + newdam = damage * adv; + if (targ.team_no == TF_FLARE_OFF) + { + adv = team1advantage; + } + else + { + if (targ.team_no == 2) + { + adv = team2advantage; + } + else + { + if (targ.team_no == 3) + { + adv = team3advantage; + } + else + { + if (targ.team_no == 4) + { + adv = team4advantage; + } + } + } + } + if (adv == 0) + { + dprint("There is a team with an advantage of 0\n"); + adv = 0.1; + } + newdam = newdam * (TF_FLARE_OFF / adv); + return newdam; +}; + +void() TeamFortress_StatusQuery = +{ + local float ft; + local string st; + sprint(self, 2, "players per team: "); + ft = TeamFortress_TeamGetNoPlayers(TF_FLARE_OFF); + st = ftos(ft); + sprint(self, 2, st); + sprint(self, 2, " "); + ft = TeamFortress_TeamGetNoPlayers(2); + st = ftos(ft); + sprint(self, 2, st); + sprint(self, 2, " "); + ft = TeamFortress_TeamGetNoPlayers(3); + st = ftos(ft); + sprint(self, 2, st); + sprint(self, 2, " "); + ft = TeamFortress_TeamGetNoPlayers(4); + st = ftos(ft); + sprint(self, 2, st); + sprint(self, 2, "\n"); + sprint(self, 2, " equalisation: "); + st = ftos(team1advantage); + sprint(self, 2, st); + sprint(self, 2, " "); + st = ftos(team2advantage); + sprint(self, 2, st); + sprint(self, 2, " "); + st = ftos(team3advantage); + sprint(self, 2, st); + sprint(self, 2, " "); + st = ftos(team4advantage); + sprint(self, 2, st); + sprint(self, 2, "\n"); + st = ftos(teamplay); + sprint(self, 2, "Teamplay is "); + sprint(self, 2, st); + sprint(self, 2, "\n"); +}; + +float(float tno) TeamFortress_TeamGetIllegalClasses = +{ + if (tno == TF_FLARE_OFF) + { + return illegalclasses1; + } + if (tno == 2) + { + return illegalclasses2; + } + if (tno == 3) + { + return illegalclasses3; + } + if (tno == 4) + { + return illegalclasses4; + } + return 0; +}; + +float(float tno) TeamFortress_TeamIsCivilian = +{ + if (tno == TF_FLARE_OFF) + { + if (civilianteams & TF_FLARE_OFF) + { + return TF_FLARE_OFF; + } + } + else + { + if (tno == 2) + { + if (civilianteams & 2) + { + return TF_FLARE_OFF; + } + } + else + { + if (tno == 3) + { + if (civilianteams & 4) + { + return TF_FLARE_OFF; + } + } + else + { + if (civilianteams & 8) + { + return TF_FLARE_OFF; + } + } + } + } + return 0; +}; + +void(float tno, entity ignore, string st) teamsprint = +{ + local entity te; + if (tno == 0) + { + return; + } + te = find(world, classname, "player"); + while (te) + { + if (te.team_no == tno && te != ignore) + { + sprint(te, 2, st); + } + te = find(te, classname, "player"); + } +}; + diff --git a/triggers.pqc b/triggers.pqc new file mode 100644 index 0000000..0ddddee --- /dev/null +++ b/triggers.pqc @@ -0,0 +1,774 @@ +entity stemp, otemp, s, old; + +void() trigger_reactivate = +{ + self.solid = TF_FLARE_OFF; +}; + +void() multi_wait = +{ + if (self.max_health) + { + self.health = self.max_health; + self.takedamage = TF_FLARE_OFF; + self.solid = 2; + } +}; + +void() multi_trigger = +{ + if (self.nextthink > time) + { + return; + } + if (self.classname == "trigger_secret") + { + if (self.enemy.classname != "player") + { + return; + } + found_secrets = found_secrets + TF_FLARE_OFF; + WriteByte(2, 28); + } + if (self.noise) + { + sound(self, 2, self.noise, TF_FLARE_OFF, TF_FLARE_OFF); + } + self.takedamage = TF_FLARE_LIT; + activator = self.enemy; + SUB_UseTargets(); + if (self.wait > TF_FLARE_LIT) + { + self.think = multi_wait; + self.nextthink = time + self.wait; + } + else + { + self.touch = SUB_Null; + self.nextthink = time + 0.1; + self.think = SUB_Remove; + } +}; + +void() multi_killed = +{ + self.enemy = damage_attacker; + multi_trigger(); +}; + +void() multi_use = +{ + self.enemy = activator; + multi_trigger(); +}; + +void() multi_touch = +{ + local entity te; + if (other.classname != "player") + { + return; + } + if (!Activated(self, other)) + { + if (self.else_goal != TF_FLARE_LIT) + { + te = Findgoal(self.else_goal); + if (te) + { + DoResults(te, other, self.goal_result & 2); + } + } + return; + } + if (self.movedir != '0 0 0') + { + makevectors(other.angles); + if (v_forward * self.movedir < TF_FLARE_LIT) + { + return; + } + } + self.enemy = other; + multi_trigger(); +}; + +void() trigger_multiple = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (self.sounds == TF_FLARE_OFF) + { + precache_sound("misc/secret.wav"); + self.noise = "misc/secret.wav"; + } + else + { + if (self.sounds == 2) + { + precache_sound("misc/talk.wav"); + self.noise = "misc/talk.wav"; + } + else + { + if (self.sounds == 3) + { + precache_sound("misc/trigger1.wav"); + self.noise = "misc/trigger1.wav"; + } + } + } + if (!(self.wait)) + { + self.wait = 0.2; + } + self.use = multi_use; + InitTrigger(); + if (self.health) + { + if (self.spawnflags & TF_FLARE_OFF) + { + objerror("health and notouch don't make sense\n"); + } + self.max_health = self.health; + self.th_die = multi_killed; + self.takedamage = TF_FLARE_OFF; + self.solid = 2; + setorigin(self, self.origin); + } + else + { + if (!(self.spawnflags & TF_FLARE_OFF)) + { + self.touch = multi_touch; + } + } +}; + +void() trigger_once = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.wait = -1; + trigger_multiple(); +}; + +void() trigger_relay = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.use = SUB_UseTargets; +}; + +void() trigger_secret = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + total_secrets = total_secrets + TF_FLARE_OFF; + self.wait = -1; + if (!(self.message)) + { + self.message = "You found a secret area!"; + } + if (!(self.sounds)) + { + self.sounds = TF_FLARE_OFF; + } + if (self.sounds == TF_FLARE_OFF) + { + precache_sound("misc/secret.wav"); + self.noise = "misc/secret.wav"; + } + else + { + if (self.sounds == 2) + { + precache_sound("misc/talk.wav"); + self.noise = "misc/talk.wav"; + } + } + trigger_multiple(); +}; + +void() counter_use = +{ + self.count = self.count - TF_FLARE_OFF; + if (self.count < TF_FLARE_LIT) + { + return; + } + if (self.count != TF_FLARE_LIT) + { + if (activator.classname == "player" && (self.spawnflags & TF_FLARE_OFF) == TF_FLARE_LIT) + { + if (self.count >= 4) + { + CenterPrint(activator, "There are more to go..."); + } + else + { + if (self.count == 3) + { + CenterPrint(activator, "Only 3 more to go..."); + } + else + { + if (self.count == 2) + { + CenterPrint(activator, "Only 2 more to go..."); + } + else + { + CenterPrint(activator, "Only 1 more to go..."); + } + } + } + } + return; + } + if (activator.classname == "player" && (self.spawnflags & TF_FLARE_OFF) == TF_FLARE_LIT) + { + CenterPrint(activator, "Sequence completed!"); + } + self.enemy = activator; + multi_trigger(); +}; + +void() trigger_counter = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.wait = -1; + if (!(self.count)) + { + self.count = 2; + } + self.use = counter_use; +}; + +void() play_teleport = +{ + local float v; + local string tmpstr; + v = random() * 5; + if (v < TF_FLARE_OFF) + { + tmpstr = "misc/r_tele1.wav"; + } + else + { + if (v < 2) + { + tmpstr = "misc/r_tele2.wav"; + } + else + { + if (v < 3) + { + tmpstr = "misc/r_tele3.wav"; + } + else + { + if (v < 4) + { + tmpstr = "misc/r_tele4.wav"; + } + else + { + tmpstr = "misc/r_tele5.wav"; + } + } + } + } + sound(self, 2, tmpstr, TF_FLARE_OFF, TF_FLARE_OFF); + remove(self); +}; + +void(vector org) spawn_tfog = +{ + s = spawn(); + s.origin = org; + s.nextthink = time + 0.2; + s.think = play_teleport; + WriteByte(4, 23); + WriteByte(4, 11); + WriteCoord(4, org_x); + WriteCoord(4, org_y); + WriteCoord(4, org_z); + multicast(org, TF_FLARE_OFF); +}; + +void() tdeath_touch = +{ + if (other == self.owner) + { + return; + } + if (other.classname == "player") + { + if (other.invincible_finished > time) + { + self.classname = "teledeath2"; + } + if (self.owner.classname != "player") + { + T_Damage(self.owner, self, self, 5000); + return; + } + } + if (other.health) + { + T_Damage(other, self, self, 5000); + } +}; + +void(vector org, entity death_owner) spawn_tdeath = +{ + local entity death; + death = spawn(); + death.classname = "teledeath"; + death.movetype = TF_FLARE_LIT; + death.solid = TF_FLARE_OFF; + death.angles = '0 0 0'; + setsize(death, death_owner.mins - '1 1 1', death_owner.maxs + '1 1 1'); + setorigin(death, org); + death.touch = tdeath_touch; + death.nextthink = time + 0.2; + death.think = SUB_Remove; + death.owner = death_owner; + force_retouch = 2; +}; + +void() teleport_touch = +{ + local entity t; + local entity te; + local vector org; + if (self.targetname) + { + if (self.nextthink < time) + { + return; + } + } + if (self.spawnflags & TF_FLARE_OFF) + { + if (other.classname != "player") + { + return; + } + } + if (!Activated(self, other)) + { + if (self.else_goal != TF_FLARE_LIT) + { + te = Findgoal(self.else_goal); + if (te) + { + DoResults(te, other, self.goal_result & 2); + } + } + return; + } + if (other.health <= TF_FLARE_LIT || other.solid != 3) + { + return; + } + SUB_UseTargets(); + spawn_tfog(other.origin); + t = find(world, targetname, self.target); + if (!t) + { + objerror("couldn't find target"); + } + makevectors(t.mangle); + org = t.origin + 32 * v_forward; + spawn_tfog(org); + spawn_tdeath(t.origin, other); + if (!(other.health)) + { + other.origin = t.origin; + other.velocity = v_forward * other.velocity_x + v_forward * other.velocity_y; + return; + } + setorigin(other, t.origin); + other.angles = t.mangle; + if (other.classname == "player") + { + if (other.weapon == TF_FLARE_OFF && other.hook_out) + { + sound(other, TF_FLARE_OFF, "weapons/bounce2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + other.on_hook = TF_FLARE_LIT; + other.hook_out = TF_FLARE_LIT; + other.fire_held_down = TF_FLARE_LIT; + other.weaponframe = TF_FLARE_LIT; + other.attack_finished = time + 0.75; + } + other.fixangle = TF_FLARE_OFF; + other.teleport_time = time + 0.7; + if (other.flags & 512) + { + other.flags = other.flags - 512; + } + other.velocity = v_forward * 300; + } + other.flags = other.flags - (other.flags & 512); +}; + +void() info_teleport_destination = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + self.mangle = self.angles; + self.angles = '0 0 0'; + self.model = ""; + self.origin = self.origin + '0 0 27'; + if (!(self.targetname)) + { + objerror("no targetname"); + } +}; + +void() teleport_use = +{ + self.nextthink = time + 0.2; + force_retouch = 2; + self.think = SUB_Null; +}; + +void() trigger_teleport = +{ + local vector o; + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + InitTrigger(); + self.touch = teleport_touch; + if (!(self.target)) + { + objerror("no target"); + } + self.use = teleport_use; + if (!(self.spawnflags & 2)) + { + precache_sound("ambience/hum1.wav"); + o = (self.mins + self.maxs) * 0.5; + ambientsound(o, "ambience/hum1.wav", 0.5, 3); + } +}; + +void() trigger_skill_touch = +{ + local entity te; + if (other.classname != "player") + { + return; + } + if (!Activated(self, other)) + { + if (self.else_goal != TF_FLARE_LIT) + { + te = Findgoal(self.else_goal); + if (te) + { + DoResults(te, other, self.goal_result & 2); + } + } + return; + } + cvar_set("skill", self.message); +}; + +void() trigger_setskill = +{ + dremove(self); + return; +}; + +void() trigger_onlyregistered_touch = +{ + local entity te; + if (other.classname != "player") + { + return; + } + if (!Activated(self, other)) + { + if (self.else_goal != TF_FLARE_LIT) + { + te = Findgoal(self.else_goal); + if (te) + { + DoResults(te, other, self.goal_result & 2); + } + } + return; + } + if (self.attack_finished > time) + { + return; + } + self.attack_finished = time + 2; + if (cvar("registered")) + { + self.message = ""; + SUB_UseTargets(); + remove(self); + } + else + { + if (self.message != "") + { + CenterPrint(other, self.message); + sound(other, 4, "misc/talk.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + } +}; + +void() trigger_onlyregistered = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + precache_sound("misc/talk.wav"); + InitTrigger(); + self.touch = trigger_onlyregistered_touch; +}; + +void() hurt_on = +{ + self.solid = TF_FLARE_OFF; + self.nextthink = -1; +}; + +void() hurt_touch = +{ + local entity te; + if (other.takedamage) + { + if (!Activated(self, other)) + { + if (self.else_goal != TF_FLARE_LIT) + { + te = Findgoal(self.else_goal); + if (te) + { + DoResults(te, other, self.goal_result & 2); + } + } + return; + } + self.solid = TF_FLARE_LIT; + deathmsg = 36; + TF_T_Damage(other, self, self, self.dmg, TF_FLARE_OFF, TF_FLARE_LIT); + self.think = hurt_on; + self.nextthink = time + TF_FLARE_OFF; + } +}; + +void() trigger_hurt = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + InitTrigger(); + self.touch = hurt_touch; + if (!(self.dmg)) + { + self.dmg = 5; + } +}; + +void() trigger_push_touch = +{ + local entity te; + if (!Activated(self, other)) + { + if (self.else_goal != TF_FLARE_LIT) + { + te = Findgoal(self.else_goal); + if (te) + { + DoResults(te, other, self.goal_result & 2); + } + } + return; + } + if (other.classname == "grenade" || other.classname != "player") + { + if (other.last_used < time) + { + sound(other, TF_FLARE_LIT, "weapons/launch.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + other.last_used = time + 3; + other.velocity = self.speed * self.movedir * 10; + other.avelocity = '0 0 0'; + other.angles = self.movedir; + } + else + { + if (other.health > TF_FLARE_LIT && !(self.armorclass)) + { + other.velocity = self.speed * self.movedir * 10; + if (other.classname == "player") + { + if (other.fly_sound < time) + { + other.fly_sound = time + 1.5; + if (!(self.spawnflags & 2)) + { + sound(other, TF_FLARE_LIT, "ambience/windfly.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + } + } + } + } + if (self.spawnflags & TF_FLARE_OFF) + { + dremove(self); + } +}; + +void() trigger_push = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + InitTrigger(); + precache_sound("ambience/windfly.wav"); + self.touch = trigger_push_touch; + if (!(self.speed)) + { + self.speed = 1000; + } +}; + +// Jumper code + +void () trigger_jumper_touch = +{ + local entity _l_7024; + + if (!Activated (self, other)) + { + if ((self.else_goal != 0)) + { + _l_7024 = Findgoal (self.else_goal); + if (_l_7024) + { + DoResults (_l_7024, other, (self.goal_result & 2)); + } + } + return; + } + if (((other.classname == "grenade") || (other.classname != "player"))) + { + return; + } + else + { + if (((other.health > 0) && !self.armorclass)) + { + other.velocity_z = (self.speed * 7); + if ((other.classname == "player")) + { + if ((other.fly_sound < time)) + { + other.fly_sound = (time + 1.500000); + if (!(self.spawnflags & 2)) + { + sound (other, 0, "misc/boing.wav", 1, 1); + } + } + } + } + } + if ((self.spawnflags & 1)) + { + dremove (self); + } +}; + +void () trigger_jumper = +{ + if ((CheckExistence () == 0)) + { + dremove (self); + return; + } + InitTrigger (); + precache_sound ("misc/boing.wav"); + self.touch = trigger_jumper_touch; + if (!self.speed) + { + self.speed = 1000; + } +}; + +// End jumper code + +void() trigger_monsterjump_touch = +{ + if ((other.flags & (32 | TF_FLARE_OFF | 2)) != 32) + { + return; + } + other.velocity_x = self.movedir_x * self.speed; + other.velocity_y = self.movedir_y * self.speed; + if (!(other.flags & 512)) + { + return; + } + other.flags = other.flags - 512; + other.velocity_z = self.height; +}; + +void() trigger_monsterjump = +{ + if (CheckExistence() == TF_FLARE_LIT) + { + dremove(self); + return; + } + if (!(self.speed)) + { + self.speed = 200; + } + if (!(self.height)) + { + self.height = 200; + } + if (self.angles == '0 0 0') + { + self.angles = '0 360 0'; + } + InitTrigger(); + self.touch = trigger_monsterjump_touch; +}; + diff --git a/tsoldier.pqc b/tsoldier.pqc new file mode 100644 index 0000000..00d9758 --- /dev/null +++ b/tsoldier.pqc @@ -0,0 +1,68 @@ +// Functions outside this file + +// Functions inside this file +// Nail Grenade Functions +void() NailGrenadeTouch; +void() NailGrenadeExplode; +void() NailGrenadeNailEm; +void() NailGrenadeLaunchNail; + + +void() NailGrenadeTouch = +{ + if (other == self.owner) + { + return; + } + sound(self, TF_FLARE_OFF, "weapons/bounce.wav", TF_FLARE_OFF, TF_FLARE_OFF); + if (self.velocity == '0 0 0') + { + self.avelocity = '0 0 0'; + } +}; + +void() NailGrenadeExplode = +{ + self.movetype = 5; + setorigin(self, self.origin + '0 0 32'); + self.avelocity = '0 500 0'; + self.nextthink = time + 0.7; + self.think = NailGrenadeNailEm; +}; + +void() NailGrenadeNailEm = +{ + self.velocity = '0 0 0'; + self.nextthink = time + 0.1; + self.think = NailGrenadeLaunchNail; + self.playerclass = TF_FLARE_LIT; +}; + +void() NailGrenadeLaunchNail = +{ + local float i; + local float j; + i = TF_FLARE_LIT; + while (i < TF_FLARE_OFF) + { + j = (random() + 2) * 5; + current_yaw = anglemod(self.angles_y + j); + self.angles_y = current_yaw; + self.angles_x = TF_FLARE_LIT; + self.angles_z = TF_FLARE_LIT; + makevectors(self.angles); + deathmsg = 9; + launch_spike(self.origin, v_forward); + newmis.touch = superspike_touch; + newmis.weapon = 9; + i = i + TF_FLARE_OFF; + } + self.playerclass = self.playerclass + TF_FLARE_OFF; + self.nextthink = time + 0.1; + if (self.playerclass > 40) + { + self.weapon = 9; + self.think = GrenadeExplode; + } +}; + diff --git a/weapons.pqc b/weapons.pqc new file mode 100644 index 0000000..0b2743b --- /dev/null +++ b/weapons.pqc @@ -0,0 +1,6833 @@ +.float has_syringe, option, option5, is_squating; +.float last_used, tools, option4, vision, maxfbspeed; + +// auto screenshot +//.float screenshot; +// + +#ifdef clan_progs +void () DropGoalItems; +#endif + +#ifdef tf29ents +void () DropGoalItems; +#endif + +/* Used in MegaTF United. +// XTF stuff +float (float rangeDist, float typeFlag) AI_Target; +// +*/ + +// medic's self healing +void () HealSelf; +// + +//votemap_start +void (string put) votemap_start; + +// HW spam lessener +.float hw_message_resttime; + +float airscout, drop3, drop2, drop1; +void (float _p_10136) TeamFortress_ItemStatus; + +float prematch; + +void () lay; +void () unlay; + +void () DropFlag; +void () Det_Disp; +void () Det_Sent; + +void () review_timeleft; +void () TeamFortress_Timeleft; + +void () TeamFortress_NightVision; +void () Prox_Disarm; +void () ProxiDie; +//entity (float head) MakeLink; +void() BallCheck; +void() TeamFortress_AmmoboxTouch; +void () TeamFortress_Spotlight; +// pablo. wra. frikqcc you pos. take that. +// +void() MushroomFlame; +void() DroneJet; +void(float tno) RemoveOldAmmobox; +float(float tno) num_team_ammoboxes; +void () W_FireBigAss; +void() BallTouch; +void() make_explosion; +void () DroneDie; +string(float pc) TeamFortress_GetClassName; +void(float tno) increment_team_ammoboxes; +void (vector org) spawn_tfog; +void () Drone; +void () Prox; +//void () endFlash; +void() button_fire; +void() ConcussionGrenadeTimer; +void() PipebombTouch; +//float (entity hwguy) hwguy_deflect; + +void (entity targ, entity inflictor, entity attacker, float damage) T_Damage; +void (entity targ, entity inflictor, entity attacker, float damage, float T_flags, float T_AttackType) TF_T_Damage; +void () player_run; +void(entity bomb, entity attacker, float rad, entity ignore) T_RadiusDamage; +void() TeamFortress_DisplayDetectionItems; +float(vector veca, vector vecb) crossproduct; +void(vector org, float damage) SpawnBlood; +void(entity rhook) Reset_Grapple; +void() SuperDamageSound; +float() W_BestWeapon; +void() ConcussionGrenadeTimer; +void() W_PrintWeaponMessage; +void() button_touch; +void() button_fire; + +// TeamFortress Impulse Commands +void() TeamFortress_ToggleGenderMessage; +void() TeamFortress_ChangeClass; +void() TeamFortress_DisplayLegalClasses; +void() TeamFortress_Inventory; +void() TeamFortress_SaveMe; +void() TeamFortress_ID; +void() TeamFortress_ShowTF; +void() TeamFortress_SniperWeapon; +void() TeamFortress_IncendiaryCannon; +void() TeamFortress_FlameThrower; +void() TeamFortress_PrimeGrenade; +void() TeamFortress_ThrowGrenade; +void() TeamFortress_Discard; +void(entity p) TeamFortress_SetSpeed; +void() TeamFortress_DetonatePipebombs; +void() PipebombTouch; +void() TeamFortress_DetpackStop; +void() SniperSight_Create; +void(float zoom_level) TF_zoom; +void() TeamFortress_ReloadCurrentWeapon; +void() TeamFortress_AutoZoomToggle; +void() TeamFortress_StatusQuery; +void() TeamFortress_SpyGoUndercover; +void (float _p_9330) TeamFortress_SpyFeignDeath; +void() TeamFortress_EngineerBuild; +//void() DropKey; +void() UseSpecialSkill; + +// TeamFortress Pre-Impulse Commands +void(float scanrange) TeamFortress_Scan; +void(float timer) TeamFortress_SetDetpack; + +// Team Functions +float (float tno, float autoteam) TeamFortress_TeamSet; +void(float tno) TeamFortress_TeamShowScores; +void(entity Player) TeamFortress_TeamShowMemberClasses; + +// Camera Functions +void() CamLock; +void() CamDistLock; +void() CamVecLock; +void() CamAngleLock; +void() CamRevAngleLock; +void() CamProjectileLock; +void() CamProjectileZoom; +void() CamProjectileLockOn; +void() CamProjectileLockOff; +void() CamOffset; +void() CamDrop; +void() fadetoblack; +void() fadefromblack; +void() fadetowhite; +void() fadefromwhite; + +// Engineer Functions +void(entity disp) Engineer_UseDispenser; +void(entity gun) Engineer_UseSentryGun; +//void(entity mortar) Engineer_UseMortar; + +void(entity spy) Spy_RemoveDisguise; + +// Help functions +void() TeamFortress_MOTD; +void() TeamFortress_HelpMap; +void(float res) StatusRes; + +// BioInfection functions +void() BioInfection_Decay; +void() BioInfection_MonsterDecay; + +// Attacking functions +void() W_FireFlame; +void() W_FireIncendiaryCannon; +void() W_FireTranq; +void () W_FireLaser; + +// Timer Functions +void() HallucinationTimer; +void() TranquiliserTimer; + +// CTF Support functions +void() TeamFortress_CTF_FlagInfo; + +// #PC_UNDEFINED viewing functions +void() TF_MovePlayer; + +void(vector org, float damage) SpawnBlood; + +void() W_Precache = +{ + precache_sound("speech/yell/coverme.wav"); + precache_sound("speech/yell/overhere.wav"); + precache_sound("speech/yell/thisway.wav"); + precache_sound("speech/yell/followme.wav"); + precache_sound("speech/yell/incomng.wav"); + precache_sound("speech/yell/firehole.wav"); + precache_sound("speech/yell/gogogo.wav"); + precache_sound("speech/yell/lookout.wav"); + precache_sound("speech/yell/holdup.wav"); + precache_sound("speech/needlite.wav"); + precache_sound("effects/bodyhit1.wav"); + precache_sound("effects/bodyhit2.wav"); + precache_sound("zombie/z_miss.wav"); + precache_sound("weapons/drone.wav"); + precache_sound("weapons/knifedrw.wav"); + precache_sound("ambient/100hzhum.wav"); + precache_sound("weapons/jetjump.wav"); + precache_sound("enforcer/enfire.wav"); + precache_sound("shambler/smack.wav"); + precache_sound("weapons/r_exp3.wav"); + precache_sound("shambler/sboom.wav"); + precache_sound("weapons/sniper.wav"); + precache_sound("doors/ddoor2.wav"); + precache_sound("doors/airdoor2.wav"); + precache_sound("weapons/sgun1.wav"); + precache_sound("weapons/unreel.wav"); + precache_sound("weapons/retract.wav"); + precache_sound("weapons/rocklr1a.wav"); + precache_sound("weapons/railgr1a.wav"); + precache_sound("weapons/shotgr1a.wav"); + precache_sound("weapons/guncock.wav"); + precache_sound("weapons/ric1.wav"); + precache_sound("weapons/ric2.wav"); + precache_sound("weapons/ric3.wav"); + precache_sound("weapons/spike2.wav"); + precache_sound("weapons/tink1.wav"); + precache_sound("weapons/tink2.wav"); + precache_sound("weapons/shell2.wav"); + precache_sound("weapons/launch.wav"); + precache_sound("effects/mortar.wav"); + precache_sound("weapons/bounce.wav"); + precache_sound("weapons/shotgn2.wav"); + precache_sound("items/r_item1.wav"); + precache_sound("items/r_item2.wav"); + precache_sound("items/flare1.wav"); + precache_model("progs/s_expl.spr"); + precache_model("progs/beam.mdl"); + precache_model("progs/beam2.mdl"); + precache_model("progs/spikebal.mdl"); + precache_model("progs/flare.spr"); + precache_model("progs/lsrdrone.mdl"); + precache_model("progs/shell2.mdl"); + precache_model("progs/20mmcase.mdl"); + precache_model("progs/air-mirv.mdl"); + precache_model("progs/flame2.mdl"); + precache_model ("progs/syringe.mdl"); + precache_sound("ambience/fire1.wav"); + precache_model2("progs/v_spike.mdl"); + precache_sound("hknight/hit.wav"); + precache_sound("hknight/slash1.wav"); + precache_sound("doors/meduse.wav"); + precache_sound("weapons/tnkatck4.wav"); + precache_sound("weapons/pain.wav"); + precache_sound("weapons/gunidle1.wav"); + precache_sound("speech/excelent.wav"); + precache_sound("weapons/rifle.wav"); + precache_sound("weapons/plaser.wav"); + precache_sound("weapons/flmfire2.wav"); + precache_sound("misc/vapeur2.wav"); + precache_sound("weapons/chngnu1a.wav"); + precache_sound("weapons/asscan2.wav"); + precache_sound("weapons/chngnd1a.wav"); + precache_sound("weapons/dartgun.wav"); + precache_sound("weapons/lavapool.wav"); + precache_sound("misc/null.wav"); + precache_sound ("misc/secret.wav"); +// XTF MDL +// precache_model ("progs/xrail.mdl"); +// END XTF MDL +// XTF SOUND +// precache_sound ("weapons/railgun.wav"); +// END XTF SOUND + precache_sound ("misc/runekey.wav"); +// 04 spycam and dropgrens + if ((infokey (world, "dropgrens") == "on")) + { + precache_model2 ("progs/ammobox2.mdl"); + } + if ((infokey (world, "spycam") == "on")) + { + precache_model2 ("progs/spycamb.mdl"); + precache_model2 ("progs/spycamc.mdl"); + } +// 11.11.04 sounds + precache_sound ("misc/update.wav"); +}; + +float() crandom = +{ + return 2 * (random() - 0.5); +}; + +void(float att_delay) Attack_Finished = +{ + if (self.tfstate & 32768) + { + self.attack_finished = time + att_delay * 3; + } + else + { + self.attack_finished = time + att_delay; + } +}; + +void() ShellHit = +{ + if (self.skin == TF_FLARE_OFF) + { + sound(self, 3, "weapons/shell2.wav", 0.5, TF_FLARE_OFF); + } + else + { + if (random() < 0.5) + { + sound(self, 3, "weapons/tink1.wav", 0.5, TF_FLARE_OFF); + } + else + { + sound(self, 3, "weapons/tink2.wav", 0.6, TF_FLARE_OFF); + } + } + return; +}; + +void () EjectShell = +{ + + newmis = spawn (); + newmis.movetype = 10; + newmis.solid = 1; + newmis.team_no = self.team_no; + makevectors (self.v_angle); + if (self.v_angle_x) + { + if ((self.current_weapon == 32)) + { + newmis.velocity = (((v_forward * 70) + (v_up * 90)) + ((random () * v_right) * -150)); + } + else + { + newmis.velocity = (((v_forward * 70) + (v_up * 90)) + ((random () * v_right) * 150)); + } + } + else + { + newmis.velocity = aim (self, 10000); + if ((self.current_weapon == 32)) + { + newmis.velocity = ((newmis.velocity * 70) + ((random () * v_right) * -150)); + } + else + { + newmis.velocity = ((newmis.velocity * 70) + ((random () * v_right) * 150)); + } + newmis.velocity_z = (random () * 90); + } + if ((random () < 0.300000)) + { + newmis.avelocity = '2000 3000 4000'; + } + else + { + if ((random () < 0.600000)) + { + newmis.avelocity = '4000 2000 3000'; + } + else + { + newmis.avelocity = '7000 5000 1000'; + } + } + setsize (newmis, '0 0 0', '0 0 0'); + setorigin (newmis, ((self.origin + (v_forward * 10)) + '0 0 20')); + if ((self.playerclass == 6)) + { + newmis.nextthink = (time + 1.500000); + setmodel (newmis, "progs/20mmcase.mdl"); + } + else + { + newmis.nextthink = (time + 3); + setmodel (newmis, "progs/shell2.mdl"); + } + newmis.think = SUB_Remove; + newmis.touch = ShellHit; + if (((self.current_weapon == 128) || (self.current_weapon == 256))) + { + newmis.skin = 0; + } + else + { + newmis.skin = 1; + } +}; + +void() StingerTouch = +{ + if (other.takedamage) + { +// ---> pablo. gg? :/ +// self.velocity == '0 0 0'; +// <--- + sound(self, 3, "shambler/smack.wav", 0.8, TF_FLARE_OFF); + return; + } + sound(self, TF_FLARE_OFF, "weapons/bounce.wav", TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void() StingerElec = +{ + local entity te; + self.effects = 4; + sound(self, TF_FLARE_OFF, "weapons/lhit.wav", TF_FLARE_OFF, TF_FLARE_OFF); +// ---> pablo. gg? :/ +// self.team_no == self.owner.team_no; +// <--- + if (self.waterlevel > TF_FLARE_LIT) + { + te = findradius(self.origin, 950); + while (te) + { + if (te.classname == "player" && te.waterlevel > TF_FLARE_LIT) + { + if (!(te.radsuit_finished > time)) + { + deathmsg = 7; + TF_T_Damage(te, self, self.owner, 250, 2, TF_FLARE_LIT); + } + } + te = te.chain; + } + remove(self); + return; + } + else + { + remove(self); + return; + } +}; + +void () W_LaunchStinger = +{ + local entity _l_2155; + + if ((self.no_grenades_2 < 2)) + { + sprint (self, 2, "Not enough type 2 grenades... get more\n"); + return; + } + if (infokey(world, "drop2") == "off" || infokey(world, "drop2") == "0") + { + sprint (self, 2, "Toasters have been disabled by the admin!\n"); + return; + } + self.no_grenades_2 = (self.no_grenades_2 - 2); + sound (self, 1, "misc/power.wav", 1, 1); + _l_2155 = spawn (); + _l_2155.owner = self; + _l_2155.movetype = 10; + _l_2155.solid = 2; + _l_2155.classname = "grenade"; + _l_2155.effects = 8; + makevectors (self.v_angle); + if (self.v_angle_x) + { + _l_2155.velocity = ((((v_forward * 600) + (v_up * 200)) + ((crandom () * v_right) * 10)) + ((crandom () * v_up) * 10)); + } + else + { + _l_2155.velocity = aim (self, 10000); + _l_2155.velocity = (_l_2155.velocity * 600); + _l_2155.velocity_z = 200; + } + _l_2155.avelocity = '300 300 300'; + _l_2155.angles = vectoangles (_l_2155.velocity); + _l_2155.touch = StingerTouch; + _l_2155.nextthink = (time + 3); + _l_2155.think = StingerElec; + setmodel (_l_2155, "progs/v_spike.mdl"); + setsize (_l_2155, '0 0 0', '0 0 0'); + setorigin (_l_2155, self.origin); +}; + +void() SpyPackRemove = +{ + sprint(self.owner, 2, "Your Ammo Trap failed...\n"); + dremove(self); +}; + +void () SpyPackTouch = +{ + + if ((self.pausetime > time)) + { + return; + } + if ((other.classname != "player")) + { + return; + } + if ((other.health <= 0)) + { + return; + } + if ((other.team_no == self.team_no)) + { + return; + } + if ((other.bugger > 0)) + { + return; + } + if ((other.classname == "player")) + { + other.ammo_shells = 0; + other.ammo_nails = 0; + other.ammo_rockets = 0; + other.ammo_cells = 0; + other.currentammo = 0; + other.no_grenades_1 = 0; + other.no_grenades_2 = 0; + sprint (other, 2, "Your ammo has been robbed!\n"); + sound (self, 3, "weapons/lock4.wav", 1, 1); + sprint (self.owner, 2, "Your ammo trap worked!\n"); + dremove (self); + } +}; + +void() SpyPack = +{ + local entity te; + te = find(world, classname, "drop1"); + while (te) + { + if (te.owner == self) + { + sprint(self, 2, "1 ammo trap at a time!\n"); + return; + } + te = find(te, classname, "drop1"); + } + sprint(self, 2, "You set an Ammo Trap!\n"); + sound(self, 3, "weapons/lock4.wav", TF_FLARE_OFF, TF_FLARE_OFF); + newmis = spawn(); + newmis.owner = self; + newmis.enemy = self; + newmis.health = time; + newmis.weapon = TF_FLARE_LIT; + newmis.movetype = 6; + newmis.solid = TF_FLARE_OFF; + newmis.team_no = self.team_no; + makevectors(self.v_angle); + if (self.v_angle_x) + { + newmis.velocity = v_forward * 100 + v_up * 200; + } + else + { + newmis.velocity = aim(self, 10000); + newmis.velocity = newmis.velocity * 100; + newmis.velocity_z = 200; + } + newmis.avelocity = '0 300 0'; + setsize(newmis, '0 0 0', '0 0 0'); + setorigin(newmis, self.origin); + newmis.nextthink = time + 180; + newmis.think = SpyPackRemove; + newmis.touch = SpyPackTouch; + newmis.classname = "drop1"; + setmodel(newmis, "progs/backpack.mdl"); +}; + +void() RemoveLavaPool = +{ + sprint(self.owner, 2, "Your Lava has cooled...\n"); + sound(self, 4, "misc/null.wav", TF_FLARE_LIT, TF_FLARE_OFF); + self.owner.has_syringe = TF_FLARE_OFF; + dremove(self); +}; + +void() LavaTouch = +{ + if (other.classname != "player" && other.classname != "bot") + { + return; + } + if (other.health <= TF_FLARE_LIT) + { + return; + } + if (other.team_no < TF_FLARE_OFF) + { + return; + } + if (other.takedamage) + { + deathmsg = 15; + TF_T_Damage(other, self.owner, self.owner, 2, TF_FLARE_LIT, 16); + if (random() < 0.1) + { + sound(other, TF_FLARE_LIT, "misc/vapeur2.wav", 0.4, TF_FLARE_OFF); + } + else + { + if (random() > 0.6) + { + sound(other, TF_FLARE_LIT, "player/inh2o.wav", 0.8, TF_FLARE_OFF); + } + } + if (other.classname != "bot") + { + stuffcmd(other, "bf\n"); + } + if (other.team_no == self.owner.team_no) + { + return; + } + other.origin_x = self.origin_x; + other.origin_y = self.origin_y; + } +}; + +void() LavaBallTouch = +{ + if (other == self.owner) + { + return; + } + sound(self, TF_FLARE_OFF, "zombie/z_miss.wav", TF_FLARE_OFF, TF_FLARE_OFF); + if (other.takedamage) + { + if (other.classname != "player") + { + return; + } + if (other.health <= TF_FLARE_LIT) + { + return; + } + if (other.team_no < TF_FLARE_OFF) + { + return; + } + if (other.team_no == self.owner.team_no) + { + return; + } + deathmsg = 15; + TF_T_Damage(other, self, self.owner, 20, TF_FLARE_LIT, 16); + } +}; + +void() LavaBecome = +{ + if (self.waterlevel > TF_FLARE_OFF) + { + dremove(self); + } + setmodel(self, "progs/lavapool.mdl"); + self.avelocity = '0 0 0'; + self.effects = 8; + deathmsg = 15; + self.classname = "timer"; + sound(self, 4, "weapons/lavapool.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.angles_y = TF_FLARE_LIT; + self.angles_x = TF_FLARE_LIT; + self.angles_z = TF_FLARE_LIT; + setsize(self, '-12 -12 0', '12 12 2'); + self.nextthink = time + 30; + self.think = RemoveLavaPool; + self.touch = LavaTouch; +}; + +void() LavaPool = +{ + if (self.has_syringe != TF_FLARE_OFF) + { + sprint(self, 2, "You get 1 Lava Pool at a time!\n"); + return; + } + self.has_syringe = TF_FLARE_LIT; + + sound(self, 3, "weapons/throw.wav", TF_FLARE_OFF, TF_FLARE_OFF); + newmis = spawn(); + newmis.classname = "timer"; + newmis.owner = self; + newmis.team_no = self.team_no; + newmis.health = time; + newmis.weapon = TF_FLARE_LIT; + newmis.movetype = 6; + newmis.solid = TF_FLARE_OFF; + newmis.team_no = self.team_no; + makevectors(self.v_angle); + if (self.v_angle_x) + { + newmis.velocity = v_forward * 400 + v_up * 200; + } + else + { + newmis.velocity = aim(self, 10000); + newmis.velocity = newmis.velocity * 400; + newmis.velocity_z = 200; + } + newmis.avelocity = '300 300 300'; + setsize(newmis, '0 0 0', '0 0 0'); + setorigin(newmis, self.origin); + newmis.nextthink = time + 2; + newmis.think = LavaBecome; + newmis.touch = LavaBallTouch; + setmodel(newmis, "progs/lavaball.mdl"); +}; + +void() s_explode1 = [0, s_explode2] +{ +}; + +void() s_explode2 = [1, s_explode3] +{ +}; + +void() s_explode3 = [2, s_explode4] +{ +}; + +void() s_explode4 = [3, s_explode5] +{ +}; + +void() s_explode5 = [4, s_explode6] +{ +}; + +void() s_explode6 = [5, SUB_Remove] +{ +}; + +void() s2_explode1 = [0, s2_explode2] +{ +}; + +void() s2_explode2 = [1, s2_explode3] +{ +}; + +void() s2_explode3 = [2, s2_explode4] +{ +}; + +void() s2_explode4 = [3, s2_explode5] +{ +}; + +void() s2_explode5 = [4, s2_explode6] +{ +}; + +void() s2_explode6 = [5, s2_explode7] +{ +}; + +void() s2_explode7 = [6, s2_explode8] +{ +}; + +void() s2_explode8 = [7, SUB_Remove] +{ +}; + +void() BecomeExplosion = +{ + dremove(self); +}; + +float(float tno) num_team_pipebombs = +{ + if (tno == TF_FLARE_OFF) + { + return num_team_pipebombs_1; + } + else + { + if (tno == 2) + { + return num_team_pipebombs_2; + } + else + { + if (tno == 3) + { + return num_team_pipebombs_3; + } + else + { + if (tno == 4) + { + return num_team_pipebombs_4; + } + } + } + } + return TF_FLARE_LIT; +}; + +void(float tno) ExplodeOldPipebomb = +{ + local entity old; + local float index; + if (tno != TF_FLARE_LIT) + { + index = num_team_pipebombs(tno); + index = index - 30 / number_of_teams; + } + else + { + index = num_world_pipebombs - 30; + } + old = find(world, classname, "pipebomb"); + while (index > TF_FLARE_LIT) + { + if (old == world) + { + dprint("*** ERROR: ExplodeOldPipebomb. ***\n"); + dprint("*** Please report this. ***\n"); + num_world_pipebombs = TF_FLARE_LIT; + num_team_pipebombs_1 = TF_FLARE_LIT; + num_team_pipebombs_2 = TF_FLARE_LIT; + num_team_pipebombs_3 = TF_FLARE_LIT; + num_team_pipebombs_4 = TF_FLARE_LIT; + return; + } + if (old.owner.team_no == tno || tno == TF_FLARE_LIT) + { + old.nextthink = time + 0.5; + index = index - TF_FLARE_OFF; + } + old = find(old, classname, "pipebomb"); + } +}; + +void(float tno) increment_team_pipebombs = +{ + if (tno == TF_FLARE_OFF) + { + num_team_pipebombs_1 = num_team_pipebombs_1 + TF_FLARE_OFF; + } + else + { + if (tno == 2) + { + num_team_pipebombs_2 = num_team_pipebombs_2 + TF_FLARE_OFF; + } + else + { + if (tno == 3) + { + num_team_pipebombs_3 = num_team_pipebombs_3 + TF_FLARE_OFF; + } + else + { + if (tno == 4) + { + num_team_pipebombs_4 = num_team_pipebombs_4 + TF_FLARE_OFF; + } + } + } + } +}; + +void(float tno) decrement_team_pipebombs = +{ + if (tno == TF_FLARE_OFF) + { + num_team_pipebombs_1 = num_team_pipebombs_1 - TF_FLARE_OFF; + } + else + { + if (tno == 2) + { + num_team_pipebombs_2 = num_team_pipebombs_2 - TF_FLARE_OFF; + } + else + { + if (tno == 3) + { + num_team_pipebombs_3 = num_team_pipebombs_3 - TF_FLARE_OFF; + } + else + { + if (tno == 4) + { + num_team_pipebombs_4 = num_team_pipebombs_4 - TF_FLARE_OFF; + } + } + } + } +}; + +void() GrenadeExplode = +{ + if (self.classname == "pipebomb") + { + num_world_pipebombs = num_world_pipebombs - TF_FLARE_OFF; + decrement_team_pipebombs(self.owner.team_no); + } + deathmsg = self.weapon; + if ((self.weapon == 9)) + { + self.owner.active_grenades_2 = (self.owner.active_grenades_2 - 1); + } + if ((self.weapon == 10)) + { +// This is added from 11.11.04 - used to be (self.owner.active_grenades_2 - 0.166667); +// but I dunno how the hell that can make sense - I figure it's a decompiler error, so +// I changed it to 1. + self.owner.active_grenades_2 = (self.owner.active_grenades_2 - 1); + if ((ftos (self.owner.active_grenades_2) == " -0.0")) + { + self.owner.active_grenades_2 = 0; + } + } + self.weapon = 40; + self.weapon = 10; +// if (40 || 10) +// { + T_RadiusDamage(self, self.owner, 120, world); +// } +// else +// { +// T_RadiusDamage(self, self.owner, 80, world); +// } + WriteByte(4, 23); + WriteByte(4, 3); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); + multicast(self.origin, TF_FLARE_OFF); + BecomeExplosion(); + dremove(self); +}; + +void() GrenadeTouch = +{ + if (other == self.owner) + { + return; + } + if (other.takedamage == 2) + { + GrenadeExplode(); + return; + } + sound(self, TF_FLARE_OFF, "weapons/bounce.wav", TF_FLARE_OFF, TF_FLARE_OFF); + if (self.velocity == '0 0 0') + { + self.avelocity = '0 0 0'; + } +}; + +void() W_FireGrenade = +{ + if (self.option == TF_FLARE_OFF) + { + self.currentammo = self.ammo_rockets = self.ammo_rockets - 2; + } + else + { + if (self.option4 == 1) + { + self.currentammo = self.ammo_rockets = self.ammo_rockets - 2; + } + else + { + self.currentammo = self.ammo_rockets = self.ammo_rockets - TF_FLARE_OFF; + } + } + sound(self, TF_FLARE_OFF, "weapons/launch.wav", TF_FLARE_OFF, TF_FLARE_OFF); + KickPlayer(-2, self); + newmis = spawn(); + newmis.owner = self; + newmis.movetype = 10; + newmis.solid = 2; + if (self.weaponmode == TF_FLARE_LIT) + { + newmis.weapon = 5; + newmis.classname = "grenade"; + newmis.skin = TF_FLARE_OFF; + newmis.touch = GrenadeTouch; + newmis.nextthink = time + 2.5; + } + else + { + if (self.team_no != TF_FLARE_LIT) + { + increment_team_pipebombs(self.team_no); + if (num_team_pipebombs(self.team_no) > 30 / number_of_teams) + { + ExplodeOldPipebomb(self.team_no); + } + } + else + { + num_world_pipebombs = num_world_pipebombs + TF_FLARE_OFF; + if (num_world_pipebombs > 30) + { + ExplodeOldPipebomb(TF_FLARE_LIT); + } + } + newmis.classname = "pipebomb"; + newmis.skin = 2; + newmis.touch = PipebombTouch; + newmis.nextthink = time + 120; + newmis.weapon = 11; + } + makevectors(self.v_angle); + if (self.v_angle_x) + { + if (self.option == TF_FLARE_OFF) + { + newmis.velocity = v_forward * 1200 + v_up * 200 + crandom() * v_right * 10 + crandom() * v_up * 10; + } + else + { + newmis.velocity = v_forward * 600 + v_up * 200 + crandom() * v_right * 10 + crandom() * v_up * 10; + } + } + else + { + newmis.velocity = aim(self, 10000); + if (self.option == TF_FLARE_OFF) + { + newmis.velocity = newmis.velocity * 1200; + } + else + { + newmis.velocity = newmis.velocity * 600; + } + newmis.velocity_z = 200; + } + newmis.avelocity = '300 300 300'; + newmis.angles = vectoangles(newmis.velocity); + newmis.think = GrenadeExplode; + setmodel(newmis, "progs/grenade2.mdl"); + setsize(newmis, '0 0 0', '0 0 0'); + setorigin(newmis, self.origin); +}; + +void() HoloHumm = +{ + self.playerclass = self.playerclass + TF_FLARE_OFF; + self.nextthink = time + TF_FLARE_OFF; + sound(self, TF_FLARE_LIT, "ambient/100hzhum.wav", TF_FLARE_OFF, TF_FLARE_OFF); + if (self.playerclass > 4) + { + WriteByte(4, 23); + WriteByte(4, 11); + WriteCoord(4, self.origin_x); + WriteCoord(4, self.origin_y); + WriteCoord(4, self.origin_z); + multicast(self.origin, TF_FLARE_OFF); + if (self.playerclass > 4) + { + self.owner.has_holo = TF_FLARE_OFF; + self.think = SUB_Remove; + } + } +}; + +void() HoloDood = +{ + local entity holo; + sound(self, TF_FLARE_OFF, "weapons/railgr1a.wav", 0.6, TF_FLARE_OFF); + holo = spawn(); + holo.owner = self; + holo.origin = self.origin + '0 0 24'; + holo.angles_y = self.angles_y; + holo.angles_x = self.angles_x; + holo.skin = self.skin; + holo.frame = self.frame; + holo.colormap = self.colormap; + holo.flags = 256; + holo.solid = TF_FLARE_OFF; + holo.effects = 8; + holo.movetype = 6; + setmodel(holo, "progs/player.mdl"); + setsize(holo, '-16 -16 -24', '16 16 32'); + holo.classname = "holo"; + holo.playerclass = TF_FLARE_LIT; + holo.nextthink = time + TF_FLARE_OFF; + holo.think = HoloHumm; + WriteByte(4, 23); + WriteByte(4, 11); + WriteCoord(4, holo.origin_x); + WriteCoord(4, holo.origin_y); + WriteCoord(4, holo.origin_z); + multicast(self.origin, TF_FLARE_OFF); +}; + +void() SuperLeap = +{ + + if (!airscout) + { + sprint(self, 2, "JetPack disabled by Admin!\n"); + return; + } + if (self.ammo_cells < 24) + { + sprint(self, 2, "Insufficient power... get more cells\n"); + return; + } + if (self.tfstate & 65536) + { + return; + } + self.jet_time = time + 3; + sound(self, TF_FLARE_OFF, "weapons/jetjump.wav", TF_FLARE_OFF, TF_FLARE_OFF); + W_FireFlame(); + muzzleflash(); + self.velocity = v_forward * 900 + '0 0 250' + v_up * 100; + stuffcmd(self, "bf\n"); + self.ammo_cells = self.ammo_cells - 23; + self.impulse = TF_FLARE_LIT; +}; + +void () MagTimer = +{ + local entity _l_2374; + local string _l_2375; + + _l_2374 = self.owner; + _l_2374.option5 = (_l_2374.option5 - 0.500000); + _l_2375 = ftos (_l_2374.option5); + sound (_l_2374, 0, "ambient/100hzhum.wav", 1, 1); + _l_2374.origin = self.origin; + CenterPrint2 (_l_2374, "You are stuck on a mag mine!\n", _l_2375); + if ((_l_2374.option5 < 2)) + { + _l_2374.option5 = 0; + sprint (_l_2374.enemy, 2, "Your Mag Mine died...\n"); + _l_2374.enemy.has_syringe = 1; + remove (self); + return; + } + self.nextthink = (time + 0.500000); +}; + +void () MagMineActivate = +{ + + if ((other.option == 0)) + { + self.owner.has_syringe = 1; + newmis = spawn (); + newmis.classname = "timer"; + newmis.netname = " FlashTimer"; + newmis.team_no = self.owner.team_no; + newmis.owner = other; + other.enemy = self.owner; + newmis.think = MagTimer; + newmis.nextthink = (time + 1); + newmis.origin = other.origin; + other.is_squating = 0; + } + other.option5 = (floor ((other.armorvalue * 0.250000)) + 3); + if ((other.option5 > 15)) + { + other.option5 = 15; + } +}; + +void () FlashTimer2 = +{ + local entity _l_2398; + local string _l_2399; + + _l_2398 = self.owner; + _l_2398.FlashTime = (_l_2398.FlashTime - 0.100000); + if ((_l_2398.FlashTime < 0)) + { + _l_2398.FlashTime = 0; + stuffcmd (_l_2398, "v_cshift 0\n"); + remove (self); + return; + } + if ((_l_2398.FlashTime < 1.700000)) + { + _l_2399 = ftos ((_l_2398.FlashTime * 150)); + stuffcmd (_l_2398, "v_cshift "); + stuffcmd (_l_2398, _l_2399); + stuffcmd (_l_2398, " "); + stuffcmd (_l_2398, _l_2399); + stuffcmd (_l_2398, " "); + stuffcmd (_l_2398, _l_2399); + stuffcmd (_l_2398, " "); + stuffcmd (_l_2398, _l_2399); + stuffcmd (_l_2398, "\n"); + } + if ((_l_2398.FlashTime >= 1.700000)) + { + stuffcmd (_l_2398, "v_cshift 255 255 255 255\n"); + } + if (((_l_2398.client != "zquake") && (_l_2398.client != "fuhquake"))) + { + stuffcmd (_l_2398, "gl_polyblend 1\n"); + } + if ((_l_2398.client == "moreqw")) + { + stuffcmd (_l_2398, "gl_cshiftpercent 100\n"); + } + self.nextthink = (time + 0.100000); +}; + +void () FlashGrenadeExplode2 = +{ + + self.owner.has_syringe = 1; + self.effects = (self.effects | 4); + WriteByte (4, 23); + WriteByte (4, 4); + WriteCoord (4, self.origin_x); + WriteCoord (4, self.origin_y); + WriteCoord (4, self.origin_z); + multicast (self.origin, 1); + if ((other.FlashTime == 0)) + { + newmis = spawn (); + newmis.classname = "timer"; + newmis.netname = "FlashTimer2"; + newmis.team_no = self.owner.team_no; + newmis.owner = other; + newmis.think = FlashTimer2; + newmis.nextthink = (time + 0.100000); + } +// other.FlashTime = 2.500000; //changed by request of Misery + other.FlashTime = 3; + stuffcmd (other, "v_cshift 255 255 255 255\n"); +}; + +void () W_FireAxe = +{ + local vector source; + local vector org; + local vector def; + + makevectors (self.v_angle); + source = (self.origin + '0 0 16'); + traceline (source, (source + (v_forward * 64)), 0, self); + if ((trace_fraction == 1)) + { + return; + } + org = (trace_endpos - (v_forward * 4)); + if (trace_ent.takedamage) + { + trace_ent.axhitme = 1; + SpawnBlood (org, 20); + if (((self.playerclass != 8) || (trace_ent.classname != "player"))) + { + deathmsg = 17; + TF_T_Damage (trace_ent, self, self, 20, 2, 0); + } + else + { + self.weaponmode = 1; + self.weaponmodel = "progs/v_knife2.mdl"; + makevectors (trace_ent.v_angle); + def = v_right; + makevectors (self.v_angle); + if ((crossproduct (def, v_forward) > 0)) + { + deathmsg = 22; + TF_T_Damage (trace_ent, self, self, 120, 2, 0); + } + else + { + deathmsg = 17; + TF_T_Damage (trace_ent, self, self, 40, 2, 0); + } + } + } + else + { + sound (self, 1, "player/axhit2.wav", 1, 1); + WriteByte (4, 23); + WriteByte (4, 2); + WriteByte (4, 3); + WriteCoord (4, org_x); + WriteCoord (4, org_y); + WriteCoord (4, org_z); + multicast (org, 2); + } +}; + +void () W_FireSpanner = +{ + local vector source; + local vector org; + local float healam; + local entity te; + + makevectors (self.v_angle); + source = (self.origin + '0 0 16'); + traceline (source, (source + (v_forward * 64)), 0, self); + if ((trace_fraction == 1)) + { + return; + } + org = (trace_endpos - (v_forward * 4)); + if ((trace_ent.goal_activation & 8)) + { + if (Activated (trace_ent, self)) + { + DoResults (trace_ent, self, 1); + if ((trace_ent.classname == "func_button")) + { + trace_ent.enemy = self; + other = self; + self = trace_ent; + self.dont_do_triggerwork = 1; + button_fire (); + self = other; + } + } + else + { + if ((trace_ent.else_goal != 0)) + { + te = Findgoal (trace_ent.else_goal); + if (te) + { + DoResults (te, self, (trace_ent.goal_result & 2)); + } + } + else + { + sound (self, 1, "player/axhit2.wav", 1, 1); + WriteByte (4, 23); + WriteByte (4, 2); + WriteByte (4, 3); + WriteCoord (4, org_x); + WriteCoord (4, org_y); + WriteCoord (4, org_z); + multicast (org, 2); + } + } + return; + } + if (trace_ent.takedamage) + { + if ((trace_ent.classname == "building_dispenser")) + { + Engineer_UseDispenser (trace_ent); + return; + } + else + { + if ((trace_ent.classname == "building_sentrygun")) + { + Engineer_UseSentryGun (trace_ent); + return; + } + else + { + if ((trace_ent.classname == "building_sentrygun_base")) + { + if (trace_ent.oldenemy) + { + Engineer_UseSentryGun (trace_ent.oldenemy); + } + return; + } + else + { + if ((trace_ent.classname == "player")) + { + if (((((trace_ent.team_no == self.team_no) && (self.team_no != 0)) && teamplay) || coop)) + { + healam = 10; + if ((self.ammo_cells < healam)) + { + healam = self.ammo_cells; + } + if ((trace_ent.armortype == 0)) + { + return; + } + if (((trace_ent.maxarmor - trace_ent.armorvalue) < (healam * 4))) + { + healam = ceil (((trace_ent.maxarmor - trace_ent.armorvalue) / 4)); + } + if ((healam > 0)) + { + trace_ent.armorvalue = (trace_ent.armorvalue + (healam * 4)); + if ((trace_ent.armorvalue > trace_ent.maxarmor)) + { + trace_ent.armorvalue = trace_ent.maxarmor; + } + self.ammo_cells = (self.ammo_cells - healam); + sound (trace_ent, 1, "items/repair.wav", 1, 1); + WriteByte (4, 23); + WriteByte (4, 2); + WriteByte (4, 3); + WriteCoord (4, org_x); + WriteCoord (4, org_y); + WriteCoord (4, org_z); + multicast (org, 2); + W_SetCurrentAmmo (); + } + return; + } + } + trace_ent.axhitme = 1; + SpawnBlood (org, 20); + deathmsg = 32; + TF_T_Damage (trace_ent, self, self, 20, 2, 0); + } + } +// } + } + } + else + { + sound (self, 1, "player/axhit2.wav", 1, 1); + WriteByte (4, 23); + WriteByte (4, 2); + WriteByte (4, 3); + WriteCoord (4, org_x); + WriteCoord (4, org_y); + WriteCoord (4, org_z); + multicast (org, 2); + } +}; + +void () W_FireMedikit = +{ + local vector _l_2511; + local vector _l_2514; + local float _l_2517; + local entity _l_2518; + + _l_2511 = self.origin + '0 0 16'; + traceline (_l_2511, (_l_2511 + (v_forward * 64)), 0, self); + if ((trace_fraction == 1)) + { + return; + } + _l_2514 = trace_endpos - (v_forward * 4); + if (trace_ent.takedamage) + { + if ((trace_ent.classname == "building_dispenser")) + { + trace_ent.skin = 1; + return; + } + if (((trace_ent.classname == "player") && (trace_ent.bugger == 0))) + { + if ((((trace_ent.team_no == self.team_no) && (self.team_no != 0)) || coop)) + { + _l_2517 = 200; + if ((trace_ent.leg_damage > 1)) + { + sprint (trace_ent, 2, "Your leg wound has been healed!\n"); + } + TeamFortress_SetSpeed (trace_ent); + _l_2518 = find (world, classname, "timer"); + while ((((_l_2518.owner != trace_ent) || (_l_2518.think != ConcussionGrenadeTimer)) && (_l_2518 != world))) + { + _l_2518 = find (_l_2518, classname, "timer"); + } + if ((_l_2518 != world)) + { + stuffcmd (trace_ent, "v_idlescale 0\n"); + SpawnBlood (_l_2514, 20); + sprint (trace_ent, 2, "you have been healed of your concussion\n"); + if ((_l_2518.team_no != self.team_no)) + { + self.real_frags = (self.real_frags + 1); + if (!(toggleflags & 128)) + { + self.frags = self.real_frags; + } + } + dremove (_l_2518); + } + if ((trace_ent.tfstate & 16384)) + { + _l_2518 = find (world, classname, "timer"); + while ((((_l_2518.owner != trace_ent) || (_l_2518.think != HallucinationTimer)) && (_l_2518 != world))) + { + _l_2518 = find (_l_2518, classname, "timer"); + } + if ((_l_2518 != world)) + { + stuffcmd (trace_ent, "v_idlescale 0\n"); + trace_ent.tfstate = (trace_ent.tfstate - (trace_ent.tfstate & 16384)); + SpawnBlood (_l_2514, 20); + sprint (trace_ent, 2, "you have been healed of your hallucinations\n"); + if ((_l_2518.team_no != self.team_no)) + { + self.real_frags = (self.real_frags + 1); + if (!(toggleflags & 128)) + { + self.frags = self.real_frags; + } + } + dremove (_l_2518); + } + else + { + dprint ("Warning: Error in Hallucination Timer logic.\n"); + } + } + if ((trace_ent.tfstate & 32768)) + { + _l_2518 = find (world, classname, "timer"); + while ((((_l_2518.owner != trace_ent) || (_l_2518.think != TranquiliserTimer)) && (_l_2518 != world))) + { + _l_2518 = find (_l_2518, classname, "timer"); + } + if ((_l_2518 != world)) + { + trace_ent.tfstate = (trace_ent.tfstate - (trace_ent.tfstate & 32768)); + TeamFortress_SetSpeed (trace_ent); + SpawnBlood (_l_2514, 20); + stuffcmd (trace_ent, "v_cshift 0 0 0 0\n"); + sprint (trace_ent, 2, "you have been healed of your tranquilisation\n"); + if ((_l_2518.team_no != self.team_no)) + { + self.real_frags = (self.real_frags + 1); + if (!(toggleflags & 128)) + { + self.frags = self.real_frags; + } + } + dremove (_l_2518); + } + else + { + dprint ("Warning: Error in Tranquilisation Timer logic.\n"); + } + } + if ((trace_ent.FlashTime > 0)) + { + _l_2518 = find (world, netname, "flashtimer"); + while ((((_l_2518.owner != trace_ent) || (_l_2518.classname != "timer")) && (_l_2518 != world))) + { + _l_2518 = find (_l_2518, netname, "flashtimer"); + } + if ((_l_2518 != world)) + { + trace_ent.FlashTime = 0; + SpawnBlood (_l_2514, 20); + stuffcmd (trace_ent, "v_cshift 0 0 0 0\n"); + if ((_l_2518.team_no != self.team_no)) + { + self.real_frags = (self.real_frags + 1); + if (!(toggleflags & 128)) + { + self.frags = self.real_frags; + } + } + dremove (_l_2518); + } + else + { + dprint ("Warning: Error in Flash Timer logic.\n"); + trace_ent.FlashTime = 0; + } + } + if ((trace_ent.tfstate & 16)) + { + _l_2517 = rint ((trace_ent.health / 2)); + trace_ent.tfstate = (trace_ent.tfstate - (trace_ent.tfstate & 16)); + deathmsg = 23; + T_Damage (trace_ent, self, self, _l_2517); + SpawnBlood (_l_2514, 30); + sprint (trace_ent, 2, "Your infection is cured!\n"); + bprint (1, trace_ent.netname); + bprint (1, "'s infection was cured by "); + bprint (1, self.netname); + bprint (1, "\n"); + if ((self.classname == "player")) + { + sprint (self, 2, "You have healed "); + sprint (self, 2, trace_ent.netname); + sprint (self, 2, " of the infection.\n"); + if ((trace_ent.infection_team_no != self.team_no)) + { + self.real_frags = (self.real_frags + 1); + if (!(toggleflags & 128)) + { + self.frags = self.real_frags; + } + } + } + return; + } + if ((trace_ent.numflames > 0)) + { + sound (trace_ent, 1, "items/r_item1.wav", 1, 1); + trace_ent.numflames = 0; + sprint (trace_ent, 2, "The flames have been doused!\n"); + if ((self.classname == "player")) + { + sprint (self, 1, "You have put out "); + sprint (self, 1, trace_ent.netname); + sprint (self, 1, "'s fire.\n"); + } + return; + } + if (((_l_2517 > 0) && (trace_ent.health < trace_ent.max_health))) + { + sound (trace_ent, 1, "items/r_item1.wav", 1, 1); + trace_ent.axhitme = 1; + SpawnBlood (_l_2514, 20); + T_Heal (trace_ent, _l_2517, 0); + if (medicarmorheal) + { + trace_ent.armorvalue = (trace_ent.armorvalue + (trace_ent.maxarmor / 5)); + if ((trace_ent.armortype == 0)) + { + trace_ent.armortype = 0.300000; + trace_ent.items = (self.items | 8192); + } + if ((trace_ent.armorvalue > trace_ent.maxarmor)) + { + trace_ent.armorvalue = trace_ent.maxarmor; + } + } + } + else + { + if (((trace_ent.health >= trace_ent.max_health) && (trace_ent.health < (trace_ent.max_health + 51)))) + { + _l_2517 = 5; + if ((_l_2517 > (self.ammo_medikit * 5))) + { + _l_2517 = self.ammo_medikit * 5; + } + if ((_l_2517 > 0)) + { + sound (trace_ent, 3, "items/r_item2.wav", 1, 1); + T_Heal (trace_ent, _l_2517, 1); + self.ammo_medikit = (self.ammo_medikit - rint ((_l_2517 / 5))); + if (medicarmorheal) + { + if (((self.ammo_cells >= 15) && (trace_ent.armorvalue < trace_ent.maxarmor))) + { + trace_ent.armorvalue = (trace_ent.armorvalue + (trace_ent.maxarmor / 5)); + if ((trace_ent.armortype == 0)) + { + trace_ent.armortype = 0.300000; + trace_ent.items = (self.items | 8192); + } + if ((trace_ent.armorvalue > trace_ent.maxarmor)) + { + trace_ent.armorvalue = trace_ent.maxarmor; + } + self.ammo_cells = (self.ammo_cells - 15); + } + } + if (!(trace_ent.items & 65536)) + { + trace_ent.items = (trace_ent.items | 65536); + newmis = spawn (); + newmis.nextthink = (time + 5); + newmis.think = item_megahealth_rot; + newmis.owner = trace_ent; + } + } + } + } + } + } + } + else + { + sound (self, 1, "player/axhit2.wav", 1, 1); + WriteByte (4, 23); + WriteByte (4, 2); + WriteByte (4, 3); + WriteCoord (4, _l_2514_x); + WriteCoord (4, _l_2514_y); + WriteCoord (4, _l_2514_z); + multicast (_l_2514, 2); + } +}; + + +void () W_FireBioweapon = +{ + local vector _l_2533; + local vector _l_2536; + local entity _l_2540; + + _l_2533 = self.origin + '0 0 16'; + traceline (_l_2533, (_l_2533 + (v_forward * 64)), 0, self); + if ((trace_fraction == 1)) + { + return; + } + _l_2536 = trace_endpos - (v_forward * 4); + if (trace_ent.takedamage) + { + if ((trace_ent.classname == "building_dispenser")) + { + trace_ent.skin = 1; + return; + } + if (((trace_ent.classname == "player") && (trace_ent.bugger == 0))) + { + if (((((trace_ent.team_no != self.team_no) && (self.team_no != 0)) && teamplay) || (teamplay == 0))) + { + trace_ent.axhitme = 1; + SpawnBlood (_l_2536, 20); + deathmsg = 14; + T_Damage (trace_ent, self, self, 10); + if ((trace_ent.playerclass == 5)) + { + return; + } + trace_ent.tfstate = (trace_ent.tfstate | 16); + _l_2540 = spawn (); + _l_2540.classname = "timer"; + _l_2540.owner = trace_ent; + _l_2540.nextthink = (time + 2); + _l_2540.think = BioInfection_Decay; + _l_2540.enemy = self; + trace_ent.infection_team_no = self.team_no; + sprint (self, 2, "Your BioAxe has Infected an enemy!\n"); + } + } + else + { + if ((trace_ent.flags & 32)) + { + if ((trace_ent.classname == "monster_zombie")) + { + T_Damage (trace_ent, self, self, 200); + } + trace_ent.axhitme = 1; + SpawnBlood (_l_2536, 20); + T_Damage (trace_ent, self, self, 10); + _l_2540 = spawn (); + _l_2540.classname = "timer"; + _l_2540.nextthink = (time + 2); + _l_2540.think = BioInfection_MonsterDecay; + _l_2540.owner = self; + _l_2540.enemy = trace_ent; + } + else + { + trace_ent.axhitme = 1; + SpawnBlood (_l_2536, 30); + T_Damage (trace_ent, self, self, 40); + } + } + } + else + { + sound (self, 1, "player/axhit2.wav", 1, 1); + WriteByte (4, 23); + WriteByte (4, 2); + WriteByte (4, 3); + WriteCoord (4, _l_2536_x); + WriteCoord (4, _l_2536_y); + WriteCoord (4, _l_2536_z); + multicast (_l_2536, 2); + } +}; + + +vector () wall_velocity = +{ + local vector vel; + + vel = normalize (self.velocity); + vel = normalize (((vel + (v_up * (random () - 0.5))) + (v_right * (random () - 0.5)))); + vel = (vel + (2 * trace_plane_normal)); + vel = (vel * 200); + return (vel); +}; + +void (vector org,vector vel) SpawnMeatSpray = +{ + local entity missile; + + missile = spawn (); + missile.owner = self; + missile.movetype = 10; + missile.solid = 0; + makevectors (self.angles); + missile.velocity = vel; + missile.velocity_z = ((missile.velocity_z + 250) + (50 * random ())); + missile.avelocity = '3000 1000 2000'; + missile.nextthink = (time + 1); + missile.think = SUB_Remove; + setmodel (missile, "progs/zom_gib.mdl"); + setsize (missile, '0 0 0', '0 0 0'); + setorigin (missile, org); +}; + +void (vector org,float damage) SpawnBlood = +{ + WriteByte (4, 23); + WriteByte (4, 12); + WriteByte (4, 1); + WriteCoord (4, org_x); + WriteCoord (4, org_y); + WriteCoord (4, org_z); + multicast (org, 2); +}; + +void (float damage) spawn_touchblood = +{ + local vector vel; + + vel = (wall_velocity () * 0.2); + SpawnBlood ((self.origin + (vel * 0.01)), damage); +}; + +void (vector org,vector vel) SpawnChunk = +{ + particle (org, (vel * 0.02), 0, 10); +}; +entity multi_ent; +float multi_damage /* = 0 */; +vector blood_org /* = '0 0 0' */; +float blood_count /* = 0 */; +vector puff_org /* = '0 0 0' */; +float puff_count /* = 0 */; + +void () ClearMultiDamage = +{ + multi_ent = world; + multi_damage = 0; + blood_count = 0; + puff_count = 0; +}; + +void () ApplyMultiDamage = +{ + if (!multi_ent) + { + return; + } + TF_T_Damage (multi_ent, self, self, multi_damage, 2, 1); +}; + +void (entity hit,float damage) AddMultiDamage = +{ + if (!hit) + { + return; + } + if ((hit != multi_ent)) + { + ApplyMultiDamage (); + multi_damage = damage; + multi_ent = hit; + } + else + { + multi_damage = (multi_damage + damage); + } +}; + +void () Multi_Finish = +{ + if (puff_count) + { + WriteByte (4, 23); + WriteByte (4, 2); + WriteByte (4, puff_count); + WriteCoord (4, puff_org_x); + WriteCoord (4, puff_org_y); + WriteCoord (4, puff_org_z); + multicast (puff_org, 2); + } + if (blood_count) + { + WriteByte (4, 23); + WriteByte (4, 12); + WriteByte (4, blood_count); + WriteCoord (4, blood_org_x); + WriteCoord (4, blood_org_y); + WriteCoord (4, blood_org_z); + multicast (puff_org, 2); + } +}; + +void (float damage,vector dir) TraceAttack = +{ + local vector vel; + local vector org; + + vel = normalize (((dir + (v_up * crandom ())) + (v_right * crandom ()))); + vel = (vel + (2 * trace_plane_normal)); + vel = (vel * 200); + org = (trace_endpos - (dir * 4)); + + if (trace_ent.takedamage) + { + blood_count = (blood_count + 1); + blood_org = org; + AddMultiDamage (trace_ent, damage); + } + else + { + puff_count = (puff_count + 1); + } +}; + +void (float shotcount,vector dir,vector spread) FireBullets = +{ + local vector direction; + local vector src; + + makevectors (self.v_angle); + src = (self.origin + (v_forward * 10)); + src_z = (self.absmin_z + (self.size_z * 0.7)); + ClearMultiDamage (); + traceline (src, (src + (dir * 2048)), 0, self); + puff_org = (trace_endpos - (dir * 4)); + while ((shotcount > 0)) + { + direction = ((dir + ((crandom () * spread_x) * v_right)) + ((crandom () * spread_y) * v_up)); + traceline (src, (src + (direction * 2048)), 0, self); + if ((trace_fraction != 1)) + { + if (((self.weapon == 3) && engbat)) + { + TraceAttack (2, direction); + } + else + { + if ((self.weapon != 32768)) + { + TraceAttack (4, direction); + } + else + { + TraceAttack (9, direction); + } + } + } + shotcount = (shotcount - 1); + } + ApplyMultiDamage (); + Multi_Finish (); +}; + +void () W_FireShotgun = +{ + local vector dir; + + sound (self, 1, "weapons/guncock.wav", 1, 1); + KickPlayer (-2, self); + self.ammo_shells = (self.ammo_shells - 1); + self.currentammo = (self.ammo_shells); + EjectShell (); + dir = aim (self, 100000); + deathmsg = 1; + FireBullets (6, dir, '0.04 0.04 0'); +}; + +void () W_FireSuperShotgun = +{ + local vector dir; + + if ((self.currentammo == 1)) + { + W_FireShotgun (); + return; + } + EjectShell (); + EjectShell (); + sound (self, 1, "weapons/shotgn2.wav", 1, 1); + KickPlayer (-4, self); + self.ammo_shells = (self.ammo_shells - 2); + self.currentammo = (self.ammo_shells); + dir = aim (self, 100000); + deathmsg = 2; + FireBullets (14, dir, '0.14 0.08 0'); +}; + +void (vector _p_2685, float _p_2688) FireSniperBullet = +{ + local vector _l_2689; + local vector _l_2692; + + makevectors (self.v_angle); + _l_2692 = self.origin + (v_forward * 10); + _l_2692_z = self.absmin_z + (self.size_z * 0.700000); + ClearMultiDamage (); + traceline (_l_2692, (_l_2692 + (_p_2685 * 4096)), 0, self); + if ((trace_fraction != 1)) + { + TraceAttack (_p_2688, _p_2685); + } + if (trace_ent.takedamage) + { + _l_2689 = trace_endpos - (v_forward * 4); + SpawnBlood (_l_2689, 9); + } + else + { + _l_2689 = trace_endpos - (v_forward * 4); + WriteByte (4, 23); + WriteByte (4, 0); + WriteCoord (4, _l_2689_x); + WriteCoord (4, _l_2689_y); + WriteCoord (4, _l_2689_z); + multicast (self.origin, 1); + } + ApplyMultiDamage (); +}; + +void () W_FireSniperRifle = +{ + local vector dir; + local vector _l_2708; + local vector src; + local float dam_mult; + local float zdif; + local float use_this; + local float x; + local vector f; + local vector g; + local vector h; +#ifdef clan_progs + local float damg; //PZ - damg is for Randomer's charge-up fix +#endif + + sound (self, 1, "weapons/rifle.wav", 1, 1); + self.ammo_shells = (self.ammo_shells - 1); + KickPlayer (-2, self); + self.currentammo = (self.ammo_shells - 1); + EjectShell (); + makevectors (self.v_angle); + src = (self.origin + (v_forward * 10)); + src_z = (self.absmin_z + (self.size_z * 0.7)); + use_this = 0; + traceline (src, (src + (dir * 8092)), 0, self); + if ((trace_fraction != 1)) + { + if ((trace_ent.classname == "player")) + { + use_this = 1; + } + } + KickPlayer (-4, self); + if (!use_this) + { + dir = aim (self, 10000); + traceline (src, (src + (dir * 3072)), 0, self); + } + deathmsg = 18; + dam_mult = 1; +#ifdef clan_progs + // PZ - code added for randomer's charge-up fix + damg = (time - self.heat) / WEAP_SNIPER_RIFLE_MAX_TIME; + if (damg < 0) + damg = 0; + if (damg > 1) + damg = 1; + damg = damg * (WEAP_SNIPER_RIFLE_MAX_DAMG - WEAP_SNIPER_RIFLE_MIN_DAMG) + WEAP_SNIPER_RIFLE_MIN_DAMG; // Powerup * damage range + minimum damage. +#endif + if (trace_ent) + { + if ((trace_ent.classname == "player")) + { + f = (trace_endpos - src); + g_x = trace_endpos_x; + g_y = trace_endpos_y; + g_z = 0; + h_x = trace_ent.origin_x; + h_y = trace_ent.origin_y; + h_z = 0; + x = vlen ((g - h)); + f = ((normalize (f) * x) + trace_endpos); + zdif = (f_z - trace_ent.origin_z); + deathmsg = 18; + trace_ent.head_shot_vector = '0 0 0'; + if (((zdif < 0) && (trace_ent.is_squating == 0))) + { + dam_mult = 0.5; + if ((trace_ent.team_no != self.team_no)) + { + trace_ent.leg_damage = (trace_ent.leg_damage + 1); + TeamFortress_SetSpeed (trace_ent); + deathmsg = 28; +#ifdef clan_progs + T_Damage (trace_ent, self, self, (damg * dam_mult)); +#else + T_Damage (trace_ent, self, self, (self.heat * dam_mult)); +#endif + } + if ((trace_ent.health > 0)) + { + if ((trace_ent.team_no == self.team_no)) + { + sprint (self, 1, "Stop shooting team mates!!!\n"); + } + else + { + sprint (trace_ent, 1, "Leg injury!\n"); + sprint (self, 1, "Leg shot - that'll slow him down!\n"); + } + } + return; + } + else + { + if (((zdif > 20) || (trace_ent.is_squating == 1))) + { + dam_mult = 3; + stuffcmd (trace_ent, "bf\n"); + deathmsg = 29; + if ((trace_ent.health > 0)) + { + if ((trace_ent.team_no == self.team_no)) + { + sprint (self, 1, "Stop shooting team mates!!!\n"); + } + else + { + trace_ent.head_shot_vector = (trace_ent.origin - self.origin); + deathmsg = 29; +#ifdef clan_progs + T_Damage (trace_ent, self, self, (damg * dam_mult)); +#else + T_Damage (trace_ent, self, self, (self.heat * dam_mult)); +#endif + sound (self, 0, "speech/excelent.wav", 1, 0); + } + return; + } + else + { + deathmsg = 18; + } + } + } + } + ClearMultiDamage (); + if ((trace_fraction != 1)) + { +#ifdef clan_progs + TraceAttack ((damg * dam_mult), dir); +#else + TraceAttack ((self.heat * dam_mult), dir); +#endif + } + ApplyMultiDamage (); + } + else + { + _l_2708 = trace_endpos - (v_forward * 4); + WriteByte (4, 23); + WriteByte (4, 0); + WriteCoord (4, _l_2708_x); + WriteCoord (4, _l_2708_y); + WriteCoord (4, _l_2708_z); + multicast (self.origin, 1); + } +}; + +void () W_FireAutoRifle = +{ + local vector dir; + + sound (self, 1, "weapons/rifle.wav", 1, 1); + KickPlayer (-1, self); + self.ammo_shells = (self.ammo_shells - 1); + self.currentammo = (self.ammo_shells); + makevectors (self.v_angle); + dir = v_forward; + deathmsg = 19; + FireSniperBullet (dir, 10); +}; + +void () W_FireAssaultCannon = +{ + local vector dir; + + KickPlayer (-4, self); + self.ammo_shells = (self.ammo_shells - 1); + self.currentammo = (self.ammo_shells); + dir = aim (self, 100000); + deathmsg = 20; + FireBullets (6, dir, '0.04 0.04 0'); + Stats_Fired (self.current_weapon); +}; + +void () T_MissileTouch = +{ + local float damg; + + if ((pointcontents (self.origin) == -6)) + { + dremove (self); + return; + } +/* if (((other.playerclass == 7) && (other.team_no != self.team_no))) + { + deflect = hwguy_deflect (other); + if (deflect) + { + return; + } + }*/ + damg = (92 + (random () * 20)); + deathmsg = self.weapon; + if (other.health) + { + TF_T_Damage (other, self, self.owner, damg, 0, 4); + } + T_RadiusDamage (self, self.owner, 92, other); + self.origin = (self.origin - (8 * normalize (self.velocity))); + WriteByte (4, 23); + WriteByte (4, 3); + WriteCoord (4, self.origin_x); + WriteCoord (4, self.origin_y); + WriteCoord (4, self.origin_z); + multicast (self.origin, 1); + BecomeExplosion (); + dremove (self); +}; + +void () RemoveAlarmMine = +{ + sprint (self.owner, 2, "Your batteries died in an alarm.. :(\n"); + dremove (self); + return; +}; + +void () RemoveAIDSMine = +{ + sprint (self.owner, 2, "Your syringe is sterile...\n"); + self.owner.has_syringe = TF_FLARE_OFF; + dremove (self); + return; +}; + +void () RemoveFlashMine = +{ + sprint (self.owner, 2, "Your Flash mine fizzled...\n"); + self.owner.has_syringe = TF_FLARE_OFF; + dremove (self); + return; +}; + +void () RemoveSpikeTrap = +{ + sprint (self.owner, 2, "Your Spike Trap is gone...\n"); + self.owner.has_syringe = TF_FLARE_OFF; + dremove (self); + return; +}; + +void () RemoveMagnetMine = +{ + sprint (self.owner, 2, "Your Mag Mine is gone...\n"); + self.owner.has_syringe = TF_FLARE_OFF; + dremove (self); + return; +}; + +void () AlarmMineTouch = +{ + + if ((self.pausetime > time)) + { + return; + } + if ((other.classname != "player")) + { + return; + } + if ((other.health <= 0)) + { + return; + } + if ((other.bugger > 0)) + { + return; + } + if ((other.team_no == self.owner.team_no)) + { + if ((((other.velocity_x < 5) && (other.velocity_y < 5)) && (other.is_squating == 1))) + { + self.think = RemoveAlarmMine; + self.nextthink = (time + 0.200000); + } + else + { + return; + } + } + else + { + other.effects = (other.effects | 4); + sound (self, 3, "misc/enemy.wav", 1, 1); + sprint (other, 2, "You have tripped an ALARM!\n"); + sprint (self.owner, 2, "Your ALARM was tripped!\n"); + sprint (self.owner, 2, " Your ALARM was tripped!\n"); + self.pausetime = (time + 5); + } + self.nextthink = (time + 10); + if ((other.effects & 4)) + { + other.effects = (other.effects - (other.effects & 8)); + } +}; + +void () AIDSMineTouch = +{ + local entity BioInfection; + + if ((self.pausetime > time)) + { + return; + } + if ((other.classname != "player")) + { + return; + } + if ((other.health <= TF_FLARE_LIT)) + { + return; + } + if ((other.team_no == self.owner.team_no)) + { + return; + } + if ((other.playerclass == 5)) + { + RemoveAIDSMine (); + sprint (other, 2, "You removed an enemy syringe! :)\n"); + sprint (self.owner, 2, " Syringe removed by enemy medic!\n"); + return; + } + if ((other.classname == "player")) + { + deathmsg = 14; + if ((other.playerclass == 5)) + { + return; + } + other.tfstate = (other.tfstate | 16); + BioInfection = spawn (); + BioInfection.classname = "timer"; + BioInfection.owner = other; + BioInfection.nextthink = (time + 2); + BioInfection.think = BioInfection_Decay; + BioInfection.enemy = self.owner; + other.infection_team_no = self.team_no; + } + sound (self, 3, "player/mpain6.wav", TF_FLARE_OFF, TF_FLARE_OFF); + sprint (other, 2, "You're infected by a syringe! :(\n"); + sprint (self.owner, 2, "Your syringe has Infected an enemy!\n"); + bprint (1, other.netname); + bprint (1, " was infected by "); + bprint (1, self.owner.netname); + bprint (1, "'s syringe\n"); + self.pausetime = (time + 5); + self.nextthink = (time + 10); + RemoveAIDSMine (); +}; + +void () FlashMineTouch = +{ + if ((self.pausetime > time)) + { + return; + } + if ((other.classname != "player")) + { + return; + } + if ((other.health <= TF_FLARE_LIT)) + { + return; + } + if ((other.team_no == self.owner.team_no)) + { + return; + } + if ((other.classname == "player")) + { + + FlashGrenadeExplode2 (); + sprint (self.owner, 2, "Your Flash mine was tripped!\n"); + //self.pausetime = (time + 5); + } + //self.nextthink = (time+ 1); + self.nextthink = time; + dremove (self); +}; + +void () SpikeTrapTouch = +{ + + if ((self.pausetime > time)) + { + return; + } + if ((other.classname != "player")) + { + return; + } + if ((other.health <= 0)) + { + return; + } + if ((other.invincible_finished >= time)) + { + if ((other.invincible_sound < time)) + { + sound (other, 3, "items/protect3.wav", 1, 1); + other.invincible_sound = (time + 2); + } + return; + } + if ((other.bugger > 0)) + { + return; + } + if ((other.team_no == self.owner.team_no)) + { + return; + } + if ((other.playerclass == 6)) + { + RemoveSpikeTrap (); + sprint (other, 2, "You removed an enemy trap!\n"); + sprint (self.owner, 2, "Spike Trap removed by enemy!\n"); + sound (self, 3, "weapons/tink2.wav", 1, 1); + return; + } + sound (self, 3, "shambler/smack.wav", 1, 1); + sprint (other, 2, "You stepped on a Spike Trap!\n"); + sprint (self.owner, 2, "Your Trap worked!\n"); + self.pausetime = (time + 5); + self.nextthink = (time + 5); + deathmsg = 200; + TF_T_Damage (other, self.owner, self.owner, 1, 2, 0); + if ((other.health <= 0)) + { + return; + } + other.leg_damage = (other.leg_damage + 1); + TeamFortress_SetSpeed (other); +}; + +void () MagnetMineTouch = +{ + if ((self.pausetime > time)) + { + return; + } + if ((other.classname != "player")) + { + return; + } + if ((other.health <= TF_FLARE_LIT)) + { + return; + } + if ((other.is_undercover == TF_FLARE_OFF)) + { + return; + } + if ((other.team_no == self.owner.team_no)) + { + return; + } + if ((other.classname == "player")) + { + MagMineActivate (); + sprint (other, 2, "You stepped on a Magnetic Mine! :(\n"); + sprint (self.owner, 2, "Your Magnet Mine worked!\n"); + self.pausetime = (time + 5); + } + self.nextthink = (time + 5); + dremove (self); +}; +void () Tranq_spike_touch; +void () spike_touch; +void () superspike_touch; + +void (vector org,vector dir) launch_spike = +{ + + newmis = spawn (); + newmis.owner = self; + newmis.movetype = 9; + newmis.solid = 2; + newmis.angles = vectoangles (dir); + newmis.touch = spike_touch; + newmis.weapon = 3; + newmis.classname = "spike"; + newmis.think = SUB_Remove; + newmis.nextthink = (time + 3); + if ((deathmsg != 9)) + { + setmodel (newmis, "progs/spike.mdl"); + } + setsize (newmis, '0 0 0', '0 0 0'); + setorigin (newmis, org); + newmis.velocity = (dir * 2000); +}; + +void (vector org,vector dir) Tranq_launch_spike = +{ + + newmis = spawn (); + newmis.owner = self; + newmis.movetype = 9; + newmis.solid = 2; + newmis.angles = vectoangles (dir); + newmis.touch = Tranq_spike_touch; + newmis.weapon = 3; + newmis.classname = "spike"; + newmis.think = SUB_Remove; + newmis.nextthink = (time + 3); + if ((deathmsg != 25)) + { + setmodel (newmis, "progs/spike.mdl"); + } + setsize (newmis, '0 0 0', '0 0 0'); + setorigin (newmis, org); + newmis.velocity = (dir * 2000); +}; + +void (float type) ThrowMine = +{ + local entity item; + + item = spawn (); + item.team_no = self.team_no; + item.owner = self; + item.classname = "drop1"; + item.origin = (self.origin - '0 0 10'); + if ((type == 1)) + { + item.angles_x = 270; + } + if ((type == 2)) + { + item.angles_x = 0; + item.health = 5; + item.th_die = RemoveAIDSMine; + } + if ((type == 4)) + { + item.angles_x = 90; + item.health = 5; + item.th_die = RemoveSpikeTrap; + } + item.angles_y = 45; + item.flags = 256; + item.solid = 2; + item.movetype = 6; + item.velocity = '0 0 1'; + setsize (item, '-1 -1 0', '1 1 6'); + if ((type == 4)) + { + setmodel (item, "progs/spikebal.mdl"); + } + else + { + if ((type == 5)) + { + setmodel (item, "progs/tgib1.mdl"); + item.skin = 1; + } + else + { + setmodel (item, "progs/syringe.mdl"); + } + } + if ((type == 1)) + { + item.touch = AlarmMineTouch; + } + if ((type == 2)) + { + item.touch = AIDSMineTouch; + } + if ((type == 3)) + { + item.health = 1; + item.th_die = RemoveFlashMine; + item.touch = FlashMineTouch; + setmodel (item, "progs/s_bubble.spr"); + } + if ((type == 4)) + { + item.touch = SpikeTrapTouch; + } + if ((type == 5)) + { + item.touch = MagnetMineTouch; + setmodel (item, "progs/tgib1.mdl"); + } + item.nextthink = (time + 180); + if ((type == 1)) + { + item.think = RemoveAlarmMine; + } + if ((type == 2)) + { + item.think = RemoveAIDSMine; + } + if ((type == 3)) + { + item.think = RemoveFlashMine; + } + if ((type == 4)) + { + item.think = RemoveSpikeTrap; + } + if ((type == 5)) + { + item.think = RemoveMagnetMine; + } +}; + +void () A_Mine = +{ + if (((self.ammo_cells < 50) && (self.playerclass == 2))) + { + sprint (self, 2, "Not enough cells...\n"); + return; + } +// if (((self.ammo_cells < 200) && (self.playerclass == 9))) +// { +// sprint (self, 2, "Not enough cells...\n"); +// return; +// } + self.ammo_cells = TF_FLARE_LIT; + ThrowMine (1); + sprint (self, 2, "You set an alarm!\n"); + sound (self, 2, "effects/beep.wav", TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void () B_Mine = +{ + local entity te; + + if ((self.has_syringe != 1)) + { + sprint (self, 2, "1 syringe at a time!\n"); + return; + } + te = find (world, classname, "drop1"); + while (te) + { + if ((te.owner == self)) + { + sprint (self, 2, "1 syringe at a time!\n"); + return; + } + te = find (te, classname, "drop1"); + } + + ThrowMine (2); + sprint (self, 2, "You dropped a syringe!\n"); + sound (self, 2, "weapons/tink1.wav", TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void () C_Mine = +{ + local entity te; + + if ((self.has_syringe != 1)) + { + sprint (self, 2, "1 flash mine at a time!\n"); + return; + } + if ((self.last_used >= time)) + { + sprint (self, 2, "not ready yet...\n"); + return; + } + te = find (world, classname, "drop1"); + while (te) + { + if ((te.owner == self)) + { + sprint (self, 2, "1 flash mine at a time!\n"); + return; + } + te = find (te, classname, "drop1"); + } + + ThrowMine (3); + sprint (self, 2, "You set a Flash mine!\n"); + sound (self, 2, "weapons/bounce.wav", TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void () S_Mine = +{ + local entity te; + local float spikecount; + + te = find (world, classname, "drop1"); + while (te) + { + if ((te.owner == self)) + { + spikecount = (spikecount + TF_FLARE_OFF); + } + te = find (te, classname, "drop1"); + } + if ((spikecount >= 2)) + { + sprint (self, 2, "2 spike traps at a time!\n"); + return; + } + ThrowMine (4); + sprint (self, 2, "You set a Spike Trap!\n"); + sound (self, 2, "doors/meduse.wav", TF_FLARE_OFF, TF_FLARE_OFF); +}; + +void () M_Mine = +{ + local entity te; + + if ((self.has_syringe != 1)) + { + sprint (self, 2, "You get 1 Mag Mine at a time!\n"); + return; + } + te = find (world, classname, "drop1"); + while (te) + { + if ((te.owner == self)) + { + sprint (self, 2, "You get 1 Mag Mine at a time!\n"); + return; + } + te = find (te, classname, "drop1"); + } + ThrowMine (5); + sprint (self, 2, "You set a Mag Mine!\n"); + sound (self, 2, "weapons/bounce.wav", 1, 1); +}; + +void () MakeHolo = +{ + local string he; + he = infokey(self, "tf_help"); + + if ((self.playerclass == TF_FLARE_LIT)) + { + return; + } + if ((self.has_holo != 1)) + { + if (he != "off") + { + sprint (self, 2, "holograph already running!\n"); + return; + } + else + { + return; + } + } + self.has_holo = 0; + HoloDood (); + if (he != "off") + { + sprint (self, 2, "Holographic replica active!\n"); + } +}; + +void () W_FireRocket = +{ + self.ammo_rockets = (self.ammo_rockets - 1); + self.currentammo = (self.ammo_rockets); + sound (self, 1, "weapons/sgun1.wav", 1, 1); + KickPlayer (-2, self); + newmis = spawn (); + newmis.owner = self; + newmis.team_no = self.team_no; + newmis.movetype = 9; + newmis.solid = 2; + makevectors (self.v_angle); + newmis.velocity = v_forward; + newmis.velocity = (newmis.velocity * 1350); // pablo. rocket speed. mtf 1350. reg 900. + newmis.angles = vectoangles (newmis.velocity); + newmis.touch = T_MissileTouch; + newmis.nextthink = (time + 5); + newmis.think = SUB_Remove; + newmis.weapon = 6; + setmodel (newmis, "progs/missile.mdl"); + setsize (newmis, '0 0 0', '0 0 0'); + setorigin (newmis, ((self.origin + (v_forward * 8)) + '0 0 16')); //setorigin (newmis, ((self.origin + (v_forward * 8)) + '0 0 16')); +}; + +void () BalloonMIRVtouch = +{ + if ((pointcontents (self.origin) == -6)) + { + self.velocity_z = TF_FLARE_LIT; + } + if ((pointcontents (self.origin) == -2)) + { + self.velocity = '0 0 0'; + } +}; + +void (vector org,entity shooter) BalloonMirvGrenadeLaunch = +{ + local float xdir; + local float ydir; + local float zdir; + + xdir = ((150 * random ()) - 75); + ydir = ((150 * random ()) - 75); + zdir = (40 * random ()); + newmis = spawn (); + newmis.owner = shooter; + newmis.movetype = 10; + newmis.solid = 2; + newmis.classname = "grenade"; + newmis.weapon = 40; + newmis.touch = GrenadeTouch; + newmis.think = GrenadeExplode; + newmis.nextthink = ((time + 2) + (random () * 2)); + newmis.velocity_x = (xdir * 2); + newmis.velocity_y = (ydir * 2); + newmis.velocity_z = (zdir * 10); + newmis.avelocity = '0 0 0'; + setmodel (newmis, "progs/hgren2.mdl"); + setsize (newmis, '0 0 0', '0 0 0'); + setorigin (newmis, org); +}; + +void () BalloonMIRVpop = +{ + local float i; + + sound (self, 3, "shambler/sboom.wav", TF_FLARE_OFF, TF_FLARE_OFF); + deathmsg = 40; + i = TF_FLARE_LIT; + while ((i < 6)) + { + BalloonMirvGrenadeLaunch ((self.origin + '0 0 -1'), self.owner); + i = (i + TF_FLARE_OFF); + } + self.owner.active_airmirvs = (self.owner.active_airmirvs - 1); + BecomeExplosion (); +}; + +void () BalloonMIRVnoise = +{ + self.playerclass = (self.playerclass + TF_FLARE_OFF); + self.nextthink = (time + 0.3); + if (((self.velocity_x < 3) && (self.velocity_y < 3))) + { + sound (self, 0, "player/axhit2.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + else + { + sound (self, 0, "weapons/throw.wav", TF_FLARE_OFF, TF_FLARE_OFF); + } + if ((self.playerclass >= 20)) + { + self.think = BalloonMIRVpop; + } +}; + +void () BalloonMIRV = +{ + if ((self.no_grenades_2 < TF_FLARE_OFF)) + { + sprint (self, 2, "You need type 2 grens for an AirMIRV\n"); + return; + } + if ((self.last_saveme_sound > time)) + { + return; + } + if ((self.active_airmirvs >= sr_airmirv)) + { + sprint (self, 2, "Maximum number of airmirvs already active.\n"); + return; + } + else + { + self.last_saveme_sound = (time + 2); + self.no_grenades_2 = (self.no_grenades_2 - TF_FLARE_OFF); + self.active_airmirvs = (self.active_airmirvs + 1); + sprint (self, 2, "AirMIRV released!\n"); + sound (self, 3, "weapons/chngnu1a.wav", TF_FLARE_OFF, TF_FLARE_OFF); + newmis = spawn (); + newmis.health = 180; + newmis.takedamage = 2; + newmis.th_die = BalloonMIRVpop; + newmis.owner = self; + newmis.weapon = 40; + newmis.movetype = 5; + newmis.solid = 2;//TF_FLARE_OFF; + newmis.classname = "bot";//"grenade"; + // pablo. netname so i can fudge gun's aim. + newmis.netname = "airmirv"; + // + newmis.playerclass = TF_FLARE_LIT; + newmis.team_no = self.team_no; // can't shotgun your own airmirvs anyway. + makevectors (self.v_angle); + if (self.v_angle_x) + { + newmis.velocity = ((v_forward * 100) + (v_up * 200)); + } + else + { + newmis.velocity = aim (self, 10000); + newmis.velocity = (newmis.velocity * 100); + newmis.velocity_z = 200; + } + newmis.avelocity = '0 0 0'; + setsize (newmis, '-8 -8 -8', '8 8 8'); + setorigin (newmis, self.origin); + newmis.nextthink = (time + TF_FLARE_OFF); + newmis.think = BalloonMIRVnoise; + newmis.touch = BalloonMIRVtouch; + setmodel (newmis, "progs/air-mirv.mdl"); + deathmsg = 40; + } +}; + +void (entity from,float damage) LightningHit = +{ + WriteByte (4, 23); + WriteByte (4, 13); + WriteCoord (4, trace_endpos_x); + WriteCoord (4, trace_endpos_y); + WriteCoord (4, trace_endpos_z); + multicast (trace_endpos, 2); + TF_T_Damage (trace_ent, from, from, damage, 2, 8); +}; + +void (vector p1,vector p2,entity from,float damage) LightningDamage = +{ + local entity e1; + local entity e2; + local vector f; + + f = (p2 - p1); + normalize (f); + f_x = (0 - f_y); + f_y = f_x; + f_z = 0; + f = (f * 16); + e2 = world; + e1 = world; + traceline (p1, p2, 0, self); + if (trace_ent.takedamage) + { + LightningHit (from, damage); + if ((self.classname == "player")) + { + if ((other.classname == "player")) + { + trace_ent.velocity_z = (trace_ent.velocity_z + 400); + } + } + } + e1 = trace_ent; + traceline ((p1 + f), (p2 + f), 0, self); + if (((trace_ent != e1) && trace_ent.takedamage)) + { + LightningHit (from, damage); + } + e2 = trace_ent; + traceline ((p1 - f), (p2 - f), 0, self); + if ((((trace_ent != e1) && (trace_ent != e2)) && trace_ent.takedamage)) + { + LightningHit (from, damage); + } +}; + +void () W_FireLightning = +{ + local vector org; + local float cells; + + if ((self.ammo_cells < 1)) + { + self.current_weapon = W_BestWeapon (); + W_SetCurrentAmmo (); + W_PrintWeaponMessage (); + return; + } + if ((self.waterlevel > 1)) + { + cells = self.ammo_cells; + self.ammo_cells = 0; + W_SetCurrentAmmo (); + deathmsg = 7; + T_RadiusDamage (self, self, (35 * cells), world); + return; + } + if ((self.t_width < time)) + { + sound (self, 1, "weapons/lhit.wav", 1, 1); + self.t_width = (time + 0.6); + } + KickPlayer (-2, self); + self.ammo_cells = (self.ammo_cells - 1); + self.currentammo = (self.ammo_cells); + org = (self.origin + '0 0 16'); + traceline (org, (org + (v_forward * 600)), 1, self); + WriteByte (4, 23); + WriteByte (4, 6); + WriteEntity (4, self); + WriteCoord (4, org_x); + WriteCoord (4, org_y); + WriteCoord (4, org_z); + WriteCoord (4, trace_endpos_x); + WriteCoord (4, trace_endpos_y); + WriteCoord (4, trace_endpos_z); + multicast (org, 1); + LightningDamage (self.origin, (trace_endpos + (v_forward * 4)), self, 30); +}; + +void () W_FireSpikes = +{ + local vector dir; + + makevectors (self.v_angle); + Stats_Fired (self.current_weapon); + //if (((self.ammo_nails >= 2) && (self.current_weapon == 1024))) + if (((self.ammo_nails >= 1) && (self.current_weapon == 1024))) + { + sound (self, 1, "effects/mortar.wav", 1, 1); + deathmsg = 4; + Attack_Finished (0.3); + self.ammo_nails = (self.ammo_nails - 2); + self.currentammo = (self.ammo_nails - 1); + dir = aim (self, 1000); + FireSniperBullet (dir, 10); + KickPlayer (-4, self); + return; + } + if ((self.ammo_nails < 1)) + { + self.current_weapon = W_BestWeapon (); + W_SetCurrentAmmo (); + W_PrintWeaponMessage (); + return; + } + sound (self, 3, "weapons/sniper.wav", 1, 1); + Attack_Finished (0.1); + self.ammo_nails = (self.ammo_nails - 1); + self.currentammo = (self.ammo_nails - 1); + dir = aim (self, 1000); + deathmsg = 3; + FireSniperBullet (dir, 4); +}; +//.float hit_z; + +void () spike_touch = +{ + + if ((other.solid == 1)) + { + return; + } + if ((pointcontents (self.origin) == -6)) + { + dremove (self); + return; + } + if (other.takedamage) + { + spawn_touchblood (9); + deathmsg = self.weapon; + if ((self.owner.classname == "grenade")) + { + TF_T_Damage (other, self, self.owner.owner, 9, 2, 2); + } + else + { + TF_T_Damage (other, self, self.owner, 9, 2, 2); + } + } + else + { + WriteByte (4, 23); + if ((self.classname == "wizspike")) + { + WriteByte (4, 7); + } + else + { + if ((self.classname == "knightspike")) + { + WriteByte (4, 8); + } + else + { + WriteByte (4, 0); + } + } + WriteCoord (4, self.origin_x); + WriteCoord (4, self.origin_y); + WriteCoord (4, self.origin_z); + multicast (self.origin, 1); + } + dremove (self); +}; + +void () Tranq_spike_touch = +{ + if ((other.solid == 1)) + { + return; + } + if ((pointcontents (self.origin) == -6)) + { + dremove (self); + return; + } + if (other.takedamage) + { + spawn_touchblood (9); + deathmsg = 25; + if ((self.owner.classname == "Tgrenade")) + { + TF_T_Damage (other, self, self.owner.owner, 9, 2, 2); + } + else + { + TF_T_Damage (other, self, self.owner, 9, 2, 2); + } + } + else + { + WriteByte (4, 23); + if ((self.classname == "wizspike")) + { + WriteByte (4, 7); + } + else + { + if ((self.classname == "knightspike")) + { + WriteByte (4, 8); + } + else + { + WriteByte (4, 0); + } + } + WriteCoord (4, self.origin_x); + WriteCoord (4, self.origin_y); + WriteCoord (4, self.origin_z); + multicast (self.origin, 1); + } + dremove (self); +}; + +void () superspike_touch = +{ + local float ndmg; + + if ((other == self.owner)) + { + return; + } + if ((other.solid == 1)) + { + return; + } + if ((pointcontents (self.origin) == -6)) + { + dremove (self); + return; + } + if (other.takedamage) + { + spawn_touchblood (18); + deathmsg = self.weapon; + if ((deathmsg == 9)) + { + ndmg = 40; + } + else + { + ndmg = 13; + } + if ((self.owner.classname == "grenade")) + { + TF_T_Damage (other, self, self.owner.owner, ndmg, 2, 2); + } + else + { + TF_T_Damage (other, self, self.owner, ndmg, 2, 2); + } + } + else + { + WriteByte (4, 23); + WriteByte (4, 1); + WriteCoord (4, self.origin_x); + WriteCoord (4, self.origin_y); + WriteCoord (4, self.origin_z); + multicast (self.origin, 1); + } + dremove (self); +}; + +// xavior's fix for reload after proxy is selected +void (entity reloaded_player, float type_rl) W_ReloadSetCurrentAmmo = +{ + if (type_rl == 0) + { + reloaded_player.items = (reloaded_player.items - (reloaded_player.items & (((256 | 512) | 1024) | 2048))); + reloaded_player.currentammo = 0; + } + else if (type_rl == 1) + { + reloaded_player.currentammo = reloaded_player.ammo_shells; + reloaded_player.items = (reloaded_player.items | 2048); + } + else + { + reloaded_player.currentammo = reloaded_player.ammo_rockets; + reloaded_player.items = (reloaded_player.items | 1024); + } +} + +void () W_SetCurrentAmmo = +{ + + if (((self.health <= 0) || (self.current_weapon == 0))) + { + return; + } + if ((self.weaponmodel == "progs/proxgren.mdl")) + { + self.currentammo = self.currentammo; + return; + } +// player_run (); + self.items = (self.items - (self.items & (((256 | 512) | 1024) | 2048))); + self.weapon = 0; // pablo. fix to assualt cannon jamming when on backpacks. + if ((self.tools == (self.tools | 32))) + { + return; + } + if ((self.current_weapon == 16)) + { + self.currentammo = 0; + if ((self.weaponmode == 0)) + { + self.weaponmodel = "progs/v_knife.mdl";//v_axe.mdl"; + } + else + { + self.weaponmodel = "progs/v_knife2.mdl";//self.weaponmodel = "progs/v_axe.mdl"; + } + self.weaponframe = 0; + } + else + { + if ((self.current_weapon == 1)) + { + if ((self.owner.ammo_cells > 0)) + { + self.ammo_cells = self.owner.ammo_cells; + } + self.currentammo = self.ammo_cells; + self.weaponmodel = "progs/v_grap.mdl"; + self.weaponframe = 0; + } + else + { + if ((self.current_weapon == 8)) + { + self.currentammo = self.ammo_cells; + self.weaponmodel = "progs/v_span.mdl"; + self.weaponframe = 0; + } + else + { + if ((self.current_weapon == 128)) + { + self.currentammo = self.ammo_shells; + self.items = (self.items | 2048); + if (!(self.tfstate & 2)) + { + self.weaponmodel = "progs/v_shot.mdl"; + self.weaponframe = 0; + } + self.items = (self.items | 256); + self.weapon = 1; + } + else + { + if ((self.current_weapon == 256)) + { + self.currentammo = self.ammo_shells; + if (!(self.tfstate & 2)) + { + self.weaponmodel = "progs/v_shot2.mdl"; + self.weaponframe = 0; + } + self.items = (self.items | 256); + self.weapon = 2; + } + else + { + if ((self.current_weapon == 512)) + { + self.currentammo = self.ammo_nails; + if (!(self.tfstate & 2)) + { + self.weaponmodel = "progs/v_mac10.mdl"; + self.weaponframe = 0; + } + self.items = (self.items | 512); + self.weapon = 4; + } + else + { + if ((self.current_weapon == 1024)) + { + self.currentammo = self.ammo_nails; + if (!(self.tfstate & 2)) + { + self.weaponmodel = "progs/v_nail2.mdl"; + self.weaponframe = 0; + } + self.items = (self.items | 512); + self.weapon = 8; + } + else + { + if ((self.current_weapon == 2048)) + { + self.currentammo = self.ammo_rockets; + if (!(self.tfstate & 2)) + { + self.weaponmodel = "progs/v_rock.mdl"; + self.weaponframe = 0; + } + self.weapon = 16; + self.items = (self.items | 1024); + } + else + { + if ((self.current_weapon == 8192)) + { + self.currentammo = self.ammo_rockets; + if (!(self.tfstate & 2)) + { + self.weaponmodel = "progs/v_rock2.mdl"; + self.weaponframe = 0; + } + self.items = (self.items | 1024); + self.weapon = 32; + } + else + { + if ((self.current_weapon == 65536)) + { + self.currentammo = self.ammo_cells; + if (!(self.tfstate & 2)) + { + self.weaponmodel = "progs/v_light.mdl"; + self.weaponframe = 0; + } + self.items = (self.items | 2048); + self.weapon = 64; + } + else + { + if ((self.current_weapon == 32)) + { + self.currentammo = self.ammo_shells; + if (!(self.tfstate & 2)) + { + self.weaponmodel = "progs/v_srifle.mdl"; + self.weaponframe = 0; + } + self.items = (self.items | 256); + self.weapon = 1; + } + else + { + if ((self.current_weapon == 64)) + { + self.currentammo = self.ammo_shells; + if (!(self.tfstate & 2)) + { + self.weaponmodel = "progs/v_srifle.mdl"; + self.weaponframe = 0; + } + self.items = (self.items | 256); + self.weapon = 2; + } + else + { + if ((self.current_weapon == 32768)) + { + self.currentammo = self.ammo_shells; + if (!(self.tfstate & 2)) + { + self.weaponmodel = "progs/v_asscan.mdl"; + self.weaponframe = 0; + } + self.items = (self.items | 256); + self.weapon = 32; + } + else + { + if ((self.current_weapon == 4096)) + { + self.currentammo = self.ammo_cells; + if (!(self.tfstate & 2)) + { + self.weaponmodel = "progs/v_rock.mdl"; + self.weaponframe = 0; + } + self.items = (self.items | 2048); + self.weapon = 16; + } + else + { + if ((self.current_weapon == 16384)) + { + self.currentammo = self.ammo_rockets; + if (!(self.tfstate & 2)) + { + self.weaponmodel = "progs/v_rock2.mdl"; + self.weaponframe = 0; + } + self.items = (self.items | 1024); + self.weapon = 32; + } + else + { + if ((self.current_weapon == 4)) + { + self.currentammo = 0; + self.weaponmodel = "progs/v_medi.mdl"; + self.weaponframe = 0; + } + else + { + if ((self.current_weapon == 2)) + { + self.currentammo = 0; + self.weaponmodel = "progs/v_bio.mdl"; + self.weaponframe = 0; + } + else + { + if ((self.current_weapon == 262144)) + { + self.currentammo = self.ammo_shells; + if (!(self.tfstate & 2)) + { + self.weaponmodel = "progs/v_shot.mdl"; + self.weaponframe = 0; + } + self.items = (self.items | 256); + self.weapon = 1; + } + else + { + if ((self.current_weapon == 524288)) + { + self.currentammo = self.ammo_nails; + if (!(self.tfstate & 2)) + { + self.weaponmodel = "progs/v_rail.mdl"; + self.weaponframe = 0; + } + self.items = (self.items | 512); + self.weapon = 1; + } + else + { + self.currentammo = 0; + self.weaponmodel = ""; + self.weaponframe = 0; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } +}; + +float () W_BestWeapon = +{ + local float it; + + it = self.weapons_carried; + if ((((self.ammo_cells >= 1) && (it & 65536)) && (self.waterlevel <= 1))) + { + return (65536); + } + else + { + if ((((self.ammo_cells >= 6) && (self.ammo_shells >= 1)) && (it & 32768))) + { + return (32768); + } + else + { + if (((self.ammo_cells >= 1) && (it & 4096))) + { + return (4096); + } + else + { + if (((self.ammo_nails >= 2) && (it & 1024))) + { + return (1024); + } + else + { + if (((self.ammo_shells >= 2) && (it & 256))) + { + return (256); + } + else + { + if (((self.ammo_nails >= 1) && (it & 524288))) + { + return (524288); + } + else + { + if (((self.ammo_nails >= 1) && (it & 512))) + { + return (512); + } + else + { + if (((self.ammo_shells >= 1) && (it & 128))) + { + return (128); + } + else + { + if (((self.ammo_shells >= 1) && (it & 262144))) + { + return (262144); + } + else + { + if ((it & 4)) + { + return (4); + } + else + { + if ((it & 8)) + { + return (8); + } + else + { + if ((it & 16)) + { + return (16); + } + } + } + } + } + } + } + } + } + } + } + } + return (0); +}; + +float () W_CheckNoAmmo = +{ + if ((self.current_weapon == 4)) + { + return (1); + } + else + { + if ((self.current_weapon == 2)) + { + return (1); + } + else + { + if ((((self.current_weapon == 16) || (self.current_weapon == 1)) || (self.current_weapon == 8))) + { + return (1); + } + else + { + if (((self.current_weapon == 1) && (self.ammo_cells < 10))) + { + return (1); + } + else + { + if ((self.current_weapon == 16384)) + { + if ((self.currentammo >= 3)) + { + return (1); + } + } + else + { + if ((self.currentammo > 0)) + { + return (1); + } + } + } + } + } + } + self.current_weapon = W_BestWeapon (); + W_SetCurrentAmmo (); + W_PrintWeaponMessage (); + return (0); +}; + +void () W_Reload_shotgun = +{ + self.owner.tfstate = (self.owner.tfstate - (self.owner.tfstate & 2)); + self.owner.weaponmodel = "progs/v_shot.mdl"; + sound (self.owner, 1, "weapons/pkup.wav", 1, 1); + sprint (self.owner, 0, "finished reloading\n"); + W_ReloadSetCurrentAmmo (self.owner, 1); + dremove (self); + self.owner.StatusRefreshTime = (time + 0.1); +}; + +void () W_Reload_super_shotgun = +{ + self.owner.tfstate = (self.owner.tfstate - (self.owner.tfstate & 2)); + self.owner.weaponmodel = "progs/v_shot2.mdl"; + sound (self.owner, 1, "weapons/pkup.wav", 1, 1); + sprint (self.owner, 0, "finished reloading\n"); + W_ReloadSetCurrentAmmo (self.owner, 1); + dremove (self); + self.owner.StatusRefreshTime = (time + 0.1); +}; + +void () W_Reload_grenade_launcher = +{ + self.owner.tfstate = (self.owner.tfstate - (self.owner.tfstate & 2)); + self.owner.weaponmodel = "progs/v_rock.mdl"; + sound (self.owner, 1, "weapons/rocklr1a.wav", 1, 1); + sprint (self.owner, 0, "finished reloading\n"); + dremove (self); + self.owner.StatusRefreshTime = (time + 0.1); +}; + +void () W_Reload_rocket_launcher = +{ + self.owner.tfstate = (self.owner.tfstate - (self.owner.tfstate & 2)); +// This is my fix for the "proxy reload" bug. Still dunno if I'm gonna keep it in tho. +// - XavioR +// if (self.owner.weaponmodel != "progs/proxgren.mdl") +// { + self.owner.weaponmodel = "progs/v_rock2.mdl"; + sound (self.owner, 1, "weapons/rocklr1a.wav", 1, 1); +// } +// else +// { +// self.owner.oldweaponmodel = "progs/v_rock2.mdl"; +// } + sprint (self.owner, 0, "finished reloading\n"); + W_ReloadSetCurrentAmmo (self.owner, 2); // fixes ammo count after reload while holding + dremove (self); // a proxy. - XavioR + self.owner.StatusRefreshTime = (time + 0.1); +}; + +float () CheckForReload = +{ + local entity tWeapon; + +// if ((((self.attack_finished > time) || self.button0) || (self.tools == (self.tools | 32)))) +// { +// return; +// } + if ((self.current_weapon == 128)) + { + if (((self.reload_shotgun >= 8) && (self.ammo_shells > 0))) + { + self.reload_shotgun = 0; + if ((self.ammo_shells < 8)) + { + self.reload_shotgun = (8 - self.ammo_shells); + } + sprint (self, 2, "reloading...\n"); + self.tfstate = (self.tfstate | 2); + tWeapon = spawn (); + tWeapon.owner = self; + tWeapon.classname = "timer"; + tWeapon.nextthink = (time + 2); + tWeapon.think = W_Reload_shotgun; + self.weaponmodel = ""; + self.weaponframe = 0; + return (1); + } + } + else + { + if ((self.current_weapon == 256)) + { + if ((self.reload_super_shotgun > 16)) + { + self.reload_super_shotgun = 16; + } + if (((self.reload_super_shotgun >= 16) && (self.ammo_shells > 0))) + { + self.reload_super_shotgun = 0; + if ((self.ammo_shells < 16)) + { + self.reload_super_shotgun = (16 - self.ammo_shells); + } + sprint (self, 2, "reloading...\n"); + self.tfstate = (self.tfstate | 2); + tWeapon = spawn (); + tWeapon.owner = self; + tWeapon.classname = "timer"; + tWeapon.nextthink = (time + 3); + tWeapon.think = W_Reload_super_shotgun; + self.weaponmodel = ""; + self.weaponframe = 0; + return (1); + } + } + else + { + if ((self.current_weapon == 2048)) + { + if (((self.reload_grenade_launcher >= 6) && (self.ammo_rockets > 0))) + { + self.reload_grenade_launcher = 0; + if ((self.ammo_rockets < 6)) + { + self.reload_grenade_launcher = (6 - self.ammo_rockets); + } + sprint (self, 2, "reloading...\n"); + self.tfstate = (self.tfstate | 2); + tWeapon = spawn (); + tWeapon.owner = self; + tWeapon.classname = "timer"; + tWeapon.nextthink = (time + 4); + tWeapon.think = W_Reload_grenade_launcher; + self.weaponmodel = ""; + self.weaponframe = 0; + return (1); + } + } + else + { + if ((self.current_weapon == 8192)) + { + if (((self.reload_rocket_launcher >= 4) && (self.ammo_rockets > 0))) + { + self.reload_rocket_launcher = 0; + if ((self.ammo_rockets < 4)) + { + self.reload_rocket_launcher = (4 - self.ammo_rockets); + } + sprint (self, 2, "reloading...\n"); + self.tfstate = (self.tfstate | 2); + tWeapon = spawn (); + tWeapon.owner = self; + tWeapon.classname = "timer"; + tWeapon.nextthink = (time + 5); + tWeapon.think = W_Reload_rocket_launcher; + self.weaponmodel = ""; + self.weaponframe = 0; + return (1); + } + } + } + } + } + return (0); +}; +void () player_axe1; +void () player_axeb1; +void () player_axec1; +void () player_axed1; +void () player_shot1; +void () player_nail1; +void () player_light1; +void () player_rocket1; +//void () player_tax1; +void () player_autorifle1; +void () player_assaultcannon1; +void () player_assaultcannonup1; +void () player_assaultcannondown1; +void () player_medikit1; +void () player_medikitb1; +void () player_medikitc1; +void () player_medikitd1; +void () player_bioweapon1; +void () player_bioweaponb1; +void () player_bioweaponc1; +void () player_bioweapond1; +void () player_chain1; +void () player_chain2; +void () player_chain3; +void () player_chain4; +void () player_chain5; +//void () W_ThrowAxe; +//void () W_FireTorpedo; + +void () W_Attack = +{ + local float r; + + if (((self.playerclass == 0) || (self.team_no <= 0))) + { + return; + } +// pablo. no torpedos in mtf. gg +// if ((self.tools == (self.tools | 32))) +// { +// if ((self.tube_wing > 1)) +// { +// return; +// } +// else +// { +// self.attack_finished = (time + 0.5); +// W_FireTorpedo (); +// return; +// } +// } + if ((self.weaponmodel == "progs/proxgren.mdl")) + { + Prox (); + Attack_Finished (0.2);//nanenanu + self.impulse = 0; + return; + } + if (!W_CheckNoAmmo ()) + { + sound (self, 1, "buttons/switch02.wav", 0.8, 1); + Attack_Finished (0.05); + return; + } + if ((self.tfstate & 2)) + { + sound (self, 1, "weapons/no_ammo.wav", 0.8, 1); + Attack_Finished (0.2); + return; + } + if ((time < self.attack_finished)) + { + return; + } + if (self.is_undercover) + { + Spy_RemoveDisguise (self); + } + if ((self.is_squating == 1)) + { + setsize (self, '-16 -16 -24', '16 16 32'); + } + Stats_Fired (self.current_weapon); + makevectors (self.v_angle); + self.show_hostile = (time + 1); +// pablo. +// if (((self.num_axes == 0) && (self.current_weapon == 16))) + if (self.current_weapon == 16) +// + { + Attack_Finished (0.5); + sound (self, 1, "weapons/ax1.wav", 1, 1); + r = random (); + if ((r < 0.25)) + { + player_axe1 (); + } + else + { + if ((r < 0.5)) + { + player_axeb1 (); + } + else + { + if ((r < 0.75)) + { + player_axec1 (); + } + else + { + player_axed1 (); + } + } + } + } + else + { +// pablo. no throwing axes in mtf. +// if (((self.num_axes >= 1) && (self.current_weapon == 16))) +// { +// player_tax1 (); +// self.attack_finished = (time + 1); +// } +// else +// { + if ((self.current_weapon == 8)) + { + Attack_Finished (0.5); + sound (self, 1, "weapons/ax1.wav", 1, 1); + player_axe1 (); + } + else + { + if ((self.current_weapon == 1)) + { + if (((!self.hook_out && (self.ammo_cells > 24)) && (self.is_feigning == 0))) + { + self.immune_to_check = (time + 4); + player_chain1 (); + sound (self, 1, "weapons/sniper.wav", 1, 1); + sound (self, 3, "weapons/unreel.wav", 1, 1); + Attack_Finished (0.1); + } + else + { + sprint (self, 2, "Not enough power cells...\n"); + Attack_Finished (1); + } + } + else + { + if ((self.current_weapon == 128)) + { + if ((CheckForReload () == 1)) + { + return; + } + player_shot1 (); + W_FireShotgun (); + self.reload_shotgun = (self.reload_shotgun + 1); + self.StatusRefreshTime = (time + 0.1); + CheckForReload (); + Attack_Finished (0.5); + } + else + { + if ((self.current_weapon == 256)) + { + if ((CheckForReload () == 1)) + { + return; + } + player_shot1 (); + W_FireSuperShotgun (); + self.reload_super_shotgun = (self.reload_super_shotgun + 2); + self.StatusRefreshTime = (time + 0.1); + CheckForReload (); + Attack_Finished (0.7); + } + else + { + if ((self.current_weapon == 512)) + { + player_nail1 (); + } + else + { + if ((self.current_weapon == 1024)) + { + player_nail1 (); + } + else + { + if ((self.current_weapon == 2048)) + { + if ((CheckForReload () == 1)) + { + return; + } + player_rocket1 (); + W_FireGrenade (); + self.reload_grenade_launcher = (self.reload_grenade_launcher + 1); + if ((self.option == 1)) + { + self.reload_grenade_launcher = (self.reload_grenade_launcher + 1); + } + self.StatusRefreshTime = (time + 0.1); + CheckForReload (); + Attack_Finished (0.6); + } + else + { + if ((self.current_weapon == 8192)) + { + if ((CheckForReload () == 1)) + { + return; + } + player_rocket1 (); + W_FireRocket (); + self.reload_rocket_launcher = (self.reload_rocket_launcher + 1); + self.StatusRefreshTime = (time + 0.1); + CheckForReload (); + Attack_Finished (0.8); + } + else + { + if ((self.current_weapon == 65536)) + { + player_light1 (); + Attack_Finished (0.1); + sound (self, 0, "weapons/lstart.wav", 1, 1); + } + } + } + } + } + } + } + } +// } + } + if ((self.current_weapon == 32)) + { + if (((self.flags & 512) || self.hook_out)) + { + player_shot1 (); + W_FireSniperRifle (); + Attack_Finished (1.5); + } + } + else + { + if ((self.current_weapon == 64)) + { + player_autorifle1 (); + W_FireAutoRifle (); + Attack_Finished (0.1); + } + else + { + if ((self.current_weapon == 32768)) + { + if (((self.playerclass == 6) && (self.option4 == 1))) + { + W_FireBigAss (); + Attack_Finished (0.2); + self.impulse = 0; + return; + } + if ((self.ammo_cells < 4)) + { + sprint (self, 1, "Insufficient cells to power up the Assault Cannon.\n"); + } + else + { + self.ammo_cells = (self.ammo_cells - 4); + self.heat = 1; + self.immune_to_check = (time + 2); + self.maxspeed = 80; + self.tfstate = self.tfstate | 131072; + TeamFortress_SetSpeed(self); + player_assaultcannonup1 (); + } + } + else + { + if ((self.current_weapon == 4096)) + { + player_shot1 (); + W_FireFlame (); + if ((self.waterlevel > 2)) + { + Attack_Finished (1); + } + else + { + Attack_Finished (0.15); + } + } + else + { + if ((self.current_weapon == 16384)) + { + player_rocket1 (); + W_FireIncendiaryCannon (); + Attack_Finished (1.2); + } + else + { + if ((self.current_weapon == 4)) + { + sound (self, 1, "weapons/ax1.wav", 1, 1); + r = random (); + if ((r < 0.25)) + { + player_medikit1 (); + } + else + { + if ((r < 0.5)) + { + player_medikitb1 (); + } + else + { + if ((r < 0.75)) + { + player_medikitc1 (); + } + else + { + player_medikitd1 (); + } + } + } + Attack_Finished (0.5); + } + else + { + if ((self.current_weapon == 2)) + { + sound (self, 1, "weapons/ax1.wav", 1, 1); + r = random (); + if ((r < 0.25)) + { + player_bioweapon1 (); + } + else + { + if ((r < 0.5)) + { + player_bioweaponb1 (); + } + else + { + if ((r < 0.75)) + { + player_bioweaponc1 (); + } + else + { + player_bioweapond1 (); + } + } + } + Attack_Finished (0.5); + } + else + { + if ((self.current_weapon == 262144)) + { + sound (self, 1, "weapons/dartgun.wav", 1, 1); + player_shot1 (); + W_FireTranq (); + Attack_Finished (1.5); + } + else + { + if ((self.current_weapon == 524288)) + { + if ((self.option5 != 1)) + { + sound (self, 1, "enforcer/enfire.wav", 1, 1); + player_shot1 (); + W_FireLaser (); + Attack_Finished (0.4); + }/* MegaTF United Super Rail code -- not in MegaTF! + else + { + sound (self, TF_FLARE_OFF, "weapons/railgun.wav", TF_FLARE_OFF, TF_FLARE_OFF); + player_shot1 (); + W_FireLaser (self.heat); + Attack_Finished (1.5); + }*/ + } + } + } + } + } + } + } + } + } + } +}; + +void () W_PrintWeaponMessage = +{ + if (((self.current_weapon == 16) && allow_hook)) + { + if ((self.playerclass != 8)) + { + sprint (self, 1, "Knife selected\n"); + self.weaponmode = 3; + } + } + else + { + if ((self.current_weapon == 1)) + { + sprint (self, 1, "grappling hook selected\n"); + } + else + { + if ((self.current_weapon == 2048)) + { + if (((self.weaponmode == 0) && (self.option != 1))) + { + sprint (self, 1, "Normal grenade mode\n"); + } + else + { + if (((self.weaponmode == 0) && (self.option == 1))) + { + sprint (self, 1, "Long-range grenade mode\n"); + } + else + { + if (self.weaponmode == 1) + { + if (self.option == 0) + { + sprint (self, 1, "Pipebomb mode\n"); + } + else + { + sprint (self, 1, "Long-range pipebomb mode\n"); + } + } + } + } + } + else + { + if ((self.current_weapon == 32)) + { + sprint (self, 1, "Sniper rifle ready\n"); + } + else + { + if ((self.current_weapon == 64)) + { + sprint (self, 1, "rifle on fully auto\n"); + } + else + { + if ((self.current_weapon == 262144)) + { + sprint (self, 1, "Tranquiliser gun selected\n"); + } + else + { + if ((self.current_weapon == 2)) + { + sprint (self, 1, "BioWeapon readied\n"); + } + else + { + if ((self.current_weapon == 4)) + { + sprint (self, 1, "Medikit readied\n"); + } + } + } + } + } + } + } + } +}; + +void () W_ChangeWeapon = +{ + local float it; + local float am; + local float fl; + local float have_weapon; + local float usable; + + if ((self.tfstate & 2)) + { + return; + } + if ((self.tools == (self.tools | 32))) + { + return; + } + it = self.weapons_carried; + fl = self.current_weapon; + am = 0; + usable = 0; + have_weapon = 1; + if ((self.playerclass != 8)) + { + it = it - (it & 1); + } + if ((self.impulse == 1)) + { + if ((fl == 8)) + { + return; + } + if ((((self.playerclass == 5) && (fl == 2)) || (fl == 4))) + { + fl = 2; + return; + } + if ((fl != 16)) + { + if ((self.playerclass != 8)) + { + sound (self, 1, "weapons/knifedrw.wav", 1, 1); + } + } + while ((!usable && have_weapon)) + { + if ((fl == 8)) + { + fl = 2; + if ((it & 2)) + { + usable = 1; + } + } + else + { + if ((fl == 2)) + { + fl = 4; + if ((it & 4)) + { + usable = 1; + } + } + else + { + if ((fl == 4)) + { + fl = 16; + usable = 1; + } + else + { + if ((fl == 1)) + { + fl = 16; + usable = 1; + } + else + { + fl = 8; + if ((it & 8)) + { + usable = 1; + } + } + } + } + } + } + } + else + { + if (((allow_hook && (self.impulse == 22)) || (self.impulse == 39))) + { + if ((self.playerclass == 8)) + { + fl = 1; + } + else + { + usable = 0; + } + } + else + { + if ((self.impulse == 40)) + { + if (!(it & 30)) + { + have_weapon = 0; + } + while ((!usable && have_weapon)) + { + if ((fl == 8)) + { + fl = 2; + if ((it & 2)) + { + usable = 1; + } + } + else + { + if ((fl == 2)) + { + fl = 16; + if ((it & 16)) + { + usable = 1; + } + } + else + { + fl = 8; + if ((it & 8)) + { + usable = 1; + } + } + } + } + } + else + { + if ((self.impulse == 2)) + { + if ((it & 32)) + { + fl = 32; + if ((self.ammo_shells < 1)) + { + am = 1; + } + else + { + sound (self, 1, "weapons/shotgr1a.wav", 0.800000, 1); + } + } + else + { + if ((it & 128)) + { + fl = 128; + if ((self.ammo_shells < 1)) + { + am = 1; + } + else + { + if ((self.playerclass != 8)) + { + sound (self, 1, "weapons/shotgr1a.wav", 0.800000, 1); + } + } + } + else + { + if ((it & 262144)) + { + fl = 262144; + if ((self.ammo_shells < 1)) + { + am = 1; + } + else + { + if ((self.playerclass != 8)) + { + sound (self, 1, "weapons/shotgr1a.wav", 0.800000, 1); + } + } + } + else + { + if ((it & 524288)) + { + fl = 524288; + if ((self.ammo_nails < 1)) + { + am = 1; + } + else + { + sound (self, 1, "weapons/railgr1a.wav", 0.800000, 1); + } + } + else + { + have_weapon = 0; + } + } + } + } + } + else + { + if ((self.impulse == 3)) + { + if ((it & 64)) + { + fl = 64; + if ((self.ammo_shells < 1)) + { + am = 1; + } + else + { + if ((self.playerclass != 8)) + { + sound (self, 1, "weapons/shotgr1a.wav", 0.800000, 1); + } + } + } + else + { + fl = 256; + if ((self.ammo_shells < 2)) + { + am = 1; + } + else + { + sound (self, 1, "weapons/shotgr1a.wav", 0.800000, 1); + } + } + } + else + { + if ((self.impulse == 4)) + { + // Long Range Pipe-Bombs + if ((it & 2048)) + { + fl = 2048; + if ((self.ammo_rockets < 3)) + { + am = 3; + } + else + { + sound (self, 1, "weapons/rocklr1a.wav", 0.800000, 1); + } + self.weaponmode = 1; + self.option = 1; + } + else + { + fl = 512; + if ((self.ammo_nails < 1)) + { + am = 1; + } + else + { + if ((self.playerclass != 8)) + { + sound (self, 1, "weapons/shotgr1a.wav", 0.800000, 1); + } + } + } + } + else + { + if ((self.impulse == 5)) + { + if ((it & 1024)) + { + fl = 1024; + if ((self.ammo_nails < 2)) + { + am = 1; + } + else + { + sound (self, 1, "weapons/shotgr1a.wav", 0.800000, 1); + } + } + else + { + if ((it & 2048)) + { + fl = 2048; + if ((self.ammo_rockets < 2)) + { + am = 2; + } + else + { + sound (self, 1, "weapons/rocklr1a.wav", 0.800000, 1); + } + self.weaponmode = 0; + self.option = 1; + } + else + { + have_weapon = 0; + } + } + } + else + { + if ((self.impulse == 6)) + { + if ((it & 4096)) + { + fl = 4096; + if ((self.ammo_cells < 1)) + { + am = 1; + } + else + { + sound (self, 1, "weapons/rocklr1a.wav", 0.800000, 1); + } + } + else + { + if ((it & 2048)) + { + fl = 2048; + if ((self.ammo_rockets < 1)) + { + am = 1; + } + else + { + sound (self, 1, "weapons/rocklr1a.wav", 0.800000, 1); + } + self.weaponmode = 0; + self.option = 0; + } + else + { + have_weapon = 0; + } + } + } + else + { + if ((self.impulse == 7)) + { + if ((it & 16384)) + { + fl = 16384; + if ((self.ammo_rockets < 3)) + { + am = 1; + } + else + { + sound (self, 1, "weapons/rocklr1a.wav", 0.800000, 1); + } + } + else + { + if ((it & 8192)) + { + fl = 8192; + if ((self.ammo_rockets < 1)) + { + am = 1; + } + else + { + sound (self, 1, "weapons/rocklr1a.wav", 0.800000, 1); + } + } + else + { + if ((it & 32768)) + { + if (self.option4) + { + self.option4 = 0; + sprint (self, 2, "Assault cannon selected\n"); + if ((self.ammo_cells < 4)) + { + am = 2; + } + } + else + { + self.option4 = 1; + sprint (self, 2, "20mm cannon selected\n"); + } + fl = 32768; + if ((self.ammo_shells < 1)) + { + am = 1; + } + else + { + sound (self, 1, "weapons/shotgr1a.wav", 0.800000, 1); + } + } + else + { + if ((it & 2048)) + { + fl = 2048; + self.weaponmode = 1; + self.option = 0; + if ((self.ammo_rockets < 1)) + { + am = 1; + } + else + { + sound (self, 1, "weapons/rocklr1a.wav", 0.800000, 1); + } + } + else + { + have_weapon = 0; + } + } + } + } + } + else + { + self.impulse = 8; + if ((/*8 && */(self.playerclass == 8))) + { + fl = 1; + if (!allow_hook) + { + am = 1; + } + } + else + { + self.impulse = 176; + if (self.impulse == 176) + { + fl = 4; + if ((it & 4)) + { + usable = 1; + } + } + } + } + } + } + } + } + } + } + } + } + self.impulse = 0; + if ((!have_weapon || !(it & fl))) + { + sprint (self, 2, "no weapon.\n"); + return; + } + if ((am == 1)) + { + sprint (self, 2, "not enough ammo.\n"); + return; + } + if ((am == 2)) + { + sprint (self, 2, "not enough cells to power assault cannon.\n"); + return; + } + self.current_weapon = fl; + W_SetCurrentAmmo (); + W_PrintWeaponMessage (); + self.StatusRefreshTime = (time + 0.100000); +}; + +void () CycleWeaponCommand = +{ + local float it; + local float am; + local float cont; + local float loopcount; + + if (((self.weaponmodel == string_null) || (self.current_weapon == 0))) + { + return; + } + if ((self.tfstate & 2)) + { + return; + } + if ((self.tools == (self.tools | 32))) + { + return; + } + it = self.weapons_carried; + self.impulse = 0; + loopcount = 0; + while (1) + { + am = 0; + cont = 0; + if ((self.current_weapon == 16)) + { + self.current_weapon = 8; + } + else + { + if ((self.current_weapon == 8)) + { + self.current_weapon = 128; + if ((self.ammo_shells < 1)) + { + am = 1; + } + } + else + { + if ((self.current_weapon == 128)) + { + self.current_weapon = 524288; + if ((self.ammo_nails < 1)) + { + am = 1; + } + } + else + { + if ((self.current_weapon == 524288)) + { + self.current_weapon = 262144; + if ((self.ammo_shells < 1)) + { + am = 1; + } + } + else + { + if ((self.current_weapon == 262144)) + { + self.current_weapon = 32; + if ((self.ammo_shells < 1)) + { + am = 1; + } + } + else + { + if ((self.current_weapon == 32)) + { + self.current_weapon = 64; + if ((self.ammo_shells < 1)) + { + am = 1; + } + } + else + { + if ((self.current_weapon == 64)) + { + self.current_weapon = 256; + if ((self.ammo_shells < 2)) + { + am = 1; + } + } + else + { + if ((self.current_weapon == 256)) + { + self.current_weapon = 512; + if ((self.ammo_nails < 1)) + { + am = 1; + } + } + else + { + if ((self.current_weapon == 512)) + { + self.current_weapon = 1024; + if ((self.ammo_nails < 2)) + { + am = 1; + } + } + else + { + if ((self.current_weapon == 1024)) + { + self.current_weapon = 2048; + self.weaponmode = 0; + if ((self.ammo_rockets < 1)) + { + am = 1; + } + } + else + { + if (((self.current_weapon == 2048) && (self.weaponmode == 0))) + { + self.current_weapon = 2048; + self.weaponmode = 1; + if ((self.ammo_rockets < 1)) + { + am = 1; + } + } + else + { + if (((self.current_weapon == 2048) && (self.weaponmode == 0))) + { + self.current_weapon = 2048; + self.weaponmode = 0; + self.option = 1; + if ((self.ammo_rockets < 1)) + { + am = 1; + } + } + else + { + if (((self.current_weapon == 2048) && (self.weaponmode == 1))) + { + self.current_weapon = 8192; + if ((self.ammo_rockets < 1)) + { + am = 1; + } + } + else + { + if ((self.current_weapon == 8192)) + { + self.current_weapon = 65536; + if ((self.ammo_cells < 1)) + { + am = 1; + } + } + else + { + if ((self.current_weapon == 65536)) + { + self.current_weapon = 4096; + if ((self.ammo_cells < 1)) + { + am = 1; + } + } + else + { + if ((self.current_weapon == 4096)) + { + self.current_weapon = 16384; + if ((self.ammo_rockets < 3)) + { + am = 1; + } + } + else + { + if ((self.current_weapon == 16384)) + { + self.current_weapon = 32768; + if ((self.ammo_cells < 6)) + { + am = 1; + } + if ((self.ammo_shells < 1)) + { + am = 1; + } + } + else + { + if ((self.current_weapon == 32768)) + { + self.current_weapon = 1; + if (!allow_hook) + { + am = 1; + } + } + else + { + if ((self.current_weapon == 1)) + { + self.current_weapon = 2; + } + else + { + if ((self.current_weapon == 2)) + { + self.current_weapon = 4; + } + else + { + if ((self.current_weapon == 4)) + { + self.current_weapon = 16; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + if ((loopcount > 30)) + { + return; + } + loopcount = (loopcount + 1); + if (((self.weapons_carried & self.current_weapon) && (am == 0))) + { + if ((self.current_weapon != 2048)) + { + self.weaponmode = 0; + } + W_SetCurrentAmmo (); + W_PrintWeaponMessage (); + self.StatusRefreshTime = (time + 0.1); + return; + } + } +}; +void () DeadImpulses; +//void () FireUtil; + +void () ImpulseCommands = +{ + local string _l_3204; + + _l_3204 = infokey (self, "tf_help"); + if (prematch) + { + if (((((((self.impulse == 120) || (self.impulse == 136)) || (self.impulse == 119)) || (self.impulse == 186)) || (self.impulse == 187)) || ((self.impulse >= 236) && (self.impulse <= 239)))) + { + DeadImpulses (); + } + if ((!(((self.impulse >= 1) && (self.impulse < 9)) || (self.impulse == 176)) && !((self.impulse >= 100) && (self.impulse <= 110)))) + { + self.impulse = 0; + return; + } + } + if ((self.tools == (self.tools | 32))) + { + return; + } + if ((self.impulse == 211)) + { + TeamFortress_ToggleGenderMessage(); + } + if (((self.last_impulse == 168) && self.impulse)) + { + TeamFortress_SetDetpack (self.impulse); + } + else + { + if (((self.last_impulse == 159) && self.impulse)) + { + TeamFortress_Scan (self.impulse); + } + } + if ((((self.impulse == 8) && (self.current_menu != 6)) && (self.playerclass != 8))) + { + self.current_menu = 6; + self.menu_count = 25; + self.menu_displaytime = 0; + } + if ((self.impulse == 171)) + { + UseSpecialSkill (); + } + if ((self.impulse == 240)) + { + bprint2 (1, self.netname, " tried to cheat.\n"); + sprint (self, 2, "You have been kicked for attempting to cheat. Don't do it.\n"); + stuffcmd (self, "disconnect\n"); + stuffcmd (self, "quit\n"); + } + if (spycam) + { + if (((self.impulse == 55) && (self.bugger > 0))) + { + Cam (); + } + if ((((self.impulse == 55) && (self.is_feigning == 1)) && (self.bugger == 0))) + { + Cam (); + } + } + if ((((!self.is_building && !self.is_detpacking) && !self.is_feigning) && (self.bugger == 0))) + { + if ((((self.impulse >= 1) && (self.impulse < 9)) || (self.impulse == 176))) + { + if ((self.weaponmodel == "progs/proxgren.mdl")) + { + if ((self.oldweaponmodel != "")) + { + self.tfstate = (self.tfstate - (self.tfstate & 2)); + } + self.weaponmodel = self.oldweaponmodel; + self.currentammo = self.oldcurrentammo; + self.StatusRefreshTime = (time + 0.100000); + } + if ((self.weaponmodel == "progs/spycamb.mdl")) + { + if ((self.oldweaponmodel != "")) + { + self.tfstate = (self.tfstate - (self.tfstate & 2)); + } + self.weaponmodel = self.oldweaponmodel; + self.currentammo = self.oldcurrentammo; + self.StatusRefreshTime = (time + 0.100000); + } + W_ChangeWeapon (); + } + else + { + if ((self.impulse == 40)) + { + W_ChangeWeapon (); + } + else + { + if ((allow_hook && ((self.impulse == 22) || (self.impulse == 39)))) + { + W_ChangeWeapon (); + } + else + { + if (((self.impulse == 10) || (self.impulse == 12))) + { + CycleWeaponCommand (); + } + else + { + if ((self.impulse == 150)) + { + TeamFortress_PrimeGrenade (); + } + else + { + if ((self.impulse == 151)) + { + TeamFortress_PrimeGrenade (); + } + else + { + if ((self.impulse == 173)) + { + TeamFortress_ReloadCurrentWeapon (); + } + else + { + if ((self.impulse == 162)) + { + TeamFortress_Scan (10); + } + else + { + if ((self.impulse == 163)) + { + TeamFortress_Scan (30); + } + else + { + if ((self.impulse == 164)) + { + TeamFortress_Scan (100); + } + else + { + if ((self.impulse == 157)) + { + if ((self.last_saveme_sound <= time)) + { + self.last_saveme_sound = (time + 5); + muzzleflash (); + sound (self, 0, "speech/threat.wav", 0.700000, 0); + self.impulse = 0; + } + } + else + { + if ((self.impulse == 156)) + { + if ((self.last_saveme_sound <= time)) + { + self.last_saveme_sound = (time + 5); + muzzleflash (); + sound (self, 0, "speech/hey.wav", 0.700000, 0); + self.impulse = 0; + } + } + else + { + if ((self.impulse == 58)) + { + if ((self.last_saveme_sound <= time)) + { + self.last_saveme_sound = (time + 10); + muzzleflash (); + sound (self, 0, "speech/cmyhole.wav", 0.700000, 0); + self.impulse = 0; + } + } + else + { + if ((self.impulse == 158)) + { + if ((self.is_squating == 1)) + { + self.is_squating = 0; + self.frame = 0; + unlay (); + sprint (self, 2, "Standing mode, (normal)\n"); + } + else + { + self.is_squating = 1; + lay (); + sprint (self, 2, "Laying mode, (stop walking to lay)\n"); + } + } + else + { + if ((self.impulse == 155)) + { + if ((self.playerclass == 1)) + { + SuperLeap (); + } + //self.movetype = 5; //yeah this caused flying on FTE/ZQuake servers + //since apparently movetype 5 is fly for them :\ + self.movetype = 3; + } + else + { + if ((self.impulse == 154)) + { + sprint (self, 2, "--- Airscout Info ---\n"); + sprint (self, 2, "Def: A Scout that can jump very high\n"); + sprint (self, 2, "Cmd: 'jetjump' or Impulse 155.\n"); + sprint (self, 2, " Uses 25 battery cells per jump.\n"); + sprint (self, 2, " Aim higher than you want to go.\n"); + sprint (self, 2, "Use: Must be a scout,\n"); + self.impulse = 0; + } + else + { + if (((self.impulse == 190) && (self.flags & 512))) + { + if (!drop1) + { + sprint (self, 2, "Type 1 weapons disabled by Admin!\n"); + self.impulse = 0; + return; + } + if ((self.playerclass == 2)) + { + A_Mine (); + self.impulse = 0; + } + else + { + if ((self.playerclass == 5)) + { + B_Mine (); + self.impulse = 0; + } + else + { + if ((self.playerclass == 9)) + { + M_Mine (); + self.impulse = 0; + } + else + { + if ((self.playerclass == 1)) + { + C_Mine (); + self.impulse = 0; + } + else + { + if ((self.playerclass == 3)) + { + S_Mine (); + self.impulse = 0; + } + else + { + if ((self.playerclass == 6)) + { + S_Mine (); + self.impulse = 0; + } + else + { + if ((self.playerclass == 8)) + { + SpyPack (); + self.impulse = 0; + } + else + { + if ((self.playerclass == 4)) + { + BalloonMIRV (); + self.impulse = 0; + } + else + { + if ((self.playerclass == 7)) + { + LavaPool (); + self.impulse = 0; + } + } + } + } + } + } + } + } + } + } + else + { + if ((self.impulse == 201)) + { + W_LaunchStinger (); + self.impulse = 0; + } + else + { + if ((self.impulse == 55)) + { + if (!drop3) + { + sprint (self, 2, "Type 3 weapons disabled by Admin!\n"); + self.impulse = 0; + return; + } + if ((self.playerclass == 9)) + { + Drone (); + } + if ((self.playerclass == 5)) + { + HealSelf (); + } + if ((self.playerclass == 8)) + { + if (spycam) + { + Cam (); + } + } + if ((self.playerclass == 3)) + { + Prox (); + } + if ((self.playerclass == 1)) + { + DetpackDisarm (); + } + if (((self.playerclass == 2) && (self.has_syringe == 1))) + { + self.option = 9; + } + self.impulse = 0; + } + else + { + if ((self.impulse == 200)) + { + MakeHolo (); + self.impulse = 0; + } + else + { + if ((self.impulse == 249)) + { + W_LaunchStinger (); + } + else + { + if ((self.impulse == 250)) + { + if ((self.last_saveme_sound <= time)) + { + + local string version_finder; + version_finder = infokey(world, "MegaTF"); + + self.last_saveme_sound = (time + 5); + muzzleflash (); + sound (self, 1, "speech/pantsdwn.wav", 1, 1); + sprint (self, 1, "MegaTF ",version_finder,"\n"); + self.impulse = 0; + } + } + else + { + if ((self.impulse == 165)) + { + TeamFortress_SetDetpack (5); + } + else + { + if ((self.impulse == 166)) + { + TeamFortress_SetDetpack (20); + } + else + { + if ((self.impulse == 167)) + { + TeamFortress_SetDetpack (50); + } + else + { + if ((self.impulse == 172)) + { + self.current_menu = 4; + self.menu_count = 20; + } + else + { + if ((self.impulse == 184)) + { + TeamFortress_Discard (); + } + else + { + if ((self.impulse == 57)) + { + if ((self.playerclass == 0)) + { + return; + } + self.current_menu = 20; + self.menu_count = 20; + } + else + { + if ((self.impulse == 53)) + { + if ((self.playerclass == 0)) + { + return; + } + self.current_menu = 21; + self.menu_count = 20; + } + else + { + if ((self.impulse == 56)) + { + if ((self.playerclass == 0)) + { + return; + } + self.current_menu = 22; + self.menu_count = 20; + } + else + { + if ((self.impulse == 251)) + { + self.current_menu = 23; + self.menu_count = 20; + } + else + { + if ((self.impulse == 245)) + { + voteyes (); } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + if ((self.impulse == 135)) + { + TeamFortress_Inventory (); + } + else + { + if ((self.impulse == 181)) + { + TeamFortress_SaveMe (); + } + else + { + if (((self.impulse == 50) || (self.impulse == 50))) + { + if ((self.vision != 1)) + { + self.vision = 1; + stuffcmd (self, "v_cshift 0 100 0 100\n"); + } + else + { + self.vision = 0; + stuffcmd (self, "v_cshift 0 0 0 0\n"); + } + } + else + { + if ((self.impulse == 60)) + { + TeamFortress_Spotlight(); + self.impulse = 0; + } + else + { + if (((self.impulse == 61) && (self.playerclass == 2))) + { + if ((self.option4 == 1)) + { + sprint (self, 2, "Laser Sight On\n"); + self.option4 = 0; + } + else + { + sprint (self, 2, "Laser Sight Off\n"); + self.option4 = 1; + } + } + else + { +// if ((self.impulse == 51)) +// { +// self.impulse = 0; +// self.has_syringe = 1; +// if (((self.playerclass == 2) && 1)) +// { +// self.option = 9; +// } +// } +// else +// { + if ((self.impulse == 152)) + { + TeamFortress_ThrowGrenade (); + } + else + { + if (self.impulse == 185) + { + TeamFortress_ID (); + } + else + { + if ((self.impulse == 170)) + { + TeamFortress_DetonatePipebombs (); + } + else + { + if ((self.impulse == 169)) + { + TeamFortress_DetpackStop (); + } + else + { + if (((self.impulse == 177) && (self.playerclass == 8))) + { + TeamFortress_SpyGoUndercover (); + } + else + { + if ((((self.impulse == 178) && (self.playerclass == 8)) && !self.hook_out)) + { + TeamFortress_SpyFeignDeath (0); + } + else + { + if ((((self.impulse == 180) && (self.playerclass == 8)) && !self.hook_out)) + { + if ((self.weaponmodel != "progs/spycamb.mdl")) + { + TeamFortress_SpyFeignDeath (1); + } + } + else + { + if (((self.impulse == 179) && (self.playerclass == 9))) + { + TeamFortress_EngineerBuild (); + } + else + { + if ((self.impulse == 23)) + { + if ((CTF_Map == 1)) + { + TeamFortress_CTF_FlagInfo (); + } + else + { + TeamFortress_DisplayDetectionItems (); + } + } + else + { + if ((self.impulse == 118)) + { + display_location (); + } + else + { + //if ((self.impulse == 191)) + //{ +// // FireUtil (); + //} + //else + //{ + if (self.impulse != 245) { DeadImpulses (); } + //} + } + } + } + } + } + } + } + } + } + } +// } + } + } + } + } } +/* gold. moved to dead impulses + if ((self.impulse == 202)) + { + self.current_menu = 3; + self.menu_displaytime = 25; + self.menu_count = 25; + self.oldcurrentammo = 1; + } +*/ + if (self.impulse == 189) + { + HealSelf(); + } + if (self.impulse == 203) + { +#ifdef tf29ents + DropGoalItems (); +#else + DropFlag(); +#endif + } +#ifdef clan_progs + if (self.impulse == 206) + { + DropGoalItems(); + } +#endif + if(self.impulse == 188) + { + Det_Disp(); + } + if(self.impulse == 205) + { + Det_Sent(); + } + if ((self.impulse == 234)) + { + TeamFortress_ItemStatus (1); + } + if ((self.impulse == 235)) + { + TeamFortress_ItemStatus (0); + } + if ((self.impulse == 241)) + { + TeamFortress_ItemStatus (11); + } + if ((self.impulse == 242)) + { + TeamFortress_ItemStatus (10); + } +/* gold. moved to deadimpulses + if(self.impulse == 120) + { + TeamFortress_Timeleft(); + } +*/ + if(self.impulse == 204) + { +#ifdef tf29ents + DropGoalItems (); +#else + DropFlag(); +#endif + } + if ((self.impulse == 168)) + { + self.last_impulse = self.impulse; + } + if ((self.impulse == 159)) + { + self.last_impulse = self.impulse; + } + self.impulse = 0; +}; + +#ifdef clan_progs +void () Rank_ShowStats; +#endif +void () DeadImpulses = +{ +#ifdef clan_progs + if ((self.impulse == 69)) + { + Rank_ShowStats(); + } +#else + if ((self.impulse == 69)) + { + testfunct (); + } +#endif + if ((self.impulse == 202)) + { + self.current_menu = 3; + self.menu_displaytime = 25; + self.menu_count = 25; + self.oldcurrentammo = 1; + } +// so you can vote when dead + if ((self.impulse == 245)) + { + voteyes(); + } + if ((self.impulse == 120)) + { + TeamFortress_Timeleft(); + } + if ((self.impulse == 136)) + { + TeamFortress_ShowTF (); + } + else + { + if ((self.impulse == 174)) + { + TeamFortress_AutoZoomToggle (); + } + else + { + if ((self.impulse == 137)) + { + TeamFortress_DisplayLegalClasses (); + } + else + { + if (((self.impulse >= 100) && (self.impulse <= (100 + 10)))) + { + TeamFortress_ChangeClass (); + } + else + { + if ((self.impulse == 131)) + { + TeamFortress_HelpMap (); + } + else + { + if ((self.impulse == 119)) + { + TeamFortress_StatusQuery (); + } + else + { + if ((self.impulse == 140)) + { + TeamFortress_TeamSet (1,0); + } + else + { + if ((self.impulse == 141)) + { + TeamFortress_TeamSet (2,0); + } + else + { + if ((self.impulse == 142)) + { + TeamFortress_TeamSet (3,0); + } + else + { + if ((self.impulse == 143)) + { + TeamFortress_TeamSet (4,0); + } + else + { + if ((self.impulse == 145)) + { + TeamFortress_TeamShowScores (0); + } + else + { + if ((self.impulse == 144)) + { + TeamFortress_TeamShowMemberClasses (self); + } + else + { + if ((self.impulse == 182)) + { + self.StatusRefreshTime = (time + 0.2); + self.StatusBarSize = (self.StatusBarSize + 1); + if ((self.StatusBarSize > 2)) + { + self.StatusBarSize = 1; + } + } + else + { + if ((self.impulse == 183)) + { + self.StatusRefreshTime = (time + 60); + self.StatusBarSize = 0; + } + else + { + if (((self.impulse >= 71) && (self.impulse <= 81))) + { + StatusRes ((self.impulse - 71)); + } + else + { + if ((self.impulse == 13)) + { + sprint (self, 2, "Aliases checked.\n"); + self.got_aliases = 1; + self.impulse = 0; + } + else + { + if ((self.impulse == 186)) + { + if ((self.autoid != 1)) + { + sprint (self, 2, "Auto Identify On\n"); + } + self.autoid = 1; + self.impulse = 0; + } + else + { + if ((self.impulse == 187)) + { + if ((self.autoid != 0)) + { + sprint (self, 2, "Auto Identify Off\n"); + } + self.autoid = 0; + self.impulse = 0; + } + else + { + if ((self.impulse == 236)) + { + if ((self.discard_max != 1)) + { + sprint (self, 2, "Discarding set to Max\n"); + } + self.discard_max = 1; + self.impulse = 0; + } + else + { + if ((self.impulse == 237)) + { + if ((self.discard_max != 0)) + { + sprint (self, 2, "Discarding set to Normal\n"); + } + self.discard_max = 0; + self.impulse = 0; + } + else + { + if ((self.impulse == 238)) + { + if ((self.autodiscard != 1)) + { + sprint (self, 2, "Auto Discard On\n"); + } + self.autodiscard = 1; + self.impulse = 0; + } + else + { + if ((self.impulse == 239)) + { + if ((self.autodiscard != 0)) + { + sprint (self, 2, "Auto Discard Off\n"); + } + self.autodiscard = 0; + self.impulse = 0; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } +}; + +void () W_WeaponFrame = +{ + local vector tv; + local string he; + + he = infokey (self, "tf_help"); + if (!(self.tfstate & 2048)) + { + if (((self.height > 29) && (self.height < 90))) + { + self.height = (self.height + 8); + if ((self.height > 90)) + { + self.height = 90; + } + TF_zoom (self.height); + } + } + if ((self.current_menu > 0)) + { + Player_Menu (); + if (((self.impulse > 0) && (self.impulse < 11))) + { + Menu_Input (self.impulse); + if ((self.impulse != 0)) + { + if ((((self.team_no == 0) && teamplay) && (self.lives != 0))) + { + Menu_Team_Input (self.impulse); + } + else + { + if (((self.playerclass == 0) && (self.lives != 0))) + { + Menu_Class_Input (self.impulse); + } + } + } + } + } +#ifdef clan_progs +//grenade throw lag fix (sticky grenades) + if (self.tfstate & 32768) // if player is tranq'd, do not do this anti-sticky function + { + if ((time < self.attack_finished)) + { + return; + } + if ((self.impulse != 0)) + { + ImpulseCommands (); + } + } + else + { + if ((time < self.attack_finished)) + { + if (self.impulse == 152 || self.impulse == 151 || self.impulse == 150 || self.impulse == 191) + { + ImpulseCommands (); + } + else + { + return; + } + } + } +#else + if ((time < self.attack_finished)) + { + return; + } +#endif + if ((self.impulse != 0)) + { + ImpulseCommands (); + } + if ((((self.is_building != 0) || (self.is_detpacking != 0)) || (self.is_feigning != 0))) + { + return; + } + if (((!self.button0 && self.fire_held_down) && (self.current_weapon == 32768))) + { + if ((self.tfstate & 131072)) + { + self.tfstate = (self.tfstate - 131072); + } + self.fire_held_down = 0; + TeamFortress_SetSpeed (self); + player_run (); + } + if ((self.button0 && !self.fire_held_down)) + { + if (((self.current_menu == 6) || (self.current_menu == 7))) + { + self.current_menu = 8; + self.menu_count = 25; + Attack_Finished (0.200000); + } + else + { + if ((self.current_weapon == 32)) + { + if ((self.tfstate & 2048)) + { +#ifndef clan_progs + if ((self.heat < 400)) + { + self.heat = (self.heat + 3); + } +#endif + if ((self.height > 30)) + { + self.height = (self.height - 5); + TF_zoom (self.height); + } + } + else + { + tv = self.velocity; + tv_z = 0; + if ((vlen (tv) <= 50)) + { + SniperSight_Create (); +#ifdef clan_progs + self.heat = time; // damage done // PZ - 50 -> time (Randomer's charge-up fix) +#else + self.heat = 50; +#endif + self.height = 90; + self.tfstate = (self.tfstate | 2048); + TeamFortress_SetSpeed (self); + } + } + } + else + { + if ((self.current_weapon == 32768)) + { + if ((self.flags & 512)) + { + SuperDamageSound (); + W_Attack (); + } + else + { + if ((he != "off")) + { + if (self.hw_message_resttime < time) + { + sprint (self, 1, "You cannot fire the assault cannon without\nyour feet on the ground...\n"); + self.hw_message_resttime = time + 0.5; + } + } + } + } + else + { + SuperDamageSound (); + W_Attack (); + } + } + } + } + else + { + if ((self.playerclass == 0)) + { + self.weaponmode = 0; + } + else + { + if ((self.tfstate & 2048)) + { + W_Attack (); + self.tfstate = (self.tfstate - 2048); + TeamFortress_SetSpeed (self); + self.heat = 0; + } + } + } +}; + +void () SuperDamageSound = +{ + if ((self.super_damage_finished > time)) + { + if ((self.super_sound < time)) + { + self.super_sound = (time + 1); + sound (self, 4, "items/damage3.wav", 1, 1); + } + } + return; +}; +//void (vector where) make_bub; +void (float num_bubbles) DeathBubbles; + +//#warning "Could not determine return type" +//float () AxeTouch; +void (string gibname,float dm) ThrowGib; + +void () SUB_Gib = +{ + local vector x; + local vector y; + local vector v; + local float r_num; + + if ((other.team_no == self.team_no)) + { + return; + } + r_num = random (); + if ((r_num < 0.6)) + { + x = '1 0 0'; + y = '0 1 0'; + v = ((x * (50 - (random () * 100))) + (y * (50 - (random () * 100)))); + r_num = random (); + SpawnMeatSpray (self.origin, v); + } + else + { + if ((r_num >= 0.6)) + { + ThrowGib ("progs/gib1.mdl", self.health); + } + else + { + ThrowGib ("progs/gib3.mdl", self.health); + } + } +}; + +void () TeamFortress_Discard = +{ + if (self.discard_next > time) + { +//fixes discard server bug + return; + } + newmis = spawn (); + if ((self.playerclass == 1)) + { + newmis.ammo_rockets = self.ammo_rockets; + self.ammo_rockets = 0; + if (self.discard_max) + { + if ((self.ammo_shells > 10)) + { + newmis.ammo_shells = (self.ammo_shells - 10); + self.ammo_shells = 10; + } + } + } + else + { + if ((self.playerclass == 2)) + { + newmis.ammo_rockets = self.ammo_rockets; + self.ammo_rockets = 0; + if (self.discard_max) + { + if ((self.ammo_shells > 40)) + { + newmis.ammo_shells = (self.ammo_shells - 40); + self.ammo_shells = 40; + } + } + } + else + { + if ((self.playerclass == 3)) + { + newmis.ammo_cells = self.ammo_cells; + newmis.ammo_nails = self.ammo_nails; + self.ammo_cells = 0; + self.ammo_nails = 0; + if (self.discard_max) + { + if ((self.ammo_shells > 40)) + { + newmis.ammo_shells = (self.ammo_shells - 40); + self.ammo_shells = 40; + } + } + } + else + { + if ((self.playerclass == 4)) + { + newmis.ammo_cells = self.ammo_cells; + newmis.ammo_nails = self.ammo_nails; + self.ammo_cells = 0; + self.ammo_nails = 0; + if (self.discard_max) + { + if ((self.ammo_shells > 40)) + { + newmis.ammo_shells = (self.ammo_shells - 40); + self.ammo_shells = 40; + } + } + } + else + { + if ((self.playerclass == 5)) + { + newmis.ammo_rockets = self.ammo_rockets; + self.ammo_rockets = 0; + if (!medicarmorheal) + { + newmis.ammo_cells = self.ammo_cells; + self.ammo_cells = 0; + } + if (self.discard_max) + { + if ((self.ammo_shells > 40)) + { + newmis.ammo_shells = (self.ammo_shells - 40); + self.ammo_shells = 40; + } + } + } + else + { + if ((self.playerclass == 6)) + { + newmis.ammo_rockets = self.ammo_rockets; + self.ammo_rockets = 0; + if (self.discard_max) + { + if ((self.ammo_cells > 10)) + { + newmis.ammo_cells = (self.ammo_cells - 10); + self.ammo_cells = 10; + } + } + } + else + { + if ((self.playerclass == 7)) + { + newmis.ammo_nails = self.ammo_nails; + self.ammo_nails = 0; + if (self.discard_max) + { + if ((self.ammo_shells > 20)) + { + newmis.ammo_shells = (self.ammo_shells - 20); + self.ammo_shells = 20; + } + } + } + else + { + if ((self.playerclass == 8)) + { + newmis.ammo_rockets = self.ammo_rockets; + self.ammo_rockets = 0; + } + else + { + if ((self.playerclass == 9)) + { + newmis.ammo_rockets = self.ammo_rockets; + self.ammo_rockets = 0; + } + } + } + } + } + } + } + } + } + if (!(((newmis.ammo_shells + newmis.ammo_nails) + newmis.ammo_rockets) + newmis.ammo_cells)) + { + dremove (newmis); + return; + } + W_SetCurrentAmmo (); + sound (self, 3, "weapons/lock4.wav", 1, 1); + if ((self.team_no != 0)) + { + increment_team_ammoboxes (self.team_no); + if ((num_team_ammoboxes (self.team_no) > (20 / number_of_teams))) + { + RemoveOldAmmobox (self.team_no); + } + } + else + { + num_world_ammoboxes = num_world_ammoboxes + 1; + if ((num_world_ammoboxes > 20)) + { + RemoveOldAmmobox (0); + } + } + newmis.enemy = self; + newmis.health = time; + newmis.weapon = 0; + newmis.movetype = 6; + newmis.solid = 1; + newmis.classname = "ammobox"; + newmis.team_no = self.team_no; + makevectors (self.v_angle); + if (self.v_angle_x) + { + newmis.velocity = ((v_forward * 400) + (v_up * 200)); + } + else + { + newmis.velocity = aim (self, 10000); + newmis.velocity = (newmis.velocity * 400); + newmis.velocity_z = 200; + } + newmis.avelocity = '0 300 0'; + setsize (newmis, '0 0 0', '0 0 0'); + setorigin (newmis, self.origin); + newmis.nextthink = (time + 30); + newmis.think = SUB_Remove; + newmis.touch = TeamFortress_AmmoboxTouch; + setmodel (newmis, "progs/backpack.mdl"); + self.discard_next = time + 0.25; +}; + +void () TeamFortress_SaveMe = +{ + local entity te; + local entity tl; + + if ((self.last_saveme_sound < time)) + { + sound (self, TF_FLARE_OFF, "speech/saveme1.wav", TF_FLARE_OFF, TF_FLARE_OFF); + self.last_saveme_sound = (time + 4); + } + te = find (world, classname, "player"); + while (te) + { + if (((((self == te) || (te.playerclass == 5)) || (te.playerclass == 9)) || (te.playerclass == 8))) + { + if ((((te.team_no == self.team_no) && (self.team_no != TF_FLARE_LIT)) || (te.playerclass == 8))) + { + if (visible (te)) + { + msg_entity = te; + tl = spawn (); + tl.origin = self.origin; + tl.origin_z = (tl.origin_z + 32); + WriteByte (TF_FLARE_OFF, 23); + WriteByte (TF_FLARE_OFF, 9); + WriteEntity (TF_FLARE_OFF, tl); + WriteCoord (TF_FLARE_OFF, tl.origin_x); + WriteCoord (TF_FLARE_OFF, tl.origin_y); + WriteCoord (TF_FLARE_OFF, (tl.origin_z + 24)); + WriteCoord (TF_FLARE_OFF, self.origin_x); + WriteCoord (TF_FLARE_OFF, self.origin_y); + WriteCoord (TF_FLARE_OFF, self.origin_z); + dremove (tl); + } + } + } + te = find (te, classname, "player"); + } +}; + +void () TeamFortress_ID = +{ + local vector src; + local string st; + local string _l_3386; + local string cls; + + src = self.origin + (v_forward * 10); + src_z = self.absmin_z + (self.size_z * 0.700000); + traceline (src, (src + (v_forward * 2048)), 0, self); + if (((trace_ent != world) && (trace_ent.origin != world.origin))) + { + if (((trace_ent.classname == "player") && (trace_ent.health > 0))) + { + if ((trace_ent.bugger > 0)) + { + return; + } + self.StatusRefreshTime = (time + 1.500000); + if (((self.team_no != 0) && (self.team_no == trace_ent.team_no))) + { + cls = TeamFortress_GetClassName (trace_ent.playerclass); + if ((self.playerclass == 5)) + { + if (medicarmorheal == 1) + { + st = ftos (trace_ent.health); + _l_3386 = ftos (trace_ent.armorvalue); + st = ftos (rint ((((trace_ent.health / trace_ent.max_health) + (trace_ent.armorvalue / trace_ent.maxarmor)) * 50))); + centerprint (self, "\n\n\n\n\n\n", trace_ent.netname, "\nFriendly ", cls, "\n", st, "% strength\n"); + return; + } + else + { + st = ftos (trace_ent.health); + centerprint (self, "\n\n\n", trace_ent.netname, "\nFriendly ", cls, "\n", st, " health\n"); + return; + } + } + else + { + if ((self.playerclass == 9)) + { + st = ftos (trace_ent.armorvalue); + centerprint (self, "\n\n\n\n\n\n", trace_ent.netname, "\nFriendly ", cls, "\n", st, " armor\n"); + return; + } + } + centerprint (self, "\n\n\n\n\n\n", trace_ent.netname, "\nFriendly ", cls); + return; + } + if ((trace_ent.playerclass == 8)) + { + cls = TeamFortress_GetClassName (trace_ent.undercover_skin); + if (((self.team_no != 0) && (self.team_no == trace_ent.undercover_team))) + { + if ((self.playerclass == 5)) + { + if (medicarmorheal) + { + st = ftos (trace_ent.health); + _l_3386 = ftos (trace_ent.armorvalue); + st = ftos (rint ((((trace_ent.health / trace_ent.max_health) + (trace_ent.armorvalue / trace_ent.maxarmor)) * 50))); + if ((trace_ent.undercover_skin != 0)) + { + centerprint (self, "\n\n\n\n\n\n", trace_ent.undercover_name, "\nFriendly ", cls, "\n", st, "% strength\n"); + } + else + { + centerprint (self, "\n\n\n\n\n\n\n", trace_ent.undercover_name, "\nFriendly Spy\n", st, "% strength\n"); + } + return; + } + else + { + st = ftos (trace_ent.health); + if ((trace_ent.undercover_skin != 0)) + { + centerprint (self, "\n\n\n\n", trace_ent.undercover_name, "\nFriendly ", cls, "\n", st, " health\n"); + } + else + { + centerprint (self, "\n\n\n\n", trace_ent.undercover_name, "\nFriendly Spy\n", st, " health\n"); + } + return; + } + } + else + { + if ((self.playerclass == 9)) + { + st = ftos (trace_ent.armorvalue); + if ((trace_ent.undercover_skin != 0)) + { + centerprint (self, "\n\n\n\n\n\n\n", trace_ent.undercover_name, "\nFriendly ", cls, "\n", st, " armor\n"); + } + else + { + centerprint (self, "\n\n\n\n\n\n\n", trace_ent.undercover_name, "\nFriendly Spy\n", st, " armor\n"); + } + return; + } + else + { + st = ftos (trace_ent.armorvalue); + if ((trace_ent.undercover_skin != 0)) + { + centerprint (self, "\n\n\n\n\n\n\n", trace_ent.undercover_name, "\nFriendly ", cls); + } + else + { + centerprint (self, "\n\n\n\n\n\n\n", trace_ent.undercover_name, "\nFriendly Spy\n"); + } + return; + } + } + } + if ((trace_ent.undercover_name != string_null)) + { + if ((trace_ent.undercover_skin != 0)) + { + centerprint (self, "\n\n\n\n\n\n\n", trace_ent.undercover_name, "\nEnemy ", cls); + } + else + { + centerprint (self, "\n\n\n\n\n\n\n", trace_ent.undercover_name, "\nEnemy Spy"); + } + } + else + { + if ((trace_ent.undercover_skin != 0)) + { + centerprint (self, "\n\n\n\n\n\n\n", trace_ent.netname, "\nEnemy ", cls); + } + else + { + centerprint (self, "\n\n\n\n\n\n\n", trace_ent.netname, "\nEnemy Spy"); + } + } + } + else + { + cls = TeamFortress_GetClassName (trace_ent.playerclass); + centerprint (self, "\n\n\n\n\n\n\n", trace_ent.netname, "\nEnemy ", cls); + } + } + else + { + if ((trace_ent.classname == "building_dispenser")) + { + self.StatusRefreshTime = (time + 1.500000); + if ((self == trace_ent.real_owner)) + { + centerprint (self, "\n\n\n\n\n\n\nYour Dispenser"); + } + else + { + centerprint (self, "\n\n\n\n\n\n\nDispenser made by ", trace_ent.real_owner.netname); + } + } + else + { + if (((trace_ent.classname == "building_sentrygun") || (trace_ent.classname == "building_sentrygun_base"))) + { + self.StatusRefreshTime = (time + 1.500000); + if ((self == trace_ent.real_owner)) + { + centerprint (self, "\n\n\n\n\n\n\nYour SentryGun"); + } + else + { + if (!teamplay) + { + centerprint (self, "\n\n\n\n\n\n\nSentrygun made by\n", trace_ent.real_owner.netname); + } + else + { + if (((self.team_no != 0) && (self.team_no == trace_ent.team_no))) + { + centerprint (self, "\n\n\n\n\n\n\nFriendly Sentrygun made by\n", trace_ent.real_owner.netname); + } + else + { + centerprint (self, "\n\n\n\n\n\n\nEnemy Sentrygun made by\n", trace_ent.real_owner.netname); + } + } + } + } + else + { + if ((trace_ent.classname == "building_tesla")) + { + self.StatusRefreshTime = (time + 1.500000); + if ((self == trace_ent.real_owner)) + { + centerprint (self, "\n\n\n\n\n\n\nYour Tesla Coil"); + } + else + { + if (!teamplay) + { + centerprint (self, "\n\n\n\n\n\n\nTesla Coil made by\n", trace_ent.real_owner.netname); + } + else + { + if (((self.team_no != 0) && (self.team_no == trace_ent.team_no))) + { + centerprint (self, "\n\n\n\n\n\n\nFriendly Tesla made by\n", trace_ent.real_owner.netname); + } + else + { + centerprint (self, "\n\n\n\n\n\n\nEnemy Tesla made by\n", trace_ent.real_owner.netname); + } + } + } + } + } + } + } + } +}; + +void () TeamFortress_ReloadCurrentWeapon = +{ + local float rt; + local entity tWeapon; + + if ((self.current_weapon == 128)) + { + if ((self.reload_shotgun == TF_FLARE_LIT)) + { + sprint (self, 2, "clip full.\n"); + return; + } + if ((self.reload_shotgun < self.ammo_shells)) + { + Attack_Finished (0.4); + rt = ((8 - self.reload_shotgun) / 8); + rt = (2 - (2 * rt)); + self.reload_shotgun = TF_FLARE_LIT; + if ((self.ammo_shells < 8)) + { + self.reload_shotgun = (8 - self.ammo_shells); + } + sprint (self, 2, "reloading...\n"); + self.tfstate = (self.tfstate | 2); + tWeapon = spawn (); + tWeapon.owner = self; + tWeapon.classname = "timer"; + tWeapon.nextthink = (time + rt); + tWeapon.think = W_Reload_shotgun; + self.weaponmodel = ""; + self.weaponframe = TF_FLARE_LIT; + } + else + { + sprint (self, 2, "not enough ammo to reload\n"); + } + } + else + { + if ((self.current_weapon == 256)) + { + if ((self.reload_super_shotgun == TF_FLARE_LIT)) + { + sprint (self, 2, "clip full.\n"); + return; + } + if ((self.reload_super_shotgun < self.ammo_shells)) + { + Attack_Finished (0.7); + rt = ((16 - self.reload_super_shotgun) / 16); + rt = (3 - (3 * rt)); + self.reload_super_shotgun = TF_FLARE_LIT; + if ((self.ammo_shells < 16)) + { + self.reload_super_shotgun = (16 - self.ammo_shells); + } + sprint (self, 2, "reloading...\n"); + self.tfstate = (self.tfstate | 2); + tWeapon = spawn (); + tWeapon.owner = self; + tWeapon.classname = "timer"; + tWeapon.nextthink = (time + rt); + tWeapon.think = W_Reload_super_shotgun; + self.weaponmodel = ""; + self.weaponframe = TF_FLARE_LIT; + } + else + { + sprint (self, 2, "not enough ammo to reload\n"); + } + } + else + { + if ((self.current_weapon == 2048)) + { + if ((self.reload_grenade_launcher == TF_FLARE_LIT)) + { + sprint (self, 2, "clip full.\n"); + return; + } + if ((self.reload_grenade_launcher < self.ammo_rockets)) + { + Attack_Finished (0.6); + rt = ((6 - self.reload_grenade_launcher) / 6); + rt = (4 - (4 * rt)); + self.reload_grenade_launcher = TF_FLARE_LIT; + if ((self.ammo_rockets < 6)) + { + self.reload_grenade_launcher = (6 - self.ammo_rockets); + } + sprint (self, 2, "reloading...\n"); + self.tfstate = (self.tfstate | 2); + tWeapon = spawn (); + tWeapon.owner = self; + tWeapon.classname = "timer"; + tWeapon.nextthink = (time + rt); + tWeapon.think = W_Reload_grenade_launcher; + self.weaponmodel = ""; + self.weaponframe = TF_FLARE_LIT; + } + else + { + sprint (self, 2, "not enough ammo to reload\n"); + } + } + else + { + if ((self.current_weapon == 8192)) + { + if ((self.reload_rocket_launcher == TF_FLARE_LIT)) + { + sprint (self, 2, "clip full.\n"); + return; + } + if ((self.reload_rocket_launcher < self.ammo_rockets)) + { + Attack_Finished (0.8); + rt = ((4 - self.reload_rocket_launcher) / 4); + rt = (5 - (5 * rt)); + self.reload_rocket_launcher = TF_FLARE_LIT; + if ((self.ammo_rockets < 4)) + { + self.reload_rocket_launcher = (4 - self.ammo_rockets); + } + sprint (self, 2, "reloading...\n"); + self.tfstate = (self.tfstate | 2); + tWeapon = spawn (); + tWeapon.owner = self; + tWeapon.classname = "timer"; + tWeapon.nextthink = (time + rt); + tWeapon.think = W_Reload_rocket_launcher; + self.weaponmodel = ""; + self.weaponframe = TF_FLARE_LIT; + } + } + } + } + } +}; + +void () CanisterTouch = +{ + sound (self, 1, "weapons/tink1.wav", 1, 1); + if ((self.velocity == '0 0 0')) + { + self.avelocity = '0 0 0'; + } +}; diff --git a/world.pqc b/world.pqc new file mode 100644 index 0000000..5a0af0f --- /dev/null +++ b/world.pqc @@ -0,0 +1,436 @@ +float headkick; + +void () InitBodyQue; + +void () main = +{ + dprint ("main function\n"); + precache_file ("main function\n"); + precache_file ("progs.dat"); + precache_file ("gfx.wad"); + precache_file ("quake.rc"); + precache_file ("default.cfg"); + precache_file ("end1.bin"); + precache_file2 ("end2.bin"); + precache_file ("demo1.dem"); + precache_file ("demo2.dem"); + precache_file ("demo3.dem"); + precache_file ("gfx/palette.lmp"); + precache_file ("gfx/colormap.lmp"); + precache_file2 ("gfx/pop.lmp"); + precache_file ("gfx/complete.lmp"); + precache_file ("gfx/inter.lmp"); + precache_file ("gfx/ranking.lmp"); + precache_file ("gfx/vidmodes.lmp"); + precache_file ("gfx/finale.lmp"); + precache_file ("gfx/conback.lmp"); + precache_file ("gfx/qplaque.lmp"); + precache_file ("gfx/menudot1.lmp"); + precache_file ("gfx/menudot2.lmp"); + precache_file ("gfx/menudot3.lmp"); + precache_file ("gfx/menudot4.lmp"); + precache_file ("gfx/menudot5.lmp"); + precache_file ("gfx/menudot6.lmp"); + precache_file ("gfx/menuplyr.lmp"); + precache_file ("gfx/bigbox.lmp"); + precache_file ("gfx/dim_modm.lmp"); + precache_file ("gfx/dim_drct.lmp"); + precache_file ("gfx/dim_ipx.lmp"); + precache_file ("gfx/dim_tcp.lmp"); + precache_file ("gfx/dim_mult.lmp"); + precache_file ("gfx/mainmenu.lmp"); + precache_file ("gfx/box_tl.lmp"); + precache_file ("gfx/box_tm.lmp"); + precache_file ("gfx/box_tr.lmp"); + precache_file ("gfx/box_ml.lmp"); + precache_file ("gfx/box_mm.lmp"); + precache_file ("gfx/box_mm2.lmp"); + precache_file ("gfx/box_mr.lmp"); + precache_file ("gfx/box_bl.lmp"); + precache_file ("gfx/box_bm.lmp"); + precache_file ("gfx/box_br.lmp"); + precache_file ("gfx/sp_menu.lmp"); + precache_file ("gfx/ttl_sgl.lmp"); + precache_file ("gfx/ttl_main.lmp"); + precache_file ("gfx/ttl_cstm.lmp"); + precache_file ("gfx/mp_menu.lmp"); + precache_file ("gfx/netmen1.lmp"); + precache_file ("gfx/netmen2.lmp"); + precache_file ("gfx/netmen3.lmp"); + precache_file ("gfx/netmen4.lmp"); + precache_file ("gfx/netmen5.lmp"); + precache_file ("gfx/sell.lmp"); + precache_file ("gfx/help0.lmp"); + precache_file ("gfx/help1.lmp"); + precache_file ("gfx/help2.lmp"); + precache_file ("gfx/help3.lmp"); + precache_file ("gfx/help4.lmp"); + precache_file ("gfx/help5.lmp"); + precache_file ("gfx/pause.lmp"); + precache_file ("gfx/loading.lmp"); + precache_file ("gfx/p_option.lmp"); + precache_file ("gfx/p_load.lmp"); + precache_file ("gfx/p_save.lmp"); + precache_file ("gfx/p_multi.lmp"); + precache_sound ("misc/menu1.wav"); + precache_sound ("misc/menu2.wav"); + precache_sound ("misc/menu3.wav"); + precache_sound ("ambience/water1.wav"); + precache_sound ("ambience/wind2.wav"); + precache_file ("maps/start.bsp"); + precache_file ("maps/e1m1.bsp"); + precache_file ("maps/e1m2.bsp"); + precache_file ("maps/e1m3.bsp"); + precache_file ("maps/e1m4.bsp"); + precache_file ("maps/e1m5.bsp"); + precache_file ("maps/e1m6.bsp"); + precache_file ("maps/e1m7.bsp"); + precache_file ("maps/e1m8.bsp"); + precache_file2 ("gfx/pop.lmp"); + precache_file2 ("maps/e2m1.bsp"); + precache_file2 ("maps/e2m2.bsp"); + precache_file2 ("maps/e2m3.bsp"); + precache_file2 ("maps/e2m4.bsp"); + precache_file2 ("maps/e2m5.bsp"); + precache_file2 ("maps/e2m6.bsp"); + precache_file2 ("maps/e2m7.bsp"); + precache_file2 ("maps/e3m1.bsp"); + precache_file2 ("maps/e3m2.bsp"); + precache_file2 ("maps/e3m3.bsp"); + precache_file2 ("maps/e3m4.bsp"); + precache_file2 ("maps/e3m5.bsp"); + precache_file2 ("maps/e3m6.bsp"); + precache_file2 ("maps/e3m7.bsp"); + precache_file2 ("maps/e4m1.bsp"); + precache_file2 ("maps/e4m2.bsp"); + precache_file2 ("maps/e4m3.bsp"); + precache_file2 ("maps/e4m4.bsp"); + precache_file2 ("maps/e4m5.bsp"); + precache_file2 ("maps/e4m6.bsp"); + precache_file2 ("maps/e4m7.bsp"); + precache_file2 ("maps/e4m8.bsp"); + precache_file2 ("maps/end.bsp"); + precache_file2 ("maps/dm1.bsp"); + precache_file2 ("maps/dm2.bsp"); + precache_file2 ("maps/dm3.bsp"); + precache_file2 ("maps/dm4.bsp"); + precache_file2 ("maps/dm5.bsp"); + precache_file2 ("maps/dm6.bsp"); +}; +entity lastspawn; + +void () worldspawn = +{ + lastspawn = world; + InitBodyQue (); + if ((infokey (world, "*gamedir") != "fortress")) + { + objerror ("QW TF must be run with a gamedir of \"fortress\".\n"); + } + W_Precache (); + precache_sound ("demon/dland2.wav"); + precache_sound ("misc/h2ohit1.wav"); + precache_sound ("items/itembk2.wav"); + precache_sound ("player/plyrjmp8.wav"); + precache_sound ("player/land.wav"); + precache_sound ("player/land2.wav"); + precache_sound ("player/drown1.wav"); + precache_sound ("player/drown2.wav"); + precache_sound ("player/gasp1.wav"); + precache_sound ("player/gasp2.wav"); + precache_sound ("player/h2odeath.wav"); + precache_sound ("misc/talk.wav"); + precache_sound ("player/teledth1.wav"); + precache_sound ("misc/r_tele1.wav"); + precache_sound ("misc/r_tele2.wav"); + precache_sound ("misc/r_tele3.wav"); + precache_sound ("misc/r_tele4.wav"); + precache_sound ("misc/r_tele5.wav"); + precache_sound ("weapons/lock4.wav"); + precache_sound ("weapons/pkup.wav"); + precache_sound ("items/armor1.wav"); + precache_sound ("weapons/lhit.wav"); + precache_sound ("weapons/lstart.wav"); + precache_sound ("weapons/asscan4.wav"); // 11.11.04 20mm cannon wav + precache_sound ("items/damage3.wav"); + precache_sound ("misc/power.wav"); + precache_sound ("player/gib.wav"); + precache_sound ("player/udeath.wav"); + precache_sound ("player/tornoff2.wav"); + precache_sound ("player/pain1.wav"); + precache_sound ("player/pain2.wav"); + precache_sound ("player/pain3.wav"); + precache_sound ("player/pain4.wav"); + precache_sound ("player/pain5.wav"); + precache_sound ("player/pain6.wav"); + precache_sound ("player/death1.wav"); + precache_sound ("player/death2.wav"); + precache_sound ("player/death3.wav"); + precache_sound ("player/death4.wav"); + precache_sound ("player/death5.wav"); + precache_sound ("player/malive5.wav"); + precache_sound ("weapons/ax1.wav"); + precache_sound ("player/axhit1.wav"); + precache_sound ("player/axhit2.wav"); + precache_sound ("player/h2ojump.wav"); + precache_sound ("player/slimbrn2.wav"); + precache_sound ("player/inh2o.wav"); + precache_sound ("player/inlava.wav"); + precache_sound ("misc/outwater.wav"); + precache_sound ("player/lburn1.wav"); + precache_sound ("player/lburn2.wav"); + precache_sound ("misc/water1.wav"); + precache_sound ("misc/water2.wav"); + precache_model ("progs/player.mdl"); + precache_model ("progs/eyes.mdl"); + precache_model ("progs/h_player.mdl"); + precache_model ("progs/gib1.mdl"); + precache_model ("progs/gib2.mdl"); + precache_model ("progs/gib3.mdl"); + precache_model ("progs/gib4.mdl"); + precache_model ("progs/s_null.spr"); +// precache_model ("progs/chute.mdl"); + precache_model ("progs/s_bubble.spr"); + precache_model ("progs/s_explod.spr"); +// precache_model ("progs/throwaxe.mdl"); + precache_model ("progs/v_axe.mdl"); + precache_model ("progs/v_shot.mdl"); +// precache_model ("progs/v_moss.mdl"); + precache_model ("progs/v_nail2.mdl"); + precache_model ("progs/v_rock.mdl"); + precache_model ("progs/v_shot2.mdl"); +// precache_model ("progs/w_uzi.mdl"); + precache_model ("progs/v_rock2.mdl"); + precache_model ("progs/grenade.mdl"); +// precache_model ("progs/bolt.mdl"); +// precache_model ("progs/bolt2.mdl"); +// precache_model ("progs/bolt3.mdl"); + precache_model ("progs/lavaball.mdl"); + precache_model ("progs/missile.mdl"); + precache_model ("progs/spike.mdl"); +// precache_model ("progs/s_spike.mdl"); + precache_model ("progs/backpack.mdl"); + precache_model ("progs/zom_gib.mdl"); +// precache_model ("progs/v_light.mdl"); + precache_model2 ("progs/laser.mdl"); + precache_sound2 ("enforcer/enfire.wav"); + precache_sound2 ("enforcer/enfstop.wav"); + precache_sound2 ("hknight/attack1.wav"); + precache_sound2 ("knight/sword2.wav"); +// precache_model2 ("progs/cross1.mdl"); + precache_model2 ("progs/v_medi.mdl"); + precache_model2 ("progs/v_bio.mdl"); + precache_model2 ("progs/hgren2.mdl"); + precache_model2 ("progs/biggren.mdl"); + precache_model2 ("progs/flare.mdl"); + precache_model2 ("progs/v_srifle.mdl"); +// precache_model2 ("progs/v_gatgun.mdl"); + precache_model2 ("progs/detpack.mdl"); + precache_model2 ("progs/ammobox.mdl"); + precache_model2 ("progs/v_knife.mdl"); + precache_model2 ("progs/v_knife2.mdl"); + precache_model2 ("progs/v_span.mdl"); +// precache_model2 ("progs/e_spike1.mdl"); +// precache_model2 ("progs/e_spike2.mdl"); + precache_model2 ("progs/v_rail.mdl"); + precache_model2 ("progs/turrgun.mdl"); + precache_model2 ("progs/turrbase.mdl"); + precache_model2 ("progs/tgib1.mdl"); + precache_model2 ("progs/tgib2.mdl"); + precache_model2 ("progs/tgib3.mdl"); + precache_model2 ("progs/disp.mdl"); + precache_model2 ("progs/dgib1.mdl"); + precache_model2 ("progs/dgib2.mdl"); + precache_model2 ("progs/dgib3.mdl"); + precache_model2 ("progs/grenade2.mdl"); + precache_model2 ("progs/v_grap.mdl"); + precache_model2 ("progs/hook.mdl"); +// precache_model2 ("progs/caltrop.mdl"); + precache_sound2 ("speech/saveme1.wav"); + precache_sound2 ("speech/saveme2.wav"); +// precache_sound ("ambience/subaqua.wav"); + precache_sound ("weapons/rifle.wav"); + precache_sound ("buttons/switch21.wav"); + precache_sound ("buttons/airbut1.wav"); +// precache_sound ("weapons/fith.wav"); + precache_sound ("weapons/detpack.wav"); + precache_sound ("weapons/radioair.wav"); + precache_sound ("weapons/notarget.wav"); + precache_sound ("weapons/airstrik.wav"); + precache_sound ("weapons/fighter.wav"); + precache_sound ("weapons/throw.wav"); + precache_sound ("weapons/prime.wav"); + precache_sound ("weapons/20mm.wav"); + precache_sound ("player/step1l.wav"); + precache_sound ("player/step2l.wav"); + precache_sound ("player/step1r.wav"); + precache_sound ("player/step2r.wav"); + precache_sound ("items/repair.wav"); + precache_sound ("misc/medkey.wav"); + precache_sound ("speech/pekaboo.wav"); + precache_sound ("speech/idoasskk.wav"); + precache_sound ("speech/pathetic.wav"); + precache_sound ("speech/call911.wav"); + precache_sound ("speech/kicknads.wav"); + precache_sound ("speech/radio/taken.wav"); + precache_sound ("speech/radio/capped.wav"); + precache_sound ("player/gas_mask.wav"); + precache_sound ("items/nightvis.wav"); + precache_sound ("speech/threat.wav"); + precache_sound ("speech/hey.wav"); + precache_sound ("speech/cmyhole.wav"); + precache_sound ("speech/pantsdwn.wav"); + precache_sound ("misc/eject.wav"); + precache_sound ("misc/startup.wav"); + precache_sound ("misc/enemy.wav"); +// precache_sound ("artifact/charging.wav"); + precache_sound ("zombie/z_hit.wav"); + precache_sound ("items/itembk2.wav"); + precache_sound ("items/health1.wav"); + precache_sound ("player/udeath.wav"); + precache_sound ("player/mpain6.wav"); + precache_sound ("player/death1.wav"); + precache_sound ("player/death2.wav"); + precache_sound ("player/death3.wav"); +// precache_sound ("player/mdeath4.wav"); + precache_sound ("player/mdeath5.wav"); + precache_sound2 ("enforcer/enfstop.wav"); + precache_sound2 ("enforcer/enfire.wav"); + precache_sound2 ("hknight/attack1.wav"); + precache_model ("progs/incenrkt.mdl"); +// precache_model ("progs/v_m162.mdl"); + precache_model ("progs/lavapool.mdl"); + precache_model ("progs/zom_gib.mdl"); +// precache_model ("progs/v_light.mdl"); + precache_model2 ("progs/v_bio.mdl"); + precache_model2 ("progs/hgren2.mdl"); + precache_model2 ("progs/biggren.mdl"); + precache_model2 ("progs/flare.mdl"); + // pablo's precaching. + // models + precache_model ("progs/proxgren.mdl"); + precache_model ("progs/v_asscan.mdl"); + precache_model ("progs/v_mac10.mdl"); + precache_model ("progs/dot1.spr"); + precache_model ("progs/dot2.spr"); + precache_model ("progs/dot3.spr"); + precache_model ("progs/dot4.spr"); + precache_model ("progs/rope.mdl"); + precache_model ("progs/dispencr.mdl"); + precache_model ("progs/tf_flag.mdl"); + + // sounds + precache_sound ("effects/beep.wav"); + precache_sound ("buttons/switch02.wav"); + precache_sound ("player/gib3.wav"); + precache_sound ("player/gib2.wav"); + precache_sound ("weapons/no_ammo.wav"); + precache_sound ("weapons/pkup.wav"); + // + + lightstyle (0, "m"); + lightstyle (1, "mmnmmommommnonmmonqnmmo"); + lightstyle (2, "abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba"); + lightstyle (3, "mmmmmaaaaammmmmaaaaaabcdefgabcdefg"); + lightstyle (4, "mamamamamama"); + lightstyle (5, "jklmnopqrstuvwxyzyxwvutsrqponmlkj"); + lightstyle (6, "nmonqnmomnmomomno"); + lightstyle (7, "mmmaaaabcdefgmmmmaaaammmaamm"); + lightstyle (8, "mmmaaammmaaammmabcdefaaaammmmabcdefmmmaaaa"); + lightstyle (9, "aaaaaaaazzzzzzzz"); + lightstyle (10, "mmamammmmammamamaaamammma"); + lightstyle (11, "abcdefghijklmnopqrrqponmlkjihgfedcba"); + lightstyle (63, "a"); +}; +/*OLD +void () StartFrame = +{ + teamplay = cvar ("teamplay"); + timelimit = (cvar ("timelimit") * 60); + fraglimit = cvar ("fraglimit"); + deathmatch = cvar ("deathmatch"); + framecount = (framecount + 1); +}; +*/ +void () StartFrame = +{ + local string _l_3667; + + teamplay = cvar ("teamplay"); + timelimit = cvar ("timelimit") * 60; + fraglimit = cvar ("fraglimit"); + deathmatch = cvar ("deathmatch"); + framecount = framecount + 1; + if ((pointer_timeleft != world)) + { + return; + } + _l_3667 = infokey (world, "time"); + if (((_l_3667 == "off") || (_l_3667 == "0"))) + { + return; + } + newmis = spawn (); + newmis.classname = "countdown"; + newmis.no_grenades_1 = 0; + _l_3667 = infokey (world, "timelimit"); + newmis.health = stof (_l_3667); + newmis.think = review_timeleft; + newmis.nextthink = (time + 1); + pointer_timeleft = newmis; +}; + +entity bodyque_head; + +void () bodyque = +{ +}; + +void () InitBodyQue = +{ + bodyque_head = spawn (); + bodyque_head.classname = "bodyque"; + bodyque_head.owner = spawn (); + bodyque_head.owner.classname = "bodyque"; + bodyque_head.owner.owner = spawn (); + bodyque_head.owner.owner.classname = "bodyque"; + bodyque_head.owner.owner.owner = spawn (); + bodyque_head.owner.owner.owner.classname = "bodyque"; + bodyque_head.owner.owner.owner.owner = bodyque_head; +}; + +void () GibHead = +{ + ThrowGib ("progs/gib4.mdl", self.health); + ThrowGib ("progs/gib4.mdl", self.health); + ThrowGib ("progs/gib4.mdl", self.health); + ThrowGib ("progs/gib4.mdl", self.health); + ThrowGib ("progs/gib4.mdl", self.health); + ThrowGib ("progs/gib4.mdl", self.health); + setmodel (self, string_null); + self.solid = 0; +}; + +void (entity ent) CopyToBodyQue = +{ + bodyque_head.angles = ent.angles; + bodyque_head.model = ent.model; + bodyque_head.skin = ent.skin; + bodyque_head.modelindex = ent.modelindex; + bodyque_head.frame = ent.frame; + bodyque_head.colormap = ent.colormap; + bodyque_head.movetype = ent.movetype; + if (headkick) + { + bodyque_head.solid = ent.solid; + bodyque_head.touch = ent.touch; + bodyque_head.takedamage = 2; + bodyque_head.health = 1; + bodyque_head.th_die = GibHead; + } + bodyque_head.velocity = ent.velocity; + bodyque_head.flags = 0; + setorigin (bodyque_head, ent.origin); + setsize (bodyque_head, ent.mins, ent.maxs); + bodyque_head = bodyque_head.owner; +}; \ No newline at end of file diff --git a/xavior.pqc b/xavior.pqc new file mode 100644 index 0000000..41b62ef --- /dev/null +++ b/xavior.pqc @@ -0,0 +1,450 @@ +////////////////////////////// +// Some random crap I added // +// (Note: this is not the // +// vote code, I put that in // +// rpg.pqc). // +////////////////////////////// + +// Periodic server messages +// For those servers that dont have this function built-in + +void() messagetimer = +{ + if (infokey (world, "message1")) + { + newmis = spawn(); + newmis.classname = "timer"; + newmis.nextthink = time + msg1time; + newmis.think = display_message; + } +}; + +void() display_message = +{ + if (msg1first == 0) + { + msg1first = 1; + newmis = spawn(); + newmis.classname = "timer"; + newmis.nextthink = time + 5; + newmis.think = display_message; + return; + } + local string messageONE; + messageONE = (infokey (world, "message1")); + if (num_players > 0) + { + localcmd ("say "); + localcmd (messageONE); + localcmd ("\n"); + } + messagetimer (); + dremove (self); +}; + +void() messagetimer2 = +{ + if (infokey (world, "message2")) + { + newmis = spawn(); + newmis.classname = "timer"; + newmis.nextthink = time + msg2time; + newmis.think = display_message2; + } +}; + +void() display_message2 = +{ + if (msg2first == 0) + { + msg2first = 1; + newmis = spawn(); + newmis.classname = "timer"; + newmis.nextthink = time + 5; + newmis.think = display_message2; + return; + } + local string message2; + message2 = (infokey (world, "message2")); + if (num_players > 0) + { + localcmd ("say "); + localcmd (message2); + localcmd ("\n"); + } + messagetimer2 (); + dremove (self); +}; + +void() pre_messagetimer2 = +{ + local string msgd; + msgd = infokey (world, "svmsg_delay"); + msgdelay = stof(msgd); + if (msgdelay > 0) + { + newmis = spawn(); + newmis.classname = "timer"; + newmis.nextthink = time + msgdelay; + newmis.think = display_message2; + return; + } + else + { + messagetimer2 (); + } +}; + +// 11.11.04 code for the stats_dl function. +void (float _p_2420) Stats_Fired = +{ + + if ((self.stats_on == 1)) + { + stuffcmd (self, "inc "); + if ((_p_2420 == 8)) + { + stuffcmd (self, "stats_axe_f"); + } + else + { + if ((_p_2420 == 16)) + { + stuffcmd (self, "stats_axe_f"); + } + else + { + if ((_p_2420 == 1)) + { + stuffcmd (self, "stats_grap_f"); + } + else + { + if ((_p_2420 == 128)) + { + stuffcmd (self, "stats_sg_f"); + } + else + { + if ((_p_2420 == 256)) + { + stuffcmd (self, "stats_ssg_f"); + } + else + { + if ((_p_2420 == 512)) + { + stuffcmd (self, "stats_ng_f"); + } + else + { + if ((_p_2420 == 1024)) + { + stuffcmd (self, "stats_sng_f"); + } + else + { + if (((_p_2420 == 2048) && (self.weaponmode == 1))) + { + stuffcmd (self, "stats_pb_f"); + } + else + { + if ((_p_2420 == 2048)) + { + stuffcmd (self, "stats_gl_f"); + } + else + { + if ((_p_2420 == 8192)) + { + stuffcmd (self, "stats_rl_f"); + } + else + { + if ((_p_2420 == 32)) + { + stuffcmd (self, "stats_sr_f"); + } + else + { + if ((_p_2420 == 64)) + { + stuffcmd (self, "stats_mg_f"); + } + else + { + if (((_p_2420 == 32768) && (self.option4 == 1))) + { + stuffcmd (self, "stats_20mm_f"); + } + else + { + if ((_p_2420 == 32768)) + { + stuffcmd (self, "stats_ac_f"); + } + else + { + if ((_p_2420 == 4096)) + { + stuffcmd (self, "stats_ft_f"); + } + else + { + if ((_p_2420 == 16384)) + { + stuffcmd (self, "stats_incend_f"); + } + else + { + if ((_p_2420 == 4)) + { + stuffcmd (self, "stats_ba_f"); + } + else + { + if ((_p_2420 == 2)) + { + stuffcmd (self, "stats_ba_f"); + } + else + { + if ((_p_2420 == 262144)) + { + stuffcmd (self, "stats_tranq_f"); + } + else + { + if ((_p_2420 == 524288)) + { + stuffcmd (self, "stats_rg_f"); + } + else + { + if ((_p_2420 == 666)) + { + stuffcmd (self, "stats_g1_f"); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + stuffcmd (self, " 1\n"); + } +}; + +void (float _p_2445) Stats_Hit = +{ + + if ((self.stats_on == 1)) + { + stuffcmd (self, "inc "); + if ((_p_2445 == 8)) + { + stuffcmd (self, "stats_axe_h"); + } + else + { + if ((_p_2445 == 16)) + { + stuffcmd (self, "stats_axe_h"); + } + else + { + if ((_p_2445 == 1)) + { + stuffcmd (self, "stats_grap_h"); + } + else + { + if ((_p_2445 == 128)) + { + stuffcmd (self, "stats_sg_h"); + } + else + { + if ((_p_2445 == 256)) + { + stuffcmd (self, "stats_ssg_h"); + } + else + { + if ((_p_2445 == 512)) + { + stuffcmd (self, "stats_ng_h"); + } + else + { + if ((_p_2445 == 1024)) + { + stuffcmd (self, "stats_sng_h"); + } + else + { + if ((_p_2445 == 2054)) + { + stuffcmd (self, "stats_pb_h"); + } + else + { + if ((_p_2445 == 2048)) + { + stuffcmd (self, "stats_gl_h"); + } + else + { + if ((_p_2445 == 8192)) + { + stuffcmd (self, "stats_rl_h"); + } + else + { + if ((_p_2445 == 34)) + { + stuffcmd (self, "stats_sr_h 1\n inc "); + stuffcmd (self, "stats_sr_hs"); + } + else + { + if ((_p_2445 == 33)) + { + stuffcmd (self, "stats_sr_h 1\n inc "); + stuffcmd (self, "stats_sr_ls"); + } + else + { + if ((_p_2445 == 32)) + { + stuffcmd (self, "stats_sr_h 1\n inc "); + stuffcmd (self, "stats_sr_cs"); + } + else + { + if ((_p_2445 == 64)) + { + stuffcmd (self, "stats_mg_h"); + } + else + { + if (((_p_2445 == 32768) && (self.option4 == 1))) + { + stuffcmd (self, "stats_20mm_h"); + } + else + { + if ((_p_2445 == 32768)) + { + stuffcmd (self, "stats_ac_h"); + } + else + { + if ((_p_2445 == 4096)) + { + stuffcmd (self, "stats_ft_h"); + } + else + { + if ((_p_2445 == 16384)) + { + stuffcmd (self, "stats_incend_h"); + } + else + { + if ((_p_2445 == 4)) + { + stuffcmd (self, "stats_ba_h"); + } + else + { + if ((_p_2445 == 2)) + { + stuffcmd (self, "stats_ba_h"); + } + else + { + if ((_p_2445 == 262144)) + { + stuffcmd (self, "stats_tranq_h"); + } + else + { + if ((_p_2445 == 524288)) + { + stuffcmd (self, "stats_rg_h"); + } + else + { + if ((_p_2445 == 666)) + { + stuffcmd (self, "stats_g1_h"); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + stuffcmd (self, " 1\n"); + } +}; + +// PM User-ID listings +//Shows the list of users and userids. Note that this is only the same as the built-in "users" function +//when you are running a server that supports getuserid() (so basically only prozac and hughie's modded eq). +//If you are running a server that supports that function, be sure to have "localinfo prozacserver" set to 1. +void() pm_list = +{ + local entity entar; + local string str; + + entar = find(world, classname, "player"); + while(entar) + { + if (entar.userid != 0) + { + str = ftos(entar.userid); + sprint (self, 2, str); + sprint (self, 2, " "); + sprint (self, 2, entar.netname); + sprint (self, 2, "\n"); + } + entar = find(entar, classname, "player"); + } +}; + +void () testfunct = +{ +} \ No newline at end of file