diff --git a/Documentation/Building.md b/Documentation/Building.md index 523a1531..6bf1cb7d 100644 --- a/Documentation/Building.md +++ b/Documentation/Building.md @@ -1,5 +1,13 @@ # Building +## Preface + +If you don't plan on modifying the engine, then you probably shouldn't! You can grab binaries from [FTEQW](https://www.fteqw.org) and move them into the Nuclide directory under `./bin`. + +If you're on Microsoft Windows, you will most likely not be running the `nuclide` launch script anyway, so feel free to move the `fteqw.exe` into the root of the Nuclide directory, and run that as-is instead. + +It will mount the game directories specified in the `default.fmf` file, which you can tweak as needed. [For more information, read the relevant documentation regarding launching Nuclide](Documentation/Launching.md) + ## Building the Engine {#engine} The **build_engine.sh** will do that for you. It will still ask you to have at least diff --git a/Documentation/Main.md b/Documentation/Main.md index 72a0357f..abd8ea81 100644 --- a/Documentation/Main.md +++ b/Documentation/Main.md @@ -1,44 +1,57 @@ # Overview -Welcome to the documentation for Nuclide. +Welcome to the documentation for Nuclide! -This is a software development kit and development environment created by [Vera Visions, L.L.C.](https://www.vera-visions.com/) +This is a software development kit (SDK) and development environment created by [Vera Visions, L.L.C.](https://www.vera-visions.com/). We want to share it with everyone to avoid duplicate effort and in the hopes that it is useful to someone else. ## What this project is {#what} The Nuclide project produces a freely available game-logic component and -development platform on top of FTEQW; which is the engine we happen to use. +development platform on top of [FTEQW](https://www.fteqw.org); which is the engine we happen to use. + The goal is to create a modern research base for new advancements, as well as to have a stable base with a decent API for making games. -- Client-side predicted movement and inputs for things like weapons-systems -- Lots of well documented objects to use in level formats supported by FTEQW -- Reference implementations for a lot of features exlusive to FTEQW compared - to other id Tech engines -- Designed to be familar to developers who're used to GoldSrc and Source engine - projects +It comes with a simple example game (simply referred to as 'Base') and some test maps. There's also some other, third-party example projects. + +General feature overview: + +- SDK in the spirit of 'id Tech' development environments +- Client-side predicted movement, predicted weapons and vehicle systems +- Implementations of well known, established entity classes as seen in popular and critically acclaimed games +- Reference implementations for a lot of features exlusive to the FTEQW engine +- Designed to be familar to developers who are used to GoldSrc and Source engine + project workflows +- Everything written from scratch with the modern QuakeC language advancements in mind ### 1. Why might I want to use it? {#why} -You want to develop a game using a lot of complex and well-tested objects +You might be migrating from an engine that is no longer being licensed and don't want to learn a new engine and toolchain. + +You might want to develop a game using a lot of complex and well-tested objects which might be tedious to implement on your own. -You want to run or make modifications for a game using Nuclide and need full +You might want to run or make modifications for a game using Nuclide and need full control over what you can do. ### 2. How free is Nuclide? {#license} Everything in Nuclide is **free software**. The copyright terms for the game-logic are -very permitting. Nuclide does not use the GPL as a point of reference, it -instead uses a ISC-like license. This means you can use, copy, modify and +very permitting. Nuclide *does not use the GPL* as a point of reference in terms of license, it instead uses a **ISC-like license**. This means you can use, copy, modify and distribute the code and work resulting from it for any purpose. -Please read the very short 'LICENSE' document for details. +**Please read the very short 'LICENSE' document for details.** ### 3. What are the alternatives? {#alternatives} Implementing systems such as prediction, complex map objects and entities on -your own or licensing another engine such as [Source](https://partner.steamgames.com/doc/sdk/uploading/distributing_source_engine) that ships with its own **Source SDK Base**. +your own, from scratch - or licensing another engine such as [Source](https://partner.steamgames.com/doc/sdk/uploading/distributing_source_engine) that ships with its own **Source SDK Base**. + +### 4. Any example projects? {#examples} + +- [The Wastes](https://store.steampowered.com/app/793670) is a commerical game built using Nuclide. +- [FreeHL](https://www.github.com/eukara/freehl) is a free-software, clean-room clone of Half-Life: Deathmatch also built using Nuclide. +- [FreeCS](https://www.github.com/eukara/freecs) exists in the same vein as FreeHL, but targetting a recreation of Counter-Strike v1.5 (mod version) specifically. ## Getting started {#prerequisites} @@ -50,6 +63,7 @@ If you do posess a basic knowledge of the following: - Makefiles - Compiling your own binaries - Concept of public and private APIs +- QuakeC Then you will have a good time. We strive to keep the codebase portable and conform to open standards wherever possible. @@ -65,4 +79,4 @@ You clone the Nuclide git repository first. There's multiple places to get it, o `git clone https://github.com/veravisions/nuclide` -And then you can [get started on building the engine and the rest of the toolchain](Building.md). \ No newline at end of file +And then you can [get started on building the engine and the rest of the toolchain](Building.md). Alternatively, you can also move in the official FTEQW binaries into the Nuclide directory to get started without bootstrapping your own engine + QuakeC compiler. \ No newline at end of file diff --git a/Doxyfile b/Doxyfile index 5ef9c166..eab50518 100644 --- a/Doxyfile +++ b/Doxyfile @@ -1230,7 +1230,7 @@ HTML_FOOTER = # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_STYLESHEET = Documentation/style.css +HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets @@ -1255,6 +1255,8 @@ HTML_EXTRA_STYLESHEET = HTML_EXTRA_FILES = +HTML_COLORSTYLE = DARK + # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to # this color. Hue is specified as an angle on a color-wheel, see diff --git a/src/shared/NSMoverEntity.qc b/src/shared/NSMoverEntity.qc index 9d85dcf4..1d904bee 100644 --- a/src/shared/NSMoverEntity.qc +++ b/src/shared/NSMoverEntity.qc @@ -220,9 +220,13 @@ NSMoverEntity::MoveAndRotateToPosition(vector vecDest, vector vecAngle, float fl if (fTravelTime <= 0.0) { if (m_moverState == MOVER_1TO2) { + MoverStartsMoving(); _ArrivedAtRotPosition2(); + MoverFinishesMoving(); } else if (m_moverState == MOVER_2TO1) { + MoverStartsMoving(); _ArrivedAtRotPosition1(); + MoverFinishesMoving(); } return; }