//#include "extern.qh" #include "options.qh" // because I want a boolean type :) #define boolean integer // // constants // // edict.flags #define FL_FLY 1 #define FL_SWIM 2 #define FL_CLIENT 8 // set for all client edicts #define FL_INWATER 16 // for enter / leave water splash #define FL_MONSTER 32 #define FL_GODMODE 64 // player cheat #define FL_NOTARGET 128 // player cheat #define FL_ITEM 256 // extra wide size for bonus items #define FL_ONGROUND 512 // standing on something #define FL_PARTIALGROUND 1024 // not all corners are valid #define FL_WATERJUMP 2048 // player jumping out of water #define FL_JUMPRELEASED 4096 // for jump debouncing // edict.movetype values #define MOVETYPE_NONE 0 // never moves //#define MOVETYPE_ANGLENOCLIP 1 //#define MOVETYPE_ANGLECLIP 2 #define MOVETYPE_WALK 3 // players only #define MOVETYPE_STEP 4 // discrete, not real time unless fall #define MOVETYPE_FLY 5 #define MOVETYPE_TOSS 6 // gravity #define MOVETYPE_PUSH 7 // no clip to world, push and crush #define MOVETYPE_NOCLIP 8 #define MOVETYPE_FLYMISSILE 9 // fly with extra size against monsters #define MOVETYPE_BOUNCE 10 #define MOVETYPE_BOUNCEMISSILE 11 // bounce with extra size // checkmove types #define MOVE_NORMAL 0 #define MOVE_NOMONSTERS 1 #define MOVE_MISSILE 2 // edict.solid values #define SOLID_NOT 0 // no interaction with other objects #define SOLID_TRIGGER 1 // touch on edge, but not blocking #define SOLID_BBOX 2 // touch on edge, block #define SOLID_SLIDEBOX 3 // touch on edge, but not an onground #define SOLID_BSP 4 // bsp clip, touch on edge, block // range values #define RANGE_MELEE 0 #define RANGE_NEAR 1 #define RANGE_MID 2 #define RANGE_FAR 3 #define RANGE_VERYFAR 4 //- OfN - Used for sentries // deadflag values #define DEAD_NO 0 #define DEAD_DYING 1 #define DEAD_DEAD 2 #define DEAD_RESPAWNABLE 3 // takedamage values #define DAMAGE_NO 0 #define DAMAGE_YES 1 #define DAMAGE_AIM 2 // items #define IT_AXE 4096 #define IT_SHOTGUN 1 #define IT_SUPER_SHOTGUN 2 #define IT_NAILGUN 4 #define IT_LIGHT_ASSAULT 8 #define IT_GRENADE_LAUNCHER 16 #define IT_ROCKET_LAUNCHER 32 #define IT_LIGHTNING 64 #define IT_EXTRA_WEAPON 128 #define IT_SHELLS 256 #define IT_NAILS 512 #define IT_ROCKETS 1024 #define IT_CELLS 2048 #define IT_ARMOR1 8192 #define IT_ARMOR2 16384 #define IT_ARMOR3 32768 #define IT_SUPERHEALTH 65536 #define IT_KEY1 131072 #define IT_KEY2 262144 #define IT_INVISIBILITY 524288 #define IT_INVULNERABILITY 1048576 #define IT_SUIT 2097152 #define IT_QUAD 4194304 #define IT_HOOK 8388608 // point content values #define CONTENTS_EMPTY -1 #define CONTENTS_SOLID -2 #define CONTENTS_WATER -3 #define CONTENTS_SLIME -4 #define CONTENTS_LAVA -5 #define CONTENTS_SKY -6 #define STATE_TOP 0 #define STATE_BOTTOM 1 #define STATE_UP 2 #define STATE_DOWN 3 #define VEC_ORIGIN '0 0 0' #define VEC_HULL_MIN '-16 -16 -24' #define VEC_HULL_MAX '16 16 32' #define VEC_HULL2_MIN '-32 -32 -24' #define VEC_HULL2_MAX '32 32 64' // protocol bytes #define SVC_SETVIEWPORT 5 #define SVC_SETANGLE 10 #define SVC_TEMPENTITY 23 #define SVC_KILLEDMONSTER 27 #define SVC_FOUNDSECRET 28 #define SVC_INTERMISSION 30 #define SVC_FINALE 31 #define SVC_CDTRACK 32 #define SVC_SELLSCREEN 33 #define SVC_SMALLKICK 34 #define SVC_BIGKICK 35 #define SVC_MUZZLEFLASH 39 #define TE_SPIKE 0 #define TE_SUPERSPIKE 1 #define TE_GUNSHOT 2 #define TE_EXPLOSION 3 #define TE_TAREXPLOSION 4 #define TE_LIGHTNING1 5 #define TE_LIGHTNING2 6 #define TE_WIZSPIKE 7 #define TE_KNIGHTSPIKE 8 #define TE_LIGHTNING3 9 #define TE_LAVASPLASH 10 #define TE_TELEPORT 11 #define TE_BLOOD 12 #define TE_LIGHTNINGBLOOD 13 // sound channels // channel 0 never willingly overrides // other channels (1-7) allways override a playing sound on that channel #define CHAN_AUTO 0 #define CHAN_WEAPON 1 #define CHAN_VOICE 2 #define CHAN_ITEM 3 #define CHAN_BODY 4 #define CHAN_MUSIC 5 //WK For orff.wav #define CHAN_MISC 6 //#define CHAN_MONSTER 7 #define ATTN_NONE 0 #define ATTN_NORM 1 #define ATTN_IDLE 2 #define ATTN_STATIC 3 // update types #define UPDATE_GENERAL 0 #define UPDATE_STATIC 1 #define UPDATE_BINARY 2 #define UPDATE_TEMP 3 // entity effects #define EF_BRIGHTFIELD 8 //really 1, doesn't exist in quakeworld #define EF_MUZZLEFLASH 8 //really 2, doesn't exist in quakeworld #define EF_BRIGHTLIGHT 4 #define EF_DIMLIGHT 8 #define EF_FLAG1 16 #define EF_FLAG2 32 #define EF_BLUE 64 #define EF_RED 128 #define EF_ANYGLOW (EF_BRIGHTLIGHT | EF_DIMLIGHT | EF_RED | EF_BLUE) float (entity e) EF_GlowColor; // network writes. argument to Write* #define MSG_ONE 1 // reliable to one (msg_entity) #define MSG_ALL 2 // reliable to all #define MSG_INIT 3 // write to the init string #define MSG_MULTICAST 4 // only those in pvs/phs. see // multicast sets below // message levels #define PRINT_LOW 0.0 // pickup messages #define PRINT_MEDIUM 1.0 // death messages #define PRINT_HIGH 2.0 // critical messages #define PRINT_CHAT 3.0 // also goes to chat console // multicast sets. argument to multicast #define MULTICAST_ALL 0 // every client #define MULTICAST_PHS 1 // within hearing #define MULTICAST_PVS 2 // within sight #define MULTICAST_ALL_R 3 // every client, reliable #define MULTICAST_PHS_R 4 // within hearing, reliable #define MULTICAST_PVS_R 5 // within sight, reliable #define AS_STRAIGHT 1 #define AS_SLIDING 2 #define AS_MELEE 3 #define AS_MISSILE 4 #define AS_FIREBALL 5 #define MAX_HOVER_FUEL 10 //Boots will recharge up to this maximum #define CUSTOM_ON_SPAWN 1 //When dead, rebuild #define CUSTOM_FINISHED 2 //Normal gameplay #define CUSTOM_BUILDING 4 //Making a class #define CUSTOM_OVERRIDE 8 //Used internally by menu.qc #define CUSTOM_SELLING 16 //Person wants to sell his frags for money #define SPENDING_LIMIT 10000 //How much to start with if serverinfo m is not set // TeamFortress State Flags #define TFSTATE_GRENPRIMED 1 // Whether the player has a primed grenade #define TFSTATE_RELOADING 2 // Whether the player is reloading #define TFSTATE_CONCUSSIONED 4 // If the person is dizzy and fumbling #define TFSTATE_RANDOMPC 8 // Whether Playerclass is random, new one each respawn #define TFSTATE_INFECTED 16 // set when player is infected by the bioweapon #define TFSTATE_INVINCIBLE 32 // Player has permanent Invincibility (Usually by GoalItem) #define TFSTATE_INVISIBLE 64 // Player has permanent Invisibility (Usually by GoalItem) #define TFSTATE_QUAD 128 // Player has permanent Quad Damage (Usually by GoalItem) #define TFSTATE_RADSUIT 256 // Player has permanent Radsuit (Usually by GoalItem) #define TFSTATE_BURNING 512 // Is on fire #define TFSTATE_GRENTHROWING 1024 // is throwing a grenade #define TFSTATE_AIMING 2048 // is using the laser sight #define TFSTATE_ZOOMOFF 4096 // doesn't want the FOV changed when zooming #define TFSTATE_RESPAWN_READY 8192 // is waiting for respawn, and has pressed fire #define TFSTATE_HALLUCINATING 16384 // set when player is hallucinating #define TFSTATE_TRANQUILISED 32768 // set when player is tranquilised #define TFSTATE_CANT_MOVE 65536 // set when player is setting a detpack //WK #define TFSTATE_INSPIRED 131072 // set when chaplan is in their area //CH #define TFSTATE_RL_LASER 262144 //CH set when aiming laser with rl //SB #define TFSTATE_C4THROW 524288 // we're priming the detpack #define TFSTATE_ASSAULTCANNON 1048576 // we're firing an assault cannon #define TFSTATE_DISARMED 2097152 // We've been disarmed. // Defines used by TF_T_Damage (see combat.qc) #define TF_TD_IGNOREARMOUR 1 // Bypasses the armour of the target #define TF_TD_NOTTEAM 2 // Doesn't damage a team member (indicates direct fire weapon) #define TF_TD_NOTSELF 4 // Doesn't damage self #define TF_TD_OTHER 0 // Ignore armorclass #define TF_TD_SHOT 1 // Bullet damage #define TF_TD_NAIL 2 // Nail damage #define TF_TD_EXPLOSION 4 // Explosion damage #define TF_TD_ELECTRICITY 8 // Electric damage #define TF_TD_FIRE 16 // Fire damage #define TF_TD_NOSOUND 256 // Special damage. Makes no sound/painframe, etc //WK 152 Default, must be > 6. //#define MOTD_FINISHED 242 //Delay in 1/10th seconds for motd to show #define MOTD_FINISHED 150 /*==================================================*/ /* Toggleable Game Settings */ /*==================================================*/ #define TF_RESPAWNDELAY1 5 // seconds of waiting before player can respawn #define TF_RESPAWNDELAY2 10 // seconds of waiting before player can respawn #define TF_RESPAWNDELAY3 20 // seconds of waiting before player can respawn #define TEAMPLAY_NORMAL 1 #define TEAMPLAY_HALFDIRECT 2 #define TEAMPLAY_NODIRECT 4 #define TEAMPLAY_HALFEXPLOSIVE 8 #define TEAMPLAY_NOEXPLOSIVE 16 #define TEAMPLAY_LESSPLAYERSHELP 32 #define TEAMPLAY_LESSSCOREHELP 64 #define TEAMPLAY_HALFARMORDIRECT 128 #define TEAMPLAY_NOARMORDIRECT 256 #define TEAMPLAY_HALFARMOREXPLOSIVE 512 #define TEAMPLAY_NOARMOREXPLOSIVE 1024 #define TEAMPLAY_HALFMIRRORDIRECT 2048 #define TEAMPLAY_FULLMIRRORDIRECT 4096 #define TEAMPLAY_HALFMIRROREXPLOSIVE 8192 #define TEAMPLAY_FULLMIRROREXPLOSIVE 16384 #define TEAMPLAY_VAMPIRE 32768 //#define TEAMPLAY_LIGHT_DAMAGE 131072 // FortressMap stuff #define TEAM1_CIVILIANS 1 #define TEAM2_CIVILIANS 2 #define TEAM3_CIVILIANS 4 #define TEAM4_CIVILIANS 8 // Defines for the playerclass #define PC_UNDEFINED 0 #define PC_SCOUT 1 #define PC_SNIPER 2 #define PC_SOLDIER 3 #define PC_DEMOMAN 4 #define PC_MEDIC 5 #define PC_HVYWEAP 6 #define PC_PYRO 7 #define PC_SPY 8 #define PC_ENGINEER 9 // Insert new class definitions here // PC_RANDOM _MUST_ be the third last class WK - Why? #define PC_RANDOM 10 // Random playerclass #define PC_CUSTOM 11 // WK - THE NEW CLASS BEEEATCH #define PC_CIVILIAN 12 // Civilians are a special class. They cannot // be chosen by players, only enforced by maps #define PC_LASTCLASS 13 // Use this as the high-boundary for any loops // through the playerclass. /*==================================================*/ /* Impulse Defines */ /*==================================================*/ // *must* be less than 4194304 #define TF_ALIASVERSION 100 // Alias check to see whether they already have the aliases #define TF_ALIAS_CHECK 13 // CTF Support Impulses #define HOOK_IMP1 22 #define FLAG_INFO 23 #define HOOK_IMP2 39 // Axe #define AXE_IMP 40 // Camera Impulse #define TF_CAM_TARGET 50 #define TF_CAM_ZOOM 51 #define TF_CAM_ANGLE 52 #define TF_CAM_VEC 53 #define TF_CAM_PROJECTILE 54 #define TF_CAM_PROJECTILE_Z 55 #define TF_CAM_REVANGLE 56 #define TF_CAM_OFFSET 57 #define TF_CAM_DROP 58 #define TF_CAM_FADETOBLACK 59 #define TF_CAM_FADEFROMBLACK 60 #define TF_CAM_FADETOWHITE 61 #define TF_CAM_FADEFROMWHITE 62 // Status Bar Resolution Settings. Same as CTF to maintain ease of use. #define TF_STATUSBAR_RES_START 71 #define TF_STATUSBAR_RES_END 81 // Added to PC_??? to get impulse to use if this clashes with your // own impulses, just change this value, not the PC_?? #define TF_CHANGEPC 100 // The next few impulses are all the class selections //PC_SCOUT 101 //PC_SNIPER 102 //PC_SOLDIER 103 //PC_DEMOMAN 104 //PC_MEDIC 105 //PC_HVYWEAP 106 //PC_PYRO 107 //PC_RANDOM 108 //PC_CIVILIAN 109 // Cannot be used //PC_SPY 110 //PC_ENGINEER 111 //Changed, this is Custom now // Help impulses #define TF_DISPLAYLOCATION 118 #define TF_STATUS_QUERY 119 #define TF_CHANGECLASS 120 #define TF_UNCUSTOM 121 #define TF_HELP_MAP 131 // Information impulses #define TF_INVENTORY 135 #define TF_SHOWTF 136 #define TF_SHOWLEGALCLASSES 137 // Team Impulses #define TF_TEAM_1 140 // Join Team 1 #define TF_TEAM_2 141 // Join Team 2 #define TF_TEAM_3 142 // Join Team 3 #define TF_TEAM_4 143 // Join Team 4 #define TF_TEAM_CLASSES 144 // Impulse to display team classes #define TF_TEAM_SCORES 145 // Impulse to display team scores #define TF_TEAM_LIST 146 // Impulse to display the players in each team. #define TF_TEAM_ENUM 147 // WK WK // Grenade Impulses #define TF_GRENADE_1 150 // Prime grenade type 1 #define TF_GRENADE_2 151 // Prime grenade type 2 #define TF_GRENADE_T 152 // Throw primed grenade // Impulses for new items #define TF_SCAN 159 // Scanner Pre-Impulse #define TF_SCAN_ENEMY 160 // Impulses to toggle scanning of enemies #define TF_SCAN_FRIENDLY 161 // Impulses to toggle scanning of friendlies #define TF_SCAN_10 162 // Scan using 10 enery (1 cell) #define TF_SCAN_30 163 // Scan using 30 energy (2 cells) #define TF_SCAN_100 164 // Scan using 100 energy (5 cells) #define TF_DETPACK_5 165 // Detpack set to 5 seconds #define TF_DETPACK_20 166 // Detpack set to 20 seconds #define TF_DETPACK_50 167 // Detpack set to 50 seconds #define TF_DETPACK 168 // Detpack Pre-Impulse #define TF_DETPACK_STOP 169 // Impulse to stop setting detpack #define TF_PB_DETONATE 170 // Detonate Pipebombs // Special skill #define TF_SPECIAL_SKILL 171 // Ammo Drop impulse #define TF_DROP_AMMO 172 // Reload impulse #define TF_RELOAD 173 // auto-zoom toggle #define TF_AUTOZOOM 174 // drop/pass commands #define TF_DROPKEY 175 // Select Medikit #define TF_MEDIKIT 176 // Spy Impulses #define TF_SPY_SPY 177 // Bring up spy menu #define TF_SPY_DIE 178 // Feign Death #define TF_SPY_DIE2 213 //CH sfeign // Engineer Impulses #define TF_ENGINEER_BUILD 179 //#define TF_ENGINEER_SANDBAG 180 // SB new impulses //#define BUILD_SENSOR 190 #define THROW_DETPACK 191 //#define IMPULSE_INTERFACE 192 // now its a profession #define IMPULSE_HOLO 192 //- OfN //#define SWITCH_CAMERA 199 // Medic!! #define TF_MEDIC_HELPME 181 // taunts #define TF_TAUNT 203 //WK #define TF_TAUNT2 204 //WK #define TF_TAUNT3 205 //WK #define TF_TAUNT4 206 //WK #define TF_TAUNT5 207 //WK // Status bar #define TF_STATUSBAR_ON 182 #define TF_STATUSBAR_OFF 183 // Discard impulse #define TF_DISCARD 184 // ID Player impulse #define TF_ID 185 // WK Sell off frags #define TF_SELL 187 #define TF_SKILL 200 #define TF_LAY 201 //MegaTFer killer #define TF_DROPITEMS 202 //CH #define TF_BITSTART 250 #define TF_BIT0 251 #define TF_BIT1 252 #define TF_BITEND 253 #define TF_BITNONE 254 #define TF_ALIASNEXT 255 //CH in admin.qc is a list of impulses that can be used during ceasefire //To fool proof the cheat impulses #define I_CHEAT_ONE 155 #define I_CHEAT_TWO 83 #define I_CHEAT_THREE 212 //Alias checking #define TF_GOTALIAS_PRECHECK 0 #define TF_GOTALIAS_CHECKING 1 #define TF_GOTALIAS_SETTING 2 #define TF_GOTALIAS_DONE 4 /*==================================================*/ /* Colors */ /*==================================================*/ #define WHITE 1 #define BROWN 2 #define BLUE 3 #define GREEN 4 #define RED 5 #define TAN 6 #define PINK 7 #define ORANGE 8 #define PURPLE 9 #define DARKPURPLE 10 #define GREY 11 #define DARKGREEN 12 #define YELLOW 13 #define DARKBLUE 14 /*==================================================*/ /* Defines for the ENGINEER's Building ability */ /*==================================================*/ // Ammo costs #define AMMO_COST_SHELLS 3 // Metal needed to make 1 shell #define AMMO_COST_NAILS 2 #define AMMO_COST_ROCKETS 5 #define AMMO_COST_CELLS 5 // Building types #define BUILD_DISPENSER 1 #define BUILD_SENTRYGUN 2 #define BUILD_TESLA 3 #define BUILD_SECURITY_CAMERA 4 #define BUILD_TELEPORTER 5 #define BUILD_FIELDGEN 6 // Building metal costs #define BUILD_COST_DISPENSER 100 // Built thru the menu #define BUILD_COST_SENTRYGUN 130 // Built thru the menu #define BUILD_COST_TURRET 75 // Built thru the menu #define BUILD_COST_TESLA 100 // Built thru the menu #define BUILD_COST_CAMERA 55 //NOTE is used to check if can build stuff #define BUILD_COST_TELEPORTER 90 #define BUILD_COST_SENSOR 60 #define BUILD_COST_FIELDGEN 140 // Building times #define BUILD_TIME_DISPENSER 2 // 2 seconds to build #define BUILD_TIME_SENTRYGUN 5 // 5 seconds to build #define BUILD_TIME_TESLA 6 // 8 seconds to build #define BUILD_TIME_TELEPORTER 3 // 3 seconds to build #define BUILD_TIME_FIELDGEN 4 // 7 seconds to build //Camera is thrown, no build time - OfN - sensor neither // Building health levels #define BUILD_HEALTH_DISPENSER 150 // Built thru the menu #define BUILD_HEALTH_SENTRYGUN 150 // Built thru the menu #define BUILD_HEALTH_TESLA 200 // Built thru the menu #define BUILD_HEALTH_CAMERA 400 // They dont do much // was 600 #define BUILD_HEALTH_SENSOR 250 // may not do much, but v. annoying // was 200 #define BUILD_HEALTH_TELEPORTER 300 #define BUILD_HEALTH_FIELDGEN 300 // // Amount of CELLS you can repair something in one go (NOT HEALTH! health is 5x this) // this is going to be tweaked a lot #define BUILD_DISPENSER_REPAIR 15 // 3 repairs #define BUILD_SENTRYGUN_REPAIR 20 // 3 repairs #define BUILD_TESLA_REPAIR 30 // a lot of repairs for many teslas, 2 for regular ones #define BUILD_CAMERA_REPAIR 50 // 2 repairs #define BUILD_SENSOR_REPAIR 50 // 1 repair (these things get attacked a lot) #define BUILD_TELEPORT_REPAIR 30 // 2 or 3 #define BUILD_FIELDGEN_REPAIR 30 // also 2 or 3, decheapening here // same, but for amount you can recharge. this is the same as the number of cells used #define BUILD_TESLA_RECHARGE 100 #define BUILD_TELEPORT_RECHARGE 100 #define BUILD_FIELDGEN_RECHARGE 50 // Building screwups #define SCREWUP_ONE 1 #define SCREWUP_TWO 2 #define SCREWUP_THREE 4 #define SCREWUP_FOUR 8 //#define SCREWUP_FIVE 16 //- OfN Building hack-impovements -// #define IMPROVED_ONE 1 // #define IMPROVED_TWO 2 // level 1 ice (more time to hack it) #define IMPROVED_THREE 4 // #define IMPROVED_FOUR 8 //(usually takeover xcept for teleporter and dispensern) #define IMPROVED_FIVE 16 // Level 2 ice (unable to hack it) #define IMPROVED_SIX 32 // Level 3 ice (kills hacker) #define IMPROVED_SEVEN 64 // used for 2nd sensor revealer hack (for thieves) //---------------------------------// //CH Max distance for teleporter #define TELEPORTER_RANGE 3072 // Dispenser's maximum carrying capability #define BUILD_DISPENSER_MAX_SHELLS 400 #define BUILD_DISPENSER_MAX_NAILS 600 #define BUILD_DISPENSER_MAX_ROCKETS 300 #define BUILD_DISPENSER_MAX_CELLS 400 #define BUILD_DISPENSER_MAX_ARMOR 500 /*==================================================*/ /* Ammo quantities for dropping */ /*==================================================*/ #define DROP_SHELLS 20 #define DROP_NAILS 20 #define DROP_ROCKETS 10 #define DROP_CELLS 10 #define DROP_ARMOR 40 /*==================================================*/ /* Team Defines */ /*==================================================*/ #define TM_MAX_NO 4 // Max number of teams. Simply changing this value isn't enough. // A new global to hold new team colors is needed, and more flags // in the spawnpoint spawnflags may need to be used. // Basically, don't change this unless you know what you're doing :) /*==================================================*/ /* New Weapon Defines */ /*==================================================*/ // WK -- Removed "weapons" to free up space for shootable things // We can remove some more by giving the weapons a weapon mode (like the rifle) #define WEAP_HOOK 1 #define WEAP_MEDIKIT 4 #define WEAP_SPANNER 8 #define WEAP_AXE 16 #define WEAP_SNIPER_RIFLE 32 #ifndef NO_AUTORIFLE # define WEAP_AUTO_RIFLE 64 #endif #define WEAP_SHOTGUN 128 #define WEAP_SUPER_SHOTGUN 256 #define WEAP_NAILGUN 512 #define WEAP_LIGHT_ASSAULT 1024 #define WEAP_GRENADE_LAUNCHER 2048 #define WEAP_FLAMETHROWER 4096 #define WEAP_ROCKET_LAUNCHER 8192 #define WEAP_INCENDIARY 16384 #define WEAP_ASSAULT_CANNON 32768 #define WEAP_LIGHTNING 65536 #define WEAP_DAEDALUS 131072 //#define WEAP_DETPACK 131072 DONT MAKE ANY AMMOTYPES USE THIS NUMBER! #define WEAP_TRANQ 262144 #define WEAP_LASER 524288 #define WEAP_MAUSER 1048576 #define WEAP_AIRF 2097152 //- OfN - airfist #define WEAP_LASERCANNON 4194304 //- OfN - LASER CANNON #define WEAP_SNG 8388608 //MAX 24 BITS OF PRECISION IN FLOAT! /*====================================================*/ /* New Items WK -- Things to buy in custom! */ /* Treated as weapons, but be sure to check the right */ /* bitfield -- .weapons_carried vs .tf_items! */ /*====================================================*/ //WK these are carried in self.tf_items #define NIT_SCANNER 1 #define NIT_TURRET 2 //Turret #define NIT_KEVLAR 4 //Special Armors #define NIT_GEL 8 #define NIT_BLAST 16 #define NIT_CERAMIC 32 #define NIT_ASBESTOS 64 #define NIT_AMMO_BACKPACK 128 //Increases ammo capacity #define NIT_AMMO_BANDOLIER 256 //Increases starting ammo #define NIT_SCUBA 512 //The Scuba Commando! //WK this next one is only used on teslas, not people, hence the conflict #define NIT_TESLA_CLOAKING 512 //CH Tesla got a cloaking device #define NIT_AUTOID 1024 #define NIT_AUTOMEDIC 2048 #define NIT_RESPAWN_GUARD 4096 #define NIT_AUTOSCANNER 8192 #define NIT_HOVER_BOOTS 16384 //Like a jet pack #define NIT_TESLA 32768 //The *real* bug zapper! #define NIT_SECURITY_CAMERA 65536 //CH Security Camera #define NIT_TELEPORTER 131072 //CH Teleporter #define NIT_TESLA_UPGRADE 262144 //Get more tesla upgrades #define NIT_HOVER_BOOTS_UPGRADE 524288 //CH you get 2x fuel #define NIT_RL_LASER_SIGHT 1048576 //CH #define NIT_CLUSTER_ROCKETS 2097152 //CH //2 more allowed, before we run out of bits in a .float //WK On to the third 24-wide bitfield for holding purchases #define CUTF_DETPACK 1 #define CUTF_KNIFE 2 //More like a powerup #define CUTF_SPY_KIT 4 //Allows disguise #define CUTF_HWGUY 8 //Person doesn't bounce #define CUTF_SENTRYGUN 16 //Allows building a gun #define CUTF_JAMMER 32 // SB scanner jammer #define CUTF_FULLARMOUR 64 // SB full armour when spawning #define CUTF_CYBERAUG 128 // SB cybernetic augmentation #define CUTF_SENSOR 256 // SB motion sensor #define CUTF_INTERFACE 512 // SB tech interface - for hax0ring SGs #define CUTF_TOSSABLEDET 1024 // C4 tossable detpack #define CUTF_DISPENSER 2048 // the new buyable dispenc0r #define CUTF_STEALTH 4096 // balance proficiency - done #define CUTF_HIGHJUMP 8192 // highjump proficiency - done #define CUTF_GYMNAST 16384 // Gymnast proficiency #define CUTF_DEMONLORE 32768 // demon lore proficiency #define CUTF_EXPBODY 65536 // martyr #define CUTF_CLOSECOMBAT 131072 // close combat guy //-----------------------------------// #define CUTF_HOLO 262144 // OfN - Holograph #define CUTF_OTR 524288 // OfN - OTR bullets for sniper rifle #define CUTF_FIELDGEN 1048576 // OfN - field generators //Time to be invincible from the respawn guard #define RESPAWN_GUARD_TIME 5 //JOBS AVAILABLE #define JOB_THIEF 1 #define JOB_RUNNER 2 #define JOB_WARLOCK 4 #define JOB_CHAPLAN 8 #define JOB_BERSERKER 16 #define JOB_GUERILLA 32 #define JOB_JUDOKA 64 //- OfN - New jobs - #define JOB_ARMY 128 #define JOB_HACKER 256 #define JOB_MARTYR 512 #define JOB_CRUSADER 1024 //This is the sum of all jobs... #define JOB_ALL 2047 //Not a job, used to simplify bit operators //STATES WE ARE IN FOR JOB //Every time we add one, make sure it gets reset in tfort.qc! #define JOB_ACTIVE 2048 //Job is 'on' like currently hiding #define JOB_FULL_HIDE 4096 //Job is in phase two of "hide" #define JOB_TIRED 8192 //Recovering from a sprint #define JOB_BLOODY_KNIFE 16384 //We've gone OJ on someone #define JOB_DEMON_OUT 32768 //We have a demon in the world //#define JOB_MARTYR_ENEMY ^double //We have been shot, and enemy remembered /*==================================================*/ /* New Weapon Related Defines */ /*==================================================*/ // shots per reload #define RE_SHOTGUN 8 #define RE_SUPER_SHOTGUN 16 // 8 shots #define RE_GRENADE_LAUNCHER 6 #define RE_ROCKET_LAUNCHER 4 #define RE_LIGHT_ASSAULT 40 // reload times #define RE_SHOTGUN_TIME 2 #define RE_SUPER_SHOTGUN_TIME 3 #define RE_GRENADE_LAUNCHER_TIME 4 #define RE_ROCKET_LAUNCHER_TIME 5 #define RE_LIGHT_ASSAULT_TIME 3.5 // Maximum velocity you can move and fire the Sniper Rifle #define WEAP_SNIPER_RIFLE_MAX_MOVE 50 // Medikit #define WEAP_MEDIKIT_HEAL 200 // Amount medikit heals per hit #define WEAP_MEDIKIT_OVERHEAL 50 // Amount of superhealth over max_health the medikit will dispense // Spanner #define WEAP_SPANNER_REPAIR 50 // Detpack #define WEAP_DETPACK_DISARMTIME 1 //Time it takes to disarm a Detpack #define WEAP_DETPACK_SETTIME 4 // Time it takes to set a Detpack #define WEAP_DETPACK_SIZE 800 #define WEAP_DETPACK_BITS_NO 12 // Bits that detpack explodes into // Tranquiliser Gun #define TRANQ_TIME 5 // Grenades #define GR_PRIMETIME 3 // Grenade types #define GR_TYPE_NONE 0 #define GR_TYPE_NORMAL 1 #define GR_TYPE_CONCUSSION 2 #define GR_TYPE_NAIL 3 #define GR_TYPE_MIRV 4 #define GR_TYPE_NAPALM 5 #define GR_TYPE_FLAME 5 //WK Our special napalm grenade ;) #define GR_TYPE_FLARE 6 #define GR_TYPE_GAS 7 #define GR_TYPE_EMP 8 #define GR_TYPE_FLASH 9 #define GR_TYPE_FRAG 10 #define GR_TYPE_KRAC 11 #define GR_TYPE_ANTIGRAV 12 #define GR_TYPE_BIO 13 #define GR_TYPE_CALTROP 14 // Defines for WeaponMode #define GL_NORMAL 0 #define GL_PIPEBOMB 1 // Defines for Concussion Grenade #define GR_CONCUSS_AMOUNT 75 #define GR_CONCUSS_TIME 0.2 #define GR_CONCUSS_DEC 0.5 #define GR_CONCUSS_MAX 100 #define GR_CONCUSS_IDLE 1 #define GR_CONCUSS_X 0.2 #define GR_CONCUSS_Y 0.3 #define GR_CONCUSS_KICK 0.02 #define GR_CONCUSS_FIXTIME 0.2 //#define GR_CONCUSS_BUBBLETIME 3 #define GR_ANTIGRAV_AMOUNT 100 #define GR_ANTIGRAV_TIME 3 #define GR_ANTIGRAV_DEC 30 // Defines for the Gas Grenade #define GR_HALLU_TIME 0.1 #define GR_HALLU_DEC 2.5 #define NIT_SILVER_DOOR_OPENED IT_KEY1 // 131072 #define NIT_GOLD_DOOR_OPENED IT_KEY2 // 262144 /*==================================================*/ /* New Item Flags */ /*==================================================*/ #define NIT_SCANNER_ENEMY 1 // Detect enemies #define NIT_SCANNER_FRIENDLY 2 // Detect friendlies (team members) #define NIT_SCANNER_MOVEMENT 4 // Motion detection. Only report moving entities. /*==================================================*/ /* New Item Related Defines */ /*==================================================*/ #define NIT_SCANNER_POWER 100 // The amount of power spent on a scan with the scanner // is multiplied by this to get the scanrange. #define NIT_SCANNER_MAXCELL 50 // The maximum number of cells than can be used in one scan #define NIT_SCANNER_MIN_MOVEMENT 50 // The minimum velocity an entity must have to be detected // by scanners that only detect movement // Armor Classes : Bitfields. Use the "armorclass" of armor for the Armor Type. #define AT_SAVESHOT 1 // Kevlar : Reduces bullet damage by 15% #define AT_SAVEMELEE 2 // Gel : Reduces melee attacks by 15% #define AT_SAVEEXPLOSION 4 // Blast : Reduces explosion damage 15% #define AT_SAVEELECTRICITY 8 // Shock : Reduces electricity damage by 15% #define AT_SAVEFIRE 16 // Asbestos : Reduces fire damage by 15% /*==========================================================================*/ /* TEAMFORTRESS CLASS DETAILS */ /*==========================================================================*/ // Class Details for SCOUT #define PC_SCOUT_SKIN 4 // Skin for this class when Classkin is on. #define PC_SCOUT_MAXHEALTH 75 // Maximum Health Level #define PC_SCOUT_MAXSPEED 420 // Maximum movement speed #define PC_SCOUT_MAXSTRAFESPEED 420 // Maximum strafing movement speed #define PC_SCOUT_MAXARMOR 50 // Maximum Armor Level, of any armor class #define PC_SCOUT_INITARMOR 25 // Armor level when respawned #define PC_SCOUT_MAXARMORTYPE 0.3 // Maximum level of Armor absorption #define PC_SCOUT_INITARMORTYPE 0.3 // Absorption Level of armor when respawned #define PC_SCOUT_ARMORCLASSES 3 // AT_SAVESHOT | AT_SAVEMELEE <-Armor Classes allowed for this class #define PC_SCOUT_INITARMORCLASS 0 // Armorclass worn when respawned #define PC_SCOUT_WEAPONS WEAP_AXE | WEAP_SHOTGUN | WEAP_NAILGUN | WEAP_AIRF #define PC_SCOUT_MAXAMMO_SHOT 50 // Maximum amount of shot ammo this class can carry #define PC_SCOUT_MAXAMMO_NAIL 100 // Maximum amount of nail ammo this class can carry #define PC_SCOUT_MAXAMMO_CELL 100 // Maximum amount of cell ammo this class can carry #define PC_SCOUT_MAXAMMO_ROCKET 25 // Maximum amount of rocket ammo this class can carry #define PC_SCOUT_INITAMMO_SHOT 25 // Amount of shot ammo this class has when respawned #define PC_SCOUT_INITAMMO_NAIL 100 // Amount of nail ammo this class has when respawned #define PC_SCOUT_INITAMMO_CELL 50 // Amount of cell ammo this class has when respawned #define PC_SCOUT_INITAMMO_ROCKET 0 // Amount of rocket ammo this class has when respawned //#define PC_SCOUT_GRENADE_TYPE_1 GR_TYPE_NORMAL // <- 1st Type of Grenade this class has #define PC_SCOUT_GRENADE_TYPE_1 GR_TYPE_CALTROP //GR_TYPE_FLASH // <- 1st Type of Grenade this class has #define PC_SCOUT_GRENADE_TYPE_2 GR_TYPE_CONCUSSION // <- 2nd Type of Grenade this class has #define PC_SCOUT_GRENADE_INIT_1 4 // Number of grenades of Type 1 this class has when respawned #define PC_SCOUT_GRENADE_INIT_2 4 // Number of grenades of Type 2 this class has when respawned #define PC_SCOUT_TF_ITEMS NIT_SECURITY_CAMERA | NIT_SCANNER | NIT_AUTOSCANNER | NIT_HOVER_BOOTS | NIT_HOVER_BOOTS_UPGRADE // OfN Now with hover boots #define PC_SCOUT_CUTFITEMS CUTF_HOLO // | CUTF_CYBERAUG // OfN Scouts with holo now and cyberaug! #define PC_SCOUT_JOB JOB_THIEF #define PC_SCOUT_MOTION_MIN_I 0.5 // < Short range #define PC_SCOUT_MOTION_MIN_MOVE 50 // Minimum vlen of player velocity to be picked up by motion detector // Class Details for SNIPER #define PC_SNIPER_SKIN 5 #define PC_SNIPER_MAXHEALTH 90 #define PC_SNIPER_MAXSPEED 320 #define PC_SNIPER_MAXSTRAFESPEED 320 #define PC_SNIPER_MAXARMOR 50 #define PC_SNIPER_INITARMOR 50 #define PC_SNIPER_MAXARMORTYPE 0.3 #define PC_SNIPER_INITARMORTYPE 0.3 #define PC_SNIPER_ARMORCLASSES 3 // AT_SAVESHOT | AT_SAVEMELEE #define PC_SNIPER_INITARMORCLASS 1 #ifndef NO_AUTORIFLE # define PC_SNIPER_WEAPONS WEAP_SNIPER_RIFLE | WEAP_AUTO_RIFLE | WEAP_AXE | WEAP_NAILGUN #else # define PC_SNIPER_WEAPONS WEAP_SNIPER_RIFLE | WEAP_AXE | WEAP_NAILGUN #endif #define PC_SNIPER_MAXAMMO_SHOT 75 #define PC_SNIPER_MAXAMMO_NAIL 100 #define PC_SNIPER_MAXAMMO_CELL 150 #define PC_SNIPER_MAXAMMO_ROCKET 25 #define PC_SNIPER_INITAMMO_SHOT 60 #define PC_SNIPER_INITAMMO_NAIL 50 #define PC_SNIPER_INITAMMO_CELL 0 #define PC_SNIPER_INITAMMO_ROCKET 0 #define PC_SNIPER_GRENADE_TYPE_1 GR_TYPE_CALTROP #define PC_SNIPER_GRENADE_TYPE_2 GR_TYPE_FLARE //- OfN it was GR_TYPE_FLASH #define PC_SNIPER_GRENADE_INIT_1 4 #define PC_SNIPER_GRENADE_INIT_2 6 // OfN it was 4 #define PC_SNIPER_TF_ITEMS NIT_SECURITY_CAMERA // | NIT_TESLA #define PC_SNIPER_CUTF_ITEMS 0 // CUTF_OTR #define PC_SNIPER_JOB JOB_JUDOKA // Class Details for SOLDIER #define PC_SOLDIER_SKIN 6 #define PC_SOLDIER_MAXHEALTH 100 #define PC_SOLDIER_MAXSPEED 250 #define PC_SOLDIER_MAXSTRAFESPEED 250 #define PC_SOLDIER_MAXARMOR 200 #define PC_SOLDIER_INITARMOR 100 #define PC_SOLDIER_MAXARMORTYPE 0.8 #define PC_SOLDIER_INITARMORTYPE 0.8 #define PC_SOLDIER_ARMORCLASSES 31 // ALL #define PC_SOLDIER_INITARMORCLASS 0 #define PC_SOLDIER_WEAPONS WEAP_AXE | WEAP_SHOTGUN | WEAP_SUPER_SHOTGUN | WEAP_ROCKET_LAUNCHER #define PC_SOLDIER_MAXAMMO_SHOT 100 #define PC_SOLDIER_MAXAMMO_NAIL 100 #define PC_SOLDIER_MAXAMMO_CELL 50 #define PC_SOLDIER_MAXAMMO_ROCKET 40 #define PC_SOLDIER_INITAMMO_SHOT 50 #define PC_SOLDIER_INITAMMO_NAIL 0 #define PC_SOLDIER_INITAMMO_CELL 0 #define PC_SOLDIER_INITAMMO_ROCKET 20 #define PC_SOLDIER_GRENADE_TYPE_1 GR_TYPE_NORMAL #define PC_SOLDIER_GRENADE_TYPE_2 GR_TYPE_NAIL #define PC_SOLDIER_GRENADE_INIT_1 4 #define PC_SOLDIER_GRENADE_INIT_2 2 #define PC_SOLDIER_TF_ITEMS 0 //NIT_RL_LASER_SIGHT //WK no Cluster - OfN no hover boots #define PC_SOLDIER_JOB JOB_ARMY //JOB_RUNNER // Class Details for DEMOLITION MAN #define PC_DEMOMAN_SKIN 1 #define PC_DEMOMAN_MAXHEALTH 100 #define PC_DEMOMAN_MAXSPEED 290 #define PC_DEMOMAN_MAXSTRAFESPEED 290 #define PC_DEMOMAN_MAXARMOR 100 #define PC_DEMOMAN_INITARMOR 50 #define PC_DEMOMAN_MAXARMORTYPE 0.6 #define PC_DEMOMAN_INITARMORTYPE 0.6 #define PC_DEMOMAN_ARMORCLASSES 31 // ALL #define PC_DEMOMAN_INITARMORCLASS 0 // AT_SAVEEXPLOSION #define PC_DEMOMAN_WEAPONS WEAP_AXE | WEAP_SHOTGUN | WEAP_GRENADE_LAUNCHER #define PC_DEMOMAN_MAXAMMO_SHOT 75 #define PC_DEMOMAN_MAXAMMO_NAIL 50 #define PC_DEMOMAN_MAXAMMO_CELL 50 #define PC_DEMOMAN_MAXAMMO_ROCKET 50 #define PC_DEMOMAN_MAXAMMO_DETPACK 2 #define PC_DEMOMAN_INITAMMO_SHOT 30 #define PC_DEMOMAN_INITAMMO_NAIL 0 #define PC_DEMOMAN_INITAMMO_CELL 0 #define PC_DEMOMAN_INITAMMO_ROCKET 20 #define PC_DEMOMAN_INITAMMO_DETPACK 1 #define PC_DEMOMAN_GRENADE_TYPE_1 GR_TYPE_NORMAL #define PC_DEMOMAN_GRENADE_TYPE_2 GR_TYPE_MIRV #define PC_DEMOMAN_GRENADE_INIT_1 5 #define PC_DEMOMAN_GRENADE_INIT_2 2 #define PC_DEMOMAN_TF_ITEMS NIT_AMMO_BANDOLIER #define PC_DEMOMAN_JOB JOB_GUERILLA #define PC_DEMOMAN_CUTFITEMS CUTF_DETPACK | CUTF_TOSSABLEDET // Class Details for COMBAT MEDIC #define PC_MEDIC_SKIN 3 #define PC_MEDIC_MAXHEALTH 90 #define PC_MEDIC_MAXSPEED 340 #define PC_MEDIC_MAXSTRAFESPEED 340 #define PC_MEDIC_MAXARMOR 100 #define PC_MEDIC_INITARMOR 50 #define PC_MEDIC_MAXARMORTYPE 0.6 #define PC_MEDIC_INITARMORTYPE 0.3 #define PC_MEDIC_ARMORCLASSES 11 // ALL except EXPLOSION #define PC_MEDIC_INITARMORCLASS 0 #define PC_MEDIC_WEAPONS WEAP_MEDIKIT | WEAP_SHOTGUN | WEAP_SUPER_SHOTGUN | WEAP_LIGHT_ASSAULT #define PC_MEDIC_MAXAMMO_SHOT 75 #define PC_MEDIC_MAXAMMO_NAIL 150 #define PC_MEDIC_MAXAMMO_CELL 50 #define PC_MEDIC_MAXAMMO_ROCKET 25 #define PC_MEDIC_MAXAMMO_MEDIKIT 100 #define PC_MEDIC_INITAMMO_SHOT 50 #define PC_MEDIC_INITAMMO_NAIL 50 #define PC_MEDIC_INITAMMO_CELL 0 #define PC_MEDIC_INITAMMO_ROCKET 0 #define PC_MEDIC_INITAMMO_MEDIKIT 50 #define PC_MEDIC_GRENADE_TYPE_1 GR_TYPE_NORMAL #define PC_MEDIC_GRENADE_TYPE_2 GR_TYPE_BIO //GR_TYPE_CONCUSSION #define PC_MEDIC_GRENADE_INIT_1 3 #define PC_MEDIC_GRENADE_INIT_2 2 #define PC_MEDIC_TF_ITEMS 0 //NIT_AUTOMEDIC // SB no more automedic - OfN no way! :) #define PC_MEDIC_REGEN_TIME 3 // Number of seconds between each regen. #define PC_MEDIC_REGEN_AMOUNT 6 // Amount of health regenerated each regen. #define PC_MEDIC_JOB JOB_CRUSADER // Class Details for HVYWEAP #define PC_HVYWEAP_SKIN 2 #define PC_HVYWEAP_MAXHEALTH 100 #define PC_HVYWEAP_MAXSPEED 250 #define PC_HVYWEAP_MAXSTRAFESPEED 250 #define PC_HVYWEAP_MAXARMOR 300 #define PC_HVYWEAP_INITARMOR 300 #define PC_HVYWEAP_MAXARMORTYPE 0.8 #define PC_HVYWEAP_INITARMORTYPE 0.8 #define PC_HVYWEAP_ARMORCLASSES 31 // ALL #define PC_HVYWEAP_INITARMORCLASS 0 #define PC_HVYWEAP_WEAPONS WEAP_ASSAULT_CANNON | WEAP_AXE | WEAP_SHOTGUN | WEAP_SUPER_SHOTGUN #define PC_HVYWEAP_MAXAMMO_SHOT 200 #define PC_HVYWEAP_MAXAMMO_NAIL 200 #define PC_HVYWEAP_MAXAMMO_CELL 50 #define PC_HVYWEAP_MAXAMMO_ROCKET 25 #define PC_HVYWEAP_INITAMMO_SHOT 200 #define PC_HVYWEAP_INITAMMO_NAIL 0 #define PC_HVYWEAP_INITAMMO_CELL 24 #define PC_HVYWEAP_INITAMMO_ROCKET 0 #define PC_HVYWEAP_GRENADE_TYPE_1 GR_TYPE_NORMAL #define PC_HVYWEAP_GRENADE_TYPE_2 GR_TYPE_MIRV #define PC_HVYWEAP_GRENADE_INIT_1 5 #define PC_HVYWEAP_GRENADE_INIT_2 2 #define PC_HVYWEAP_TF_ITEMS NIT_AMMO_BANDOLIER #define PC_HVYWEAP_JOB JOB_RUNNER // Class Details for PYRO #define PC_PYRO_SKIN 21 #define PC_PYRO_MAXHEALTH 100 #define PC_PYRO_MAXSPEED 290 #define PC_PYRO_MAXSTRAFESPEED 290 #define PC_PYRO_MAXARMOR 150 #define PC_PYRO_INITARMOR 50 #define PC_PYRO_MAXARMORTYPE 0.6 #define PC_PYRO_INITARMORTYPE 0.6 #define PC_PYRO_ARMORCLASSES 27 // ALL except EXPLOSION #define PC_PYRO_INITARMORCLASS 16 // AT_SAVEFIRE #define PC_PYRO_WEAPONS WEAP_INCENDIARY | WEAP_FLAMETHROWER | WEAP_AXE | WEAP_SHOTGUN #define PC_PYRO_MAXAMMO_SHOT 40 #define PC_PYRO_MAXAMMO_NAIL 50 #define PC_PYRO_MAXAMMO_CELL 200 #define PC_PYRO_MAXAMMO_ROCKET 60 #define PC_PYRO_INITAMMO_SHOT 20 #define PC_PYRO_INITAMMO_NAIL 0 #define PC_PYRO_INITAMMO_CELL 120 #define PC_PYRO_INITAMMO_ROCKET 24 #define PC_PYRO_GRENADE_TYPE_1 GR_TYPE_NORMAL #define PC_PYRO_GRENADE_TYPE_2 GR_TYPE_NAPALM #define PC_PYRO_GRENADE_INIT_1 4 #define PC_PYRO_GRENADE_INIT_2 4 #define PC_PYRO_TF_ITEMS NIT_HOVER_BOOTS | NIT_HOVER_BOOTS_UPGRADE // OfN why this = NIT_HOVER_BOOTS || NIT_HOVER_BOOTS_UPGRADE ?? #define PC_PYRO_JOB JOB_THIEF // Class Details for SPY #define PC_SPY_SKIN 22 #define PC_SPY_MAXHEALTH 90 #define PC_SPY_MAXSPEED 320 #define PC_SPY_MAXSTRAFESPEED 320 #define PC_SPY_MAXARMOR 100 #define PC_SPY_INITARMOR 50 #define PC_SPY_MAXARMORTYPE 0.6 #define PC_SPY_INITARMORTYPE 0.6 #define PC_SPY_ARMORCLASSES 27 // ALL except EXPLOSION #define PC_SPY_INITARMORCLASS 0 #define PC_SPY_WEAPONS WEAP_AXE | WEAP_TRANQ | WEAP_SUPER_SHOTGUN | WEAP_NAILGUN #define PC_SPY_MAXAMMO_SHOT 40 #define PC_SPY_MAXAMMO_NAIL 50 #define PC_SPY_MAXAMMO_CELL 200 #define PC_SPY_MAXAMMO_ROCKET 15 #define PC_SPY_INITAMMO_SHOT 40 #define PC_SPY_INITAMMO_NAIL 0 #define PC_SPY_INITAMMO_CELL 100 #define PC_SPY_INITAMMO_ROCKET 0 #define PC_SPY_GRENADE_TYPE_1 GR_TYPE_NORMAL #define PC_SPY_GRENADE_TYPE_2 GR_TYPE_GAS #define PC_SPY_GRENADE_INIT_1 4 #define PC_SPY_GRENADE_INIT_2 2 #define PC_SPY_TF_ITEMS NIT_SECURITY_CAMERA | NIT_TELEPORTER #define PC_SPY_CELL_REGEN_TIME 0.05 #define PC_SPY_CELL_REGEN_AMOUNT 10 #define PC_SPY_CELL_USAGE 25 // Amount of cells spent while invisible #define PC_SPY_GO_UNDERCOVER_TIME 4 // Time it takes to go undercover #define PC_SPY_JOB JOB_HACKER // OfN - It was JOB_WARLOCK #define PC_SPY_CUTFITEMS CUTF_SPY_KIT | CUTF_KNIFE // Class Details for ENGINEER #define PC_ENGINEER_SKIN 22 // Not used anymore #define PC_ENGINEER_MAXHEALTH 100 #define PC_ENGINEER_MAXSPEED 290 #define PC_ENGINEER_MAXSTRAFESPEED 290 #define PC_ENGINEER_MAXARMOR 75 #define PC_ENGINEER_INITARMOR 75 #define PC_ENGINEER_MAXARMORTYPE 0.6 #define PC_ENGINEER_INITARMORTYPE 0.3 #define PC_ENGINEER_ARMORCLASSES 31 // ALL #define PC_ENGINEER_INITARMORCLASS 0 #define PC_ENGINEER_WEAPONS WEAP_SPANNER | WEAP_LASER | WEAP_SUPER_SHOTGUN #define PC_ENGINEER_MAXAMMO_SHOT 75 #define PC_ENGINEER_MAXAMMO_NAIL 50 #define PC_ENGINEER_MAXAMMO_CELL 320 // synonymous with metal #define PC_ENGINEER_MAXAMMO_ROCKET 30 #define PC_ENGINEER_INITAMMO_SHOT 30 #define PC_ENGINEER_INITAMMO_NAIL 25 #define PC_ENGINEER_INITAMMO_CELL 200 // synonymous with metal #define PC_ENGINEER_INITAMMO_ROCKET 0 #define PC_ENGINEER_GRENADE_TYPE_1 GR_TYPE_NORMAL #define PC_ENGINEER_GRENADE_TYPE_2 GR_TYPE_EMP #define PC_ENGINEER_GRENADE_INIT_1 4 #define PC_ENGINEER_GRENADE_INIT_2 3 #define PC_ENGINEER_TF_ITEMS NIT_TESLA | NIT_SECURITY_CAMERA | NIT_TELEPORTER #define PC_ENGINEER_CUTFITEMS CUTF_SENTRYGUN | CUTF_DISPENSER | CUTF_SENSOR | CUTF_FIELDGEN #define PC_ENGINEER_JOB JOB_HACKER //JOB_JUDOKA // Class Details for CIVILIAN #define PC_CIVILIAN_SKIN 22 #define PC_CIVILIAN_MAXHEALTH 90 #define PC_CIVILIAN_MAXSPEED 290 #define PC_CIVILIAN_MAXSTRAFESPEED 290 #define PC_CIVILIAN_MAXARMOR 75 #define PC_CIVILIAN_INITARMOR 75 #define PC_CIVILIAN_MAXARMORTYPE 0.3 #define PC_CIVILIAN_INITARMORTYPE 0.3 #define PC_CIVILIAN_ARMORCLASSES 0 #define PC_CIVILIAN_INITARMORCLASS 0 #define PC_CIVILIAN_WEAPONS WEAP_AXE | WEAP_SUPER_SHOTGUN | WEAP_SHOTGUN #define PC_CIVILIAN_MAXAMMO_SHOT 50 #define PC_CIVILIAN_MAXAMMO_NAIL 0 #define PC_CIVILIAN_MAXAMMO_CELL 0 #define PC_CIVILIAN_MAXAMMO_ROCKET 0 #define PC_CIVILIAN_INITAMMO_SHOT 30 #define PC_CIVILIAN_INITAMMO_NAIL 0 #define PC_CIVILIAN_INITAMMO_CELL 0 #define PC_CIVILIAN_INITAMMO_ROCKET 0 #define PC_CIVILIAN_GRENADE_TYPE_1 GR_TYPE_NORMAL #define PC_CIVILIAN_GRENADE_TYPE_2 0 #define PC_CIVILIAN_GRENADE_INIT_1 2 #define PC_CIVILIAN_GRENADE_INIT_2 0 #define PC_CIVILIAN_TF_ITEMS 0 #define PC_CIVILIAN_JOB JOB_THIEF #define PC_CIVILIAN_CUTFITEMS CUTF_KNIFE /*==========================================================================*/ /* TEAMFORTRESS GOALS */ /*==========================================================================*/ // For all these defines, see the tfortmap.txt that came with the zip // for complete descriptions. // Defines for Goal Activation types : goal_activation (in goals) #define TFGA_TOUCH 1 // Activated when touched #define TFGA_TOUCH_DETPACK 2 // Activated when touched by a detpack explosion #define TFGA_REVERSE_AP 4 // Activated when AP details are _not_ met #define TFGA_SPANNER 8 // Activated when hit by an engineer's spanner // Defines for Goal Effects types : goal_effect #define TFGE_AP 1 // AP is affected. Default. #define TFGE_AP_TEAM 2 // All of the AP's team. #define TFGE_NOT_AP_TEAM 4 // All except AP's team. #define TFGE_NOT_AP 8 // All except AP. #define TFGE_WALL 16 // If set, walls stop the Radius effects #define TFGE_SAME_ENVIRONMENT 32 // If set, players in a different environment to the Goal are not affected #define TFGE_TIMER_CHECK_AP 64 // If set, Timer Goals check their critera for all players fitting their effects #define TFGE_CAUSE_EXPLOSION 128 //CH if set spawn explosion and use t_length // Defines for Goal Result types : goal_result #define TFGR_SINGLE 1 // Goal can only be activated once #define TFGR_ADD_BONUSES 2 // Any Goals activated by this one give their bonuses #define TFGR_ENDGAME 4 // Goal fires Intermission, displays scores, and ends level #define TFGR_NO_ITEM_RESULTS 8 // GoalItems given by this Goal don't do results #define TFGR_REMOVE_DISGUISE 16 // Prevent/Remove undercover from any Spy #define TFGR_CAUSERESPAWN 32 //CH force respawn, not die // Defines for Goal Group Result types : goal_group // None! // But I'm leaving this variable in there, since it's fairly likely // that some will show up sometime. // Defines for Goal Item types, : goal_activation (in items) #define TFGI_GLOW 1 // Players carrying this GoalItem will glow #define TFGI_SLOW 2 // Players carrying this GoalItem will move at half-speed #define TFGI_DROP 4 // Players dying with this item will drop it #define TFGI_RETURN_DROP 8 // Return if a player with it dies #define TFGI_RETURN_GOAL 16 // Return if a player with it has it removed by a goal's activation #define TFGI_RETURN_REMOVE 32 // Return if it is removed by TFGI_REMOVE #define TFGI_REVERSE_AP 64 // Only pickup if the player _doesn't_ match AP Details #define TFGI_REMOVE 128 // Remove if left untouched for 2 minutes after being dropped #define TFGI_KEEP 256 // Players keep this item even when they die #define TFGI_ITEMGLOWS 512 // Item glows when on the ground #define TFGI_DONTREMOVERES 1024 // Don't remove results when the item is removed #define TFGI_GOAL_TO_GROUND 2048 //CH GoalItem drops to ground when spawns #define TFGI_DROPITEMS 4096 //GR TF docs mislabel this as being in goal_results, ha ha! #define TFGI_GOAL_IS_SOLID 8192 //CH GoalItem is solid // Defines for TeamSpawnpoints : goal_activation (in teamspawns) #define TFSP_MULTIPLEITEMS 1 // Give out the GoalItem multiple times #define TFSP_MULTIPLEMSGS 2 // Display the message multiple times // Defines for TeamSpawnpoints : goal_effects (in teamspawns) #define TFSP_REMOVESELF 1 // Remove itself after being spawned on // Defines for Goal States #define TFGS_ACTIVE 1 #define TFGS_INACTIVE 2 #define TFGS_REMOVED 3 #define TFGS_DELAYED 4 // Legal Playerclass Handling #define TF_ILL_SCOUT 1 #define TF_ILL_SNIPER 2 #define TF_ILL_SOLDIER 4 #define TF_ILL_DEMOMAN 8 #define TF_ILL_MEDIC 16 #define TF_ILL_HVYWEP 32 #define TF_ILL_PYRO 64 #define TF_ILL_RANDOMPC 128 #define TF_ILL_SPY 256 #define TF_ILL_ENGINEER 512 /*==========================================================================*/ /* Flamethrower */ /*==========================================================================*/ #define FLAME_PLYRMAXTIME 45 // lifetime in 0.1 sec of a flame on a player #define FLAME_MAXBURNTIME 8 // lifetime in seconds of a flame on the world (big ones) #define NAPALM_MAXBURNTIME 20 // lifetime in seconds of flame from a napalm grenade #define FLAME_MAXPLYRFLAMES 4 // maximum number of flames on a player #define FLAME_NUMLIGHTS 1 // maximum number of light flame #define FLAME_BURNRATIO 0.3 // the chance of a flame not 'sticking' #define GR_TYPE_FLAMES_NO 15 // number of flames spawned when a grenade explode /*==================================================*/ /* CTF Support defines */ /*==================================================*/ #define CTF_FLAG1 1 #define CTF_FLAG2 2 #define CTF_DROPOFF1 3 #define CTF_DROPOFF2 4 #define CTF_SCORE1 5 #define CTF_SCORE2 6 /*==================================================*/ /* Death Message defines */ /*==================================================*/ #define DMSG_SHOTGUN 1 #define DMSG_SSHOTGUN 2 #define DMSG_NAILGUN 3 #define DMSG_LIGHT_ASSAULT 4 #define DMSG_GRENADEL 5 #define DMSG_ROCKETL 6 #define DMSG_LIGHTNING 7 #define DMSG_GREN_HAND 8 #define DMSG_GREN_NAIL 9 #define DMSG_GREN_MIRV 10 #define DMSG_GREN_PIPE 11 #define DMSG_DETPACK 12 #define DMSG_BIOWEAPON 13 #define DMSG_BIOWEAPON_ATT 14 #define DMSG_FLAME 15 #define DMSG_DETPACK_DIS 16 #define DMSG_AXE 17 #define DMSG_SNIPERRIFLE 18 #define DMSG_AUTORIFLE 19 #define DMSG_ASSAULTCANNON 20 #define DMSG_HOOK 21 #define DMSG_BACKSTAB 22 #define DMSG_MEDIKIT 23 #define DMSG_GREN_GAS 24 #define DMSG_TRANQ 25 #define DMSG_LASERBOLT 26 #define DMSG_SENTRYGUN_BULLET 27 #define DMSG_SNIPERLEGSHOT 28 #define DMSG_SNIPERHEADSHOT 29 #define DMSG_GREN_EMP 30 #define DMSG_GREN_EMP_AMMO 31 #define DMSG_SPANNER 32 #define DMSG_INCENDIARY 33 #define DMSG_SENTRYGUN_ROCKET 34 #define DMSG_GREN_FLASH 35 #define DMSG_TRIGGER 36 #define DMSG_BUG_ZAPPER 37 #define DMSG_GREN_FRAG 38 #define DMSG_JUDOKA 39 #define DMSG_MARTYR 40 #define DMSG_HOVER 41 //Boot exhaust! #define DMSG_LAND_MINE 42 #define DMSG_TESLA 43 #define DMSG_DEMON_FIRE 44 #define DMSG_BERSERK 45 #define DMSG_MAUSER 50 #define DMSG_DAEDALUS 51 #define DMSG_EXPBODY 52 //- OfN - #define DMSG_ANTIHACK 53 #define DMSG_ANTIDISM 54 #define DMSG_CYBERNET 55 #define DMSG_AIRG 56 #define DMSG_AIRG_WATER 57 #define DMSG_LASERCANNON 58 #define DMSG_DISPEL 59 #define DMSG_CALTROP 60 #define DMSG_CLUSTER_ROCKET 61 #define DMSG_FLYCALTROP 62 #define DMSG_SNG 63 #define DMSG_FORCEFIELD 64 #define DMSG_STUCK_FORCEFIELD 65 #define DMSG_SPANNERFIELD 66 #define DMSG_FGTRAP 67 #define DMSG_FF_HACKED 68 #define DMSG_FF_STUCK_HACKED 69 #define DMSG_PHYSICS 70 #define DMSG_OUTOFBOUNDS 71 #define DMSG_GREN_EMP_RADIUS 72 //Defs for objects a spikeshooter can spawn Misc.qc #define SPAWNFLAG_SUPERSPIKE 1 #define SPAWNFLAG_LASER 2 //CH add new things a trap can spawn #define SPAWNFLAG_TFROCKET 4 #define SPAWNFLAG_TFGRENADE 8 #define SPAWNFLAG_TFFLAME 16 // OfN - Crusader auras #define AURA_POWER 1 #define AURA_RESISTANCE 2 #define AURA_HASTE 3 #define AURA_INVIS 4 #ifdef DEBUG # define RPrint Real_RPrint #else # define RPrint(...) # define dremove remove # define printtrace(...) #endif #include "ofndefs.qh" #define AVG(a,b) (((a) + (b)) * 0.5) #define MIN(a,b) (((a) < (b)) ? (a) : (b)) #define MAX(a,b) (((a) > (b)) ? (a) : (b)) #define BOUND(a,b,c) (MAX((a), MIN((b), (c)))) #define ASSERT(a) do {if (!(a)) error (__FILE__ + ":" + itos(__LINE__) + ": Assert failed: " + #a);} while (0) #define SIGN_i(a) (((a) < 0) ? -1 : +1) #define SIGN_f(a) (((a) < 0) ? -1.0 : +1.0) #define printf(...) do {RPrint (sprintf (__VA_ARGS__));} while (0)