find_package(Git REQUIRED)
execute_process(
- COMMAND ${GIT_EXECUTABLE} describe --tags --dirty=*
+ COMMAND ${GIT_EXECUTABLE} describe --tags --dirty=~
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_DESC
OUTPUT_STRIP_TRAILING_WHITESPACE
// Nades
// =======
set g_nades 0 "enable off-hand grenades"
+set g_nades_spread 0.04 "random spread offset of throw direction"
set g_nades_throw_offset "0 0 0" "nade throwing offset"
set g_nades_spawn 1 "give nades right away when player spawns rather than delaying entire refire"
set g_nades_client_select 0 "allow client side selection of nade type"
// generated file; do not modify
-#include "announcer.qc"
-#include "bgmscript.qc"
-#include "csqcmodel_hooks.qc"
-#include "main.qc"
-#include "mapvoting.qc"
-#include "miscfunctions.qc"
-#include "player_skeleton.qc"
-#include "scoreboard.qc"
-#include "shownames.qc"
-#include "teamradar.qc"
-#include "view.qc"
-#include "wall.qc"
+#include <client/announcer.qc>
+#include <client/bgmscript.qc>
+#include <client/csqcmodel_hooks.qc>
+#include <client/main.qc>
+#include <client/mapvoting.qc>
+#include <client/miscfunctions.qc>
+#include <client/player_skeleton.qc>
+#include <client/scoreboard.qc>
+#include <client/shownames.qc>
+#include <client/teamradar.qc>
+#include <client/view.qc>
+#include <client/wall.qc>
--- /dev/null
+// generated file; do not modify
+#include <client/announcer.qh>
+#include <client/bgmscript.qh>
+#include <client/csqcmodel_hooks.qh>
+#include <client/main.qh>
+#include <client/mapvoting.qh>
+#include <client/miscfunctions.qh>
+#include <client/player_skeleton.qh>
+#include <client/scoreboard.qh>
+#include <client/shownames.qh>
+#include <client/teamradar.qh>
+#include <client/view.qh>
+#include <client/wall.qh>
// generated file; do not modify
-#include "all.qc"
-#include "cl_cmd.qc"
+#include <client/commands/all.qc>
+#include <client/commands/cl_cmd.qc>
--- /dev/null
+// generated file; do not modify
+#include <client/commands/all.qh>
+#include <client/commands/cl_cmd.qh>
// generated file; do not modify
-#include "hud.qc"
-#include "hud_config.qc"
+#include <client/hud/hud.qc>
+#include <client/hud/hud_config.qc>
--- /dev/null
+// generated file; do not modify
+#include <client/hud/hud.qh>
+#include <client/hud/hud_config.qh>
// generated file; do not modify
-#include "ammo.qc"
-#include "centerprint.qc"
-#include "chat.qc"
-#include "engineinfo.qc"
-#include "healtharmor.qc"
-#include "infomessages.qc"
-#include "minigame.qc"
-#include "modicons.qc"
-#include "notify.qc"
-#include "physics.qc"
-#include "powerups.qc"
-#include "pressedkeys.qc"
-#include "quickmenu.qc"
-#include "racetimer.qc"
-#include "radar.qc"
-#include "score.qc"
-#include "timer.qc"
-#include "vote.qc"
-#include "weapons.qc"
+#include <client/hud/panel/ammo.qc>
+#include <client/hud/panel/centerprint.qc>
+#include <client/hud/panel/chat.qc>
+#include <client/hud/panel/engineinfo.qc>
+#include <client/hud/panel/healtharmor.qc>
+#include <client/hud/panel/infomessages.qc>
+#include <client/hud/panel/minigame.qc>
+#include <client/hud/panel/modicons.qc>
+#include <client/hud/panel/notify.qc>
+#include <client/hud/panel/physics.qc>
+#include <client/hud/panel/powerups.qc>
+#include <client/hud/panel/pressedkeys.qc>
+#include <client/hud/panel/quickmenu.qc>
+#include <client/hud/panel/racetimer.qc>
+#include <client/hud/panel/radar.qc>
+#include <client/hud/panel/score.qc>
+#include <client/hud/panel/timer.qc>
+#include <client/hud/panel/vote.qc>
+#include <client/hud/panel/weapons.qc>
--- /dev/null
+// generated file; do not modify
+#include <client/hud/panel/ammo.qh>
+#include <client/hud/panel/centerprint.qh>
+#include <client/hud/panel/chat.qh>
+#include <client/hud/panel/engineinfo.qh>
+#include <client/hud/panel/healtharmor.qh>
+#include <client/hud/panel/infomessages.qh>
+#include <client/hud/panel/minigame.qh>
+#include <client/hud/panel/modicons.qh>
+#include <client/hud/panel/notify.qh>
+#include <client/hud/panel/physics.qh>
+#include <client/hud/panel/powerups.qh>
+#include <client/hud/panel/pressedkeys.qh>
+#include <client/hud/panel/quickmenu.qh>
+#include <client/hud/panel/racetimer.qh>
+#include <client/hud/panel/radar.qh>
+#include <client/hud/panel/score.qh>
+#include <client/hud/panel/timer.qh>
+#include <client/hud/panel/vote.qh>
+#include <client/hud/panel/weapons.qh>
--- /dev/null
+// generated file; do not modify
#include <lib/_all.inc>
#include "_all.qh"
-#include "_mod.inc"
+#include "../client/_mod.inc"
#include "commands/_mod.inc"
#include "hud/_mod.inc"
#include "mutators/_mod.inc"
// generated file; do not modify
-#include "projectile.qc"
+#include <client/weapons/projectile.qc>
--- /dev/null
+// generated file; do not modify
+#include <client/weapons/projectile.qh>
// generated file; do not modify
-#include "anim.qc"
-#include "animdecide.qc"
-#include "campaign_file.qc"
-#include "campaign_setup.qc"
-#include "ent_cs.qc"
-#include "mapinfo.qc"
-#include "net_notice.qc"
-#include "playerstats.qc"
-#include "state.qc"
-#include "t_items.qc"
-#include "util.qc"
-#include "viewloc.qc"
+#include <common/anim.qc>
+#include <common/animdecide.qc>
+#include <common/campaign_file.qc>
+#include <common/campaign_setup.qc>
+#include <common/ent_cs.qc>
+#include <common/mapinfo.qc>
+#include <common/net_notice.qc>
+#include <common/playerstats.qc>
+#include <common/state.qc>
+#include <common/t_items.qc>
+#include <common/util.qc>
+#include <common/viewloc.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/anim.qh>
+#include <common/animdecide.qh>
+#include <common/campaign_file.qh>
+#include <common/campaign_setup.qh>
+#include <common/ent_cs.qh>
+#include <common/mapinfo.qh>
+#include <common/net_notice.qh>
+#include <common/playerstats.qh>
+#include <common/state.qh>
+#include <common/t_items.qh>
+#include <common/util.qh>
+#include <common/viewloc.qh>
// generated file; do not modify
-#include "all.qc"
-#include "generic.qc"
-#include "markup.qc"
-#include "rpn.qc"
+#include <common/command/all.qc>
+#include <common/command/generic.qc>
+#include <common/command/markup.qc>
+#include <common/command/rpn.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/command/all.qh>
+#include <common/command/generic.qh>
+#include <common/command/markup.qh>
+#include <common/command/rpn.qh>
// generated file; do not modify
-#include "all.qc"
+#include <common/deathtypes/all.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/deathtypes/all.qh>
// generated file; do not modify
-#include "all.qc"
-#include "effectinfo.qc"
+#include <common/effects/all.qc>
+#include <common/effects/effectinfo.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/effects/all.qh>
+#include <common/effects/effectinfo.qh>
// generated file; do not modify
-#include "all.qc"
-#include "casings.qc"
-#include "damageeffects.qc"
-#include "gibs.qc"
-#include "globalsound.qc"
-#include "lightningarc.qc"
-#include "modeleffects.qc"
+#include <common/effects/qc/all.qc>
+#include <common/effects/qc/casings.qc>
+#include <common/effects/qc/damageeffects.qc>
+#include <common/effects/qc/gibs.qc>
+#include <common/effects/qc/globalsound.qc>
+#include <common/effects/qc/lightningarc.qc>
+#include <common/effects/qc/modeleffects.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/effects/qc/all.qh>
+#include <common/effects/qc/casings.qh>
+#include <common/effects/qc/damageeffects.qh>
+#include <common/effects/qc/gibs.qh>
+#include <common/effects/qc/globalsound.qh>
+#include <common/effects/qc/lightningarc.qh>
+#include <common/effects/qc/modeleffects.qh>
// generated file; do not modify
-#include "all.qc"
+#include <common/gamemodes/all.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/gamemodes/all.qh>
--- /dev/null
+// generated file; do not modify
// generated file; do not modify
-#include "nexball.qc"
-#include "weapon.qc"
+#include <common/gamemodes/gamemode/nexball/nexball.qc>
+#include <common/gamemodes/gamemode/nexball/weapon.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/gamemodes/gamemode/nexball/nexball.qh>
+#include <common/gamemodes/gamemode/nexball/weapon.qh>
// generated file; do not modify
-#include "cl_controlpoint.qc"
-#include "cl_generator.qc"
-#include "onslaught.qc"
-#include "sv_controlpoint.qc"
-#include "sv_generator.qc"
+#include <common/gamemodes/gamemode/onslaught/cl_controlpoint.qc>
+#include <common/gamemodes/gamemode/onslaught/cl_generator.qc>
+#include <common/gamemodes/gamemode/onslaught/onslaught.qc>
+#include <common/gamemodes/gamemode/onslaught/sv_controlpoint.qc>
+#include <common/gamemodes/gamemode/onslaught/sv_generator.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/gamemodes/gamemode/onslaught/cl_controlpoint.qh>
+#include <common/gamemodes/gamemode/onslaught/cl_generator.qh>
+#include <common/gamemodes/gamemode/onslaught/onslaught.qh>
+#include <common/gamemodes/gamemode/onslaught/sv_controlpoint.qh>
+#include <common/gamemodes/gamemode/onslaught/sv_generator.qh>
// generated file; do not modify
-#include "all.qc"
+#include <common/impulses/all.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/impulses/all.qh>
// generated file; do not modify
-#include "all.qc"
+#include <common/items/all.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/items/all.qh>
// generated file; do not modify
-#include "ammo.qc"
-#include "armor.qc"
-#include "health.qc"
-#include "jetpack.qc"
-#include "pickup.qc"
-#include "powerup.qc"
+#include <common/items/item/ammo.qc>
+#include <common/items/item/armor.qc>
+#include <common/items/item/health.qc>
+#include <common/items/item/jetpack.qc>
+#include <common/items/item/pickup.qc>
+#include <common/items/item/powerup.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/items/item/ammo.qh>
+#include <common/items/item/armor.qh>
+#include <common/items/item/health.qh>
+#include <common/items/item/jetpack.qh>
+#include <common/items/item/pickup.qh>
+#include <common/items/item/powerup.qh>
// generated file; do not modify
-#include "cl_minigames.qc"
-#include "cl_minigames_hud.qc"
-#include "minigames.qc"
-#include "sv_minigames.qc"
+#include <common/minigames/cl_minigames_hud.qc>
+#include <common/minigames/minigames.qc>
+#ifdef CSQC
+ #include <common/minigames/cl_minigames.qc>
+#endif
+#ifdef SVQC
+ #include <common/minigames/sv_minigames.qc>
+#endif
--- /dev/null
+// generated file; do not modify
+#include <common/minigames/cl_minigames_hud.qh>
+#include <common/minigames/minigames.qh>
// generated file; do not modify
-#include "bd.qc"
-#include "c4.qc"
-#include "nmm.qc"
-#include "pong.qc"
-#include "pp.qc"
-#include "ps.qc"
-#include "snake.qc"
-#include "ttt.qc"
+#include <common/minigames/minigame/bd.qc>
+#include <common/minigames/minigame/c4.qc>
+#include <common/minigames/minigame/nmm.qc>
+#include <common/minigames/minigame/pong.qc>
+#include <common/minigames/minigame/pp.qc>
+#include <common/minigames/minigame/ps.qc>
+#include <common/minigames/minigame/snake.qc>
+#include <common/minigames/minigame/ttt.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/minigames/minigame/bd.qh>
+#include <common/minigames/minigame/c4.qh>
+#include <common/minigames/minigame/nmm.qh>
+#include <common/minigames/minigame/pong.qh>
+#include <common/minigames/minigame/pp.qh>
+#include <common/minigames/minigame/ps.qh>
+#include <common/minigames/minigame/snake.qh>
+#include <common/minigames/minigame/ttt.qh>
--- /dev/null
+// generated file; do not modify
// generated file; do not modify
-#include "all.qc"
-#include "spawn.qc"
-#include "sv_monsters.qc"
+#include <common/monsters/all.qc>
+#include <common/monsters/spawn.qc>
+#include <common/monsters/sv_monsters.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/monsters/all.qh>
+#include <common/monsters/spawn.qh>
+#include <common/monsters/sv_monsters.qh>
// generated file; do not modify
-#include "mage.qc"
-#include "shambler.qc"
-#include "spider.qc"
-#include "wyvern.qc"
-#include "zombie.qc"
+#include <common/monsters/monster/mage.qc>
+#include <common/monsters/monster/shambler.qc>
+#include <common/monsters/monster/spider.qc>
+#include <common/monsters/monster/wyvern.qc>
+#include <common/monsters/monster/zombie.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/monsters/monster/mage.qh>
+#include <common/monsters/monster/shambler.qh>
+#include <common/monsters/monster/spider.qh>
+#include <common/monsters/monster/wyvern.qh>
+#include <common/monsters/monster/zombie.qh>
// generated file; do not modify
-#include "all.qc"
+#include <common/mutators/all.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/all.qh>
// generated file; do not modify
-#include "itemstime.qc"
+#include <common/mutators/mutator/itemstime.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/itemstime.qh>
// generated file; do not modify
-#include "bloodloss.qc"
+#include <common/mutators/mutator/bloodloss/bloodloss.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/bloodloss/bloodloss.qh>
// generated file; do not modify
-#include "breakablehook.qc"
+#include <common/mutators/mutator/breakablehook/breakablehook.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/breakablehook/breakablehook.qh>
// generated file; do not modify
-#include "all.qc"
-#include "buffs.qc"
+#include <common/mutators/mutator/buffs/all.qc>
+#include <common/mutators/mutator/buffs/buffs.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/buffs/all.qh>
+#include <common/mutators/mutator/buffs/buffs.qh>
// generated file; do not modify
-#include "bugrigs.qc"
+#include <common/mutators/mutator/bugrigs/bugrigs.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/bugrigs/bugrigs.qh>
// generated file; do not modify
-#include "campcheck.qc"
+#include <common/mutators/mutator/campcheck/campcheck.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/campcheck/campcheck.qh>
// generated file; do not modify
-#include "cloaked.qc"
+#include <common/mutators/mutator/cloaked/cloaked.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/cloaked/cloaked.qh>
// generated file; do not modify
-#include "damagetext.qc"
+#include <common/mutators/mutator/damagetext/damagetext.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/damagetext/damagetext.qh>
METHOD(XonoticDamageTextSettings, showNotify, void(entity this)) { loadAllCvars(this); }
METHOD(XonoticDamageTextSettings, fill, void(entity this))
{
+ entity e;
this.gotoRC(this, 0, 1); this.setFirstColumn(this, this.currentColumn);
this.TD(this, 1, 3, makeXonoticCheckBox(0, "cl_damagetext", _("Draw damage numbers")));
this.TR(this);
- this.TD(this, 1, 1, makeXonoticTextLabel(0, _("Font size:")));
- this.TD(this, 1, 2, makeXonoticSlider(0, 50, 1, "cl_damagetext_size"));
+ this.TD(this, 1, 1, e = makeXonoticTextLabel(0, _("Font size:")));
+ setDependent(e, "cl_damagetext", 1, 1);
+ this.TD(this, 1, 2, e = makeXonoticSlider(0, 50, 1, "cl_damagetext_size"));
+ setDependent(e, "cl_damagetext", 1, 1);
this.TR(this);
- this.TD(this, 1, 1, makeXonoticTextLabel(0, _("Accumulate range:")));
- this.TD(this, 1, 2, makeXonoticSlider(0, 500, 1, "cl_damagetext_accumulate_range"));
+ this.TD(this, 1, 1, e = makeXonoticTextLabel(0, _("Accumulate range:")));
+ setDependent(e, "cl_damagetext", 1, 1);
+ this.TD(this, 1, 2, e = makeXonoticSlider(0, 500, 1, "cl_damagetext_accumulate_range"));
+ setDependent(e, "cl_damagetext", 1, 1);
this.TR(this);
- this.TD(this, 1, 1, makeXonoticTextLabel(0, _("Lifetime:")));
- this.TD(this, 1, 2, makeXonoticSlider(0, 10, 1, "cl_damagetext_alpha_lifetime"));
+ this.TD(this, 1, 1, e = makeXonoticTextLabel(0, _("Lifetime:")));
+ setDependent(e, "cl_damagetext", 1, 1);
+ this.TD(this, 1, 2, e = makeXonoticSlider(0, 10, 1, "cl_damagetext_alpha_lifetime"));
+ setDependent(e, "cl_damagetext", 1, 1);
this.TR(this);
- this.TD(this, 1, 1, makeXonoticTextLabel(0, _("Color:")));
- this.TD(this, 2, 2, makeXonoticColorpickerString("cl_damagetext_color", "cl_damagetext_color"));
+ this.TD(this, 1, 1, e = makeXonoticTextLabel(0, _("Color:")));
+ setDependent(e, "cl_damagetext", 1, 1);
+ this.TD(this, 2, 2, e = makeXonoticColorpickerString("cl_damagetext_color", "cl_damagetext_color"));
+ setDependent(e, "cl_damagetext", 1, 1);
}
ENDCLASS(XonoticDamageTextSettings)
#endif
// generated file; do not modify
-#include "dodging.qc"
+#include <common/mutators/mutator/dodging/dodging.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/dodging/dodging.qh>
// generated file; do not modify
-#include "doublejump.qc"
+#include <common/mutators/mutator/doublejump/doublejump.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/doublejump/doublejump.qh>
// generated file; do not modify
-#include "hook.qc"
+#include <common/mutators/mutator/hook/hook.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/hook/hook.qh>
// generated file; do not modify
-#include "instagib.qc"
-#include "items.qc"
+#include <common/mutators/mutator/instagib/instagib.qc>
+#include <common/mutators/mutator/instagib/items.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/instagib/instagib.qh>
+#include <common/mutators/mutator/instagib/items.qh>
}
if(frag_target.alpha && frag_target.alpha < 1)
+ if(IS_PLAYER(frag_target))
yoda = 1;
return false;
// generated file; do not modify
-#include "invincibleproj.qc"
+#include <common/mutators/mutator/invincibleproj/invincibleproj.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/invincibleproj/invincibleproj.qh>
// generated file; do not modify
-#include "melee_only.qc"
+#include <common/mutators/mutator/melee_only/melee_only.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/melee_only/melee_only.qh>
// generated file; do not modify
-#include "midair.qc"
+#include <common/mutators/mutator/midair/midair.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/midair/midair.qh>
// generated file; do not modify
-#include "multijump.qc"
+#include <common/mutators/mutator/multijump/multijump.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/multijump/multijump.qh>
// generated file; do not modify
-#include "nades.qc"
-#include "net.qc"
+#include <common/mutators/mutator/nades/nades.qc>
+#include <common/mutators/mutator/nades/net.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/nades/nades.qh>
+#include <common/mutators/mutator/nades/net.qh>
#ifdef SVQC
bool autocvar_g_nades_nade_small;
+float autocvar_g_nades_spread = 0.04;
#endif
REGISTER_STAT(NADES_SMALL, int, autocvar_g_nades_nade_small)
float _force = time - held_nade.nade_time_primed;
_force /= autocvar_g_nades_nade_lifetime;
_force = autocvar_g_nades_nade_minforce + (_force * (autocvar_g_nades_nade_maxforce - autocvar_g_nades_nade_minforce));
- toss_nade(self, true, (v_forward * 0.75 + v_up * 0.2 + v_right * 0.05) * _force, 0);
+ vector dir = (v_forward * 0.75 + v_up * 0.2 + v_right * 0.05);
+ dir = W_CalculateSpread(dir, autocvar_g_nades_spread, g_weaponspreadfactor, autocvar_g_projectiles_spread_style);
+ toss_nade(self, true, dir * _force, 0);
}
}
}
float _force = time - held_nade.nade_time_primed;
_force /= autocvar_g_nades_nade_lifetime;
_force = autocvar_g_nades_nade_minforce + (_force * (autocvar_g_nades_nade_maxforce - autocvar_g_nades_nade_minforce));
- toss_nade(player, false, (v_forward * 0.7 + v_up * 0.2 + v_right * 0.1) * _force, 0);
+ vector dir = (v_forward * 0.7 + v_up * 0.2 + v_right * 0.1);
+ dir = W_CalculateSpread(dir, autocvar_g_nades_spread, g_weaponspreadfactor, autocvar_g_projectiles_spread_style);
+ toss_nade(player, false, dir * _force, 0);
}
}
}
// generated file; do not modify
-#include "new_toys.qc"
+#include <common/mutators/mutator/new_toys/new_toys.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/new_toys/new_toys.qh>
// generated file; do not modify
-#include "nix.qc"
+#include <common/mutators/mutator/nix/nix.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/nix/nix.qh>
// generated file; do not modify
-#include "hmg.qc"
-#include "overkill.qc"
-#include "rpc.qc"
+#include <common/mutators/mutator/overkill/hmg.qc>
+#include <common/mutators/mutator/overkill/overkill.qc>
+#include <common/mutators/mutator/overkill/rpc.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/overkill/hmg.qh>
+#include <common/mutators/mutator/overkill/overkill.qh>
+#include <common/mutators/mutator/overkill/rpc.qh>
// generated file; do not modify
-#include "physical_items.qc"
+#include <common/mutators/mutator/physical_items/physical_items.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/physical_items/physical_items.qh>
// generated file; do not modify
-#include "pinata.qc"
+#include <common/mutators/mutator/pinata/pinata.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/pinata/pinata.qh>
// generated file; do not modify
-#include "random_gravity.qc"
+#include <common/mutators/mutator/random_gravity/random_gravity.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/random_gravity/random_gravity.qh>
// generated file; do not modify
-#include "rocketflying.qc"
+#include <common/mutators/mutator/rocketflying/rocketflying.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/rocketflying/rocketflying.qh>
// generated file; do not modify
-#include "rocketminsta.qc"
+#include <common/mutators/mutator/rocketminsta/rocketminsta.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/rocketminsta/rocketminsta.qh>
// generated file; do not modify
-#include "running_guns.qc"
+#include <common/mutators/mutator/running_guns/running_guns.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/running_guns/running_guns.qh>
// generated file; do not modify
-#include "sandbox.qc"
+#include <common/mutators/mutator/sandbox/sandbox.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/sandbox/sandbox.qh>
// generated file; do not modify
-#include "spawn_near_teammate.qc"
+#include <common/mutators/mutator/spawn_near_teammate/spawn_near_teammate.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/spawn_near_teammate/spawn_near_teammate.qh>
// generated file; do not modify
-#include "superspec.qc"
+#include <common/mutators/mutator/superspec/superspec.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/superspec/superspec.qh>
// generated file; do not modify
-#include "touchexplode.qc"
+#include <common/mutators/mutator/touchexplode/touchexplode.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/touchexplode/touchexplode.qh>
// generated file; do not modify
-#include "vampire.qc"
+#include <common/mutators/mutator/vampire/vampire.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/vampire/vampire.qh>
// generated file; do not modify
-#include "vampirehook.qc"
+#include <common/mutators/mutator/vampirehook/vampirehook.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/vampirehook/vampirehook.qh>
// generated file; do not modify
-#include "waypointsprites.qc"
+#include <common/mutators/mutator/waypoints/waypointsprites.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/waypoints/waypointsprites.qh>
// generated file; do not modify
-#include "weaponarena_random.qc"
+#include <common/mutators/mutator/weaponarena_random/weaponarena_random.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/mutators/mutator/weaponarena_random/weaponarena_random.qh>
// generated file; do not modify
-#include "all.qc"
+#include <common/notifications/all.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/notifications/all.qh>
// generated file; do not modify
-#include "movelib.qc"
-#include "player.qc"
+#include <common/physics/movelib.qc>
+#include <common/physics/player.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/physics/movelib.qh>
+#include <common/physics/player.qh>
// generated file; do not modify
-#include "follow.qc"
-#include "movetypes.qc"
-#include "push.qc"
-#include "step.qc"
-#include "toss.qc"
-#include "walk.qc"
+#include <common/physics/movetypes/follow.qc>
+#include <common/physics/movetypes/movetypes.qc>
+#include <common/physics/movetypes/push.qc>
+#include <common/physics/movetypes/step.qc>
+#include <common/physics/movetypes/toss.qc>
+#include <common/physics/movetypes/walk.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/physics/movetypes/follow.qh>
+#include <common/physics/movetypes/movetypes.qh>
+#include <common/physics/movetypes/push.qh>
+#include <common/physics/movetypes/step.qh>
+#include <common/physics/movetypes/toss.qh>
+#include <common/physics/movetypes/walk.qh>
// generated file; do not modify
-#include "all.qc"
+#include <common/sounds/all.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/sounds/all.qh>
// generated file; do not modify
-#include "include.qc"
-#include "platforms.qc"
-#include "subs.qc"
-#include "teleporters.qc"
-#include "triggers.qc"
+#include <common/triggers/include.qc>
+#include <common/triggers/platforms.qc>
+#include <common/triggers/subs.qc>
+#include <common/triggers/teleporters.qc>
+#include <common/triggers/triggers.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/triggers/include.qh>
+#include <common/triggers/platforms.qh>
+#include <common/triggers/subs.qh>
+#include <common/triggers/teleporters.qh>
+#include <common/triggers/triggers.qh>
// generated file; do not modify
-#include "bobbing.qc"
-#include "breakable.qc"
-#include "button.qc"
-#include "conveyor.qc"
-#include "door.qc"
-#include "door_rotating.qc"
-#include "door_secret.qc"
-#include "fourier.qc"
-#include "include.qc"
-#include "ladder.qc"
-#include "pendulum.qc"
-#include "plat.qc"
-#include "pointparticles.qc"
-#include "rainsnow.qc"
-#include "rotating.qc"
-#include "stardust.qc"
-#include "train.qc"
-#include "vectormamamam.qc"
+#include <common/triggers/func/bobbing.qc>
+#include <common/triggers/func/breakable.qc>
+#include <common/triggers/func/button.qc>
+#include <common/triggers/func/conveyor.qc>
+#include <common/triggers/func/door.qc>
+#include <common/triggers/func/door_rotating.qc>
+#include <common/triggers/func/door_secret.qc>
+#include <common/triggers/func/fourier.qc>
+#include <common/triggers/func/include.qc>
+#include <common/triggers/func/ladder.qc>
+#include <common/triggers/func/pendulum.qc>
+#include <common/triggers/func/plat.qc>
+#include <common/triggers/func/pointparticles.qc>
+#include <common/triggers/func/rainsnow.qc>
+#include <common/triggers/func/rotating.qc>
+#include <common/triggers/func/stardust.qc>
+#include <common/triggers/func/train.qc>
+#include <common/triggers/func/vectormamamam.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/triggers/func/bobbing.qh>
+#include <common/triggers/func/breakable.qh>
+#include <common/triggers/func/button.qh>
+#include <common/triggers/func/conveyor.qh>
+#include <common/triggers/func/door.qh>
+#include <common/triggers/func/door_rotating.qh>
+#include <common/triggers/func/door_secret.qh>
+#include <common/triggers/func/fourier.qh>
+#include <common/triggers/func/include.qh>
+#include <common/triggers/func/ladder.qh>
+#include <common/triggers/func/pendulum.qh>
+#include <common/triggers/func/plat.qh>
+#include <common/triggers/func/pointparticles.qh>
+#include <common/triggers/func/rainsnow.qh>
+#include <common/triggers/func/rotating.qh>
+#include <common/triggers/func/stardust.qh>
+#include <common/triggers/func/train.qh>
+#include <common/triggers/func/vectormamamam.qh>
// generated file; do not modify
-#include "corner.qc"
-#include "follow.qc"
-#include "include.qc"
-#include "laser.qc"
-#include "teleport_dest.qc"
+#include <common/triggers/misc/corner.qc>
+#include <common/triggers/misc/follow.qc>
+#include <common/triggers/misc/include.qc>
+#include <common/triggers/misc/laser.qc>
+#include <common/triggers/misc/teleport_dest.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/triggers/misc/corner.qh>
+#include <common/triggers/misc/follow.qh>
+#include <common/triggers/misc/include.qh>
+#include <common/triggers/misc/laser.qh>
+#include <common/triggers/misc/teleport_dest.qh>
// generated file; do not modify
-#include "changelevel.qc"
-#include "include.qc"
-#include "location.qc"
-#include "music.qc"
-#include "spawn.qc"
-#include "speaker.qc"
-#include "voicescript.qc"
+#include <common/triggers/target/changelevel.qc>
+#include <common/triggers/target/include.qc>
+#include <common/triggers/target/location.qc>
+#include <common/triggers/target/music.qc>
+#include <common/triggers/target/spawn.qc>
+#include <common/triggers/target/speaker.qc>
+#include <common/triggers/target/voicescript.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/triggers/target/changelevel.qh>
+#include <common/triggers/target/include.qh>
+#include <common/triggers/target/location.qh>
+#include <common/triggers/target/music.qh>
+#include <common/triggers/target/spawn.qh>
+#include <common/triggers/target/speaker.qh>
+#include <common/triggers/target/voicescript.qh>
// generated file; do not modify
-#include "counter.qc"
-#include "delay.qc"
-#include "disablerelay.qc"
-#include "flipflop.qc"
-#include "gamestart.qc"
-#include "gravity.qc"
-#include "heal.qc"
-#include "hurt.qc"
-#include "impulse.qc"
-#include "include.qc"
-#include "jumppads.qc"
-#include "keylock.qc"
-#include "magicear.qc"
-#include "monoflop.qc"
-#include "multi.qc"
-#include "multivibrator.qc"
-#include "relay.qc"
-#include "relay_activators.qc"
-#include "relay_if.qc"
-#include "relay_teamcheck.qc"
-#include "secret.qc"
-#include "swamp.qc"
-#include "teleport.qc"
-#include "viewloc.qc"
+#include <common/triggers/trigger/counter.qc>
+#include <common/triggers/trigger/delay.qc>
+#include <common/triggers/trigger/disablerelay.qc>
+#include <common/triggers/trigger/flipflop.qc>
+#include <common/triggers/trigger/gamestart.qc>
+#include <common/triggers/trigger/gravity.qc>
+#include <common/triggers/trigger/heal.qc>
+#include <common/triggers/trigger/hurt.qc>
+#include <common/triggers/trigger/impulse.qc>
+#include <common/triggers/trigger/include.qc>
+#include <common/triggers/trigger/jumppads.qc>
+#include <common/triggers/trigger/keylock.qc>
+#include <common/triggers/trigger/magicear.qc>
+#include <common/triggers/trigger/monoflop.qc>
+#include <common/triggers/trigger/multi.qc>
+#include <common/triggers/trigger/multivibrator.qc>
+#include <common/triggers/trigger/relay.qc>
+#include <common/triggers/trigger/relay_activators.qc>
+#include <common/triggers/trigger/relay_if.qc>
+#include <common/triggers/trigger/relay_teamcheck.qc>
+#include <common/triggers/trigger/secret.qc>
+#include <common/triggers/trigger/swamp.qc>
+#include <common/triggers/trigger/teleport.qc>
+#include <common/triggers/trigger/viewloc.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/triggers/trigger/counter.qh>
+#include <common/triggers/trigger/delay.qh>
+#include <common/triggers/trigger/disablerelay.qh>
+#include <common/triggers/trigger/flipflop.qh>
+#include <common/triggers/trigger/gamestart.qh>
+#include <common/triggers/trigger/gravity.qh>
+#include <common/triggers/trigger/heal.qh>
+#include <common/triggers/trigger/hurt.qh>
+#include <common/triggers/trigger/impulse.qh>
+#include <common/triggers/trigger/include.qh>
+#include <common/triggers/trigger/jumppads.qh>
+#include <common/triggers/trigger/keylock.qh>
+#include <common/triggers/trigger/magicear.qh>
+#include <common/triggers/trigger/monoflop.qh>
+#include <common/triggers/trigger/multi.qh>
+#include <common/triggers/trigger/multivibrator.qh>
+#include <common/triggers/trigger/relay.qh>
+#include <common/triggers/trigger/relay_activators.qh>
+#include <common/triggers/trigger/relay_if.qh>
+#include <common/triggers/trigger/relay_teamcheck.qh>
+#include <common/triggers/trigger/secret.qh>
+#include <common/triggers/trigger/swamp.qh>
+#include <common/triggers/trigger/teleport.qh>
+#include <common/triggers/trigger/viewloc.qh>
NET_HANDLE(ENT_CLIENT_TRIGGER_PUSH, bool isnew)
{
- make_pure(this);
-
this.classname = "jumppad";
int mytm = ReadByte(); if(mytm) { this.team = mytm - 1; }
this.spawnflags = ReadInt24_t();
// generated file; do not modify
-#include "all.qc"
-#include "checkpoint.qc"
-#include "cl_turrets.qc"
-#include "config.qc"
-#include "sv_turrets.qc"
-#include "targettrigger.qc"
-#include "util.qc"
+#include <common/turrets/all.qc>
+#include <common/turrets/checkpoint.qc>
+#include <common/turrets/cl_turrets.qc>
+#include <common/turrets/config.qc>
+#include <common/turrets/sv_turrets.qc>
+#include <common/turrets/targettrigger.qc>
+#include <common/turrets/util.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/turrets/all.qh>
+#include <common/turrets/checkpoint.qh>
+#include <common/turrets/cl_turrets.qh>
+#include <common/turrets/config.qh>
+#include <common/turrets/sv_turrets.qh>
+#include <common/turrets/targettrigger.qh>
+#include <common/turrets/util.qh>
// generated file; do not modify
-#include "ewheel.qc"
-#include "ewheel_weapon.qc"
-#include "flac.qc"
-#include "flac_weapon.qc"
-#include "fusionreactor.qc"
-#include "hellion.qc"
-#include "hellion_weapon.qc"
-#include "hk.qc"
-#include "hk_weapon.qc"
-#include "machinegun.qc"
-#include "machinegun_weapon.qc"
-#include "mlrs.qc"
-#include "mlrs_weapon.qc"
-#include "phaser.qc"
-#include "phaser_weapon.qc"
-#include "plasma.qc"
-#include "plasma_dual.qc"
-#include "plasma_weapon.qc"
-#include "tesla.qc"
-#include "tesla_weapon.qc"
-#include "walker.qc"
-#include "walker_weapon.qc"
+#include <common/turrets/turret/ewheel.qc>
+#include <common/turrets/turret/ewheel_weapon.qc>
+#include <common/turrets/turret/flac.qc>
+#include <common/turrets/turret/flac_weapon.qc>
+#include <common/turrets/turret/fusionreactor.qc>
+#include <common/turrets/turret/hellion.qc>
+#include <common/turrets/turret/hellion_weapon.qc>
+#include <common/turrets/turret/hk.qc>
+#include <common/turrets/turret/hk_weapon.qc>
+#include <common/turrets/turret/machinegun.qc>
+#include <common/turrets/turret/machinegun_weapon.qc>
+#include <common/turrets/turret/mlrs.qc>
+#include <common/turrets/turret/mlrs_weapon.qc>
+#include <common/turrets/turret/phaser.qc>
+#include <common/turrets/turret/phaser_weapon.qc>
+#include <common/turrets/turret/plasma.qc>
+#include <common/turrets/turret/plasma_dual.qc>
+#include <common/turrets/turret/plasma_weapon.qc>
+#include <common/turrets/turret/tesla.qc>
+#include <common/turrets/turret/tesla_weapon.qc>
+#include <common/turrets/turret/walker.qc>
+#include <common/turrets/turret/walker_weapon.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/turrets/turret/ewheel.qh>
+#include <common/turrets/turret/ewheel_weapon.qh>
+#include <common/turrets/turret/flac.qh>
+#include <common/turrets/turret/flac_weapon.qh>
+#include <common/turrets/turret/fusionreactor.qh>
+#include <common/turrets/turret/hellion.qh>
+#include <common/turrets/turret/hellion_weapon.qh>
+#include <common/turrets/turret/hk.qh>
+#include <common/turrets/turret/hk_weapon.qh>
+#include <common/turrets/turret/machinegun.qh>
+#include <common/turrets/turret/machinegun_weapon.qh>
+#include <common/turrets/turret/mlrs.qh>
+#include <common/turrets/turret/mlrs_weapon.qh>
+#include <common/turrets/turret/phaser.qh>
+#include <common/turrets/turret/phaser_weapon.qh>
+#include <common/turrets/turret/plasma.qh>
+#include <common/turrets/turret/plasma_dual.qh>
+#include <common/turrets/turret/plasma_weapon.qh>
+#include <common/turrets/turret/tesla.qh>
+#include <common/turrets/turret/tesla_weapon.qh>
+#include <common/turrets/turret/walker.qh>
+#include <common/turrets/turret/walker_weapon.qh>
// generated file; do not modify
-#include "all.qc"
-#include "cl_vehicles.qc"
-#include "sv_vehicles.qc"
+#include <common/vehicles/all.qc>
+#include <common/vehicles/cl_vehicles.qc>
+#include <common/vehicles/sv_vehicles.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/vehicles/all.qh>
+#include <common/vehicles/cl_vehicles.qh>
+#include <common/vehicles/sv_vehicles.qh>
// generated file; do not modify
-#include "bumblebee.qc"
-#include "bumblebee_weapons.qc"
-#include "racer.qc"
-#include "racer_weapon.qc"
-#include "raptor.qc"
-#include "raptor_weapons.qc"
-#include "spiderbot.qc"
-#include "spiderbot_weapons.qc"
+#include <common/vehicles/vehicle/bumblebee.qc>
+#include <common/vehicles/vehicle/bumblebee_weapons.qc>
+#include <common/vehicles/vehicle/racer.qc>
+#include <common/vehicles/vehicle/racer_weapon.qc>
+#include <common/vehicles/vehicle/raptor.qc>
+#include <common/vehicles/vehicle/raptor_weapons.qc>
+#include <common/vehicles/vehicle/spiderbot.qc>
+#include <common/vehicles/vehicle/spiderbot_weapons.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/vehicles/vehicle/bumblebee.qh>
+#include <common/vehicles/vehicle/bumblebee_weapons.qh>
+#include <common/vehicles/vehicle/racer.qh>
+#include <common/vehicles/vehicle/racer_weapon.qh>
+#include <common/vehicles/vehicle/raptor.qh>
+#include <common/vehicles/vehicle/raptor_weapons.qh>
+#include <common/vehicles/vehicle/spiderbot.qh>
+#include <common/vehicles/vehicle/spiderbot_weapons.qh>
// generated file; do not modify
-#include "all.qc"
-#include "calculations.qc"
-#include "config.qc"
+#include <common/weapons/all.qc>
+#include <common/weapons/calculations.qc>
+#include <common/weapons/config.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/weapons/all.qh>
+#include <common/weapons/calculations.qh>
+#include <common/weapons/config.qh>
float sigma;
vector v1 = '0 0 0', v2;
float dx, dy, r;
- float sstyle;
spread *= spreadfactor; //g_weaponspreadfactor;
if(spread <= 0)
return forward;
- sstyle = spreadstyle; //autocvar_g_projectiles_spread_style;
- if(sstyle == 0)
+ switch(spreadstyle)
{
- // this is the baseline for the spread value!
- // standard deviation: sqrt(2/5)
- // density function: sqrt(1-r^2)
- return forward + randomvec() * spread;
+ case 0:
+ {
+ // this is the baseline for the spread value!
+ // standard deviation: sqrt(2/5)
+ // density function: sqrt(1-r^2)
+ return forward + randomvec() * spread;
+ }
+ case 1:
+ {
+ // same thing, basically
+ return normalize(forward + cliptoplane(randomvec() * spread, forward));
+ }
+ case 2:
+ {
+ // circle spread... has at sigma=1 a standard deviation of sqrt(1/2)
+ sigma = spread * 0.89442719099991587855; // match baseline stddev
+ v1 = findperpendicular(forward);
+ v2 = cross(forward, v1);
+ // random point on unit circle
+ dx = random() * 2 * M_PI;
+ dy = sin(dx);
+ dx = cos(dx);
+ // radius in our dist function
+ r = random();
+ r = sqrt(r);
+ return normalize(forward + (v1 * dx + v2 * dy) * r * sigma);
+ }
+ case 3: // gauss 3d
+ {
+ sigma = spread * 0.44721359549996; // match baseline stddev
+ // note: 2D gaussian has sqrt(2) times the stddev of 1D, so this factor is right
+ v1 = forward;
+ v1_x += gsl_ran_gaussian(sigma);
+ v1_y += gsl_ran_gaussian(sigma);
+ v1_z += gsl_ran_gaussian(sigma);
+ return v1;
+ }
+ case 4: // gauss 2d
+ {
+ sigma = spread * 0.44721359549996; // match baseline stddev
+ // note: 2D gaussian has sqrt(2) times the stddev of 1D, so this factor is right
+ v1_x = gsl_ran_gaussian(sigma);
+ v1_y = gsl_ran_gaussian(sigma);
+ v1_z = gsl_ran_gaussian(sigma);
+ return normalize(forward + cliptoplane(v1, forward));
+ }
+ case 5: // 1-r
+ {
+ sigma = spread * 1.154700538379252; // match baseline stddev
+ v1 = findperpendicular(forward);
+ v2 = cross(forward, v1);
+ // random point on unit circle
+ dx = random() * 2 * M_PI;
+ dy = sin(dx);
+ dx = cos(dx);
+ // radius in our dist function
+ r = random();
+ r = solve_cubic_abcd(-2, 3, 0, -r) * '0 1 0';
+ return normalize(forward + (v1 * dx + v2 * dy) * r * sigma);
+ }
+ case 6: // 1-r^2
+ {
+ sigma = spread * 1.095445115010332; // match baseline stddev
+ v1 = findperpendicular(forward);
+ v2 = cross(forward, v1);
+ // random point on unit circle
+ dx = random() * 2 * M_PI;
+ dy = sin(dx);
+ dx = cos(dx);
+ // radius in our dist function
+ r = random();
+ r = sqrt(1 - r);
+ r = sqrt(1 - r);
+ return normalize(forward + (v1 * dx + v2 * dy) * r * sigma);
+ }
+ case 7: // (1-r) (2-r)
+ {
+ sigma = spread * 1.224744871391589; // match baseline stddev
+ v1 = findperpendicular(forward);
+ v2 = cross(forward, v1);
+ // random point on unit circle
+ dx = random() * 2 * M_PI;
+ dy = sin(dx);
+ dx = cos(dx);
+ // radius in our dist function
+ r = random();
+ r = 1 - sqrt(r);
+ r = 1 - sqrt(r);
+ return normalize(forward + (v1 * dx + v2 * dy) * r * sigma);
+ }
+ default:
+ error("g_projectiles_spread_style must be 0 (sphere), 1 (flattened sphere), 2 (circle), 3 (gauss 3D), 4 (gauss plane), 5 (linear falloff), 6 (quadratic falloff), 7 (stronger falloff)!");
}
- else if(sstyle == 1)
- {
- // same thing, basically
- return normalize(forward + cliptoplane(randomvec() * spread, forward));
- }
- else if(sstyle == 2)
- {
- // circle spread... has at sigma=1 a standard deviation of sqrt(1/2)
- sigma = spread * 0.89442719099991587855; // match baseline stddev
- v1 = findperpendicular(forward);
- v2 = cross(forward, v1);
- // random point on unit circle
- dx = random() * 2 * M_PI;
- dy = sin(dx);
- dx = cos(dx);
- // radius in our dist function
- r = random();
- r = sqrt(r);
- return normalize(forward + (v1 * dx + v2 * dy) * r * sigma);
- }
- else if(sstyle == 3) // gauss 3d
- {
- sigma = spread * 0.44721359549996; // match baseline stddev
- // note: 2D gaussian has sqrt(2) times the stddev of 1D, so this factor is right
- v1 = forward;
- v1_x += gsl_ran_gaussian(sigma);
- v1_y += gsl_ran_gaussian(sigma);
- v1_z += gsl_ran_gaussian(sigma);
- return v1;
- }
- else if(sstyle == 4) // gauss 2d
- {
- sigma = spread * 0.44721359549996; // match baseline stddev
- // note: 2D gaussian has sqrt(2) times the stddev of 1D, so this factor is right
- v1_x = gsl_ran_gaussian(sigma);
- v1_y = gsl_ran_gaussian(sigma);
- v1_z = gsl_ran_gaussian(sigma);
- return normalize(forward + cliptoplane(v1, forward));
- }
- else if(sstyle == 5) // 1-r
- {
- sigma = spread * 1.154700538379252; // match baseline stddev
- v1 = findperpendicular(forward);
- v2 = cross(forward, v1);
- // random point on unit circle
- dx = random() * 2 * M_PI;
- dy = sin(dx);
- dx = cos(dx);
- // radius in our dist function
- r = random();
- r = solve_cubic_abcd(-2, 3, 0, -r) * '0 1 0';
- return normalize(forward + (v1 * dx + v2 * dy) * r * sigma);
- }
- else if(sstyle == 6) // 1-r^2
- {
- sigma = spread * 1.095445115010332; // match baseline stddev
- v1 = findperpendicular(forward);
- v2 = cross(forward, v1);
- // random point on unit circle
- dx = random() * 2 * M_PI;
- dy = sin(dx);
- dx = cos(dx);
- // radius in our dist function
- r = random();
- r = sqrt(1 - r);
- r = sqrt(1 - r);
- return normalize(forward + (v1 * dx + v2 * dy) * r * sigma);
- }
- else if(sstyle == 7) // (1-r) (2-r)
- {
- sigma = spread * 1.224744871391589; // match baseline stddev
- v1 = findperpendicular(forward);
- v2 = cross(forward, v1);
- // random point on unit circle
- dx = random() * 2 * M_PI;
- dy = sin(dx);
- dx = cos(dx);
- // radius in our dist function
- r = random();
- r = 1 - sqrt(r);
- r = 1 - sqrt(r);
- return normalize(forward + (v1 * dx + v2 * dy) * r * sigma);
- }
- else
- error("g_projectiles_spread_style must be 0 (sphere), 1 (flattened sphere), 2 (circle), 3 (gauss 3D), 4 (gauss plane), 5 (linear falloff), 6 (quadratic falloff), 7 (stronger falloff)!");
+
return '0 0 0';
/*
* how to derive falloff functions:
// generated file; do not modify
-#include "arc.qc"
-#include "blaster.qc"
-#include "crylink.qc"
-#include "devastator.qc"
-#include "electro.qc"
-#include "fireball.qc"
-#include "hagar.qc"
-#include "hlac.qc"
-#include "hook.qc"
-#include "machinegun.qc"
-#include "minelayer.qc"
-#include "mortar.qc"
-#include "porto.qc"
-#include "rifle.qc"
-#include "seeker.qc"
-#include "shockwave.qc"
-#include "shotgun.qc"
-#include "tuba.qc"
-#include "vaporizer.qc"
-#include "vortex.qc"
+#include <common/weapons/weapon/arc.qc>
+#include <common/weapons/weapon/blaster.qc>
+#include <common/weapons/weapon/crylink.qc>
+#include <common/weapons/weapon/devastator.qc>
+#include <common/weapons/weapon/electro.qc>
+#include <common/weapons/weapon/fireball.qc>
+#include <common/weapons/weapon/hagar.qc>
+#include <common/weapons/weapon/hlac.qc>
+#include <common/weapons/weapon/hook.qc>
+#include <common/weapons/weapon/machinegun.qc>
+#include <common/weapons/weapon/minelayer.qc>
+#include <common/weapons/weapon/mortar.qc>
+#include <common/weapons/weapon/porto.qc>
+#include <common/weapons/weapon/rifle.qc>
+#include <common/weapons/weapon/seeker.qc>
+#include <common/weapons/weapon/shockwave.qc>
+#include <common/weapons/weapon/shotgun.qc>
+#include <common/weapons/weapon/tuba.qc>
+#include <common/weapons/weapon/vaporizer.qc>
+#include <common/weapons/weapon/vortex.qc>
--- /dev/null
+// generated file; do not modify
+#include <common/weapons/weapon/arc.qh>
+#include <common/weapons/weapon/blaster.qh>
+#include <common/weapons/weapon/crylink.qh>
+#include <common/weapons/weapon/devastator.qh>
+#include <common/weapons/weapon/electro.qh>
+#include <common/weapons/weapon/fireball.qh>
+#include <common/weapons/weapon/hagar.qh>
+#include <common/weapons/weapon/hlac.qh>
+#include <common/weapons/weapon/hook.qh>
+#include <common/weapons/weapon/machinegun.qh>
+#include <common/weapons/weapon/minelayer.qh>
+#include <common/weapons/weapon/mortar.qh>
+#include <common/weapons/weapon/porto.qh>
+#include <common/weapons/weapon/rifle.qh>
+#include <common/weapons/weapon/seeker.qh>
+#include <common/weapons/weapon/shockwave.qh>
+#include <common/weapons/weapon/shotgun.qh>
+#include <common/weapons/weapon/tuba.qh>
+#include <common/weapons/weapon/vaporizer.qh>
+#include <common/weapons/weapon/vortex.qh>
// generated file; do not modify
-#include "angle.qc"
-#include "json.qc"
-#include "p2mathlib.qc"
-#include "random.qc"
-#include "sortlist.qc"
-#include "test.qc"
-#include "urllib.qc"
+#include <lib/angle.qc>
+#include <lib/json.qc>
+#include <lib/p2mathlib.qc>
+#include <lib/random.qc>
+#include <lib/sortlist.qc>
+#include <lib/test.qc>
+#include <lib/urllib.qc>
--- /dev/null
+// generated file; do not modify
+#include <lib/angle.qh>
+#include <lib/json.qh>
+#include <lib/p2mathlib.qh>
+#include <lib/random.qh>
+#include <lib/sortlist.qh>
+#include <lib/test.qh>
+#include <lib/urllib.qh>
// generated file; do not modify
-#include "cl_model.qc"
-#include "cl_player.qc"
-#include "interpolate.qc"
-#include "sv_model.qc"
+#include <lib/csqcmodel/cl_model.qc>
+#include <lib/csqcmodel/cl_player.qc>
+#include <lib/csqcmodel/interpolate.qc>
+#include <lib/csqcmodel/sv_model.qc>
--- /dev/null
+// generated file; do not modify
+#include <lib/csqcmodel/cl_model.qh>
+#include <lib/csqcmodel/cl_player.qh>
+#include <lib/csqcmodel/interpolate.qh>
+#include <lib/csqcmodel/sv_model.qh>
// generated file; do not modify
-#include "command.qc"
-#include "matrix.qc"
+#include <lib/matrix/command.qc>
+#include <lib/matrix/matrix.qc>
--- /dev/null
+// generated file; do not modify
+#include <lib/matrix/command.qh>
+#include <lib/matrix/matrix.qh>
// generated file; do not modify
-#include "anglestransform.qc"
-#include "client.qc"
-#include "common.qc"
-#include "mathlib.qc"
-#include "server.qc"
-#include "util_server.qc"
+#include <lib/warpzone/anglestransform.qc>
+#include <lib/warpzone/client.qc>
+#include <lib/warpzone/common.qc>
+#include <lib/warpzone/mathlib.qc>
+#include <lib/warpzone/server.qc>
+#include <lib/warpzone/util_server.qc>
--- /dev/null
+// generated file; do not modify
+#include <lib/warpzone/anglestransform.qh>
+#include <lib/warpzone/client.qh>
+#include <lib/warpzone/common.qh>
+#include <lib/warpzone/mathlib.qh>
+#include <lib/warpzone/server.qh>
+#include <lib/warpzone/util_server.qh>
// generated file; do not modify
-#include "draw.qc"
-#include "item.qc"
-#include "matrix.qc"
-#include "menu.qc"
+#include <menu/draw.qc>
+#include <menu/item.qc>
+#include <menu/matrix.qc>
+#include <menu/menu.qc>
--- /dev/null
+// generated file; do not modify
+#include <menu/draw.qh>
+#include <menu/item.qh>
+#include <menu/matrix.qh>
+#include <menu/menu.qh>
// generated file; do not modify
-#include "animation.qc"
-#include "animhost.qc"
-#include "easing.qc"
-#include "keyframe.qc"
+#include <menu/anim/animation.qc>
+#include <menu/anim/animhost.qc>
+#include <menu/anim/easing.qc>
+#include <menu/anim/keyframe.qc>
--- /dev/null
+// generated file; do not modify
+#include <menu/anim/animation.qh>
+#include <menu/anim/animhost.qh>
+#include <menu/anim/easing.qh>
+#include <menu/anim/keyframe.qh>
// generated file; do not modify
-#include "all.qc"
-#include "menu_cmd.qc"
+#include <menu/command/all.qc>
+#include <menu/command/menu_cmd.qc>
--- /dev/null
+// generated file; do not modify
+#include <menu/command/all.qh>
+#include <menu/command/menu_cmd.qh>
// generated file; do not modify
-#include "borderimage.qc"
-#include "button.qc"
-#include "checkbox.qc"
-#include "container.qc"
-#include "dialog.qc"
-#include "image.qc"
-#include "inputbox.qc"
-#include "inputcontainer.qc"
-#include "label.qc"
-#include "listbox.qc"
-#include "modalcontroller.qc"
-#include "nexposee.qc"
-#include "radiobutton.qc"
-#include "slider.qc"
-#include "tab.qc"
-#include "textslider.qc"
+#include <menu/item/borderimage.qc>
+#include <menu/item/button.qc>
+#include <menu/item/checkbox.qc>
+#include <menu/item/container.qc>
+#include <menu/item/dialog.qc>
+#include <menu/item/image.qc>
+#include <menu/item/inputbox.qc>
+#include <menu/item/inputcontainer.qc>
+#include <menu/item/label.qc>
+#include <menu/item/listbox.qc>
+#include <menu/item/modalcontroller.qc>
+#include <menu/item/nexposee.qc>
+#include <menu/item/radiobutton.qc>
+#include <menu/item/slider.qc>
+#include <menu/item/tab.qc>
+#include <menu/item/textslider.qc>
--- /dev/null
+// generated file; do not modify
+#include <menu/item/borderimage.qh>
+#include <menu/item/button.qh>
+#include <menu/item/checkbox.qh>
+#include <menu/item/container.qh>
+#include <menu/item/dialog.qh>
+#include <menu/item/image.qh>
+#include <menu/item/inputbox.qh>
+#include <menu/item/inputcontainer.qh>
+#include <menu/item/label.qh>
+#include <menu/item/listbox.qh>
+#include <menu/item/modalcontroller.qh>
+#include <menu/item/nexposee.qh>
+#include <menu/item/radiobutton.qh>
+#include <menu/item/slider.qh>
+#include <menu/item/tab.qh>
+#include <menu/item/textslider.qh>
--- /dev/null
+// generated file; do not modify
#include <lib/_all.inc>
-#include "_mod.inc"
+#include "../menu/_mod.inc"
#include "anim/_mod.inc"
#include "command/_mod.inc"
#include "item/_mod.inc"
// generated file; do not modify
-#include "bigbutton.qc"
-#include "bigcommandbutton.qc"
-#include "button.qc"
-#include "campaign.qc"
-#include "charmap.qc"
-#include "checkbox.qc"
-#include "checkbox_slider_invalid.qc"
-#include "checkbox_string.qc"
-#include "colorbutton.qc"
-#include "colorpicker.qc"
-#include "colorpicker_string.qc"
-#include "commandbutton.qc"
-#include "credits.qc"
-#include "crosshairpicker.qc"
-#include "crosshairpreview.qc"
-#include "cvarlist.qc"
-#include "datasource.qc"
-#include "demolist.qc"
-#include "dialog.qc"
-#include "dialog_credits.qc"
-#include "dialog_firstrun.qc"
-#include "dialog_hudpanel_ammo.qc"
-#include "dialog_hudpanel_centerprint.qc"
-#include "dialog_hudpanel_chat.qc"
-#include "dialog_hudpanel_engineinfo.qc"
-#include "dialog_hudpanel_healtharmor.qc"
-#include "dialog_hudpanel_infomessages.qc"
-#include "dialog_hudpanel_itemstime.qc"
-#include "dialog_hudpanel_modicons.qc"
-#include "dialog_hudpanel_notification.qc"
-#include "dialog_hudpanel_physics.qc"
-#include "dialog_hudpanel_powerups.qc"
-#include "dialog_hudpanel_pressedkeys.qc"
-#include "dialog_hudpanel_quickmenu.qc"
-#include "dialog_hudpanel_racetimer.qc"
-#include "dialog_hudpanel_radar.qc"
-#include "dialog_hudpanel_score.qc"
-#include "dialog_hudpanel_timer.qc"
-#include "dialog_hudpanel_vote.qc"
-#include "dialog_hudpanel_weapons.qc"
-#include "dialog_hudsetup_exit.qc"
-#include "dialog_monstertools.qc"
-#include "dialog_multiplayer.qc"
-#include "dialog_multiplayer_create.qc"
-#include "dialog_multiplayer_create_mapinfo.qc"
-#include "dialog_multiplayer_create_mutators.qc"
-#include "dialog_multiplayer_join.qc"
-#include "dialog_multiplayer_join_serverinfo.qc"
-#include "dialog_multiplayer_media.qc"
-#include "dialog_multiplayer_media_demo.qc"
-#include "dialog_multiplayer_media_demo_startconfirm.qc"
-#include "dialog_multiplayer_media_demo_timeconfirm.qc"
-#include "dialog_multiplayer_media_musicplayer.qc"
-#include "dialog_multiplayer_media_screenshot.qc"
-#include "dialog_multiplayer_media_screenshot_viewer.qc"
-#include "dialog_multiplayer_profile.qc"
-#include "dialog_quit.qc"
-#include "dialog_sandboxtools.qc"
-#include "dialog_settings.qc"
-#include "dialog_settings_audio.qc"
-#include "dialog_settings_effects.qc"
-#include "dialog_settings_game.qc"
-#include "dialog_settings_game_crosshair.qc"
-#include "dialog_settings_game_hud.qc"
-#include "dialog_settings_game_hudconfirm.qc"
-#include "dialog_settings_game_messages.qc"
-#include "dialog_settings_game_model.qc"
-#include "dialog_settings_game_view.qc"
-#include "dialog_settings_game_weapons.qc"
-#include "dialog_settings_input.qc"
-#include "dialog_settings_input_userbind.qc"
-#include "dialog_settings_misc.qc"
-#include "dialog_settings_misc_cvars.qc"
-#include "dialog_settings_misc_reset.qc"
-#include "dialog_settings_user.qc"
-#include "dialog_settings_user_languagewarning.qc"
-#include "dialog_settings_video.qc"
-#include "dialog_singleplayer.qc"
-#include "dialog_singleplayer_winner.qc"
-#include "dialog_teamselect.qc"
-#include "gametypelist.qc"
-#include "hudskinlist.qc"
-#include "image.qc"
-#include "inputbox.qc"
-#include "keybinder.qc"
-#include "languagelist.qc"
-#include "listbox.qc"
-#include "mainwindow.qc"
-#include "maplist.qc"
-#include "nexposee.qc"
-#include "picker.qc"
-#include "playerlist.qc"
-#include "playermodel.qc"
-#include "playlist.qc"
-#include "radiobutton.qc"
-#include "rootdialog.qc"
-#include "screenshotimage.qc"
-#include "screenshotlist.qc"
-#include "serverlist.qc"
-#include "skinlist.qc"
-#include "slider.qc"
-#include "slider_decibels.qc"
-#include "slider_particles.qc"
-#include "slider_picmip.qc"
-#include "slider_resolution.qc"
-#include "slider_sbfadetime.qc"
-#include "soundlist.qc"
-#include "statslist.qc"
-#include "tab.qc"
-#include "tabcontroller.qc"
-#include "textlabel.qc"
-#include "textslider.qc"
-#include "util.qc"
-#include "weaponarenacheckbox.qc"
-#include "weaponslist.qc"
+#include <menu/xonotic/bigbutton.qc>
+#include <menu/xonotic/bigcommandbutton.qc>
+#include <menu/xonotic/button.qc>
+#include <menu/xonotic/campaign.qc>
+#include <menu/xonotic/charmap.qc>
+#include <menu/xonotic/checkbox.qc>
+#include <menu/xonotic/checkbox_slider_invalid.qc>
+#include <menu/xonotic/checkbox_string.qc>
+#include <menu/xonotic/colorbutton.qc>
+#include <menu/xonotic/colorpicker.qc>
+#include <menu/xonotic/colorpicker_string.qc>
+#include <menu/xonotic/commandbutton.qc>
+#include <menu/xonotic/credits.qc>
+#include <menu/xonotic/crosshairpicker.qc>
+#include <menu/xonotic/crosshairpreview.qc>
+#include <menu/xonotic/cvarlist.qc>
+#include <menu/xonotic/datasource.qc>
+#include <menu/xonotic/demolist.qc>
+#include <menu/xonotic/dialog.qc>
+#include <menu/xonotic/dialog_credits.qc>
+#include <menu/xonotic/dialog_firstrun.qc>
+#include <menu/xonotic/dialog_hudpanel_ammo.qc>
+#include <menu/xonotic/dialog_hudpanel_centerprint.qc>
+#include <menu/xonotic/dialog_hudpanel_chat.qc>
+#include <menu/xonotic/dialog_hudpanel_engineinfo.qc>
+#include <menu/xonotic/dialog_hudpanel_healtharmor.qc>
+#include <menu/xonotic/dialog_hudpanel_infomessages.qc>
+#include <menu/xonotic/dialog_hudpanel_itemstime.qc>
+#include <menu/xonotic/dialog_hudpanel_modicons.qc>
+#include <menu/xonotic/dialog_hudpanel_notification.qc>
+#include <menu/xonotic/dialog_hudpanel_physics.qc>
+#include <menu/xonotic/dialog_hudpanel_powerups.qc>
+#include <menu/xonotic/dialog_hudpanel_pressedkeys.qc>
+#include <menu/xonotic/dialog_hudpanel_quickmenu.qc>
+#include <menu/xonotic/dialog_hudpanel_racetimer.qc>
+#include <menu/xonotic/dialog_hudpanel_radar.qc>
+#include <menu/xonotic/dialog_hudpanel_score.qc>
+#include <menu/xonotic/dialog_hudpanel_timer.qc>
+#include <menu/xonotic/dialog_hudpanel_vote.qc>
+#include <menu/xonotic/dialog_hudpanel_weapons.qc>
+#include <menu/xonotic/dialog_hudsetup_exit.qc>
+#include <menu/xonotic/dialog_monstertools.qc>
+#include <menu/xonotic/dialog_multiplayer.qc>
+#include <menu/xonotic/dialog_multiplayer_create.qc>
+#include <menu/xonotic/dialog_multiplayer_create_mapinfo.qc>
+#include <menu/xonotic/dialog_multiplayer_create_mutators.qc>
+#include <menu/xonotic/dialog_multiplayer_join.qc>
+#include <menu/xonotic/dialog_multiplayer_join_serverinfo.qc>
+#include <menu/xonotic/dialog_multiplayer_media.qc>
+#include <menu/xonotic/dialog_multiplayer_media_demo.qc>
+#include <menu/xonotic/dialog_multiplayer_media_demo_startconfirm.qc>
+#include <menu/xonotic/dialog_multiplayer_media_demo_timeconfirm.qc>
+#include <menu/xonotic/dialog_multiplayer_media_musicplayer.qc>
+#include <menu/xonotic/dialog_multiplayer_media_screenshot.qc>
+#include <menu/xonotic/dialog_multiplayer_media_screenshot_viewer.qc>
+#include <menu/xonotic/dialog_multiplayer_profile.qc>
+#include <menu/xonotic/dialog_quit.qc>
+#include <menu/xonotic/dialog_sandboxtools.qc>
+#include <menu/xonotic/dialog_settings.qc>
+#include <menu/xonotic/dialog_settings_audio.qc>
+#include <menu/xonotic/dialog_settings_effects.qc>
+#include <menu/xonotic/dialog_settings_game.qc>
+#include <menu/xonotic/dialog_settings_game_crosshair.qc>
+#include <menu/xonotic/dialog_settings_game_hud.qc>
+#include <menu/xonotic/dialog_settings_game_hudconfirm.qc>
+#include <menu/xonotic/dialog_settings_game_messages.qc>
+#include <menu/xonotic/dialog_settings_game_model.qc>
+#include <menu/xonotic/dialog_settings_game_view.qc>
+#include <menu/xonotic/dialog_settings_game_weapons.qc>
+#include <menu/xonotic/dialog_settings_input.qc>
+#include <menu/xonotic/dialog_settings_input_userbind.qc>
+#include <menu/xonotic/dialog_settings_misc.qc>
+#include <menu/xonotic/dialog_settings_misc_cvars.qc>
+#include <menu/xonotic/dialog_settings_misc_reset.qc>
+#include <menu/xonotic/dialog_settings_user.qc>
+#include <menu/xonotic/dialog_settings_user_languagewarning.qc>
+#include <menu/xonotic/dialog_settings_video.qc>
+#include <menu/xonotic/dialog_singleplayer.qc>
+#include <menu/xonotic/dialog_singleplayer_winner.qc>
+#include <menu/xonotic/dialog_teamselect.qc>
+#include <menu/xonotic/gametypelist.qc>
+#include <menu/xonotic/hudskinlist.qc>
+#include <menu/xonotic/image.qc>
+#include <menu/xonotic/inputbox.qc>
+#include <menu/xonotic/keybinder.qc>
+#include <menu/xonotic/languagelist.qc>
+#include <menu/xonotic/listbox.qc>
+#include <menu/xonotic/mainwindow.qc>
+#include <menu/xonotic/maplist.qc>
+#include <menu/xonotic/nexposee.qc>
+#include <menu/xonotic/picker.qc>
+#include <menu/xonotic/playerlist.qc>
+#include <menu/xonotic/playermodel.qc>
+#include <menu/xonotic/playlist.qc>
+#include <menu/xonotic/radiobutton.qc>
+#include <menu/xonotic/rootdialog.qc>
+#include <menu/xonotic/screenshotimage.qc>
+#include <menu/xonotic/screenshotlist.qc>
+#include <menu/xonotic/serverlist.qc>
+#include <menu/xonotic/skinlist.qc>
+#include <menu/xonotic/slider.qc>
+#include <menu/xonotic/slider_decibels.qc>
+#include <menu/xonotic/slider_particles.qc>
+#include <menu/xonotic/slider_picmip.qc>
+#include <menu/xonotic/slider_resolution.qc>
+#include <menu/xonotic/slider_sbfadetime.qc>
+#include <menu/xonotic/soundlist.qc>
+#include <menu/xonotic/statslist.qc>
+#include <menu/xonotic/tab.qc>
+#include <menu/xonotic/tabcontroller.qc>
+#include <menu/xonotic/textlabel.qc>
+#include <menu/xonotic/textslider.qc>
+#include <menu/xonotic/util.qc>
+#include <menu/xonotic/weaponarenacheckbox.qc>
+#include <menu/xonotic/weaponslist.qc>
--- /dev/null
+// generated file; do not modify
+#include <menu/xonotic/bigbutton.qh>
+#include <menu/xonotic/bigcommandbutton.qh>
+#include <menu/xonotic/button.qh>
+#include <menu/xonotic/campaign.qh>
+#include <menu/xonotic/charmap.qh>
+#include <menu/xonotic/checkbox.qh>
+#include <menu/xonotic/checkbox_slider_invalid.qh>
+#include <menu/xonotic/checkbox_string.qh>
+#include <menu/xonotic/colorbutton.qh>
+#include <menu/xonotic/colorpicker.qh>
+#include <menu/xonotic/colorpicker_string.qh>
+#include <menu/xonotic/commandbutton.qh>
+#include <menu/xonotic/credits.qh>
+#include <menu/xonotic/crosshairpicker.qh>
+#include <menu/xonotic/crosshairpreview.qh>
+#include <menu/xonotic/cvarlist.qh>
+#include <menu/xonotic/datasource.qh>
+#include <menu/xonotic/demolist.qh>
+#include <menu/xonotic/dialog.qh>
+#include <menu/xonotic/dialog_credits.qh>
+#include <menu/xonotic/dialog_firstrun.qh>
+#include <menu/xonotic/dialog_hudpanel_ammo.qh>
+#include <menu/xonotic/dialog_hudpanel_centerprint.qh>
+#include <menu/xonotic/dialog_hudpanel_chat.qh>
+#include <menu/xonotic/dialog_hudpanel_engineinfo.qh>
+#include <menu/xonotic/dialog_hudpanel_healtharmor.qh>
+#include <menu/xonotic/dialog_hudpanel_infomessages.qh>
+#include <menu/xonotic/dialog_hudpanel_itemstime.qh>
+#include <menu/xonotic/dialog_hudpanel_modicons.qh>
+#include <menu/xonotic/dialog_hudpanel_notification.qh>
+#include <menu/xonotic/dialog_hudpanel_physics.qh>
+#include <menu/xonotic/dialog_hudpanel_powerups.qh>
+#include <menu/xonotic/dialog_hudpanel_pressedkeys.qh>
+#include <menu/xonotic/dialog_hudpanel_quickmenu.qh>
+#include <menu/xonotic/dialog_hudpanel_racetimer.qh>
+#include <menu/xonotic/dialog_hudpanel_radar.qh>
+#include <menu/xonotic/dialog_hudpanel_score.qh>
+#include <menu/xonotic/dialog_hudpanel_timer.qh>
+#include <menu/xonotic/dialog_hudpanel_vote.qh>
+#include <menu/xonotic/dialog_hudpanel_weapons.qh>
+#include <menu/xonotic/dialog_hudsetup_exit.qh>
+#include <menu/xonotic/dialog_monstertools.qh>
+#include <menu/xonotic/dialog_multiplayer.qh>
+#include <menu/xonotic/dialog_multiplayer_create.qh>
+#include <menu/xonotic/dialog_multiplayer_create_mapinfo.qh>
+#include <menu/xonotic/dialog_multiplayer_create_mutators.qh>
+#include <menu/xonotic/dialog_multiplayer_join.qh>
+#include <menu/xonotic/dialog_multiplayer_join_serverinfo.qh>
+#include <menu/xonotic/dialog_multiplayer_media.qh>
+#include <menu/xonotic/dialog_multiplayer_media_demo.qh>
+#include <menu/xonotic/dialog_multiplayer_media_demo_startconfirm.qh>
+#include <menu/xonotic/dialog_multiplayer_media_demo_timeconfirm.qh>
+#include <menu/xonotic/dialog_multiplayer_media_musicplayer.qh>
+#include <menu/xonotic/dialog_multiplayer_media_screenshot.qh>
+#include <menu/xonotic/dialog_multiplayer_media_screenshot_viewer.qh>
+#include <menu/xonotic/dialog_multiplayer_profile.qh>
+#include <menu/xonotic/dialog_quit.qh>
+#include <menu/xonotic/dialog_sandboxtools.qh>
+#include <menu/xonotic/dialog_settings.qh>
+#include <menu/xonotic/dialog_settings_audio.qh>
+#include <menu/xonotic/dialog_settings_effects.qh>
+#include <menu/xonotic/dialog_settings_game.qh>
+#include <menu/xonotic/dialog_settings_game_crosshair.qh>
+#include <menu/xonotic/dialog_settings_game_hud.qh>
+#include <menu/xonotic/dialog_settings_game_hudconfirm.qh>
+#include <menu/xonotic/dialog_settings_game_messages.qh>
+#include <menu/xonotic/dialog_settings_game_model.qh>
+#include <menu/xonotic/dialog_settings_game_view.qh>
+#include <menu/xonotic/dialog_settings_game_weapons.qh>
+#include <menu/xonotic/dialog_settings_input.qh>
+#include <menu/xonotic/dialog_settings_input_userbind.qh>
+#include <menu/xonotic/dialog_settings_misc.qh>
+#include <menu/xonotic/dialog_settings_misc_cvars.qh>
+#include <menu/xonotic/dialog_settings_misc_reset.qh>
+#include <menu/xonotic/dialog_settings_user.qh>
+#include <menu/xonotic/dialog_settings_user_languagewarning.qh>
+#include <menu/xonotic/dialog_settings_video.qh>
+#include <menu/xonotic/dialog_singleplayer.qh>
+#include <menu/xonotic/dialog_singleplayer_winner.qh>
+#include <menu/xonotic/dialog_teamselect.qh>
+#include <menu/xonotic/gametypelist.qh>
+#include <menu/xonotic/hudskinlist.qh>
+#include <menu/xonotic/image.qh>
+#include <menu/xonotic/inputbox.qh>
+#include <menu/xonotic/keybinder.qh>
+#include <menu/xonotic/languagelist.qh>
+#include <menu/xonotic/listbox.qh>
+#include <menu/xonotic/mainwindow.qh>
+#include <menu/xonotic/maplist.qh>
+#include <menu/xonotic/nexposee.qh>
+#include <menu/xonotic/picker.qh>
+#include <menu/xonotic/playerlist.qh>
+#include <menu/xonotic/playermodel.qh>
+#include <menu/xonotic/playlist.qh>
+#include <menu/xonotic/radiobutton.qh>
+#include <menu/xonotic/rootdialog.qh>
+#include <menu/xonotic/screenshotimage.qh>
+#include <menu/xonotic/screenshotlist.qh>
+#include <menu/xonotic/serverlist.qh>
+#include <menu/xonotic/skinlist.qh>
+#include <menu/xonotic/slider.qh>
+#include <menu/xonotic/slider_decibels.qh>
+#include <menu/xonotic/slider_particles.qh>
+#include <menu/xonotic/slider_picmip.qh>
+#include <menu/xonotic/slider_resolution.qh>
+#include <menu/xonotic/slider_sbfadetime.qh>
+#include <menu/xonotic/soundlist.qh>
+#include <menu/xonotic/statslist.qh>
+#include <menu/xonotic/tab.qh>
+#include <menu/xonotic/tabcontroller.qh>
+#include <menu/xonotic/textlabel.qh>
+#include <menu/xonotic/textslider.qh>
+#include <menu/xonotic/util.qh>
+#include <menu/xonotic/weaponarenacheckbox.qh>
+#include <menu/xonotic/weaponslist.qh>
me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Weapon ID scale:")));
+ setDependent(e, "hud_panel_weapons_label", 1, 2);
me.TD(me, 1, 2.4, e = makeXonoticSlider(0.1, 1, 0.05, "hud_panel_weapons_label_scale"));
setDependent(e, "hud_panel_weapons_label", 1, 2);
me.TR(me);
me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, 1, 1.4, e = makeXonoticTextLabel(0, _("Ammo bar alpha:")));
+ setDependent(e, "hud_panel_weapons_ammo", 1, 1);
me.TD(me, 1, 2.4, e = makeXonoticSlider(0.1, 1, 0.1, "hud_panel_weapons_ammo_alpha"));
setDependent(e, "hud_panel_weapons_ammo", 1, 1);
me.TR(me);
me.TDempty(me, 0.2);
me.TD(me, 1, 1.2, e = makeXonoticTextLabel(0, _("Ammo bar color:")));
+ setDependent(e, "hud_panel_weapons_ammo", 1, 1);
me.TD(me, 2, 2.4, e = makeXonoticColorpickerString("hud_panel_weapons_ammo_color", "hud_panel_weapons_ammo_color"));
setDependent(e, "hud_panel_weapons_ammo", 1, 1);
me.TR(me);
setDependent(e, "crosshair_enabled", 1, 2);
me.TR(me);
me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Hit testing:")));
+ setDependent(e, "crosshair_enabled", 1, 2);
me.TD(me, 1, 2, e = makeXonoticTextSlider_T("crosshair_hittest",
_("None: do not do hit tests for the crosshair; TrueAim: blur the crosshair when you would not hit the wall; Enemies: also enlarge the crosshair when you would hit an enemy")));
e.addValue(e, ZCTX(_("HTTST^Disabled")), "0");
// generated file; do not modify
-#include "anticheat.qc"
-#include "antilag.qc"
-#include "campaign.qc"
-#include "cheats.qc"
-#include "cl_client.qc"
-#include "cl_impulse.qc"
-#include "cl_player.qc"
-#include "g_damage.qc"
-#include "g_hook.qc"
-#include "g_lights.qc"
-#include "g_models.qc"
-#include "g_subs.qc"
-#include "g_world.qc"
-#include "ipban.qc"
-#include "item_key.qc"
-#include "mapvoting.qc"
-#include "matrix.qc"
-#include "miscfunctions.qc"
-#include "playerdemo.qc"
-#include "portals.qc"
-#include "race.qc"
-#include "round_handler.qc"
-#include "scores.qc"
-#include "scores_rules.qc"
-#include "spawnpoints.qc"
-#include "steerlib.qc"
-#include "sv_main.qc"
-#include "teamplay.qc"
-#include "tests.qc"
-#include "t_halflife.qc"
-#include "t_quake.qc"
-#include "t_quake3.qc"
+#include <server/anticheat.qc>
+#include <server/antilag.qc>
+#include <server/campaign.qc>
+#include <server/cheats.qc>
+#include <server/cl_client.qc>
+#include <server/cl_impulse.qc>
+#include <server/cl_player.qc>
+#include <server/g_damage.qc>
+#include <server/g_hook.qc>
+#include <server/g_lights.qc>
+#include <server/g_models.qc>
+#include <server/g_subs.qc>
+#include <server/g_world.qc>
+#include <server/ipban.qc>
+#include <server/item_key.qc>
+#include <server/mapvoting.qc>
+#include <server/matrix.qc>
+#include <server/miscfunctions.qc>
+#include <server/playerdemo.qc>
+#include <server/portals.qc>
+#include <server/race.qc>
+#include <server/round_handler.qc>
+#include <server/scores.qc>
+#include <server/scores_rules.qc>
+#include <server/spawnpoints.qc>
+#include <server/steerlib.qc>
+#include <server/sv_main.qc>
+#include <server/teamplay.qc>
+#include <server/tests.qc>
+#include <server/t_halflife.qc>
+#include <server/t_quake.qc>
+#include <server/t_quake3.qc>
--- /dev/null
+// generated file; do not modify
+#include <server/anticheat.qh>
+#include <server/antilag.qh>
+#include <server/campaign.qh>
+#include <server/cheats.qh>
+#include <server/cl_client.qh>
+#include <server/cl_impulse.qh>
+#include <server/cl_player.qh>
+#include <server/g_damage.qh>
+#include <server/g_hook.qh>
+#include <server/g_lights.qh>
+#include <server/g_models.qh>
+#include <server/g_subs.qh>
+#include <server/g_world.qh>
+#include <server/ipban.qh>
+#include <server/item_key.qh>
+#include <server/mapvoting.qh>
+#include <server/matrix.qh>
+#include <server/miscfunctions.qh>
+#include <server/playerdemo.qh>
+#include <server/portals.qh>
+#include <server/race.qh>
+#include <server/round_handler.qh>
+#include <server/scores.qh>
+#include <server/scores_rules.qh>
+#include <server/spawnpoints.qh>
+#include <server/steerlib.qh>
+#include <server/sv_main.qh>
+#include <server/teamplay.qh>
+#include <server/tests.qh>
+#include <server/t_halflife.qh>
+#include <server/t_quake.qh>
+#include <server/t_quake3.qh>
// generated file; do not modify
-#include "aim.qc"
-#include "bot.qc"
-#include "navigation.qc"
-#include "scripting.qc"
-#include "waypoints.qc"
+#include <server/bot/aim.qc>
+#include <server/bot/bot.qc>
+#include <server/bot/navigation.qc>
+#include <server/bot/scripting.qc>
+#include <server/bot/waypoints.qc>
--- /dev/null
+// generated file; do not modify
+#include <server/bot/aim.qh>
+#include <server/bot/bot.qh>
+#include <server/bot/navigation.qh>
+#include <server/bot/scripting.qh>
+#include <server/bot/waypoints.qh>
}
this.bot_aimtarg = e1;
this.bot_aimlatency = this.ping; // FIXME? Shouldn't this be in the lag item?
- this.bot_aimselforigin = v1;
- this.bot_aimselfvelocity = v2;
+ //this.bot_aimselforigin = v1;
+ //this.bot_aimselfvelocity = v2;
this.bot_aimtargorigin = v3;
this.bot_aimtargvelocity = v4;
if(skill <= 0)
.vector bot_5th_order_aimfilter;
.vector bot_olddesiredang;
-.vector bot_aimselforigin;
-.vector bot_aimselfvelocity;
+//.vector bot_aimselforigin;
+//.vector bot_aimselfvelocity;
.vector bot_aimtargorigin;
.vector bot_aimtargvelocity;
// generated file; do not modify
-#include "havocbot.qc"
-#include "roles.qc"
+#include <server/bot/havocbot/havocbot.qc>
+#include <server/bot/havocbot/roles.qc>
--- /dev/null
+// generated file; do not modify
+#include <server/bot/havocbot/havocbot.qh>
+#include <server/bot/havocbot/roles.qh>
void havocbot_aim(entity this)
{
- vector selfvel, enemyvel;
+ vector myvel, enemyvel;
// if(this.flags & FL_INWATER)
// return;
if (time < this.nextaim)
return;
this.nextaim = time + 0.1;
- selfvel = this.velocity;
+ myvel = this.velocity;
if (!this.waterlevel)
- selfvel.z = 0;
+ myvel.z = 0;
if (this.enemy)
{
enemyvel = this.enemy.velocity;
if (!this.enemy.waterlevel)
enemyvel.z = 0;
- lag_additem(this, time + this.ping, 0, 0, this.enemy, this.origin, selfvel, (this.enemy.absmin + this.enemy.absmax) * 0.5, enemyvel);
+ lag_additem(this, time + this.ping, 0, 0, this.enemy, this.origin, myvel, (this.enemy.absmin + this.enemy.absmax) * 0.5, enemyvel);
}
else
- lag_additem(this, time + this.ping, 0, 0, world, this.origin, selfvel, ( this.goalcurrent.absmin + this.goalcurrent.absmax ) * 0.5, '0 0 0');
+ lag_additem(this, time + this.ping, 0, 0, world, this.origin, myvel, ( this.goalcurrent.absmin + this.goalcurrent.absmax ) * 0.5, '0 0 0');
}
bool havocbot_moveto_refresh_route(entity this)
// LordHavoc: disabled because this is too expensive
return '0 0 0';
#if 0
+SELFPARAM();
entity head;
vector dodge, v, n;
float danger, bestdanger, vl, d;
head = findchainfloat(bot_dodge, true);
while(head)
{
- if (head.owner != self)
+ if (head.owner != this)
{
vl = vlen(head.velocity);
if (vl > autocvar_sv_maxspeed * 0.3)
{
n = normalize(head.velocity);
- v = self.origin - head.origin;
+ v = this.origin - head.origin;
d = v * n;
if (d > (0 - head.bot_dodgerating))
if (d < (vl * 0.2 + head.bot_dodgerating))
}
else
{
- danger = head.bot_dodgerating - vlen(head.origin - self.origin);
+ danger = head.bot_dodgerating - vlen(head.origin - this.origin);
if (bestdanger < danger)
{
bestdanger = danger;
- dodge = normalize(self.origin - head.origin);
+ dodge = normalize(this.origin - head.origin);
}
}
}
bot_navigation_movemode = ((autocvar_bot_navigation_ignoreplayers) ? MOVE_NOMONSTERS : MOVE_NORMAL);
- //dprint("waypoint_think wpisbox = ", ftos(self.wpisbox), "\n");
- sm1 = self.origin + self.mins;
- sm2 = self.origin + self.maxs;
+ //dprint("waypoint_think wpisbox = ", ftos(this.wpisbox), "\n");
+ sm1 = this.origin + this.mins;
+ sm2 = this.origin + this.maxs;
for(e = world; (e = find(e, classname, "waypoint")); )
{
- if (boxesoverlap(self.absmin, self.absmax, e.absmin, e.absmax))
+ if (boxesoverlap(this.absmin, this.absmax, e.absmin, e.absmax))
{
- waypoint_addlink(self, e);
- waypoint_addlink(e, self);
+ waypoint_addlink(this, e);
+ waypoint_addlink(e, this);
}
else
{
++relink_total;
- if(!checkpvs(self.origin, e))
+ if(!checkpvs(this.origin, e))
{
++relink_pvsculled;
continue;
sv.x = bound(sm1_x, sv.x, sm2_x);
sv.y = bound(sm1_y, sv.y, sm2_y);
sv.z = bound(sm1_z, sv.z, sm2_z);
- ev = self.origin;
+ ev = this.origin;
em1 = e.origin + e.mins;
em2 = e.origin + e.maxs;
ev.x = bound(em1_x, ev.x, em2_x);
continue;
}
navigation_testtracewalk = 0;
- if (!self.wpisbox)
+ if (!this.wpisbox)
{
- tracebox(sv - STAT(PL_MIN, NULL).z * '0 0 1', STAT(PL_MIN, NULL), STAT(PL_MAX, NULL), sv, false, self);
+ tracebox(sv - STAT(PL_MIN, NULL).z * '0 0 1', STAT(PL_MIN, NULL), STAT(PL_MAX, NULL), sv, false, this);
if (!trace_startsolid)
{
//dprint("sv deviation", vtos(trace_endpos - sv), "\n");
ev = trace_endpos + '0 0 1';
}
}
- //traceline(self.origin, e.origin, false, world);
+ //traceline(this.origin, e.origin, false, world);
//if (trace_fraction == 1)
- if (!self.wpisbox && tracewalk(self, sv, STAT(PL_MIN, NULL), STAT(PL_MAX, NULL), ev, MOVE_NOMONSTERS))
- waypoint_addlink(self, e);
+ if (!this.wpisbox && tracewalk(this, sv, STAT(PL_MIN, NULL), STAT(PL_MAX, NULL), ev, MOVE_NOMONSTERS))
+ waypoint_addlink(this, e);
else
relink_walkculled += 0.5;
if (!e.wpisbox && tracewalk(e, ev, STAT(PL_MIN, NULL), STAT(PL_MAX, NULL), sv, MOVE_NOMONSTERS))
- waypoint_addlink(e, self);
+ waypoint_addlink(e, this);
else
relink_walkculled += 0.5;
}
}
navigation_testtracewalk = 0;
- self.wplinked = true;
+ this.wplinked = true;
}
void waypoint_clearlinks(entity wp)
// generated file; do not modify
-#include "all.qc"
-#include "banning.qc"
-#include "cmd.qc"
-#include "common.qc"
-#include "getreplies.qc"
-#include "radarmap.qc"
-#include "sv_cmd.qc"
-#include "vote.qc"
+#include <server/command/all.qc>
+#include <server/command/banning.qc>
+#include <server/command/cmd.qc>
+#ifdef SVQC
+ #include <server/command/sv_cmd.qc>
+#endif
+#include <server/command/common.qc>
+#include <server/command/getreplies.qc>
+#include <server/command/radarmap.qc>
+#include <server/command/vote.qc>
--- /dev/null
+// generated file; do not modify
+#include <server/command/all.qh>
+#include <server/command/banning.qh>
+#include <server/command/cmd.qh>
+#include <server/command/common.qh>
+#include <server/command/getreplies.qh>
+#include <server/command/radarmap.qh>
+#include <server/command/vote.qh>
// generated file; do not modify
-#include "all.qc"
+#include <server/mutators/all.qc>
--- /dev/null
+// generated file; do not modify
+#include <server/mutators/all.qh>
// generated file; do not modify
-#include "gamemode_assault.qc"
-#include "gamemode_ca.qc"
-#include "gamemode_ctf.qc"
-#include "gamemode_cts.qc"
-#include "gamemode_deathmatch.qc"
-#include "gamemode_domination.qc"
-#include "gamemode_freezetag.qc"
-#include "gamemode_invasion.qc"
-#include "gamemode_keepaway.qc"
-#include "gamemode_keyhunt.qc"
-#include "gamemode_lms.qc"
-#include "gamemode_race.qc"
-#include "gamemode_tdm.qc"
+#include <server/mutators/mutator/gamemode_assault.qc>
+#include <server/mutators/mutator/gamemode_ca.qc>
+#include <server/mutators/mutator/gamemode_ctf.qc>
+#include <server/mutators/mutator/gamemode_cts.qc>
+#include <server/mutators/mutator/gamemode_deathmatch.qc>
+#include <server/mutators/mutator/gamemode_domination.qc>
+#include <server/mutators/mutator/gamemode_freezetag.qc>
+#include <server/mutators/mutator/gamemode_invasion.qc>
+#include <server/mutators/mutator/gamemode_keepaway.qc>
+#include <server/mutators/mutator/gamemode_keyhunt.qc>
+#include <server/mutators/mutator/gamemode_lms.qc>
+#include <server/mutators/mutator/gamemode_race.qc>
+#include <server/mutators/mutator/gamemode_tdm.qc>
--- /dev/null
+// generated file; do not modify
+#include <server/mutators/mutator/gamemode_assault.qh>
+#include <server/mutators/mutator/gamemode_ca.qh>
+#include <server/mutators/mutator/gamemode_ctf.qh>
+#include <server/mutators/mutator/gamemode_cts.qh>
+#include <server/mutators/mutator/gamemode_deathmatch.qh>
+#include <server/mutators/mutator/gamemode_domination.qh>
+#include <server/mutators/mutator/gamemode_freezetag.qh>
+#include <server/mutators/mutator/gamemode_invasion.qh>
+#include <server/mutators/mutator/gamemode_keepaway.qh>
+#include <server/mutators/mutator/gamemode_keyhunt.qh>
+#include <server/mutators/mutator/gamemode_lms.qh>
+#include <server/mutators/mutator/gamemode_race.qh>
+#include <server/mutators/mutator/gamemode_tdm.qh>
// generated file; do not modify
-#include "costs.qc"
-#include "debug.qc"
-#include "expandnode.qc"
-#include "main.qc"
-#include "movenode.qc"
-#include "path_waypoint.qc"
-#include "utility.qc"
+#include <server/pathlib/costs.qc>
+#include <server/pathlib/debug.qc>
+#include <server/pathlib/expandnode.qc>
+#include <server/pathlib/main.qc>
+#include <server/pathlib/movenode.qc>
+#include <server/pathlib/path_waypoint.qc>
+#include <server/pathlib/utility.qc>
--- /dev/null
+// generated file; do not modify
+#include <server/pathlib/costs.qh>
+#include <server/pathlib/debug.qh>
+#include <server/pathlib/expandnode.qh>
+#include <server/pathlib/main.qh>
+#include <server/pathlib/movenode.qh>
+#include <server/pathlib/path_waypoint.qh>
+#include <server/pathlib/utility.qh>
#include <lib/_all.inc>
#include "_all.qh"
-#include "_mod.inc"
+#include "../server/_mod.inc"
#include "bot/_mod.inc"
#include "bot/havocbot/_mod.inc"
#include "command/_mod.inc"
// generated file; do not modify
-#include "accuracy.qc"
-#include "common.qc"
-#include "csqcprojectile.qc"
-#include "hitplot.qc"
-#include "selection.qc"
-#include "spawning.qc"
-#include "throwing.qc"
-#include "tracing.qc"
-#include "weaponstats.qc"
-#include "weaponsystem.qc"
+#include <server/weapons/accuracy.qc>
+#include <server/weapons/common.qc>
+#include <server/weapons/csqcprojectile.qc>
+#include <server/weapons/hitplot.qc>
+#include <server/weapons/selection.qc>
+#include <server/weapons/spawning.qc>
+#include <server/weapons/throwing.qc>
+#include <server/weapons/tracing.qc>
+#include <server/weapons/weaponstats.qc>
+#include <server/weapons/weaponsystem.qc>
--- /dev/null
+// generated file; do not modify
+#include <server/weapons/accuracy.qh>
+#include <server/weapons/common.qh>
+#include <server/weapons/csqcprojectile.qh>
+#include <server/weapons/hitplot.qh>
+#include <server/weapons/selection.qh>
+#include <server/weapons/spawning.qh>
+#include <server/weapons/throwing.qh>
+#include <server/weapons/tracing.qh>
+#include <server/weapons/weaponstats.qh>
+#include <server/weapons/weaponsystem.qh>
set -eu
cd "$(dirname "$0")"
cd ..
+ROOT=$PWD/
-MOD=_mod.inc
+MOD=_mod
function genmod() {
- echo '// generated file; do not modify' > ${MOD}
+ # use context to work around cmake issue #12619
+ CTX="${PWD#$ROOT}/"
+ echo '// generated file; do not modify' > ${MOD}.inc
+ echo '// generated file; do not modify' > ${MOD}.qh
for f in $(ls | sort -k 1,1 -t .); do
- if [[ "$f" == *.qc ]]; then echo "#include \"$f\"" >> ${MOD}; fi
+ if [[ "$f" == cl_* ]]; then if [[ -f "${f#cl_}" ]]; then continue; fi; fi
+ if [[ "$f" == sv_* ]]; then if [[ -f "${f#sv_}" ]]; then continue; fi; fi
+ if [[ "$f" == ui_* ]]; then if [[ -f "${f#ui_}" ]]; then continue; fi; fi
+ if [[ "$f" == *.qc ]]; then
+ echo "#include <${CTX}$f>" >> ${MOD}.inc
+ echo "#include <${CTX}${f%.qc}.qh>" >> ${MOD}.qh
+ if [[ -f "cl_$f" ]]; then echo -e "#ifdef CSQC\n #include <${CTX}cl_$f>\n#endif" >> ${MOD}.inc; fi
+ if [[ -f "sv_$f" ]]; then echo -e "#ifdef SVQC\n #include <${CTX}sv_$f>\n#endif" >> ${MOD}.inc; fi
+ if [[ -f "ui_$f" ]]; then echo -e "#ifdef MENUQC\n #include <${CTX}ui_$f>\n#endif" >> ${MOD}.inc; fi
+ fi
done
# echo >> ${MOD}
for f in *; do if [ -d "$f" ]; then