]> git.xonotic.org Git - xonotic/xonotic.wiki.git/blobdiff - Programming-QuakeC-stuff-in-Xonotic.md
Update Compiling: add libtool dependency
[xonotic/xonotic.wiki.git] / Programming-QuakeC-stuff-in-Xonotic.md
index b16b24741099dac6f8545f720286215fa009507f..d87431e0e4b4c801bbd0d711f25f86f166d26483 100644 (file)
@@ -1,4 +1,17 @@
-**Note:** The article is written as developer notes to ease developer tasks and save QuakeC terms here.
+_This article is written as developer notes to ease developer tasks and save QuakeC terms here._
+
+# _Table of Contents_
+> ### 1. [CSQC, MENUQC, SVQC and GAMEQC blocks](#csqc-menuqc-svqc-and-gameqc-blocks)
+> ### 2. [MUTATOR functions](#mutator-functions)
+> > 2.1. [How to use MUTATOR functions](#how-to-use-mutator-functions) <br/>
+> > 2.2. [List of MUTATOR functions](#list-of-mutator-functions)
+> ### 3. [Weapon functions](#weapon-functions)
+> > 3.1. [A bit of introduction](#a-bit-of-introduction) <br/>
+> > 3.2. [List of weapon functions](#list-of-weapon-functions)
+> ### 4. [HUD, Menu and Draw functions](#hud-menu-and-draw-functions)
+> ### 5. [Gamemodes](#gamemodes)
+> > 5.1. [Samples](#samples)
+> ### 6. [Effects](#effects)
 
 # CSQC, MENUQC, SVQC and GAMEQC blocks
 
@@ -30,12 +43,16 @@ Example: `sv_campcheck` is clearly a server cvar (**sv_*** cvars are server cvar
 
 Example: `cl_chatsound` is clearly a client cvar (**cl_*** cvars are client cvars), only can be declared inside a **`#ifdef CSQC`** block.
 
+- **hud_*** cvars:
+
+Example: `hud_progressbar_alpha` is a client cvar (**hud_*** cvars belong to client cvars), only can be declared inside a **`#ifdef CSQC`** block.
+
 
 <br />
 
-# MUTATOR functions (from: [`qcsrc/client/mutators/events.qh`](https://timepath.github.io/scratchspace/d8/d0e/client_2mutators_2events_8qh_source.html), [`qcsrc/common/mutators/events.qh`](https://timepath.github.io/scratchspace/d4/d95/common_2mutators_2events_8qh_source.html), [`qcsrc/server/mutators/events.qh`](https://timepath.github.io/scratchspace/d6/ddd/server_2mutators_2events_8qh_source.html))
+# MUTATOR functions
 
-### How to use MUTATOR functions:
+### How to use MUTATOR functions
 
 You can look the following link if you're trying/testing your own mutator: [Writing your first mutator](writing-your-first-mutator)
 
@@ -194,6 +211,10 @@ You can look the draw functions where HUD is being drawn:
 More info inside the code where you can draw/print HUD and menu: 
 - [**Globals, constants, fonts, prints, error cmds, vector stuff, conversion functions and all drawing/printing HUDs/menus/characters related (`qcsrc/dpdefs/upstream/menudefs.qc`)**](https://timepath.github.io/scratchspace/d8/de2/menudefs_8qc_source.html)
 
+Important changes about menus we could learn of:
+- [**Terms of Service in window display and multiplayer dialog**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/commit/19bd3a4f)
+- [**Welcome dialog**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/commit/19d753312f0deff7bd297822907874d532e9303e)
+- [**A button to properly quit the campaign, a "Game menu" (on ESC) and remove the Disconnect dialogue**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/commit/2b2f743fc929bbbe0fc765edf8c433c946764607)
 <br />
 
 # Gamemodes
@@ -286,12 +307,33 @@ Making gamemodes doesn't seem easy. There's a little explanation of what does ea
 
 ## Samples
 
-There are good examples of the commits of the people who developed gamemodes:
+There are good examples of the commits and repositories of people who developed gamemodes:
+
+- [**Lyberta's GunGame gametype commits**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/482/diffs)
+
+Taken from: https://forums.xonotic.org/showthread.php?tid=7314
 
-- [**Lyberta's GunGame gametype**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/merge_requests/482/diffs) (Taken from: https://forums.xonotic.org/showthread.php?tid=7314)
+You can look and test the [**Lyberta's GunGame gametype repository**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/Lyberta/GunGame)
+
+- [**How Survival gamemode was developed (first commit)**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/commit/8f61a40877542ac94baa74c5ed653c77b77bd855)
+
+It's recommended use the final product in this [**repository**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/Mario/survival). Many changes have been influenced.
 
-- [**How Survival gamemode was developed (first commit)**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/commit/8f61a40877542ac94baa74c5ed653c77b77bd855) (It's recommended look the final product in this [**repository**](https://gitlab.com/xonotic/xonotic-data.pk3dir/-/tree/Mario/survival)) 
 [**SMB modpack repository**](https://github.com/MarioSMB/modpack/tree/master/mod/common/gamemodes/survival) has added Survival gamemode and others.
 
+# Effects
+
+Spawns effect particle in-game.
+
+The effects can be used with `Send_Effect(effect, org, vel, howmany)` function to test the effects from [**qcsrc/common/effects/all.inc**](https://timepath.github.io/scratchspace/d9/d95/effects_2all_8inc_source.html)
+
+**Send_Effect** function definition is inside: [**qcsrc/common/effects/effect.qh**](https://timepath.github.io/scratchspace/d5/de6/effect_8qh_source.html)
+
+For example, you can test the smokes, using `EFFECT_SMOKE_LARGE`:
+```c
+Send_Effect(EFFECT_SMOKE_LARGE, this.origin, '0 0 0', 1);
+```
+
+EFFECT list: [**qcsrc/common/effects/all.inc**](https://timepath.github.io/scratchspace/d9/d95/effects_2all_8inc_source.html)
 
 <br />
\ No newline at end of file