quakec/source/shared/defs/custom.qc
2023-01-17 18:47:31 -05:00

235 lines
6.7 KiB
C++

/*
shared/defs/custom.qc
shared definitions
Copyright (C) 2021 NZ:P Team
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to:
Free Software Foundation, Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307, USA
*/
#define true 1
#define false 0
const float EVENT_WEAPONCHANGE = 9;
const float EVENT_PISTOLFIRE = 10;
const float EVENT_USEPRINT = 11;
const float EVENT_NEWROUND = 12;
const float EVENT_SETROUND = 13;
const float EVENT_UPDATEVMODEL = 20;
const float EVENT_UPDATEV2MODEL = 21;
const float EVENT_PERK = 22;
const float EVENT_UPDATE = 23;
const float EVENT_BROADCAST = 24;
const float EVENT_POINTUPDATE = 25;
const float EVENT_BLACKOUT = 26;
const float EVENT_PUNCHANGLE = 27;
const float EVENT_SCROLLTEXT = 28;
const float EVENT_WORLDDATA = 29;
const float EVENT_ACHIEVEMENT = 30;
const float EVENT_PLAYERUPDATE = 31;
const float EVENT_WEAPONUPDATE = 32;
const float EVENT_HUDUPDATE = 33;
const float EVENT_EXPLOSION = 34;
const float EVENT_BLOOD = 35;
const float EVENT_ACHIEVEMENTPROGRESS = 36;
const float EVENT_REVIVEON = 37;
const float EVENT_REVIVEOFF = 38;
const float EVENT_REVIVECHANGE = 39;
// Define our PC version
#ifndef QUAKESPASM
#ifndef HANDHELD
#define PC
#endif
#endif
// Weapon Firetype definitions
#define FIRETYPE_FULLAUTO 0
#define FIRETYPE_SEMIAUTO 1
#define FIRETYPE_GRENADE 3
#define FIRETYPE_RAYBEAM 4
#define FIRETYPE_TESLA 5
#define FIRETYPE_FLAME 6
//nzp weapon defines
//id list
#define W_NOWEP 0
#define W_COLT 1
#define W_KAR 2
#define W_THOMPSON 3
#define W_357 4
#define W_BAR 5
#define W_BK 6
#define W_BROWNING 7
#define W_DB 8
#define W_FG 9
#define W_GEWEHR 10
#define W_KAR_SCOPE 11
#define W_M1 12
#define W_M1A1 13
#define W_M2 14
#define W_MP40 15
#define W_MG 16
#define W_PANZER 17
#define W_PPSH 18
#define W_PTRS 19
#define W_RAY 20
#define W_SAWNOFF 21
#define W_STG 22
#define W_TRENCH 23
#define W_TYPE 24
#define W_BOWIE 25
#define W_GRENADE 26
#define W_BETTY 27
#define W_BIATCH 28
#define W_KILLU 29 //357
#define W_COMPRESSOR 30 // Gewehr
#define W_M1000 31 //garand
#define W_KOLLIDER 32
#define W_PORTER 33 // Ray
#define W_WIDDER 34 // M1A1
#define W_FIW 35 //upgraded flamethrower
#define W_ARMAGEDDON 36 //Kar
#define W_WUNDER 37
#define W_GIBS 38 // thompson
#define W_SAMURAI 39 //Type
#define W_AFTERBURNER 40 //mp40
#define W_SPATZ 41 // stg
#define W_SNUFF 42 // sawn off
#define W_BORE 43 // double barrel
#define W_IMPELLER 44 //fg
#define W_BARRACUDA 45 //mg42
#define W_ACCELERATOR 46 //M1919 browning
#define W_GUT 47 //trench
#define W_REAPER 48 //ppsh
#define W_HEADCRACKER 49 //scoped kar
#define W_LONGINUS 50 //panzer
#define W_PENETRATOR 51 //ptrs
#define W_WIDOW 52 //bar
//#define W_KRAUS 53 //ballistic
#define W_MP5K 54
#define W_M14 55
#define W_TESLA 56
#define W_DG3 57
//Custom Weapons
//FIXME - use array?
#define W_CUSTOM1 70
#define W_CUSTOM2 71
#define W_CUSTOM3 72
#define W_CUSTOM4 73
#define BASE_FRAME 1 // The frame the Weapon idles at
#define FIRE_START 2 // Start of firing animation
#define FIRE_END 3 // End of firing animation
#define RELOAD_START 4 // Start of normal (one-way) reloads
#define RELOAD_END 5 // End of normal (one-way) reloads
#define RELOAD_EMPTY_START 6 // Start of empty reloading
#define RELOAD_EMPTY_END 7 // End of empty reloading
#define RELOAD_PART_START 8 // Start of partial full reloading
#define RELOAD_PART_END 9 // End of partial full reloading
#define SPRINT_IN_START 12 // Start of preparation to sprint
#define SPRINT_IN_END 13 // End of preparation to sprint
#define SPRINT_START 10 // Start of sprint loop
#define SPRINT_END 11 // End of sprint loop
#define SPRINT_OUT_START 14 // Start of sprint stop
#define SPRINT_OUT_END 15 // End of sprint stop
#define TAKE_OUT_START 16 // Start of taking out weapon
#define TAKE_OUT_END 17 // End of taking out weapon
#define PUT_OUT_START 18 // Start of putting away weapon
#define PUT_OUT_END 19 // End of putting away weapon
#define RELOAD_CANCEL 20 // Frame where mag variable is filled
#define AIM_IN_START 30 // Start of animation-based ADS
#define AIM_IN_END 31 // End of animation-based ADS
#define AIM_LOOP 33 // ADS stuck loop frame
#define AIM_OUT_START 34 // Start of ADS end
#define AIM_OUT_END 35 // End of ADS end
#define AIM_FIRE_START 36 // Start of firing while ADS
#define AIM_FIRE_END 37 // End of firing while ADS
//Animation types
#define RELOAD 1
#define GRENADE 2
#define FIRE 3
#define SWITCHWEP 4
#define KNIFE 5
#define ZOOM 6
#define SPRINT 7
#define PERK 8
#define KNIFE2 9
#define REVIVE 10
#define RELOAD_EMP 11
#define RELOAD_PAR 12
#define S_HEADSHOT 1
#define S_KNIFE 2
#define S_NORMAL 3
#define S_ZOMBIE 4
#define S_EXPLOSIVE 5
#define S_ZAPPER 6
#define S_TESLA 7
//Perk types
#define P_JUG 1
#define P_DOUBLE 2
#define P_SPEED 4
#define P_REVIVE 8
#define P_FLOP 16
#define P_STAMIN 32
#define P_DEAD 64
#define P_MULE 128
#define STAT_VIEWZOOM 21
#define STAT_CURRENTMAG 50
#define STAT_CURRENTMAG2 51
#define STAT_POINTS 52
#define STAT_WEAPON2FRAME 53
#define STAT_WEAPON2MODEL 54
#define STAT_GRENADES 55
#define STAT_SECGRENADES 56
#define STAT_PROGRESSBAR 57
#define STAT_WEAPONDURATION 58
#define STAT_WEAPON2DURATION 59
#define STAT_WEAPONZOOM 60
#define STAT_INSTA 61
#define STAT_X2 62
#define STAT_SPECTATING 63
#define STAT_PLAYERNUM 64
#define STAT_PLAYERSTANCE 65
#define STAT_FACINGENEMY 66
//
// invert float takes in float value between 0 and 1, inverts position
// eg: 0.1 returns 0.9, 0.34 returns 0.66
float invertfloat(float input) {
if (input <= 0 || input >= 1)
return input; // out of boundaries
return (1 - input);
}
// custom weapon defs
// now 90% slimmed down
float currentWeaponTracker;