+#include "campaign_file.qh"
#if defined(CSQC)
#elif defined(MENUQC)
#elif defined(SVQC)
+#include "campaign_setup.qh"
#if defined(CSQC)
#elif defined(MENUQC)
#elif defined(SVQC)
+#include "generic.qh"
#include "_mod.qh"
#include "reg.qh"
-#include "command.qh"
#include "markup.qh"
+#include "command.qh"
// =========================================================
// Markup chat characters command code, reworked by Samual
-#include "command.qh"
#include "rpn.qh"
+#include "command.qh"
// ========================================
+#include "effectinfo.qh"
#define EFFECTINFO_PARSER(on, MY) \
on(type, MY(type) \
,{ demand(n == 1 && "type"); MY(type) = strzone(argv(1)); \
+#include "casings.qh"
#ifdef SVQC
void SpawnCasing(vector vel, float randomvel, vector ang, vector avel, float randomavel, int casingtype, entity casingowner, .entity weaponentity);
#endif
+#include "sv_onslaught.qh"
#include "sv_controlpoint.qh"
#include "sv_generator.qh"
+#include "mapinfo.qh"
#if defined(CSQC)
#include "../client/defs.qh"
#include "util.qh"
#include <common/weapons/_all.qh>
- #include "mapinfo.qh"
#elif defined(MENUQC)
#elif defined(SVQC)
#include "util.qh"
#include <common/monsters/all.qh>
- #include "mapinfo.qh"
#endif
// generic string stuff
+#include "bd.qh"
REGISTER_MINIGAME(bd, "Bulldozer");
const int BD_TURN_MOVE = 0x0100; // player must move the bulldozer
+#include "c4.qh"
REGISTER_MINIGAME(c4, "Connect Four");
const float C4_TURN_PLACE = 0x0100; // player has to place a piece on the board
+#include "nmm.qh"
REGISTER_MINIGAME(nmm, "Nine Men's Morris");
const int NMM_TURN_PLACE = 0x0100; // player has to place a piece on the board
+#include "pong.qh"
REGISTER_MINIGAME(pong, "Pong");
// minigame flags
+#include "pp.qh"
REGISTER_MINIGAME(pp, "Push-Pull");
const int PP_TURN_PLACE = 0x0100; // player has to place a piece on the board
+#include "ps.qh"
REGISTER_MINIGAME(ps, "Peg Solitaire");
const float PS_TURN_MOVE = 0x0100; // player has to click on a piece on the board
+#include "snake.qh"
REGISTER_MINIGAME(snake, "Snake"); // SNAAAAKE
const float SNAKE_TURN_MOVE = 0x0100; // the snake is moving, player must control it
+#include "ttt.qh"
REGISTER_MINIGAME(ttt, "Tic Tac Toe");
const int TTT_TURN_PLACE = 0x0100; // player has to place a piece on the board
+#include "sv_minigames.qh"
#include "minigames.qh"
void player_clear_minigame(entity player)
+#include "all.qh"
#ifndef MONSTERS_ALL_C
#define MONSTERS_ALL_C
+#include "spawn.qh"
#if defined(CSQC)
#elif defined(MENUQC)
#elif defined(SVQC)
+#include "all.qh"
#if defined(CSQC)
#include <client/announcer.qh>
#elif defined(MENUQC)
#include <server/autocvars.qh>
#include <server/constants.qh>
#include <server/defs.qh>
- #include "all.qh"
#include <server/mutators/_mod.qh>
#endif
+#include "follow.qh"
void _Movetype_Physics_Follow(entity this) // SV_Physics_Follow
{
entity e = this.aiment;
+#include "movetypes.qh"
#include "../player.qh"
#if defined(CSQC)
#include <client/defs.qh>
#include <common/stats.qh>
#include <common/util.qh>
- #include "movetypes.qh"
#include <lib/csqcmodel/common.qh>
#include <common/t_items.qh>
#elif defined(MENUQC)
+#include "step.qh"
void _Movetype_Physics_Step(entity this, float dt) // SV_Physics_Step
{
if(IS_ONGROUND(this))
+#include "toss.qh"
#include "../player.qh"
void _Movetype_Physics_Toss(entity this, float dt) // SV_Physics_Toss
+#include "walk.qh"
void _Movetype_Physics_Walk(entity this, float dt) // SV_WalkMove
{
vector stepnormal = '0 0 0';
+#include "playerstats.qh"
#if defined(CSQC)
#elif defined(MENUQC)
#elif defined(SVQC)
#include <common/weapons/_all.qh>
#include "../server/weapons/accuracy.qh"
#include "../server/defs.qh"
- #include "playerstats.qh"
#include "../server/scores.qh"
#endif
+#include "all.qh"
#ifdef SVQC
bool autocvar_bot_sound_monopoly;
+#include "bobbing.qh"
#ifdef SVQC
.float height;
void func_bobbing_controller_think(entity this)
+#include "breakable.qh"
#ifdef SVQC
#include <server/g_subs.qh>
+#include "button.qh"
#ifdef SVQC
// button and multiple button
+#include "conveyor.qh"
REGISTER_NET_LINKED(ENT_CLIENT_CONVEYOR)
void conveyor_think(entity this)
+#include "door.qh"
/*
Doors are similar to buttons, but can spawn a fat trigger field around them
+#include "door_rotating.qh"
#ifdef SVQC
/*QUAKED spawnfunc_func_door_rotating (0 .5 .8) ? START_OPEN BIDIR DOOR_DONT_LINK BIDIR_IN_DOWN x TOGGLE X_AXIS Y_AXIS
if two doors touch, they are assumed to be connected and operate as a unit.
+#include "door_secret.qh"
#ifdef SVQC
void fd_secret_move1(entity this);
void fd_secret_move2(entity this);
+#include "fourier.qh"
#ifdef SVQC
/*QUAKED spawnfunc_func_fourier (0 .5 .8) ?
Brush model that moves in a pattern of added up sine waves, can be used e.g. for circular motions.
+#include "ladder.qh"
REGISTER_NET_LINKED(ENT_CLIENT_LADDER)
void func_ladder_touch(entity this, entity toucher)
+#include "pendulum.qh"
#ifdef SVQC
.float freq;
void func_pendulum_controller_think(entity this)
+#include "plat.qh"
REGISTER_NET_LINKED(ENT_CLIENT_PLAT)
#ifdef SVQC
+#include "pointparticles.qh"
REGISTER_NET_LINKED(ENT_CLIENT_POINTPARTICLES)
#ifdef SVQC
+#include "rainsnow.qh"
REGISTER_NET_LINKED(ENT_CLIENT_RAINSNOW)
#ifdef SVQC
+#include "rotating.qh"
#ifdef SVQC
void func_rotating_setactive(entity this, int astate)
{
+#include "stardust.qh"
#ifdef SVQC
spawnfunc(func_stardust)
{
+#include "train.qh"
.float train_wait_turning;
void train_next(entity this);
#ifdef SVQC
+#include "vectormamamam.qh"
#ifdef SVQC
// reusing some fields havocbots declared
.entity wp00, wp01, wp02, wp03;
+#include "corner.qh"
REGISTER_NET_LINKED(ENT_CLIENT_CORNER)
#ifdef SVQC
+#include "follow.qh"
// the way this entity works makes it no use to CSQC, as it removes itself instantly
#ifdef SVQC
+#include "include.qh"
#include "corner.qc"
#include "follow.qc"
#include "laser.qc"
+#include "laser.qh"
#if defined(CSQC)
#include <lib/csqcmodel/interpolate.qh>
#include <client/main.qh>
+#include "teleport_dest.qh"
REGISTER_NET_LINKED(ENT_CLIENT_TELEPORT_DEST)
#ifdef SVQC
+#include "platforms.qh"
void generic_plat_blocked(entity this, entity blocker)
{
#ifdef SVQC
+#include "subs.qh"
void SUB_NullThink(entity this) { }
void SUB_CalcMoveDone(entity this);
+#include "changelevel.qh"
#ifdef SVQC
.string chmap, gametype;
.entity chlevel_targ;
+#include "location.qh"
#ifdef SVQC
void target_push_init(entity this);
+#include "music.qh"
#if defined(CSQC)
#elif defined(MENUQC)
#elif defined(SVQC)
+#include "spawn.qh"
#if defined(CSQC)
#elif defined(MENUQC)
#elif defined(SVQC)
+#include "speaker.qh"
#ifdef SVQC
// TODO add a way to do looped sounds with sound(); then complete this entity
void target_speaker_use_off(entity this, entity actor, entity trigger);
+#include "voicescript.qh"
#ifdef SVQC
.entity voicescript; // attached voice script
.float voicescript_index; // index of next voice, or -1 to use the randomized ones
+#include "counter.qh"
#ifdef SVQC
void counter_use(entity this, entity actor, entity trigger)
{
+#include "delay.qh"
#ifdef SVQC
void delay_use(entity this, entity actor, entity trigger)
{
+#include "disablerelay.qh"
#ifdef SVQC
void trigger_disablerelay_use(entity this, entity actor, entity trigger)
{
+#include "flipflop.qh"
#ifdef SVQC
/*QUAKED spawnfunc_trigger_flipflop (.5 .5 .5) (-8 -8 -8) (8 8 8) START_ENABLED
"Flip-flop" trigger gate... lets only every second trigger event through
+#include "gamestart.qh"
#ifdef SVQC
void gamestart_use(entity this, entity actor, entity trigger)
{
+#include "gravity.qh"
#ifdef SVQC
.entity trigger_gravity_check;
void trigger_gravity_remove(entity own)
+#include "heal.qh"
#ifdef SVQC
.float triggerhealtime;
void trigger_heal_touch(entity this, entity toucher)
+#include "hurt.qh"
#ifdef SVQC
void trigger_hurt_use(entity this, entity actor, entity trigger)
{
+#include "impulse.qh"
// targeted (directional) mode
void trigger_impulse_touch1(entity this, entity toucher)
{
+#include "jumppads.qh"
// TODO: split target_push and put it in the target folder
#ifdef SVQC
#include "jumppads.qh"
+#include "keylock.qh"
/**
* trigger given targets
*/
+#include "magicear.qh"
#ifdef SVQC
float magicear_matched;
float W_Tuba_HasPlayed(entity pl, string melody, float instrument, float ignorepitch, float mintempo, float maxtempo);
+#include "monoflop.qh"
#ifdef SVQC
/*QUAKED spawnfunc_trigger_monoflop (.5 .5 .5) (-8 -8 -8) (8 8 8)
"Mono-flop" trigger gate... turns one trigger event into one "on" and one "off" event, separated by a delay of "wait"
+#include "multi.qh"
// NOTE: also contains trigger_once at bottom
#ifdef SVQC
+#include "multivibrator.qh"
#ifdef SVQC
void multivibrator_send(entity this)
{
+#include "relay.qh"
#ifdef SVQC
/*QUAKED spawnfunc_trigger_relay (.5 .5 .5) (-8 -8 -8) (8 8 8)
This fixed size trigger cannot be touched, it can only be fired by other events. It can contain killtargets, targets, delays, and messages.
+#include "relay_activators.qh"
#ifdef SVQC
void relay_activators_use(entity this, entity actor, entity trigger)
{
+#include "relay_if.qh"
#ifdef SVQC
void trigger_relay_if_use(entity this, entity actor, entity trigger)
{
+#include "relay_teamcheck.qh"
#ifdef SVQC
void trigger_relay_teamcheck_use(entity this, entity actor, entity trigger)
{
+#include "secret.qh"
#if defined(CSQC)
#elif defined(MENUQC)
#elif defined(SVQC)
#include <common/util.qh>
#include <server/defs.qh>
- #include "secret.qh"
#endif
#ifdef SVQC
+#include "swamp.qh"
#if defined(CSQC)
#elif defined(MENUQC)
#elif defined(SVQC)
+#include "teleport.qh"
REGISTER_NET_LINKED(ENT_CLIENT_TRIGGER_TELEPORT)
#ifdef SVQC
+#include "viewloc.qh"
#if defined(CSQC)
#elif defined(MENUQC)
#elif defined(SVQC)
+#include "triggers.qh"
void SUB_DontUseTargets(entity this, entity actor, entity trigger) { }
void SUB_UseTargets(entity this, entity actor, entity trigger);
+#include "checkpoint.qh"
/**
turret_checkpoint
**/
+#include "cl_turrets.qh"
void turret_remove(entity this)
{
delete(this.tur_head);
+#include "config.qh"
// ==========================
// Turret Config Generator
// ==========================
+#include "sv_turrets.qh"
#ifdef SVQC
#include <server/autocvars.qh>
+#include "targettrigger.qh"
spawnfunc(turret_targettrigger);
void turret_targettrigger_touch(entity this, entity toucher);
+#include "util.qh"
/*
* Update this.tur_shotorg by getting up2date bone info
* NOTICE this func overwrites the global v_forward, v_right and v_up vectors.
+#include "all.qh"
#ifndef VEHICLES_ALL_C
#define VEHICLES_ALL_C
-#include "all.qh"
-
REGISTER_NET_LINKED(ENT_CLIENT_AUXILIARYXHAIR)
#if defined(SVQC)
+#include "cl_vehicles.qh"
const string vCROSS_BURST = "gfx/vehicles/crosshair_burst.tga";
const string vCROSS_DROP = "gfx/vehicles/crosshair_drop.tga";
const string vCROSS_GUIDE = "gfx/vehicles/crosshair_guide.tga";
+#include "viewloc.qh"
#include "util.qh"
#if defined(CSQC)
+#include "all.qh"
#ifndef WEAPONS_ALL_C
#define WEAPONS_ALL_C
-#include "all.qh"
-
#if defined(CSQC)
#include <client/defs.qh>
#include "../constants.qh"
+#include "config.qh"
#if defined(CSQC)
#elif defined(MENUQC)
#elif defined(SVQC)
#include "../util.qh"
- #include "config.qh"
#include "all.qh"
#endif
+#include "arc.qh"
#ifndef IMPLEMENTATION
CLASS(Arc, Weapon)
/* ammotype */ ATTRIB(Arc, ammo_field, .int, ammo_cells);
+#include "blaster.qh"
#ifndef IMPLEMENTATION
CLASS(Blaster, Weapon)
/* ammotype */ //ATTRIB(Blaster, ammo_field, .int, ammo_none);
+#include "crylink.qh"
#ifndef IMPLEMENTATION
CLASS(Crylink, Weapon)
/* ammotype */ ATTRIB(Crylink, ammo_field, .int, ammo_cells);
+#include "devastator.qh"
#ifndef IMPLEMENTATION
CLASS(Devastator, Weapon)
/* ammotype */ ATTRIB(Devastator, ammo_field, .int, ammo_rockets);
+#include "electro.qh"
#ifndef IMPLEMENTATION
CLASS(Electro, Weapon)
/* ammotype */ ATTRIB(Electro, ammo_field, .int, ammo_cells);
+#include "fireball.qh"
#ifndef IMPLEMENTATION
CLASS(Fireball, Weapon)
/* ammotype */ //ATTRIB(Fireball, ammo_field, .int, ammo_none);
+#include "hagar.qh"
#ifndef IMPLEMENTATION
CLASS(Hagar, Weapon)
/* ammotype */ ATTRIB(Hagar, ammo_field, .int, ammo_rockets);
+#include "hlac.qh"
#ifndef IMPLEMENTATION
CLASS(HLAC, Weapon)
/* ammotype */ ATTRIB(HLAC, ammo_field, .int, ammo_cells);
+#include "hook.qh"
#ifndef IMPLEMENTATION
CLASS(Hook, Weapon)
/* ammotype */ ATTRIB(Hook, ammo_field, .int, ammo_fuel);
+#include "machinegun.qh"
#ifndef IMPLEMENTATION
CLASS(MachineGun, Weapon)
/* ammotype */ ATTRIB(MachineGun, ammo_field, .int, ammo_nails);
+#include "minelayer.qh"
#ifndef IMPLEMENTATION
CLASS(MineLayer, Weapon)
/* ammotype */ ATTRIB(MineLayer, ammo_field, .int, ammo_rockets);
+#include "mortar.qh"
#ifndef IMPLEMENTATION
CLASS(Mortar, Weapon)
/* ammotype */ ATTRIB(Mortar, ammo_field, .int, ammo_rockets);
+#include "porto.qh"
#ifndef IMPLEMENTATION
CLASS(PortoLaunch, Weapon)
/* ammotype */ ATTRIB(PortoLaunch, ammo_field, .int, ammo_none);
+#include "rifle.qh"
#ifndef IMPLEMENTATION
CLASS(Rifle, Weapon)
/* ammotype */ ATTRIB(Rifle, ammo_field, .int, ammo_nails);
+#include "seeker.qh"
#ifndef IMPLEMENTATION
CLASS(Seeker, Weapon)
/* ammotype */ ATTRIB(Seeker, ammo_field, .int, ammo_rockets);
+#include "shockwave.qh"
#ifndef IMPLEMENTATION
CLASS(Shockwave, Weapon)
/* ammotype */ //ATTRIB(Shockwave, ammo_field, .int, ammo_none);
+#include "shotgun.qh"
#ifndef IMPLEMENTATION
CLASS(Shotgun, Weapon)
/* ammotype */ ATTRIB(Shotgun, ammo_field, .int, ammo_shells);
+#include "tuba.qh"
#ifndef IMPLEMENTATION
CLASS(Tuba, Weapon)
/* impulse */ ATTRIB(Tuba, impulse, int, 1);
+#include "vaporizer.qh"
#ifndef IMPLEMENTATION
CLASS(Vaporizer, Weapon)
/* ammotype */ ATTRIB(Vaporizer, ammo_field, .int, ammo_cells);
+#include "vortex.qh"
#ifndef IMPLEMENTATION
CLASS(Vortex, Weapon)
/* ammotype */ ATTRIB(Vortex, ammo_field, .int, ammo_cells);
find "$base" -type f -name '*.qc' -print0 | sort -z | while read -r -d '' file; do
echo "$file"
declare -l file_h="${file%.qc}.qh"
- if [ ! -f "$file_h" ]; then echo "#pragma once" > "$file_h"; fi
+ if [[ ! -f "$file_h" ]]; then echo "#pragma once" > "$file_h"; fi
include=$(basename "$file")
include="${include%.qc}.qh"
echo "$file"
startswith "$file" "#pragma once"
done
- find "$base" -type f -name '_mod.inc' -print0 | sort -z | while read -r -d '' file; do
- echo "$file"
- declare -l file_inc="${file%_mod.inc}_all.inc"
- if [ ! -f "$file_inc" ]; then
- echo '#include "_all.qh"' > "$file_inc"
- echo '#include "_mod.inc"' >> "$file_inc"
- fi
- declare -l file_qh="${file%_mod.inc}_all.qh"
- if [ ! -f "$file_qh" ]; then
- echo '#pragma once' > "$file_qh"
- echo '#include "_mod.qh"' >> "$file_qh"
- fi
- done
}
check client
check server
check menu
+check common