diff --git a/docs-source/case-studies/images/sky_1_raw_bg_color.png b/docs-source/case-studies/images/sky_1_raw_bg_color.png
new file mode 100644
index 00000000..25963fb4
Binary files /dev/null and b/docs-source/case-studies/images/sky_1_raw_bg_color.png differ
diff --git a/docs-source/case-studies/images/sky_2_color_layer.png b/docs-source/case-studies/images/sky_2_color_layer.png
new file mode 100644
index 00000000..31a1cfac
Binary files /dev/null and b/docs-source/case-studies/images/sky_2_color_layer.png differ
diff --git a/docs-source/case-studies/images/sky_3_clouds_layer.png b/docs-source/case-studies/images/sky_3_clouds_layer.png
new file mode 100644
index 00000000..c03c402e
Binary files /dev/null and b/docs-source/case-studies/images/sky_3_clouds_layer.png differ
diff --git a/docs-source/case-studies/images/sky_color_layer_raw.png b/docs-source/case-studies/images/sky_color_layer_raw.png
new file mode 100644
index 00000000..a07c80cb
Binary files /dev/null and b/docs-source/case-studies/images/sky_color_layer_raw.png differ
diff --git a/docs-source/case-studies/images/sky_no_color_layer.png b/docs-source/case-studies/images/sky_no_color_layer.png
new file mode 100644
index 00000000..34e2942b
Binary files /dev/null and b/docs-source/case-studies/images/sky_no_color_layer.png differ
diff --git a/docs-source/case-studies/sky.rst b/docs-source/case-studies/sky.rst
new file mode 100644
index 00000000..98bcd553
--- /dev/null
+++ b/docs-source/case-studies/sky.rst
@@ -0,0 +1,51 @@
+.. _sky:
+
+Sky
+===
+
+The sky consists of several layers, and uses different primitives as model depending on the game
+and graphic settings.
+The original Gothic game only used a plane to render the sky texture, while Gothic II added the
+possibility to render the sky as a dome, given enough processing power.
+
+The different layers of the sky are (1), a plain color layer as background (:numref:`fig-sky1`),
+(2) a color layer additively blended in (:numref:`fig-sky2`), and (3) the actual alpha-blended sky
+texture (:numref:`fig-sky3`).
+
+.. _fig-sky1:
+.. figure:: images/sky_1_raw_bg_color.png
+ :alt: Sky raw background color.
+
+ Background sky color (1) in Gothic II.
+
+.. _fig-sky2:
+.. figure:: images/sky_2_color_layer.png
+ :alt: Sky raw background color and color layer.
+
+ Background sky color (1) together with an additively blended color layer (2) rendered as sphere
+ in Gothic II.
+
+.. _fig-sky3:
+.. figure:: images/sky_3_clouds_layer.png
+ :alt: Sky raw background color, color layer, and texture layer.
+
+ Background sky color (1) together with an additively blended color layer (2) rendered as
+ sphere, as well as the alpha-blended sky texture (3) layer in Gothic II.
+
+
+The additively blended color layer (2) is necessary, because the sky looks dull otherwise. See, for
+example, :numref:`fig-sky-no-color-layer`, where this layer was deactivated. In
+:numref:`fig-sky-color-layer`, the color layer (2) can be seen on black background.
+
+.. _fig-sky-no-color-layer:
+.. figure:: images/sky_no_color_layer.png
+ :alt: Sky with raw background color and texture layer, but without color layer.
+
+ Background sky color (1) and the alpha-blended sky texture layer (3) without the additively
+ blended color layer (2).
+
+.. _fig-sky-color-layer:
+.. figure:: images/sky_color_layer_raw.png
+ :alt: Color layer only.
+
+ Additively blended color layer (2) only, rendered on black background.
diff --git a/docs-source/index.rst b/docs-source/index.rst
index 9a5a4434..201d65cc 100644
--- a/docs-source/index.rst
+++ b/docs-source/index.rst
@@ -49,6 +49,7 @@ Welcome to REGoth's documentation!
case-studies/scene-structure
case-studies/character-statemachine
case-studies/daedalus-vm
+ case-studies/sky
.. toctree::
diff --git a/docs/_images/sky_1_raw_bg_color.png b/docs/_images/sky_1_raw_bg_color.png
new file mode 100644
index 00000000..25963fb4
Binary files /dev/null and b/docs/_images/sky_1_raw_bg_color.png differ
diff --git a/docs/_images/sky_2_color_layer.png b/docs/_images/sky_2_color_layer.png
new file mode 100644
index 00000000..31a1cfac
Binary files /dev/null and b/docs/_images/sky_2_color_layer.png differ
diff --git a/docs/_images/sky_3_clouds_layer.png b/docs/_images/sky_3_clouds_layer.png
new file mode 100644
index 00000000..c03c402e
Binary files /dev/null and b/docs/_images/sky_3_clouds_layer.png differ
diff --git a/docs/_images/sky_color_layer_raw.png b/docs/_images/sky_color_layer_raw.png
new file mode 100644
index 00000000..a07c80cb
Binary files /dev/null and b/docs/_images/sky_color_layer_raw.png differ
diff --git a/docs/_images/sky_no_color_layer.png b/docs/_images/sky_no_color_layer.png
new file mode 100644
index 00000000..34e2942b
Binary files /dev/null and b/docs/_images/sky_no_color_layer.png differ
diff --git a/docs/_sources/case-studies/sky.rst.txt b/docs/_sources/case-studies/sky.rst.txt
new file mode 100644
index 00000000..98bcd553
--- /dev/null
+++ b/docs/_sources/case-studies/sky.rst.txt
@@ -0,0 +1,51 @@
+.. _sky:
+
+Sky
+===
+
+The sky consists of several layers, and uses different primitives as model depending on the game
+and graphic settings.
+The original Gothic game only used a plane to render the sky texture, while Gothic II added the
+possibility to render the sky as a dome, given enough processing power.
+
+The different layers of the sky are (1), a plain color layer as background (:numref:`fig-sky1`),
+(2) a color layer additively blended in (:numref:`fig-sky2`), and (3) the actual alpha-blended sky
+texture (:numref:`fig-sky3`).
+
+.. _fig-sky1:
+.. figure:: images/sky_1_raw_bg_color.png
+ :alt: Sky raw background color.
+
+ Background sky color (1) in Gothic II.
+
+.. _fig-sky2:
+.. figure:: images/sky_2_color_layer.png
+ :alt: Sky raw background color and color layer.
+
+ Background sky color (1) together with an additively blended color layer (2) rendered as sphere
+ in Gothic II.
+
+.. _fig-sky3:
+.. figure:: images/sky_3_clouds_layer.png
+ :alt: Sky raw background color, color layer, and texture layer.
+
+ Background sky color (1) together with an additively blended color layer (2) rendered as
+ sphere, as well as the alpha-blended sky texture (3) layer in Gothic II.
+
+
+The additively blended color layer (2) is necessary, because the sky looks dull otherwise. See, for
+example, :numref:`fig-sky-no-color-layer`, where this layer was deactivated. In
+:numref:`fig-sky-color-layer`, the color layer (2) can be seen on black background.
+
+.. _fig-sky-no-color-layer:
+.. figure:: images/sky_no_color_layer.png
+ :alt: Sky with raw background color and texture layer, but without color layer.
+
+ Background sky color (1) and the alpha-blended sky texture layer (3) without the additively
+ blended color layer (2).
+
+.. _fig-sky-color-layer:
+.. figure:: images/sky_color_layer_raw.png
+ :alt: Color layer only.
+
+ Additively blended color layer (2) only, rendered on black background.
diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt
index 9a5a4434..201d65cc 100644
--- a/docs/_sources/index.rst.txt
+++ b/docs/_sources/index.rst.txt
@@ -49,6 +49,7 @@ Welcome to REGoth's documentation!
case-studies/scene-structure
case-studies/character-statemachine
case-studies/daedalus-vm
+ case-studies/sky
.. toctree::
diff --git a/docs/case-studies/character-statemachine.html b/docs/case-studies/character-statemachine.html
index af2bcdf4..489d5061 100644
--- a/docs/case-studies/character-statemachine.html
+++ b/docs/case-studies/character-statemachine.html
@@ -127,6 +127,7 @@
The sky consists of several layers, and uses different primitives as model depending on the game
+and graphic settings.
+The original Gothic game only used a plane to render the sky texture, while Gothic II added the
+possibility to render the sky as a dome, given enough processing power.
+
The different layers of the sky are (1), a plain color layer as background (Fig. 6),
+(2) a color layer additively blended in (Fig. 7), and (3) the actual alpha-blended sky
+texture (Fig. 8).
Fig. 7 Background sky color (1) together with an additively blended color layer (2) rendered as sphere
+in Gothic II.¶
+
+
+
+
Fig. 8 Background sky color (1) together with an additively blended color layer (2) rendered as
+sphere, as well as the alpha-blended sky texture (3) layer in Gothic II.¶
+
+
The additively blended color layer (2) is necessary, because the sky looks dull otherwise. See, for
+example, Fig. 9, where this layer was deactivated. In
+Fig. 10, the color layer (2) can be seen on black background.
+
+
+
Fig. 9 Background sky color (1) and the alpha-blended sky texture layer (3) without the additively
+blended color layer (2).¶
+
+
+
+
Fig. 10 Additively blended color layer (2) only, rendered on black background.¶
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/code-ref/core.html b/docs/code-ref/core.html
index dd313ee3..ca060f0f 100644
--- a/docs/code-ref/core.html
+++ b/docs/code-ref/core.html
@@ -37,7 +37,7 @@
-
+
@@ -108,6 +108,7 @@
This is a convenience class which can be extended and used if the default configuration object EngineConfig is sufficient, and no custom configuration is needed.
If you wish to use a custom configuration, however, Engine should be extended, and Engine::config() overridden to avoid confusion between different configuration members.
diff --git a/docs/searchindex.js b/docs/searchindex.js
index 04f668d8..c107fe8a 100644
--- a/docs/searchindex.js
+++ b/docs/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["case-studies/character-statemachine","case-studies/daedalus-vm","case-studies/object-kinds","case-studies/scene-structure","code-ref/core","code-ref/execs","general/about","getting-started/building-docs","getting-started/building-regoth","getting-started/running","index","tutorials/characters","tutorials/create-component","tutorials/setting-up-app","tutorials/waynet","tutorials/world"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:56},filenames:["case-studies/character-statemachine.rst","case-studies/daedalus-vm.rst","case-studies/object-kinds.rst","case-studies/scene-structure.rst","code-ref/core.rst","code-ref/execs.rst","general/about.rst","getting-started/building-docs.rst","getting-started/building-regoth.rst","getting-started/running.rst","index.rst","tutorials/characters.rst","tutorials/create-component.rst","tutorials/setting-up-app.rst","tutorials/waynet.rst","tutorials/world.rst"],objects:{"":{"EmptyGame::EmptyGame":[4,0,1,"_CPPv4N9EmptyGame9EmptyGameERRNSt10unique_ptrIK12EngineConfigEE"],"EmptyGame::EmptyGame::config":[4,1,1,"_CPPv4N9EmptyGame9EmptyGameERRNSt10unique_ptrIK12EngineConfigEE"],"EmptyGame::config":[4,0,1,"_CPPv4NK9EmptyGame6configEv"],"Engine::findEngineContent":[4,0,1,"_CPPv4N6Engine17findEngineContentEv"],"Engine::hasFoundGameFiles":[4,0,1,"_CPPv4N6Engine17hasFoundGameFilesEv"],"Engine::initializeBsf":[4,0,1,"_CPPv4N6Engine13initializeBsfEv"],"Engine::loadCachedResourceManifests":[4,0,1,"_CPPv4N6Engine27loadCachedResourceManifestsEv"],"Engine::loadGamePackages":[4,0,1,"_CPPv4N6Engine16loadGamePackagesEv"],"Engine::loadModPackages":[4,0,1,"_CPPv4N6Engine15loadModPackagesERK17OriginalGameFiles"],"Engine::loadModPackages::files":[4,1,1,"_CPPv4N6Engine15loadModPackagesERK17OriginalGameFiles"],"Engine::run":[4,0,1,"_CPPv4N6Engine3runEv"],"Engine::saveCachedResourceManifests":[4,0,1,"_CPPv4N6Engine27saveCachedResourceManifestsEv"],"Engine::setShaders":[4,0,1,"_CPPv4N6Engine10setShadersEv"],"Engine::setupInput":[4,0,1,"_CPPv4N6Engine10setupInputEv"],"Engine::setupMainCamera":[4,0,1,"_CPPv4N6Engine15setupMainCameraEv"],"Engine::shutdown":[4,0,1,"_CPPv4N6Engine8shutdownEv"],"EngineConfig::registerCLIEngineOptions":[4,0,1,"_CPPv4N12EngineConfig24registerCLIEngineOptionsERN7cxxopts7OptionsE"],"EngineConfig::registerCLIEngineOptions::options":[4,1,1,"_CPPv4N12EngineConfig24registerCLIEngineOptionsERN7cxxopts7OptionsE"],"EngineConfig::registerCLIOptions":[4,0,1,"_CPPv4N12EngineConfig18registerCLIOptionsERN7cxxopts7OptionsE"],"EngineConfig::verifyCLIEngineOptions":[4,0,1,"_CPPv4N12EngineConfig22verifyCLIEngineOptionsEv"],"EngineConfig::verifyCLIOptions":[4,0,1,"_CPPv4N12EngineConfig16verifyCLIOptionsEv"],"EngineConfig::~EngineConfig":[4,0,1,"_CPPv4N12EngineConfigD0Ev"],"REGoth::EmptyGame":[4,2,1,"_CPPv4N6REGoth9EmptyGameE"],"REGoth::EmptyGame::mConfig":[4,3,1,"_CPPv4N6REGoth9EmptyGame7mConfigE"],"REGoth::Engine":[4,2,1,"_CPPv4N6REGoth6EngineE"],"REGoth::Engine::config":[4,0,1,"_CPPv4NK6REGoth6Engine6configEv"],"REGoth::Engine::mEngineContent":[4,3,1,"_CPPv4N6REGoth6Engine14mEngineContentE"],"REGoth::Engine::mMainCamera":[4,3,1,"_CPPv4N6REGoth6Engine11mMainCameraE"],"REGoth::Engine::setupScene":[4,0,1,"_CPPv4N6REGoth6Engine10setupSceneEv"],"REGoth::EngineConfig":[4,2,1,"_CPPv4N6REGoth12EngineConfigE"],"REGoth::EngineConfig::engineExecutablePath":[4,3,1,"_CPPv4N6REGoth12EngineConfig20engineExecutablePathE"],"REGoth::EngineConfig::isFullscreen":[4,3,1,"_CPPv4N6REGoth12EngineConfig12isFullscreenE"],"REGoth::EngineConfig::originalAssetsPath":[4,3,1,"_CPPv4N6REGoth12EngineConfig18originalAssetsPathE"],"REGoth::EngineConfig::resolutionX":[4,3,1,"_CPPv4N6REGoth12EngineConfig11resolutionXE"],"REGoth::EngineConfig::resolutionY":[4,3,1,"_CPPv4N6REGoth12EngineConfig11resolutionYE"],"REGoth::EngineConfig::verbosity":[4,3,1,"_CPPv4N6REGoth12EngineConfig9verbosityE"],"REGoth::parseArguments":[4,0,1,"_CPPv4I0EN6REGoth14parseArgumentsENSt10unique_ptrIK1TEEiPPc"],"REGoth::parseArguments::T":[4,4,1,"_CPPv4I0EN6REGoth14parseArgumentsENSt10unique_ptrIK1TEEiPPc"],"REGoth::parseArguments::argc":[4,1,1,"_CPPv4I0EN6REGoth14parseArgumentsENSt10unique_ptrIK1TEEiPPc"],"REGoth::parseArguments::argv":[4,1,1,"_CPPv4I0EN6REGoth14parseArgumentsENSt10unique_ptrIK1TEEiPPc"],"REGoth::runEngine":[4,0,1,"_CPPv4N6REGoth9runEngineER6Engine"],"REGoth::runEngine::engine":[4,1,1,"_CPPv4N6REGoth9runEngineER6Engine"]}},objnames:{"0":["cpp","function","C++ function"],"1":["cpp","functionParam","functionParam"],"2":["cpp","class","C++ class"],"3":["cpp","member","C++ member"],"4":["cpp","templateParam","templateParam"]},objtypes:{"0":"cpp:function","1":"cpp:functionParam","2":"cpp:class","3":"cpp:member","4":"cpp:templateParam"},terms:{"2gb":8,"3DS":3,"abstract":[1,4],"byte":[0,1],"case":[4,10,11,14],"char":[4,13,15],"class":[2,3,4,11,12,13,15],"const":[4,12,13],"default":[1,4,8,11,12,13],"enum":12,"final":0,"function":[0,4,14,15],"import":[4,9,11],"int":[4,13,15],"long":[0,9],"new":[10,13],"public":[4,12,13,15],"return":[1,4,13,14,15],"short":2,"static":[3,4,14],"super":13,"throw":13,"try":[1,9],"void":[4,13,15],"while":[0,1,3,4,8,9,11,14],And:[0,15],But:11,FPS:15,For:[0,1,2,3,4,8,9,11,12,13,14],IDEs:12,NOT:[2,13],One:0,That:9,The:[0,1,2,4,5,7,8,11,13,15],Then:[0,1],There:[0,1,3,11,15],These:8,Use:[12,13],Will:4,With:7,_2_:0,_world:4,abl:[1,3,8],about:[0,9,10,11],abov:8,acceler:14,accept:9,access:[1,4,14,15],accord:3,accordingli:4,account:3,acquir:4,act:8,action:[0,1,2,11],activ:[0,2],actual:[0,1,4,11,13,14],add:[1,4,7,12,13],add_execut:13,add_opt:13,addcompon:[11,15],added:[11,13],adding:1,addon:5,addonworld:[5,15],address:1,adher:1,after:[1,2,4,11,13],again:[2,11],algorithm:14,all:[1,2,3,4,5,8,9,11,12,13,14,15],allow:[0,3,5,14,15],along:11,alreadi:4,also:[0,1,4,7,8,9,11,12,13,14,15],alwai:[0,1,8,11],among:15,ani:[0,1,3,4],anim:[2,3,11],anoth:[0,1,14],anyth:[0,8,13],anywher:9,appear:3,applic:[10,15],appreci:8,approach:[1,3],apt:8,arbitrari:[1,5],arch:8,argc:[4,13,15],argument:[4,5,9,13],argv:[4,13,15],around:[11,14],arrai:1,arriv:11,asc:3,ask:11,aspect:13,assert:4,asset:[4,5],assign:4,associ:1,assum:11,attach:[3,11,14],attribut:[2,4,13],auto:[13,15],automat:[8,9],avail:[5,8,9],avoid:4,awai:11,awar:8,axi:4,back:0,backend:1,base:[2,3,4],basic:[1,2,15],becaus:[1,13],bed:2,been:[1,2,14],befor:[1,2,11,13],behavior:3,behaviour:13,being:[0,2,3,9,11],below:11,benefici:14,best:4,better:[1,2,14],between:[0,1,4,14],binari:9,bionic:8,bit:[0,1,3,8,11],black:0,blank:1,block:[0,2],bogu:9,bone:2,bool:4,bootstrap:[4,8],bottom:13,bound:0,bow:0,breath:7,browser:7,bs_begin_rtti_memb:12,bs_end_rtti_memb:12,bsccamera:15,bscompon:12,bsf:[4,9],bsfphysx:9,bsfpscamera:15,build:[2,3,9,10,13],built:[7,8,9,14],busi:11,buster:8,button:4,bytecod:1,cach:4,call:[0,1,2,4,11,13,14],call_extern:1,camera:[4,15],camp:[11,14],can:[0,1,3,4,5,7,8,9,11,13,14,15],cannot:[0,1,11],canon:12,care:[0,1,8,15],carri:1,categori:0,cbow:0,ccharactercontrol:11,center:0,certain:[0,11,13,14],chang:1,chapter:[2,14,15],charact:[1,3,10,13,14,15],characterai:11,characterkeyboardinput:11,chart:0,check:[1,4],chest:2,child:3,children:3,choic:7,choos:[8,9],chose:15,circl:0,cli:[4,13],clip:0,clone:8,close:[2,11],closer:11,clutter:8,cmake:[7,8,13],cmakelist:[12,13],code:[0,1,4,10,11,13],collect:2,collis:2,com:8,come:[0,1,3,11,13],comfort:9,command:[4,5,8,9,13],common:[8,13],compat:1,compil:[1,8],complain:9,complet:[0,1,8,14],complex:2,compon:[0,3,10,15],concret:4,config:[4,8,13,15],configur:[4,5],confus:[1,4],consid:[4,13],consist:0,construct:[0,1,2,4,13],constructfromzen:15,constructor:[1,4,13],contain:4,content:[4,7],context:1,continu:1,contribut:7,control:[1,2,3,4,11,14],conveni:4,convert:9,copi:[1,7,8,9],core:[8,10,13,15],correct:[8,11,13],correctli:9,could:[1,2,3],count:4,counterpart:1,cours:3,cover:4,cpp:[12,13],cpu:1,creat:[0,1,3,7,9,10,11,13,15],crossbow:0,current:[0,11],custom:[4,5],cxxopt:[4,13],daedalu:[10,11],daili:[2,11],dat:1,data:[3,4],dcmake_build_typ:8,dcmake_c_compil:8,dcmake_cxx_compil:8,debian:8,debug:1,decid:[0,3],decis:2,decor:[2,15],decoupl:1,defin:[2,13,14],definit:[1,4],delet:9,denot:0,depend:[2,7,8,9,13],deriv:[1,3,8,13],describ:[0,1,11,12,14],desir:[4,8],destin:14,detect:2,determin:14,dev:8,devel:8,develop:[7,8,13,15],didn:13,diego:11,differ:[0,1,3,4,8,11],digest:3,dijkstra:14,directli:[1,3,4,13,14],directori:[4,7,8,9,13],disabl:11,discuss:[1,14,15],displai:[0,3,13],distanc:14,distribut:8,dive:0,dll:9,dmsvc_toolset_vers:8,dnf:8,doc:7,document:[5,8,12,13],doe:[0,1,8],doesn:[0,8,11],doing:1,don:[0,3,8,12,13,15],done:[11,12],door:[1,2],down:2,download:9,doxygen:[7,8],dragonisland:5,draw:0,drawn:0,drop:9,dskip_automate_vcpkg:8,dude:11,dure:4,dying:2,each:[1,2,3,11,12],earlier:0,easi:[0,9],easier:[12,13],easili:13,edg:11,editor:7,effect:[2,3],effici:13,either:[0,1],els:1,embed:1,emploi:4,empti:[0,2,4,13,15],emptygam:[4,13,15],encount:1,end:[1,14],engin:[1,2,4,6,11,13,15],engineconfig:[4,13,15],enginecont:4,engineexecutablepath:4,enough:[1,4],ensur:4,enter:0,entiti:3,entri:1,environ:[7,8,13],error:[1,9],errorlevel:4,etc:3,evalu:[1,11],even:[1,2,8,9],everi:[1,3,11,14],everyth:[3,9,11,13],exactli:[0,11],examin:13,exampl:[0,1,2,3,4,9,11,12,13,14],except:13,exe:8,execut:[0,1,4,9,10,13,15],exist:[0,1,4,11,13],expect:[1,8,11,15],explicitli:[2,8,13],extend:[4,13],extens:8,extern:11,factor:0,fail:9,fall:11,fals:4,fan:13,fanci:1,far:[3,11],fashion:1,fast:1,faster:[0,8,9,11,14],featur:[4,5],fedora:8,fetch:8,few:[3,11],fig:14,fight:[0,2],figur:8,file:[0,1,4,7,8,9,13],fill:[0,12,15],find:[4,9,11,14,15],findenginecont:4,finish:0,first:[0,5,8,9,13],fist:0,fix:0,flag:1,flow:1,fly:[1,15],folder:13,follow:[0,1,3,4,5,7,8,11,12,13,15],foot:0,footstep:2,forest:14,forget:12,format:[1,9],found:[1,4,9,14,15],fpscamera:15,frame:[2,11],framework:[3,8],free:4,freeglut3:8,freeglut:8,freeli:9,freemin:5,from:[0,1,2,3,4,7,8,11,13,14,15],front:2,full:[0,14,15],fulli:11,fullscreen:[4,5],func:1,further:[1,11],game:[0,1,3,4,5,6,9,10,13,15],game_path:13,gameplai:[2,11],gameworld:[11,15],gather:8,gcc:8,gener:[0,1,7,8,10],get:[1,3,4,7,8,9,10,11,13,14,15],getter:13,git:8,github:[7,8],give:15,given:[1,3,4,13],gninja:8,goe:[0,9,11,13,14],going:[0,2,11],got:11,gothic2:9,gothic:[0,1,3,4,5,6,10,11,13,14,15],grant:4,greatli:8,greet:13,ground:3,group:4,grp:13,guid:7,gvirtualfilesystem:4,gworld:14,had:1,hand:14,handl:[1,2,3,4,11,13,14,15],happen:[0,8],hard:1,has:[0,1,2,4,11,14],hasfoundgamefil:4,have:[1,2,3,5,7,8,9,11,14,15],hcamera:4,hcharact:11,header:15,health:2,heart:4,helloregoth:13,helloregothconfig:13,help:[5,9],henc:1,here:[0,4,5,7,9,13],hgameworld:15,higher:4,him:11,his:11,hold:[0,1,3],host:1,how:[2,4,8,15],howev:[0,1,2,4,11,13,15],hpp:[4,12,13,14,15],hsceneobject:12,html:7,http:8,hut:11,icu:8,identifi:1,idl:2,implement:[1,2,4,11,12,14],implicitli:0,importzen:15,improv:15,includ:[0,2,4,12,13,15],incorrect:0,increas:[1,5],inde:[0,14],index:7,indic:9,info:13,inform:[1,8,13,14],ing:4,initi:[4,15],initializebsf:4,input:4,insertcharact:11,insid:[1,3,8,9,11,13,14,15],instal:[5,7,8,13],instanc:[3,4,11],instanti:[3,13],instead:[4,9,13],integ:1,inter:2,interact:3,interest:0,interfac:11,intern:[1,3,8,13,15],intersect:14,invalidstateexcept:13,inventori:[2,3],irdorath:5,isfullscreen:4,island:5,issu:8,item:[1,3,11,15],its:[1,2,8,11,14],itself:1,jharkendar:5,jotre:13,jump:1,just:[1,3,7,8,11,13],keep:[1,3,11],kei:1,khorini:5,kind:[0,1,3,10],knee:2,knock:2,know:0,known:14,lai:3,languag:1,larger:11,last:[11,12],ld_library_path:9,least:[3,14],leav:[9,11],length:1,less:8,let:[0,1,13],level:[4,5],lib:9,libbsf:9,libgl1:8,libgl:8,libglu1:8,libglu:8,libicu:8,libphysf:8,libphysx3_x64:9,librari:13,libsquish:8,libx11:8,libxcursor:8,libxi:8,libxrandr:8,light:15,like:[0,1,2,9,13,14,15],line:[4,5,9,11,13,14],linux:9,list:[8,14],littl:[3,8,11],load:[1,3,4,5,9,11,14],loadcachedresourcemanifest:4,loader:4,loadgamepackag:4,loadmodpackag:4,loadoriginalgamepackag:4,loadpackag:4,loadworldmeshfromzen:15,local:7,locat:[1,4,9,11,14],log:[1,13],logic:0,longer:11,look:[1,11,13,14],lookup:1,loop:[0,2,4],lose:15,lot:[4,13],luck:0,machin:[1,10,11],made:1,mag:0,magic:0,mai:[9,11,13],main:[0,4,11,13,14,15],main_:13,main_helloregoth:13,maintain:1,make:[0,1,4,8,12,13],manag:[2,3,8],mani:1,manifest:4,manjaro:8,map:14,match:[3,11],materi:[3,4],mconfig:[4,13],mean:[0,1,9,14],meant:11,meatbug:11,mechan:[1,4],member:[1,4,12,13],memori:[13,15],menginecont:4,mention:[11,13],mesa:8,mesh:[3,11,13],messag:5,meter:11,method:[4,11,13,15],might:[1,8,9,14,15],mind:11,mine:5,mislead:11,miss:[8,9],mix:0,mkdir:8,mmaincamera:[4,15],mod:[1,4],mode:0,model:2,modern:9,modif:13,modifi:[1,13],modul:[0,4],modvdf:4,moment:0,monster:[2,11],more:[0,1,2,4,8,9,11,13,14,15],morph:3,most:[0,1,2,4,9,11,14,15],mostli:1,move:[3,4,11,13,15],msbuild:8,multipl:[1,3,8,11,12,15],must:[4,13],naiv:14,name:[1,2,11,12,13,14],namespac:12,nativ:[1,8,11],navig:[8,14],nearest:2,need:[0,1,3,4,7,8,9,11,12,13,14,15],never:13,newer:8,newfil:12,newli:4,newth:12,newworld:5,next:[1,9],nicod:0,night:5,nightli:9,non:[0,11],none:0,normal:[13,14],note:[1,4,8],noth:13,now:[8,9,13],npc:[1,11,15],npc_:11,npc_default:1,nproc:8,number:[0,1,8,9,11],object:[0,1,3,4,10,11,13,14,15],oc1:11,off:0,offer:[4,14],offici:8,offset:1,often:14,old:[11,14],oldmin:5,oldworld:[5,15],onc:[0,1,2,9,11,12,13,14,15],one:[0,1,2,7,11,13,14],ones:[0,14],onli:[0,1,2,5,7,8,9,11,13,14],onto:1,open:[1,2,4,6,7],opensourc:[6,10],oper:[4,12,14,15],opt:13,option:[4,5,8,9,11,13,15],orc:11,orcgraveyard:5,orctempel:5,order:[4,11,13],orient:[2,3],origin:[0,1,2,3,4,9,11,14],originalassetspath:4,originalgamefil:4,other:[0,1,2,3,4,11,13,14,15],otherwis:4,our:[8,13],out:[0,2,3,8,11,14],outsid:1,over:[0,2,9],overload:11,overrid:[13,15],overridden:4,overriden:4,overview:9,own:[3,4,8,11,13,15],ownership:4,pack:1,packag:4,pacman:8,page:[7,8],pair:1,parallel:8,paramet:[1,4,11],parent:[3,12],pars:[4,13],parseargu:[4,13,15],part:[0,13],particl:[2,3],particlesystem:2,pass:[8,13],path:[4,5,9,13,14],pc_hero:11,peopl:[0,11],per:8,perform:8,physf:8,physic:[2,11],physx:9,piranha:0,pitfal:8,place:[2,9,11,14,15],plai:[0,2,9,11,15],plantuml:[7,8],platform:8,playanim:0,playback:11,player:[0,3,11],playgound:13,pleas:11,point:[1,13,15],pointer:[1,4],pop:[1,11],posit:[2,5],posix:4,possibl:[1,8,14,15],practic:4,pragma:12,preced:0,precomput:14,prepar:8,present:1,press:0,previou:4,previous:1,print:5,privat:[4,12,13],probabl:2,proce:13,process:[1,11,14],processor:1,project:[7,8],prompt:8,properli:4,properti:2,proprietari:1,protect:[4,12],provid:4,pull:8,pure:4,purpos:2,push:1,put:[1,9,11,15],python:7,queri:14,quest:1,quick:7,quicker:11,quiet:4,radiu:11,ram:8,ran:1,random:11,rang:11,rather:[0,1,2,11],raven:5,raw:[1,2],reach:[0,2,11,13,14],reachabl:14,read:[1,13],real:[1,2,13],realli:[0,1,8,15],reason:[0,1,3],recommend:[7,8],recurs:[1,4,8,14],refer:[1,7,10,14],referenc:1,regist:[4,11],registercliengineopt:4,registercliopt:[4,13],regoth:[1,2,3,4,5,6,7,11,12,14,15],regoth_declare_rtti:12,regoth_define_rtti:12,regoth_doc:7,regoth_implement_rtti_class_for_compon:12,regoth_log:13,regoth_throw:13,regothcharactermovementtest:4,regothcharacterview:4,regothengin:13,regothfontview:4,regothmobview:4,regothscripttest:4,regothsometh:9,regothwaynettest:4,regothworldcachetest:4,regothworldmeshview:4,regothworldview:[4,9,15],regothxxx:9,reimplement:[4,6,10],relat:[1,2,14,15],relev:[2,7,11,13],relwithdebinfo:8,render:[3,4,11],replac:[1,8,12],repositori:[7,8],repres:4,request:8,requir:[4,7,8,9],res:5,resid:13,resolut:[4,5],resolutioni:4,resolutionx:4,resourc:[4,9],respect:14,rest:9,restructuredtext:7,result:[0,1],rewrit:1,right:11,root:[7,9,14],rotat:2,rout:14,routin:[2,11],rst:7,rtti_newth:12,rtti_typeid:12,rttityp:12,rttiutil:12,rule:1,run:[1,4,5,7,8,10,11,13],runengin:[4,13,15],runinitscript:[11,15],runtim:1,s_1hrunl:0,s_fistwalkstrafel:0,s_runl:0,safer:1,sai:11,said:2,sake:12,same:[1,8],sampl:13,save:[1,3,4,11],savecachedresourcemanifest:4,scale:2,scene:[4,10,11,12,13,14],scrap:1,script:[0,1,8,11,14],seamless:8,search:[9,14],section:[1,7],see:[1,3,4,7,9,11,13,14,15],seem:[0,8],sens:[0,1],separ:0,sequenc:14,serv:11,set:[1,4,9,10,11,15],set_inst:1,setnam:12,setshad:4,setup:[1,4,13],setupinput:4,setupmaincamera:[4,13,15],setupscen:[4,13,15],sever:5,shader:4,shall:0,ship:13,shortest:14,should:[0,1,2,3,4,11,13,14],show:[12,13,14],shutdown:4,sign:1,similar:[1,3,8],simpl:11,simpler:1,simpli:[1,7,9,14],simplifi:0,sinc:[0,1,2,3,8,11,14],singl:[1,3,11],skelet:[3,11],skeletalmesh:2,skill:2,skip:7,slowli:11,small:[1,13],smooth:0,sneak:0,snip:12,softwar:1,solut:[3,14],some:[0,1,2,4,8,9,11,13,14,15],someon:0,someth:[1,2],somewher:9,sort:[1,14],sound:2,sourc:[6,7,8,9],spawn:11,speak:0,special:[0,1,2],specialis:4,specif:[1,4,11,13,14],specifi:9,speedup:0,sphinx:7,sphinx_rtd_them:7,sphinxcontrib:7,split:[0,1,3],spot:2,sptr:4,src:[12,13,14,15],stack:1,stage:1,stai:[0,11],start:[0,1,2,4,10,13,14,15],startpoint:11,startup:9,state:[1,2,10,11],statechart:0,statemachin:0,statu:4,std:[4,13,15],step:[0,11,12],still:[1,11,13],store:[1,13,14],stori:14,strafeleft:0,straferight:0,street:14,strength:2,string:[0,13],struct:[4,13],structur:[1,4,10,13,14],studi:10,stuff:8,style:15,sub:[0,9],subclass:[2,4],subject:13,submodul:8,substructur:1,subtract:1,subtyp:4,successfulli:15,sudo:8,suffici:4,suggest:3,suppli:8,support:[1,8,15],suppos:[0,14],sure:[0,4,8,13,14],surrend:4,swamp:14,swim:0,syntax:7,system:[2,3],t_1hrun_2_1hrunl:0,take:[0,1,3,8,11,14],taken:[0,1,14],talk:[0,11],tap:0,target:[1,7,11,13,14],target_link_librari:13,task:[2,8],teleport:2,tell:[0,14],templat:[4,12,13,15],test:[10,15],text:[1,7],than:[1,8,11],thei:[0,1,2,8,11,12],them:[1,4,11,13,14,15],therefor:[0,4,11,15],thi:[0,1,2,4,5,7,8,9,11,12,13,14,15],thing:[0,11,12,15],think:[0,14],tho:13,those:[0,1,9,11,13,14,15],though:[2,14],threshold:11,through:[14,15],thu:3,tid_regoth_gameclock:12,tid_regoth_newth:12,tid_regoth_scriptobjectmap:12,tid_regoth_visualcharact:12,time:[0,9,11,13,15],todo:[12,14],togeth:[1,8,11],too:[1,11],tool:[4,8],toolchain:8,tradit:3,tradition:3,transform:2,transit:[0,2],tree:[3,9],tri:0,tricki:8,trigger:[1,3],trivia:0,turn:14,tutori:10,two:[0,1,11,14],txt:[12,13],type:[0,1,3,13],typeid_regoth:12,typic:2,ubuntu:8,uncategor:13,underli:1,understand:[0,3],undraw:0,unfortun:8,uniqu:4,unique_ptr:[4,13],unknown:14,unlik:1,unlink:1,unload:11,unsign:4,until:11,updat:[7,11],upon:[2,3],upward:9,usabl:0,usag:[5,8],use:[1,4,7,8,11,12,13,14,15],useashero:11,used:[0,1,2,4,6,10,13,14,15],useful:[2,15],user:4,uses:[1,2,4,8],using:[2,3,4,5,7,8,11,13,14,15],usual:[1,2,7,8,9],util:[4,13],valid:[1,4,5,11,13],vallei:5,valu:[0,1,13],variabl:1,vcpkg:8,vdf:4,vector:4,verbos:[4,5],veri:[1,3,13],verifi:[4,13],verifycliengineopt:4,verifycliopt:[4,13],version:[0,1,5,8],via:[1,4,8,11,13,15],video:5,view:[5,7],viewer:[4,13],virtual:[1,2,4,7,12,13],visibl:11,visual:[0,2,11,14],visualcharact:11,vob:15,wai:[1,3,8,9,11,12,14],wait:[0,1],walk:[0,2,11],walkmod:0,want:[1,2,7,8,9,11,13],water:0,waynet:[10,13,15],waypoint:[11,14],weapon:0,weaponmod:0,weird:0,well:[2,3,4,8,11,15],went:11,were:[0,1,4],what:[0,1,2,3,11,13],whatev:[1,11],when:[0,4,9,11,12,14],whenev:1,where:[0,1,8,9,11,13],whether:[0,4,5],which:[0,1,2,3,4,6,11,13,14],whoever:[1,13],whole:0,whose:5,why:[0,11],win64:8,window:[4,9,13],wish:4,within:[1,7,8,11],without:0,wolf:11,won:15,work:[1,3,8,9,11],world:[2,4,5,9,10,11,13,14],worldviewerconfig:4,would:[0,1,2,3,8,11,13,14,15],wrap:3,write:1,written:[4,7,13],x64:8,x86:8,yet:4,you:[0,1,4,7,8,9,11,12,13,14,15],your:[4,7,8,9,13,15],yourself:8,zcvob:3,zen:15,zengin:[1,6,10]},titles:["Character state machine","Daedalus VM","Kinds of objects in Gothic","Scene structure","Core","Executables","About","Building the documentation","Building REGoth","Running REGoth","Welcome to REGoth\u2019s documentation!","Characters","Creating a new component","Setting up a test application","Waynet","World"],titleterms:{"class":1,"float":1,"function":1,"int":1,"new":[7,12],"void":1,Adding:7,The:[9,14],Using:[8,15],about:6,anim:0,applic:13,architectur:0,asset:9,backward:0,build:[7,8],button:0,cach:9,chapter:7,charact:[0,2,11],cmake:12,code:8,compon:[11,12,14],configur:13,core:[4,5],counter:1,creat:12,current:1,custom:13,daedalu:1,daedalusvm:1,data:1,decis:1,descript:0,design:1,distanc:11,document:[7,10],engin:5,everyth:15,execut:5,executor:1,exist:7,extern:1,file:12,forward:0,from:9,gener:5,global:1,gothic:[2,9],header:12,hello:13,hero:11,how:14,init:15,insert:11,instal:9,instanc:1,instruct:1,interact:2,interpret:1,jump:0,kind:2,left:0,linux:8,load:15,logic:3,machin:0,make:11,map:1,memori:1,mesh:15,mob:2,modifi:7,name:0,ninja:8,non:2,npc:2,object:2,onli:15,outsid:9,packag:[7,8],part:1,pathfind:14,pip:7,player:2,posit:11,prioriti:0,program:1,prototyp:1,refer:4,regist:1,regoth:[8,9,10,13],regothworldview:5,right:0,rtti:12,run:[0,9,15],scene:3,script:15,set:13,shrink:11,sourc:12,specifi:13,stand:0,state:0,storag:1,strafe:0,string:1,structur:3,studio:8,substat:0,symbol:1,symbolkind:1,system:8,test:13,translat:0,turn:0,type:12,visual:[3,8],vob:2,waynet:14,welcom:10,what:14,window:8,work:14,world:15,zenlib:1}})
\ No newline at end of file
+Search.setIndex({docnames:["case-studies/character-statemachine","case-studies/daedalus-vm","case-studies/object-kinds","case-studies/scene-structure","case-studies/sky","code-ref/core","code-ref/execs","general/about","getting-started/building-docs","getting-started/building-regoth","getting-started/running","index","tutorials/characters","tutorials/create-component","tutorials/setting-up-app","tutorials/waynet","tutorials/world"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:56},filenames:["case-studies/character-statemachine.rst","case-studies/daedalus-vm.rst","case-studies/object-kinds.rst","case-studies/scene-structure.rst","case-studies/sky.rst","code-ref/core.rst","code-ref/execs.rst","general/about.rst","getting-started/building-docs.rst","getting-started/building-regoth.rst","getting-started/running.rst","index.rst","tutorials/characters.rst","tutorials/create-component.rst","tutorials/setting-up-app.rst","tutorials/waynet.rst","tutorials/world.rst"],objects:{"":{"EmptyGame::EmptyGame":[5,0,1,"_CPPv4N9EmptyGame9EmptyGameERRNSt10unique_ptrIK12EngineConfigEE"],"EmptyGame::EmptyGame::config":[5,1,1,"_CPPv4N9EmptyGame9EmptyGameERRNSt10unique_ptrIK12EngineConfigEE"],"EmptyGame::config":[5,0,1,"_CPPv4NK9EmptyGame6configEv"],"Engine::findEngineContent":[5,0,1,"_CPPv4N6Engine17findEngineContentEv"],"Engine::hasFoundGameFiles":[5,0,1,"_CPPv4N6Engine17hasFoundGameFilesEv"],"Engine::initializeBsf":[5,0,1,"_CPPv4N6Engine13initializeBsfEv"],"Engine::loadCachedResourceManifests":[5,0,1,"_CPPv4N6Engine27loadCachedResourceManifestsEv"],"Engine::loadGamePackages":[5,0,1,"_CPPv4N6Engine16loadGamePackagesEv"],"Engine::loadModPackages":[5,0,1,"_CPPv4N6Engine15loadModPackagesERK17OriginalGameFiles"],"Engine::loadModPackages::files":[5,1,1,"_CPPv4N6Engine15loadModPackagesERK17OriginalGameFiles"],"Engine::run":[5,0,1,"_CPPv4N6Engine3runEv"],"Engine::saveCachedResourceManifests":[5,0,1,"_CPPv4N6Engine27saveCachedResourceManifestsEv"],"Engine::setShaders":[5,0,1,"_CPPv4N6Engine10setShadersEv"],"Engine::setupInput":[5,0,1,"_CPPv4N6Engine10setupInputEv"],"Engine::setupMainCamera":[5,0,1,"_CPPv4N6Engine15setupMainCameraEv"],"Engine::shutdown":[5,0,1,"_CPPv4N6Engine8shutdownEv"],"EngineConfig::registerCLIEngineOptions":[5,0,1,"_CPPv4N12EngineConfig24registerCLIEngineOptionsERN7cxxopts7OptionsE"],"EngineConfig::registerCLIEngineOptions::options":[5,1,1,"_CPPv4N12EngineConfig24registerCLIEngineOptionsERN7cxxopts7OptionsE"],"EngineConfig::registerCLIOptions":[5,0,1,"_CPPv4N12EngineConfig18registerCLIOptionsERN7cxxopts7OptionsE"],"EngineConfig::verifyCLIEngineOptions":[5,0,1,"_CPPv4N12EngineConfig22verifyCLIEngineOptionsEv"],"EngineConfig::verifyCLIOptions":[5,0,1,"_CPPv4N12EngineConfig16verifyCLIOptionsEv"],"EngineConfig::~EngineConfig":[5,0,1,"_CPPv4N12EngineConfigD0Ev"],"REGoth::EmptyGame":[5,2,1,"_CPPv4N6REGoth9EmptyGameE"],"REGoth::EmptyGame::mConfig":[5,3,1,"_CPPv4N6REGoth9EmptyGame7mConfigE"],"REGoth::Engine":[5,2,1,"_CPPv4N6REGoth6EngineE"],"REGoth::Engine::config":[5,0,1,"_CPPv4NK6REGoth6Engine6configEv"],"REGoth::Engine::mEngineContent":[5,3,1,"_CPPv4N6REGoth6Engine14mEngineContentE"],"REGoth::Engine::mMainCamera":[5,3,1,"_CPPv4N6REGoth6Engine11mMainCameraE"],"REGoth::Engine::populateResourceCache":[5,0,1,"_CPPv4N6REGoth6Engine21populateResourceCacheEv"],"REGoth::Engine::setupScene":[5,0,1,"_CPPv4N6REGoth6Engine10setupSceneEv"],"REGoth::EngineConfig":[5,2,1,"_CPPv4N6REGoth12EngineConfigE"],"REGoth::EngineConfig::engineExecutablePath":[5,3,1,"_CPPv4N6REGoth12EngineConfig20engineExecutablePathE"],"REGoth::EngineConfig::gameType":[5,3,1,"_CPPv4N6REGoth12EngineConfig8gameTypeE"],"REGoth::EngineConfig::isFullscreen":[5,3,1,"_CPPv4N6REGoth12EngineConfig12isFullscreenE"],"REGoth::EngineConfig::originalAssetsPath":[5,3,1,"_CPPv4N6REGoth12EngineConfig18originalAssetsPathE"],"REGoth::EngineConfig::resolutionX":[5,3,1,"_CPPv4N6REGoth12EngineConfig11resolutionXE"],"REGoth::EngineConfig::resolutionY":[5,3,1,"_CPPv4N6REGoth12EngineConfig11resolutionYE"],"REGoth::EngineConfig::skyRenderMode":[5,3,1,"_CPPv4N6REGoth12EngineConfig13skyRenderModeE"],"REGoth::EngineConfig::verbosity":[5,3,1,"_CPPv4N6REGoth12EngineConfig9verbosityE"],"REGoth::parseArguments":[5,0,1,"_CPPv4I0EN6REGoth14parseArgumentsENSt10unique_ptrIK1TEEiPPc"],"REGoth::parseArguments::T":[5,4,1,"_CPPv4I0EN6REGoth14parseArgumentsENSt10unique_ptrIK1TEEiPPc"],"REGoth::parseArguments::argc":[5,1,1,"_CPPv4I0EN6REGoth14parseArgumentsENSt10unique_ptrIK1TEEiPPc"],"REGoth::parseArguments::argv":[5,1,1,"_CPPv4I0EN6REGoth14parseArgumentsENSt10unique_ptrIK1TEEiPPc"],"REGoth::runEngine":[5,0,1,"_CPPv4N6REGoth9runEngineER6Engine"],"REGoth::runEngine::engine":[5,1,1,"_CPPv4N6REGoth9runEngineER6Engine"]}},objnames:{"0":["cpp","function","C++ function"],"1":["cpp","functionParam","functionParam"],"2":["cpp","class","C++ class"],"3":["cpp","member","C++ member"],"4":["cpp","templateParam","templateParam"]},objtypes:{"0":"cpp:function","1":"cpp:functionParam","2":"cpp:class","3":"cpp:member","4":"cpp:templateParam"},terms:{"2gb":9,"3DS":3,"abstract":[1,5],"byte":[0,1],"case":[5,11,12,15],"char":[5,14,16],"class":[2,3,5,12,13,14,16],"const":[5,13,14],"default":[1,5,9,12,13,14],"enum":13,"final":0,"function":[0,5,15,16],"import":[5,10,12],"int":[5,14,16],"long":[0,10],"new":[11,14],"public":[5,13,14,16],"return":[1,5,14,15,16],"short":2,"static":[3,5,15],"super":14,"throw":14,"try":[1,10],"void":[5,14,16],"while":[0,1,3,4,5,9,10,12,15],And:[0,16],But:12,FPS:16,For:[0,1,2,3,5,9,10,12,13,14,15],IDEs:13,NOT:[2,14],One:0,That:10,The:[0,1,2,4,5,6,8,9,12,14,16],Then:[0,1],There:[0,1,3,12,16],These:9,Use:[13,14],Will:5,With:8,_2_:0,_world:5,abl:[1,3,9],about:[0,10,11,12],abov:9,acceler:15,accept:10,access:[1,5,15,16],accord:3,accordingli:5,account:3,acquir:5,act:9,action:[0,1,2,12],activ:[0,2],actual:[0,1,4,5,12,14,15],add:[1,5,8,13,14],add_execut:14,add_opt:14,addcompon:[12,16],added:[4,12,14],adding:1,addit:4,addon:6,addonworld:[6,16],address:1,adher:1,after:[1,2,5,12,14],again:[2,12],algorithm:15,all:[1,2,3,5,6,9,10,12,13,14,15,16],allow:[0,3,6,15,16],along:12,alpha:4,alreadi:5,also:[0,1,5,8,9,10,12,13,14,15,16],alwai:[0,1,9,12],among:16,ani:[0,1,3,5],anim:[2,3,12],anoth:[0,1,15],anyth:[0,9,14],anywher:10,appear:3,applic:[11,16],appreci:9,approach:[1,3],apt:9,arbitrari:[1,6],arch:9,argc:[5,14,16],argument:[5,6,10,14],argv:[5,14,16],around:[12,15],arrai:1,arriv:12,asc:3,ask:12,aspect:14,assert:5,asset:[5,6],assign:5,associ:1,assum:12,attach:[3,12,15],attribut:[2,5,14],auto:[14,16],automat:[9,10],avail:[6,9,10],avoid:5,awai:12,awar:9,axi:5,back:0,backend:1,background:4,base:[2,3,5],basic:[1,2,16],becaus:[1,4,14],bed:2,been:[1,2,15],befor:[1,2,12,14],behavior:3,behaviour:14,being:[0,2,3,10,12],below:12,benefici:15,best:5,better:[1,2,15],between:[0,1,5,15],binari:10,bionic:9,bit:[0,1,3,9,12],black:[0,4],blank:1,blend:4,block:[0,2],bogu:10,bone:2,bool:5,bootstrap:[5,9],bottom:14,bound:0,bow:0,breath:8,browser:8,bs_begin_rtti_memb:13,bs_end_rtti_memb:13,bsccamera:16,bscompon:13,bsf:[5,10],bsfphysx:10,bsfpscamera:16,build:[2,3,10,11,14],built:[8,9,10,15],busi:12,buster:9,button:5,bytecod:1,cach:5,call:[0,1,2,5,12,14,15],call_extern:1,camera:[5,16],camp:[12,15],can:[0,1,3,4,5,6,8,9,10,12,14,15,16],cannot:[0,1,12],canon:13,care:[0,1,9,16],carri:1,categori:0,cbow:0,ccharactercontrol:12,center:0,certain:[0,12,14,15],chang:1,chapter:[2,15,16],charact:[1,3,11,14,15,16],characterai:12,characterkeyboardinput:12,chart:0,check:[1,5],chest:2,child:3,children:3,choic:8,choos:[9,10],chose:16,circl:0,cli:[5,14],clip:0,clone:9,close:[2,12],closer:12,clutter:9,cmake:[8,9,14],cmakelist:[13,14],code:[0,1,5,11,12,14],collect:2,collis:2,color:4,com:9,come:[0,1,3,12,14],comfort:10,command:[5,6,9,10,14],common:[9,14],compat:1,compil:[1,9],complain:10,complet:[0,1,9,15],complex:2,compon:[0,3,11,16],concret:5,config:[5,9,14,16],configur:[5,6],confus:[1,5],consid:[5,14],consist:[0,4],construct:[0,1,2,5,14],constructfromzen:16,constructor:[1,5,14],contain:5,content:[5,8],context:1,continu:1,contribut:8,control:[1,2,3,5,12,15],conveni:5,convert:10,copi:[1,8,9,10],core:[9,11,14,16],correct:[9,12,14],correctli:10,could:[1,2,3],count:5,counterpart:1,cours:3,cover:5,cpp:[13,14],cpu:1,creat:[0,1,3,8,10,11,12,14,16],crossbow:0,current:[0,5,12],custom:[5,6],cxxopt:[5,14],cylind:[],daedalu:[11,12],daili:[2,12],dat:1,data:[3,5],dcmake_build_typ:9,dcmake_c_compil:9,dcmake_cxx_compil:9,deactiv:4,debian:9,debug:1,decid:[0,3],decis:2,decor:[2,16],decoupl:1,defin:[2,14,15],definit:[1,5],delet:10,denot:0,depend:[2,4,8,9,10,14],deriv:[1,3,9,14],describ:[0,1,12,13,15],desir:[5,9],destin:15,detect:2,determin:15,dev:9,devel:9,develop:[8,9,14,16],didn:14,diego:12,differ:[0,1,3,4,5,9,12],digest:3,dijkstra:15,directli:[1,3,5,14,15],directori:[5,8,9,10,14],disabl:12,discuss:[1,15,16],displai:[0,3,14],distanc:15,distribut:9,dive:0,dll:10,dmsvc_toolset_vers:9,dnf:9,doc:8,document:[6,9,13,14],doe:[0,1,9],doesn:[0,9,12],doing:1,dome:4,don:[0,3,9,13,14,16],done:[12,13],door:[1,2],down:2,download:10,doxygen:[8,9],dragonisland:6,draw:0,drawn:0,drop:10,dskip_automate_vcpkg:9,dude:12,dull:4,dure:5,dying:2,each:[1,2,3,12,13],earlier:0,easi:[0,10],easier:[13,14],easili:14,edg:12,editor:8,effect:[2,3],effici:14,either:[0,1],els:1,embed:1,emploi:5,empti:[0,2,5,14,16],emptygam:[5,14,16],encount:1,end:[1,15],engin:[1,2,5,7,12,14,16],engineconfig:[5,14,16],enginecont:5,engineexecutablepath:5,enough:[1,4,5],ensur:5,enter:0,entiti:3,entri:1,environ:[8,9,14],error:[1,10],errorlevel:5,etc:3,evalu:[1,12],even:[1,2,9,10],everi:[1,3,12,15],everyth:[3,10,12,14],exactli:[0,12],examin:14,exampl:[0,1,2,3,4,5,10,12,13,14,15],except:14,exe:9,execut:[0,1,5,10,11,14,16],exist:[0,1,5,12,14],expect:[1,9,12,16],explicitli:[2,9,14],extend:[5,14],extens:9,extern:12,factor:0,fail:10,fall:12,fals:5,fan:14,fanci:1,far:[3,12],fashion:1,fast:1,faster:[0,9,10,12,15],featur:[5,6],fedora:9,fetch:9,few:[3,12],fig:[4,15],fight:[0,2],figur:9,file:[0,1,5,8,9,10,14],fill:[0,13,16],find:[5,10,12,15,16],findenginecont:5,finish:0,first:[0,6,9,10,14],fist:0,fix:0,flag:1,flow:1,fly:[1,16],folder:14,follow:[0,1,3,5,6,8,9,12,13,14,16],foot:0,footstep:2,forest:15,forget:13,format:[1,10],found:[1,5,10,15,16],fpscamera:16,frame:[2,12],framework:[3,9],free:5,freeglut3:9,freeglut:9,freeli:10,freemin:6,from:[0,1,2,3,5,8,9,12,14,15,16],front:2,full:[0,15,16],fulli:12,fullscreen:[5,6],func:1,further:[1,12],game:[0,1,3,4,5,6,7,10,11,14,16],game_path:14,gameplai:[2,12],gametyp:5,gameworld:[12,16],gather:9,gcc:9,gener:[0,1,8,9,11],get:[1,3,5,8,9,10,11,12,14,15,16],getter:14,git:9,github:[8,9],give:16,given:[1,3,4,5,14],gninja:9,goe:[0,5,10,12,14,15],going:[0,2,12],got:12,gothic1gam:5,gothic2:10,gothic2gam:5,gothic:[0,1,3,4,5,6,7,11,12,14,15,16],grant:5,graphic:4,greatli:9,greet:14,ground:3,group:5,grp:14,guid:8,gvirtualfilesystem:5,gworld:15,had:1,hand:15,handl:[1,2,3,5,12,14,15,16],happen:[0,9],hard:1,has:[0,1,2,5,12,15],hasfoundgamefil:5,have:[1,2,3,6,8,9,10,12,15,16],hcamera:5,hcharact:12,header:16,health:2,heart:5,helloregoth:14,helloregothconfig:14,help:[6,10],henc:1,here:[0,5,6,8,10,14],hgameworld:16,higher:5,him:12,his:12,hold:[0,1,3],host:1,how:[2,5,9,16],howev:[0,1,2,5,12,14,16],hpp:[5,13,14,15,16],hsceneobject:13,html:8,http:9,hut:12,icu:9,identifi:1,idl:2,implement:[1,2,5,12,13,15],implicitli:0,importzen:16,improv:16,includ:[0,2,5,13,14,16],incorrect:0,increas:[1,6],inde:[0,15],index:8,indic:10,info:14,inform:[1,9,14,15],ing:5,initi:[5,16],initializebsf:5,input:5,insertcharact:12,insid:[1,3,9,10,12,14,15,16],instal:[6,8,9,14],instanc:[3,5,12],instanti:[3,14],instead:[5,10,14],integ:1,inter:2,interact:3,interest:0,interfac:12,intern:[1,3,9,14,16],intersect:15,invalidstateexcept:14,inventori:[2,3],irdorath:6,isfullscreen:5,island:6,issu:9,item:[1,3,12,16],its:[1,2,9,12,15],itself:1,jharkendar:6,jotre:14,jump:1,just:[1,3,8,9,12,14],keep:[1,3,12],kei:1,khorini:6,kind:[0,1,3,11],knee:2,knock:2,know:0,known:15,lai:3,languag:1,larger:12,last:[12,13],layer:4,ld_library_path:10,least:[3,15],leav:[10,12],length:1,less:9,let:[0,1,14],level:[5,6],lib:10,libbsf:10,libgl1:9,libgl:9,libglu1:9,libglu:9,libicu:9,libphysf:9,libphysx3_x64:10,librari:14,libsquish:9,libx11:9,libxcursor:9,libxi:9,libxrandr:9,light:16,like:[0,1,2,10,14,15,16],line:[5,6,10,12,14,15],linux:10,list:[9,15],littl:[3,9,12],load:[1,3,5,6,10,12,15],loadcachedresourcemanifest:5,loader:5,loadgamepackag:5,loadmodpackag:5,loadoriginalgamepackag:5,loadpackag:5,loadworldmeshfromzen:16,local:8,locat:[1,5,10,12,15],log:[1,14],logic:0,longer:12,look:[1,4,12,14,15],lookup:1,loop:[0,2,5],lose:16,lot:[5,14],luck:0,machin:[1,11,12],made:1,mag:0,magic:0,mai:[10,12,14],main:[0,5,12,14,15,16],main_:14,main_helloregoth:14,maintain:1,make:[0,1,5,9,13,14],manag:[2,3,9],mani:1,manifest:5,manjaro:9,map:15,match:[3,12],materi:[3,5],mconfig:[5,14],mean:[0,1,10,15],meant:12,meatbug:12,mechan:[1,5],member:[1,5,13,14],memori:[14,16],menginecont:5,mention:[12,14],mesa:9,mesh:[3,12,14],messag:6,meter:12,method:[5,12,14,16],might:[1,9,10,15,16],mind:12,mine:6,mislead:12,miss:[9,10],mix:0,mkdir:9,mmaincamera:[5,16],mod:[1,5],mode:[0,5],model:[2,4],modern:10,modif:14,modifi:[1,14],modul:[0,5],modvdf:5,moment:0,monster:[2,12],more:[0,1,2,5,9,10,12,14,15,16],morph:3,most:[0,1,2,5,10,12,15,16],mostli:1,move:[3,5,12,14,16],msbuild:9,multipl:[1,3,9,12,13,16],must:[5,14],naiv:15,name:[1,2,12,13,14,15],namespac:13,nativ:[1,9,12],navig:[9,15],nearest:2,necessari:4,need:[0,1,3,5,8,9,10,12,13,14,15,16],never:14,newer:9,newfil:13,newli:5,newth:13,newworld:6,next:[1,10],nicod:0,night:6,nightli:10,non:[0,12],none:0,normal:[14,15],note:[1,5,9],noth:14,now:[9,10,14],npc:[1,12,16],npc_:12,npc_default:1,nproc:9,number:[0,1,9,10,12],object:[0,1,3,5,11,12,14,15,16],oc1:12,off:0,offer:[5,15],offici:9,offset:1,often:15,old:[12,15],oldmin:6,oldworld:[6,16],onc:[0,1,2,10,12,13,14,15,16],one:[0,1,2,8,12,14,15],ones:[0,15],onli:[0,1,2,4,6,8,9,10,12,14,15],onto:1,open:[1,2,5,7,8],opensourc:[7,11],oper:[5,13,15,16],opt:14,option:[5,6,9,10,12,14,16],orc:12,orcgraveyard:6,orctempel:6,order:[5,12,14],orient:[2,3],origin:[0,1,2,3,4,5,10,12,15],originalassetspath:5,originalgamefil:5,other:[0,1,2,3,5,12,14,15,16],otherwis:[4,5],our:[9,14],out:[0,2,3,9,12,15],outsid:1,over:[0,2,10],overload:12,overrid:[14,16],overridden:5,overriden:5,overview:10,own:[3,5,9,12,14,16],ownership:5,pack:1,packag:5,pacman:9,page:[8,9],pair:1,parallel:9,paramet:[1,5,12],parent:[3,13],pars:[5,14],parseargu:[5,14,16],part:[0,14],particl:[2,3],particlesystem:2,pass:[9,14],path:[5,6,10,14,15],pc_hero:12,peopl:[0,12],per:9,perform:9,physf:9,physic:[2,12],physx:10,piranha:0,pitfal:9,place:[2,10,12,15,16],plai:[0,2,10,12,16],plain:4,plane:[4,5],plantuml:[8,9],platform:9,playanim:0,playback:12,player:[0,3,12],playgound:14,pleas:12,point:[1,14,16],pointer:[1,5],pop:[1,12],populateresourcecach:5,posit:[2,6],posix:5,possibl:[1,4,9,15,16],power:4,practic:5,pragma:13,preced:0,precomput:15,prepar:9,present:1,press:0,previou:5,previous:1,primit:4,print:6,privat:[5,13,14],probabl:2,proce:14,process:[1,4,12,15],processor:1,project:[8,9],prompt:9,properli:5,properti:2,proprietari:1,protect:[5,13],provid:5,pull:9,pure:5,purpos:2,push:1,put:[1,10,12,16],python:8,queri:15,quest:1,quick:8,quicker:12,quiet:5,radiu:12,ram:9,ran:1,random:12,rang:12,rather:[0,1,2,12],raven:6,raw:[1,2],reach:[0,2,12,14,15],reachabl:15,read:[1,14],real:[1,2,14],realli:[0,1,9,16],reason:[0,1,3],recommend:[8,9],recurs:[1,5,9,15],refer:[1,8,11,15],referenc:1,regist:[5,12],registercliengineopt:5,registercliopt:[5,14],regoth:[1,2,3,5,6,7,8,12,13,15,16],regoth_declare_rtti:13,regoth_define_rtti:13,regoth_doc:8,regoth_implement_rtti_class_for_compon:13,regoth_log:14,regoth_throw:14,regothcharactermovementtest:5,regothcharacterview:5,regothengin:14,regothfontview:5,regothmobview:5,regothscripttest:5,regothsometh:10,regothwaynettest:5,regothworldcachetest:5,regothworldmeshview:5,regothworldview:[5,10,16],regothxxx:10,reimplement:[5,7,11],relat:[1,2,15,16],relev:[2,8,12,14],relwithdebinfo:9,render:[3,4,5,12],rendermod:5,replac:[1,9,13],repositori:[8,9],repres:5,request:9,requir:[5,8,9,10],res:6,resid:14,resolut:[5,6],resolutioni:5,resolutionx:5,resourc:[5,10],respect:15,rest:10,restructuredtext:8,result:[0,1],rewrit:1,right:12,root:[8,10,15],rotat:2,rout:15,routin:[2,12],rst:8,rtti_newth:13,rtti_typeid:13,rttityp:13,rttiutil:13,rule:1,run:[1,5,6,8,9,11,12,14],runengin:[5,14,16],runinitscript:[12,16],runtim:1,s_1hrunl:0,s_fistwalkstrafel:0,s_runl:0,safer:1,sai:12,said:2,sake:13,same:[1,9],sampl:14,save:[1,3,5,12],savecachedresourcemanifest:5,scale:2,scene:[5,11,12,13,14,15],scrap:1,script:[0,1,9,12,15],seamless:9,search:[10,15],section:[1,8],see:[1,3,4,5,8,10,12,14,15,16],seem:[0,9],seen:4,sens:[0,1],separ:0,sequenc:15,serv:12,set:[1,4,5,10,11,12,16],set_inst:1,setnam:13,setshad:5,setup:[1,5,14],setupinput:5,setupmaincamera:[5,14,16],setupscen:[5,14,16],sever:[4,6],shader:5,shall:0,ship:14,shortest:15,should:[0,1,2,3,5,12,14,15],show:[13,14,15],shutdown:5,sign:1,similar:[1,3,9],simpl:12,simpler:1,simpli:[1,8,10,15],simplifi:0,sinc:[0,1,2,3,9,12,15],singl:[1,3,12],skelet:[3,12],skeletalmesh:2,skill:2,skip:8,sky:[5,11],skyrendermod:5,slowli:12,small:[1,14],smooth:0,sneak:0,snip:13,softwar:1,solut:[3,15],some:[0,1,2,5,9,10,12,14,15,16],someon:0,someth:[1,2],somewher:10,sort:[1,15],sound:2,sourc:[7,8,9,10],spawn:12,speak:0,special:[0,1,2],specialis:5,specif:[1,5,12,14,15],specifi:10,speedup:0,sphere:4,sphinx:8,sphinx_rtd_them:8,sphinxcontrib:8,split:[0,1,3],spot:2,sptr:5,src:[13,14,15,16],stack:1,stage:1,stai:[0,12],start:[0,1,2,5,11,14,15,16],startpoint:12,startup:10,state:[1,2,11,12],statechart:0,statemachin:0,statu:5,std:[5,14,16],step:[0,12,13],still:[1,12,14],store:[1,14,15],stori:15,strafeleft:0,straferight:0,street:15,strength:2,string:[0,14],struct:[5,14],structur:[1,5,11,14,15],studi:11,stuff:9,style:16,sub:[0,10],subclass:[2,5],subject:14,submodul:9,substructur:1,subtract:1,subtyp:5,successfulli:16,sudo:9,suffici:5,suggest:3,suppli:9,support:[1,9,16],suppos:[0,15],sure:[0,5,9,14,15],surrend:5,swamp:15,swim:0,syntax:8,system:[2,3],t_1hrun_2_1hrunl:0,take:[0,1,3,9,12,15],taken:[0,1,15],talk:[0,12],tap:0,target:[1,8,12,14,15],target_link_librari:14,task:[2,9],teleport:2,tell:[0,15],templat:[5,13,14,16],test:[11,16],text:[1,8],textur:4,than:[1,9,12],thei:[0,1,2,9,12,13],them:[1,5,12,14,15,16],therefor:[0,5,12,16],thi:[0,1,2,4,5,6,8,9,10,12,13,14,15,16],thing:[0,12,13,16],think:[0,15],tho:14,those:[0,1,10,12,14,15,16],though:[2,15],threshold:12,through:[5,15,16],thu:3,tid_regoth_gameclock:13,tid_regoth_newth:13,tid_regoth_scriptobjectmap:13,tid_regoth_visualcharact:13,time:[0,10,12,14,16],todo:[13,15],togeth:[1,4,9,12],too:[1,12],tool:[5,9],toolchain:9,tradit:3,tradition:3,transform:2,transit:[0,2],tree:[3,10],tri:0,tricki:9,trigger:[1,3],trivia:0,turn:15,tutori:11,two:[0,1,12,15],txt:[13,14],type:[0,1,3,5,14],typeid_regoth:13,typic:2,ubuntu:9,uncategor:14,underli:1,understand:[0,3],undraw:0,unfortun:9,unidentifi:5,uniqu:5,unique_ptr:[5,14],unknown:15,unlik:1,unlink:1,unload:12,unsign:5,until:12,updat:[8,12],upon:[2,3],upward:10,usabl:0,usag:[6,9],use:[1,5,8,9,12,13,14,15,16],useashero:12,used:[0,1,2,4,5,7,11,14,15,16],useful:[2,16],user:5,uses:[1,2,4,5,9],using:[2,3,5,6,8,9,12,14,15,16],usual:[1,2,8,9,10],util:[5,14],valid:[1,5,6,12,14],vallei:6,valu:[0,1,14],variabl:1,vcpkg:9,vdf:5,vector:5,verbos:[5,6],veri:[1,3,14],verifi:[5,14],verifycliengineopt:5,verifycliopt:[5,14],version:[0,1,6,9],via:[1,5,9,12,14,16],video:6,view:[6,8],viewer:[5,14],virtual:[1,2,5,8,13,14],visibl:12,visual:[0,2,12,15],visualcharact:12,vob:16,wai:[1,3,9,10,12,13,15],wait:[0,1],walk:[0,2,12],walkmod:0,want:[1,2,8,9,10,12,14],water:0,waynet:[11,14,16],waypoint:[12,15],weapon:0,weaponmod:0,weird:0,well:[2,3,4,5,9,12,16],went:12,were:[0,1,5],what:[0,1,2,3,12,14],whatev:[1,12],when:[0,5,10,12,13,15],whenev:1,where:[0,1,4,9,10,12,14],whether:[0,5,6],which:[0,1,2,3,5,7,12,14,15],whoever:[1,14],whole:0,whose:6,why:[0,12],win64:9,window:[5,10,14],wish:5,within:[1,8,9,12],without:[0,4],wolf:12,won:16,work:[1,3,9,10,12],world:[2,5,6,10,11,12,14,15],worldviewerconfig:5,would:[0,1,2,3,9,12,14,15,16],wrap:3,write:1,written:[5,8,14],x64:9,x86:9,yet:5,you:[0,1,5,8,9,10,12,13,14,15,16],your:[5,8,9,10,14,16],yourself:9,zcvob:3,zen:16,zengin:[1,7,11]},titles:["Character state machine","Daedalus VM","Kinds of objects in Gothic","Scene structure","Sky","Core","Executables","About","Building the documentation","Building REGoth","Running REGoth","Welcome to REGoth\u2019s documentation!","Characters","Creating a new component","Setting up a test application","Waynet","World"],titleterms:{"class":1,"float":1,"function":1,"int":1,"new":[8,13],"void":1,Adding:8,The:[10,15],Using:[9,16],about:7,anim:0,applic:14,architectur:0,asset:10,backward:0,build:[8,9],button:0,cach:10,chapter:8,charact:[0,2,12],cmake:13,code:9,compon:[12,13,15],configur:14,core:[5,6],counter:1,creat:13,current:1,custom:14,daedalu:1,daedalusvm:1,data:1,decis:1,descript:0,design:1,distanc:12,document:[8,11],engin:6,everyth:16,execut:6,executor:1,exist:8,extern:1,file:13,forward:0,from:10,gener:6,global:1,gothic:[2,10],header:13,hello:14,hero:12,how:15,init:16,insert:12,instal:10,instanc:1,instruct:1,interact:2,interpret:1,jump:0,kind:2,left:0,linux:9,load:16,logic:3,machin:0,make:12,map:1,memori:1,mesh:16,mob:2,modifi:8,name:0,ninja:9,non:2,npc:2,object:2,onli:16,outsid:10,packag:[8,9],part:1,pathfind:15,pip:8,player:2,posit:12,prioriti:0,program:1,prototyp:1,refer:5,regist:1,regoth:[9,10,11,14],regothworldview:6,right:0,rtti:13,run:[0,10,16],scene:3,script:16,set:14,shrink:12,sky:4,sourc:13,specifi:14,stand:0,state:0,storag:1,strafe:0,string:1,structur:3,studio:9,substat:0,symbol:1,symbolkind:1,system:9,test:14,translat:0,turn:0,type:13,visual:[3,9],vob:2,waynet:15,welcom:11,what:15,window:9,work:15,world:16,zenlib:1}})
\ No newline at end of file
diff --git a/docs/tutorials/characters.html b/docs/tutorials/characters.html
index 2065c3c9..f044b0a1 100644
--- a/docs/tutorials/characters.html
+++ b/docs/tutorials/characters.html
@@ -118,6 +118,7 @@