]> git.xonotic.org Git - xonotic/xonotic.wiki.git/blobdiff - Programming-QuakeC-stuff-in-Xonotic.md
Added source code files to know where stuff was developed
[xonotic/xonotic.wiki.git] / Programming-QuakeC-stuff-in-Xonotic.md
index 59c0bbbdd0eee3fa8f9293146b77b0eee6f92d35..8c5970c06b283cf0ad8f726be227b828a18d3b71 100644 (file)
@@ -1,5 +1,27 @@
 **Note:** The 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)
+>
+> 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)
+>
+> 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
 
 Xonotic uses the ***csprogs.dat*** from the server you're playing on, as it must match the server's ***progs.dat*** code (whereas your ***menu.dat*** is always your local copy).
@@ -30,12 +52,18 @@ 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)
 
 **Attention:** to use a hook, first register your mutator using `REGISTER_MUTATOR`, then create your function using `MUTATOR_HOOKFUNCTION`.
 
@@ -108,7 +136,7 @@ You can look the MUTATOR functions in:
 <br />
 <br />
 
-# WEAPON functions
+# Weapon functions
 
 ## A bit of introduction
 
@@ -125,7 +153,7 @@ You can look the example of this weapon code:
 
 <br />
 
-## List of WEAPON functions
+## List of weapon functions
 
 This is a created list of functions to modify/create weapons. There may be incomplete explanations for each function.
 
@@ -284,12 +312,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
+
+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)
 
-- [**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)
+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