Pārlūkot izejas kodu

Fixed many broken links

Thanks user dev-masih!
Björn Ritzl 5 gadi atpakaļ
vecāks
revīzija
6c51597ef8

+ 1 - 1
docs/en/manuals/adapting-graphics-to-screen-size.md

@@ -25,7 +25,7 @@ The Defold render script give you total control over the entire rendering pipeli
 
 ## Retro/8-bit graphics
 
-Retro/8-bit graphics often refer to games emulating the graphical style of old game consoles or computers with their low resolution and limited color palette. As an example the Nintendo Entertainment System (NES) had a screen resolution of 256x240, the Commodore 64 had 320x200 and the Gameboy had 160x144, all of which are only a fraction of the size of modern screens. In order to make games emulating this graphical style and screen resolution playable on a modern high resolution screen the graphics has to be upscaled or zoomed several times. One simple way of doing this is to draw all of your graphics in the low resolution and style that you wish to emulate and zoom the graphics when it is rendered. This can easily be achieved in Defold using the render script and the [Fixed Projection](/manuals/render/#default-view-projection) set to a suitable zoom value.
+Retro/8-bit graphics often refer to games emulating the graphical style of old game consoles or computers with their low resolution and limited color palette. As an example the Nintendo Entertainment System (NES) had a screen resolution of 256x240, the Commodore 64 had 320x200 and the Gameboy had 160x144, all of which are only a fraction of the size of modern screens. In order to make games emulating this graphical style and screen resolution playable on a modern high resolution screen the graphics has to be upscaled or zoomed several times. One simple way of doing this is to draw all of your graphics in the low resolution and style that you wish to emulate and zoom the graphics when it is rendered. This can easily be achieved in Defold using the render script and the [Fixed Projection](/manuals/render/#fixed-projection) set to a suitable zoom value.
 
 Let's take this tileset and player character ([source](https://ansimuz.itch.io/grotto-escape-game-art-pack)) and use them for an 8-bit retro game with a resolution of 320x200:
 

+ 2 - 2
docs/en/manuals/animation.md

@@ -49,10 +49,10 @@ All numeric properties (numbers, vector3, vector4 and quaterions) and shader con
 Sprites and GUI box nodes can play flip-book animations and you have great control over them at runtime.
 
 Sprites
-: To run an animation during runtime you use the [`sprite.play_flipbook()`](ref/sprite/#sprite.play_flipbook:url-id--complete_function---play_properties-) function. See below for an example.
+: To run an animation during runtime you use the [`sprite.play_flipbook()`](/ref/sprite/?q=play_flipbook#sprite.play_flipbook:url-id-[complete_function]-[play_properties]) function. See below for an example.
 
 GUI box nodes
-: To run an animation during runtime you use the [`gui.play_flipbook()`](/ref/gui#play_flipbook) function. See below for an example.
+: To run an animation during runtime you use the [`gui.play_flipbook()`](/ref/gui/?q=play_flipbook#gui.play_flipbook:node-animation-[complete_function]-[play_properties]) function. See below for an example.
 
 ::: sidenote
 The playback mode once ping-pong will play the animation until the last frame and then reverse the order and play back until the **second** frame of the animation, not back to the first frame. This is done so that chaining of animations becomes easier.

+ 2 - 2
docs/en/manuals/bundling.md

@@ -35,7 +35,7 @@ Creating an iOS application bundle (.ipa file) as well as the prerequisite setup
 
 ### OSX
 
-Creating an OSX application bundle (.app file) requires no specific setup, but optional platform specific configuration is done in the "game.project" [project settings file](/manuals/project-settings/#macos-os-x).
+Creating an OSX application bundle (.app file) requires no specific setup, but optional platform specific configuration is done in the "game.project" [project settings file](/manuals/project-settings/#macos--os-x).
 
 ### Linux
 
@@ -51,7 +51,7 @@ It is possible to create a special version of a Windows application bundle speci
 
 ### HTML5
 
-Creating an HTML5 application bundle as well as optional setup is documented in the [HTML5 manual](/manuals/html5/#creating-html5-content).
+Creating an HTML5 application bundle as well as optional setup is documented in the [HTML5 manual](/manuals/html5/#creating-html5-bundle).
 
 #### Facebook Instant Games
 

+ 2 - 2
docs/en/manuals/camera.md

@@ -139,5 +139,5 @@ Learn more about the render script in the [Render manual](/manuals/render/#persp
 
 There are a few library camera solutions that implements common camera features such as game object follow, screen to world coordinate conversion and so on. They are available from the Defold community assets portal:
 
-- [Rendercam](https://www.defold.com/community/projects/84064/) (2D & 3D) by Ross Grams.
-- [Ortographic camera](https://www.defold.com/community/projects/76573/) (2D only) by Björn Ritzl.
+- [Rendercam](https://defold.com/assets/rendercam/) (2D & 3D) by Ross Grams.
+- [Ortographic camera](https://defold.com/assets/orthographic/) (2D only) by Björn Ritzl.

+ 6 - 6
docs/en/manuals/collection-factory.md

@@ -100,7 +100,7 @@ With the box unchecked the engine loads the prototype resources when the collect
 With the box checked, you have two options for usage:
 
 Synchronous loading
-: Call [`collectionfactory.create()`](/ref/collectionfactory/#collecionfactory.create) when you want to spawn objects. This  will load the resources synchronously, which may cause a hitch, then spawn new instances.
+: Call [`collectionfactory.create()`](/ref/collectionfactory/#collectionfactory.create:url-[position]-[rotation]-[properties]-[scale]) when you want to spawn objects. This  will load the resources synchronously, which may cause a hitch, then spawn new instances.
 
   ```lua
   function init(self)
@@ -109,7 +109,7 @@ Synchronous loading
       -- having called load will create the resources synchronously.
       self.go_ids = collecionfactory.create("#collectionfactory")
   end
-  
+
   function final(self)  
       -- Delete game objects. Will decref resources.
       -- In this case resources are deleted since the collection
@@ -123,26 +123,26 @@ Synchronous loading
   ```
 
 Asynchronous loading
-: Call [`collectionfactory.load()`](/ref/collectionfactory/#collectionfactory.load) to explicitly load the resources asynchronously. When the resources are ready for spawning, a callback is received.
+: Call [`collectionfactory.load()`](/ref/collectionfactory/#collectionfactory.load:[url]-[complete_function]) to explicitly load the resources asynchronously. When the resources are ready for spawning, a callback is received.
 
   ```lua
   function load_complete(self, url, result)
       -- Loading is complete, resources are ready to spawn
       self.go_ids = collectionfactory.create(url)
   end
-  
+
   function init(self)
       -- No factory resources are loaded when the collection factory’s
       -- parent collection is loaded. Calling load will load the resources.
       collectionfactory.load("#factory", load_complete)
   end
-  
+
   function final(self)
       -- Delete game object. Will decref resources.
       -- In this case resources aren’t deleted since the collection factory
       -- component still holds a reference.
       go.delete_all(self.go_ids)
-  
+
       -- Calling unload will decref resources held by the factory component,
       -- resulting in resources being destroyed.
       collectionfactory.unload("#factory")

+ 1 - 1
docs/en/manuals/collection-proxy.md

@@ -165,7 +165,7 @@ DEBUG:SCRIPT: update() with timestep (dt) 0.016666667535901
 
 `update()` is still called 60 times a second, but the value of `dt` changes. We see that only 1/5 (0.2) of the calls to `update()` will have a `dt` of 1/60 (corresponding to 60 FPS)---the rest is zero. All physics simulations will also be updated according to that dt and advance only in one fifth of the frames.
 
-See [`set_time_step`](/ref/collection-proxy#set_time_step) for more details.
+See [`set_time_step`](/ref/collectionproxy#set_time_step) for more details.
 
 ## Caveats and common issues
 

+ 1 - 1
docs/en/manuals/dev-app.md

@@ -48,7 +48,7 @@ To launch your game on your device, the dev app and editor must be able to conne
 2. Launch the dev app on the device.
 3. Select your device under <kbd>Project ▸ Targets</kbd> in the editor.
 4. Select <kbd>Project ▸ Build And Launch</kbd> to run the game. It may take a while for the game to start since the game content is streamed to the device over the network.
-5. While the game is running, you can use [hot reloading](/manuals/debugging#hot-reloading) as usual.
+5. While the game is running, you can use [hot reloading](/manuals/hot-reload/) as usual.
 
 ![launch](images/dev-app/launch.png)
 

+ 15 - 15
docs/en/manuals/editor-scripts.md

@@ -11,7 +11,7 @@ You can create custom menu items and editor lifecycle hooks using Lua files with
 
 Editor scripts run inside an editor, in a Lua VM emulated by Java VM. All scripts share the same single environment, which means they can interact with each other. You can require Lua modules, just as with `.script` files, but Lua version that is running inside the editor is different, so make sure your shared code is compatible. Editor uses Lua version 5.2.x, more specifically [luaj](https://github.com/luaj/luaj) runtime, which is currently the only viable solution to run Lua on JVM. Besides that, there are some restrictions:
 - there is no `debug` and `coroutine` packages;
-- there is no `os.execute` — we provide a more user-friendly and secure way to execute shell scripts in [actions](#_actions) section;
+- there is no `os.execute` — we provide a more user-friendly and secure way to execute shell scripts in [actions](#actions) section;
 - there is no `os.tmpname` and `io.tmpfile` — currently editor scripts can access files only inside the project directory;
 - there is currently no `os.rename`, although we want to add it;
 - there is no `os.exit` and `os.setlocale`.
@@ -24,13 +24,13 @@ Every editor script should return a module, like that:
 ```lua
 local M = {}
 
-function M.get_commands() 
+function M.get_commands()
   -- TODO
 end
 
 return M
 ```
-Editor then collects all editor scripts defined in project and libraries, loads them into single Lua VM and calls into them when needed (more on that in [commands](#_commands) and [lifecycle hooks](#_lifecycle_hooks) sections).
+Editor then collects all editor scripts defined in project and libraries, loads them into single Lua VM and calls into them when needed (more on that in [commands](#commands) and [lifecycle hooks](#lifecycle-hooks) sections).
 
 ## Editor API
 
@@ -45,7 +45,7 @@ You can interact with the editor using `editor` package that defines this API:
     - numbers
     - vec2/vec3/vec4
     - resources
-    
+
     Please note that some of these properties might be read-only, and some might be unavailable in different contexts, so you should use `editor.can_get` before reading them and `editor.can_set` before making editor set them. Hover over property name in Properties view to see a tooltip with information about how this property is named in editor scripts. You can set resource properties to nil by supplying `""` value.
 - `editor.can_get(node_id, property)` — check if you can get this property so `editor.get()` won't throw an error
 - `editor.can_set(node_id, property)` — check if `"set"` action with this property won't throw an error
@@ -72,13 +72,13 @@ function M.get_commands()
         local text = editor.get(opts.selection, "text")
         return {
           {
-            action = "set", 
-            node_id = opts.selection, 
-            property = "text", 
+            action = "set",
+            node_id = opts.selection,
+            property = "text",
             value = strip_comments(text)
           }
         }
-      end 
+      end
     },
     {
       label = "Minify JSON"
@@ -93,7 +93,7 @@ function M.get_commands()
         local path = editor.get(opts.selection, "path")
         return {
           {
-            action = "shell", 
+            action = "shell",
             command = {"./scripts/minify-json.sh", path:sub(2)}
           }
         }
@@ -115,11 +115,11 @@ Editor expects `get_commands()` to return an array of tables, each describing a
       - `"outline"` — something that can be shown in the Outline. In Outline it's a selected item, in menu bar it's a currently open file;
     - `cardinality` defines how many selected items there should be. If `"one"`, selection passed to command callback will be a single node id. If `"many"`, selection passed to command callback will be an array of one or more node ids.
 - `active` - a callback that is executed to check that command is active, expected to return boolean. If `locations` include `"Assets"` or `"Outline"`, `active` will be called when showing context menu. If locations include `"Edit"` or `"View"`, active will be called on every user interaction, such as typing on keyboard or clicking with mouse, so be sure that `active` is relatively fast.
-- `run` - a callback that is executed when user selects menu item, expected to return an array of [actions](#_actions).
+- `run` - a callback that is executed when user selects menu item, expected to return an array of [actions](#actions).
 
 ## Actions
 
-Action is a table describing what editor should do. Every action has an `action` key. Actions come in 2 flavors: undoable and non-undoable. 
+Action is a table describing what editor should do. Every action has an `action` key. Actions come in 2 flavors: undoable and non-undoable.
 
 ### Undoable actions
 
@@ -150,7 +150,7 @@ Existing non-undoable actions:
   {
     action = "shell",
     command = {
-      "./scripts/minify-json.sh", 
+      "./scripts/minify-json.sh",
       editor.get(opts.selection, "path"):sub(2) -- trim leading "/"
     }
   }
@@ -161,7 +161,7 @@ Existing non-undoable actions:
 
 You can mix undoable and non-undoable actions. Actions are executed sequentially, hence depending on an order of actions you will end up losing ability to undo parts of that command.
 
-Instead of returning actions from functions that expect them, you can just read and write to files directly using `io.open()`. This will trigger a resource reload that will clear undo history. 
+Instead of returning actions from functions that expect them, you can just read and write to files directly using `io.open()`. This will trigger a resource reload that will clear undo history.
 
 ## Lifecycle hooks
 
@@ -169,7 +169,7 @@ There is a specially treated editor script file: `hooks.editor_script`, located
 ```lua
 local M = {}
 
-function M.on_build_started(opts) 
+function M.on_build_started(opts)
   local file = io.open("assets/build.json", "w")
   file:write("{\"build_time\": \"".. os.date() .."\"}")
   file:close()
@@ -201,4 +201,4 @@ Please note that lifecycle hooks currently are an editor-only feature, and they
 
 You can publish libraries for other people to use that contain commands, and they will be automatically picked up by editor. Hooks, on the other hand, can't be picked up automatically, since they have to be defined in a file that is in a root folder of a project, but libraries expose only subfolders. This is intended to give more control over build process: you still can create lifecycle hooks as simple functions in `.lua` files, so users of your library can require and use them in their `/hooks.editor_script`.
 
-Also note that although dependencies are shown in Assets view, they do not exist as files (they are entries in a zip archive), so there is currently no easy way to execute a shell script you provide in a dependency. If you absolutely need it, you'll have to extract provided scripts by getting their text using `editor.get()` and then writing them somewhere with `file:write()`, for example in a `build/editor-scripts/your-extension-name` folder.
+Also note that although dependencies are shown in Assets view, they do not exist as files (they are entries in a zip archive), so there is currently no easy way to execute a shell script you provide in a dependency. If you absolutely need it, you'll have to extract provided scripts by getting their text using `editor.get()` and then writing them somewhere with `file:write()`, for example in a `build/editor-scripts/your-extension-name` folder.

+ 2 - 2
docs/en/manuals/flash.md

@@ -268,7 +268,7 @@ on_input
 on_reload
 :   Called when the script component is reloaded.
 
-The callback functions listed above are all optional and can be removed if not used. For details on how to set up input, please refer to the [input manual](/manuals/input). A common pitfall occurs when working with collection proxies - please refer for [this section](/manuals/input/#input-and-collection-proxies) of the input manual for more information.
+The callback functions listed above are all optional and can be removed if not used. For details on how to set up input, please refer to the [input manual](/manuals/input). A common pitfall occurs when working with collection proxies - please refer to [this section](/manuals/input/#input-dispatch-and-on_input) of the input manual for more information.
 
 As discussed in the collision detection section, collision events are dealt with through the sending of messages to the game objects involved. Their respective script components receive the message in their on_message callback functions.
 
@@ -313,7 +313,7 @@ DEBUG:SCRIPT: table: 0x7ff95de63ce0
 Using the `pprint()` function as illustrated above gives more meaningful results:
 
 ```
-DEBUG:SCRIPT: 
+DEBUG:SCRIPT:
 {
   name = Terra,
   teams = {

+ 1 - 1
docs/en/manuals/getting-help.md

@@ -44,7 +44,7 @@ A good way to discuss and get help with a problem is to post a question on our [
 
   Engine logs for desktop builds can be viewed by running the Defold application from a terminal/command prompt.
 
-  You can also write engine logs to a file and access this once the application has been shut down. You can read more about how to enable and access the log in the [Debugging manual](/manuals/debugging/#extracting-the-log.txt-file).
+  You can also write engine logs to a file and access this once the application has been shut down. You can read more about how to enable and access the log in the [Debugging manual](/manuals/debugging/#extracting-the-logtxt-file).
 
 * **Minimal repro case project (OPTIONAL)** - Please attach a minimal project where the bug is reproduced. This will greatly help the person trying to investigate and fix the bug. If you share the project as a zip file make sure to exclude the `.git`, `.internal` and `build` folders from the archive.
 

+ 1 - 1
docs/en/manuals/glossary.md

@@ -9,7 +9,7 @@ This glossary gives a brief description to all the things you encounter in Defol
 
 ## Animation set
 
-![Animation set](images/icons/animationset.png){.left} An animation set resource contains a list of .dae files or other .animationset files from where to read animations. Adding one .animationset files to another is handy if you share partial sets of animations between several models. See the [3D graphics manual](/manuals/3dgraphics/) for details.
+![Animation set](images/icons/animationset.png){.left} An animation set resource contains a list of .dae files or other .animationset files from where to read animations. Adding one .animationset files to another is handy if you share partial sets of animations between several models. See the [3D graphics manual](/manuals/graphics/) for details.
 
 ## Atlas
 

+ 1 - 1
docs/en/manuals/gui-layouts.md

@@ -99,4 +99,4 @@ function on_message(self, message_id, message)
 end
 ```
 
-When orientation is switched, the GUI layout manager will automatically rescale and reposition GUI nodes according to your layout and node properties. In-game content, however, is rendered in a separate pass (by default) with a stretch-fit projection into the current window. To change this behavior, either supply your own modified render script, or use a camera [library](/community/assets/).
+When orientation is switched, the GUI layout manager will automatically rescale and reposition GUI nodes according to your layout and node properties. In-game content, however, is rendered in a separate pass (by default) with a stretch-fit projection into the current window. To change this behavior, either supply your own modified render script, or use a camera [library](/assets/).

+ 1 - 2
docs/en/manuals/gui-spine.md

@@ -32,7 +32,7 @@ Skin
 
 ## Runtime animation control
 
-Spine nodes can be controlled in runtime through script. To start an animation on a node, simply call the [`gui.play_spine()`](/ref/gui#gui.play_spine) function:
+Spine nodes can be controlled in runtime through script. To start an animation on a node, simply call the [`gui.play_spine()`](/ref/gui/#gui.play_spine_anim:node-animation_id-playback-[play_properties]-[complete_function]) function:
 
 ```lua
 local catnode = gui.get_node("cat_note")
@@ -66,4 +66,3 @@ local textnode = gui.new_text_node(vmath.vector3(400, 0, 0), "Hello tail!")
 local tail = gui.get_node("cat_node/tail")
 gui.set_parent(textnode, tail)
 ```
-

+ 1 - 1
docs/en/manuals/images/debugging/pause.svg

@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><rect id="Page-2" serif:id="Page 2" x="0" y="0" width="16" height="16" style="fill:none;"/><g id="Layer-1" serif:id="Layer 1"><path d="M5.5,3l-2,0c-0.276,0 -0.5,0.224 -0.5,0.5l0,9c0,0.276 0.224,0.5 0.5,0.5l2,0c0.276,0 0.5,-0.224 0.5,-0.5l0,-9c0,-0.276 -0.224,-0.5 -0.5,-0.5m6.5,0.5l0,9c0,0.276 -0.224,0.5 -0.5,0.5l-2,0c-0.276,0 -0.5,-0.224 -0.5,-0.5l0,-9c0,-0.276 0.224,-0.5 0.5,-0.5l2,0c0.276,0 0.5,0.224 0.5,0.5" style="fill:#8f9295;fill-rule:nonzero;"/></g></svg>
+<svg clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.41421" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h16v16h-16z" fill="none"/><path d="m5.5 3h-2c-.276 0-.5.224-.5.5v9c0 .276.224.5.5.5h2c.276 0 .5-.224.5-.5v-9c0-.276-.224-.5-.5-.5m6.5.5v9c0 .276-.224.5-.5.5h-2c-.276 0-.5-.224-.5-.5v-9c0-.276.224-.5.5-.5h2c.276 0 .5.224.5.5" fill="#8f9295" fill-rule="nonzero"/></svg>

+ 2 - 2
docs/en/manuals/input.md

@@ -17,7 +17,7 @@ Devices
   1. Keyboard (single key as well as text input)
   2. Mouse (position, button clicks and mouse wheel actions)
   3. Single and multi-touch (on iOS and Android devices)
-  4. Gamepads (as supported through the operating system and mapped in the [gamepads](#gamepads) file)
+  4. Gamepads (as supported through the operating system and mapped in the [gamepads](#gamepads-settings-file) file)
 
 Input bindings
 : Before input is sent to a script the raw input from the device is translated into meaningful *actions* via the input bindings table.
@@ -268,7 +268,7 @@ Detecting when the user has clicked or tapped on a visual component is a very co
 
 ### Detecting interaction with GUI nodes
 
-For UI elements there is the `gui.pick_node(node, x, y)` function that will return true or false depending on if the specified coordinate is within the bounds of a gui node or not. Refer to the [API docs](/ref/gui/#gui.pick_node:node-x-y), the [pointer over example](https://www.defold.com/examples/gui/pointer_over/) or the [button example](https://www.defold.com/examples/gui/button/) to learn more.
+For UI elements there is the `gui.pick_node(node, x, y)` function that will return true or false depending on if the specified coordinate is within the bounds of a gui node or not. Refer to the [API docs](/ref/gui/#gui.pick_node:node-x-y), the [pointer over example](https://www.defold.com/examples/pointer_over/) or the [button example](https://www.defold.com/examples/button/) to learn more.
 
 ### Detecting interaction with game objects
 For game objects it is more complicated to detect interaction since things such as camera translation and render script projection will impact the required calculations. There are two general approaches to detecting interaction with game objects:

+ 1 - 1
docs/en/manuals/instant-games.md

@@ -25,7 +25,7 @@ Before you can publish your Defold game to Facebook, you need to set up your gam
    <script src="https://connect.facebook.net/en_US/fbinstant.6.3.js"></script>
    ```
 
-   See [the HTML5 manual](/manuals/html5/#customizing-html5-applications) for details on how to customize your bundled app.
+   See [the HTML5 manual](/manuals/html5/#customizing-html5-bundle) for details on how to customize your bundled app.
 
 4. When you are ready to test your game, bundle it to HTML5 and upload it to Facebook.
 

+ 1 - 1
docs/en/manuals/physics.md

@@ -301,7 +301,7 @@ Defold supports joints for 2D physics. A joint connects two collision objects us
 
 ### Creating joints
 
-Joints can currently only be created programmatically using [`physics.create_joint()`](/ref/physics/#physics.create_joint:joint_type-collisionobject_a-joint_id-position_a-collisionobject_b-position_b--properties-):
+Joints can currently only be created programmatically using [`physics.create_joint()`](/ref/physics/#physics.create_joint:joint_type-collisionobject_a-joint_id-position_a-collisionobject_b-position_b-[properties]):
 ::: sidenote
 Editor support for creating joints is planned but no release date has been decided.
 :::

+ 1 - 1
docs/en/manuals/project-settings.md

@@ -460,7 +460,7 @@ The first thing of note is that on desktop platforms vsync can be controlled glo
 
 With `Vsync` checked in `game.project` the engine relies on hardware vsync and uses a fixed time step `dt` based on any detected monitor refresh rate. This is the default setting. With `Vsync` checked and `Frame cap` > 0, the rate will be clamped to a swap interval that matches any detected main monitor refresh rate. With `Vsync` unchecked and `Frame cap` 0, the time step is not fixed but instead uses actual elapsed time difference for `dt`. With `Vsync` unchecked and `Frame cap` > 0, timers are used to respect the set frame cap value. There is no guarantee that the frame cap will be achieved depending on platform specifics and hardware settings.
 
-Swap interval is the interval with which to swap the front and back buffers in sync with vertical blanks (v-blank), the hardware event where the screen image is updated with data from the front buffer. A value of 1 swaps the buffers at every v-blank, a value of 2 swaps the buffers every other v-blank and so on. A value of 0 disables waiting for v-blank before swapping the buffers\*. Setting `swap_interval` is done by sending a message to the system socket: [```swap_interval```](https://www.defold.com/ref/sys/#set_vsync:swap_interval)
+Swap interval is the interval with which to swap the front and back buffers in sync with vertical blanks (v-blank), the hardware event where the screen image is updated with data from the front buffer. A value of 1 swaps the buffers at every v-blank, a value of 2 swaps the buffers every other v-blank and so on. A value of 0 disables waiting for v-blank before swapping the buffers\*. Setting `swap_interval` is done by calling the [```set_vsync_swap_interval```](/ref/sys/#sys.set_vsync_swap_interval:swap_interval) function.
 
 ### Caveat
 Currently, Defold queries for monitor refresh rate at init and uses that as a basis for picking a fixed `dt`. If you want to support monitors using variable refresh rate (GSync or FreeSync for example) or other scenarios where the refresh rate might not be trivial to query, uncheck `Vsync`to let the engine measure actual `dt` each frame instead of relying on a fixed time step.

+ 3 - 3
docs/en/manuals/sound.md

@@ -44,20 +44,20 @@ The created component has a set of properties that should be set:
 
 ## Playing the sound
 
-When you have a sound component set up properly, you can cause it to play its sound by calling [`sound.play()`](https://www.defold.com/ref/sound/#sound.play:url--play_properties-):
+When you have a sound component set up properly, you can cause it to play its sound by calling [`sound.play()`](/ref/sound/#sound.play:url-[play_properties]-[complete_function]):
 
 ```lua
 sound.play("go#sound", {delay = 1, gain = 0.5, pan = -1.0, speed = 1.25})
 ```
 
 ::: sidenote
-A sound will continue to play even if the game object the sound component belonged to is deleted. You can call [`sound.stop()`](https://www.defold.com/ref/sound/#sound.stop:url) to stop the sound (see below).
+A sound will continue to play even if the game object the sound component belonged to is deleted. You can call [`sound.stop()`](/ref/sound/#sound.stop:url) to stop the sound (see below).
 :::
 Each message sent to a component will cause it to play another instance of the sound, until the available sound buffer is full and the engine will print errors in the console. It is advised that you implement some sort of gating and sound grouping mechanism.
 
 ## Stopping the sound
 
-If you wish to stop playing a sound you can call [`sound.stop()`](https://www.defold.com/ref/sound/#sound.stop:url):
+If you wish to stop playing a sound you can call [`sound.stop()`](/ref/sound/#sound.stop:url):
 
 ```lua
 sound.stop("go#sound")

+ 2 - 2
docs/en/manuals/texture-profiles.md

@@ -99,7 +99,7 @@ The *Formats* added to a profile each have the following properties:
 : Selects the quality level for the resulting compressed image. The values range from `FAST` (lowest quality, fast compression) to `BEST` (highest quality, slowest compression).
 
 *Type*
-: Selects the type of compression used for the resulting compressed image, `COMPRESSION_TYPE_DEFAULT`, `COMPRESSION_TYPE_WEBP` or `COMPRESSION_TYPE_WEBP_LOSSY`. See [Compression Types](#compression_types) below for more details.
+: Selects the type of compression used for the resulting compressed image, `COMPRESSION_TYPE_DEFAULT`, `COMPRESSION_TYPE_WEBP` or `COMPRESSION_TYPE_WEBP_LOSSY`. See [Compression Types](#compression-types) below for more details.
 
 ## Texture formats
 
@@ -164,4 +164,4 @@ The following software image compression types are supported. The data is uncomp
 | `COMPRESSION_TYPE_WEBP`           | All formats               | WebP lossless compression. Higher quality level results in smaller size. |
 | `COMPRESSION_TYPE_WEBP_LOSSY`     | All non hardware compressed formats. | WebP lossy compression. Lower quality level results in smaller size. |
 
-For hardware compressed texture formats PVRTC or ETC, the WebP lossless compression process transforms the compressed hardware texture format data into data more suitable for WebP image compression using an internal intermediate format. This is then transformed back into the compressed hardware texture format when loaded by the run-time. WebP lossy type is currently not supported for hardware compressed texture formats PVRTC and ETC.
+For hardware compressed texture formats PVRTC or ETC, the WebP lossless compression process transforms the compressed hardware texture format data into data more suitable for WebP image compression using an internal intermediate format. This is then transformed back into the compressed hardware texture format when loaded by the run-time. WebP lossy type is currently not supported for hardware compressed texture formats PVRTC and ETC.

+ 1 - 1
docs/en/shared/install.md

@@ -42,7 +42,7 @@ Installation on Linux
   $ ./Defold
   ```
 
-  If you run into any problems starting the editor, opening a project or running a Defold game please refer to the [Linux section of the FAQ](/faq/faq.md#linux-issues).
+  If you run into any problems starting the editor, opening a project or running a Defold game please refer to the [Linux section of the FAQ](/faq/faq#linux-issues).
 
   ## Install an old version