aboutsummaryrefslogtreecommitdiffstats
path: root/doc/latex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/latex')
-rw-r--r--doc/latex/Makefile21
-rw-r--r--doc/latex/annotated.tex22
-rw-r--r--doc/latex/classArena.eps197
-rw-r--r--doc/latex/classArena.tex24
-rw-r--r--doc/latex/classEntity.eps215
-rw-r--r--doc/latex/classEntity.tex92
-rw-r--r--doc/latex/classIndoorWorld.eps197
-rw-r--r--doc/latex/classIndoorWorld.tex30
-rw-r--r--doc/latex/classInventory.tex50
-rw-r--r--doc/latex/classItem.tex47
-rw-r--r--doc/latex/classMob.eps197
-rw-r--r--doc/latex/classMob.tex35
-rw-r--r--doc/latex/classNPC.eps197
-rw-r--r--doc/latex/classNPC.tex32
-rw-r--r--doc/latex/classObject.eps197
-rw-r--r--doc/latex/classObject.tex32
-rw-r--r--doc/latex/classPlayer.eps197
-rw-r--r--doc/latex/classPlayer.tex29
-rw-r--r--doc/latex/classQuest.tex26
-rw-r--r--doc/latex/classQuestHandler.tex29
-rw-r--r--doc/latex/classStructures.eps197
-rw-r--r--doc/latex/classStructures.tex29
-rw-r--r--doc/latex/classTexturec.tex35
-rw-r--r--doc/latex/classWorld.eps203
-rw-r--r--doc/latex/classWorld.tex166
-rw-r--r--doc/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex21
-rw-r--r--doc/latex/dir_d44c64559bbebec7f509842c48db8b23.tex19
-rw-r--r--doc/latex/doxygen.sty480
-rw-r--r--doc/latex/files.tex11
-rw-r--r--doc/latex/hierarchy.tex26
-rw-r--r--doc/latex/main_8cpp.tex145
-rw-r--r--doc/latex/md_README.tex1
-rw-r--r--doc/latex/refman.tex184
-rw-r--r--doc/latex/structRay.tex16
-rw-r--r--doc/latex/structitem__t.tex16
-rw-r--r--doc/latex/structline__t.tex40
-rw-r--r--doc/latex/structtexture__t.tex16
-rw-r--r--doc/latex/structvec2.tex16
-rw-r--r--doc/latex/structwSavePack.tex16
-rw-r--r--doc/latex/world_8h.tex117
40 files changed, 3620 insertions, 0 deletions
diff --git a/doc/latex/Makefile b/doc/latex/Makefile
new file mode 100644
index 0000000..8cc3866
--- /dev/null
+++ b/doc/latex/Makefile
@@ -0,0 +1,21 @@
+all: refman.pdf
+
+pdf: refman.pdf
+
+refman.pdf: clean refman.tex
+ pdflatex refman
+ makeindex refman.idx
+ pdflatex refman
+ latex_count=8 ; \
+ while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
+ do \
+ echo "Rerunning latex...." ;\
+ pdflatex refman ;\
+ latex_count=`expr $$latex_count - 1` ;\
+ done
+ makeindex refman.idx
+ pdflatex refman
+
+
+clean:
+ rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf
diff --git a/doc/latex/annotated.tex b/doc/latex/annotated.tex
new file mode 100644
index 0000000..683751c
--- /dev/null
+++ b/doc/latex/annotated.tex
@@ -0,0 +1,22 @@
+\section{Class List}
+Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList}
+\item\contentsline{section}{\hyperlink{classArena}{Arena} }{\pageref{classArena}}{}
+\item\contentsline{section}{\hyperlink{classEntity}{Entity} }{\pageref{classEntity}}{}
+\item\contentsline{section}{\hyperlink{classIndoorWorld}{Indoor\+World} }{\pageref{classIndoorWorld}}{}
+\item\contentsline{section}{\hyperlink{classInventory}{Inventory} }{\pageref{classInventory}}{}
+\item\contentsline{section}{\hyperlink{classItem}{Item} }{\pageref{classItem}}{}
+\item\contentsline{section}{\hyperlink{structitem__t}{item\+\_\+t} }{\pageref{structitem__t}}{}
+\item\contentsline{section}{\hyperlink{structline__t}{line\+\_\+t} }{\pageref{structline__t}}{}
+\item\contentsline{section}{\hyperlink{classMob}{Mob} }{\pageref{classMob}}{}
+\item\contentsline{section}{\hyperlink{classNPC}{N\+P\+C} }{\pageref{classNPC}}{}
+\item\contentsline{section}{\hyperlink{classObject}{Object} }{\pageref{classObject}}{}
+\item\contentsline{section}{\hyperlink{classPlayer}{Player} }{\pageref{classPlayer}}{}
+\item\contentsline{section}{\hyperlink{classQuest}{Quest} }{\pageref{classQuest}}{}
+\item\contentsline{section}{\hyperlink{classQuestHandler}{Quest\+Handler} }{\pageref{classQuestHandler}}{}
+\item\contentsline{section}{\hyperlink{structRay}{Ray} }{\pageref{structRay}}{}
+\item\contentsline{section}{\hyperlink{classStructures}{Structures} }{\pageref{classStructures}}{}
+\item\contentsline{section}{\hyperlink{structtexture__t}{texture\+\_\+t} }{\pageref{structtexture__t}}{}
+\item\contentsline{section}{\hyperlink{classTexturec}{Texturec} }{\pageref{classTexturec}}{}
+\item\contentsline{section}{\hyperlink{structvec2}{vec2} }{\pageref{structvec2}}{}
+\item\contentsline{section}{\hyperlink{classWorld}{World} }{\pageref{classWorld}}{}
+\end{DoxyCompactList}
diff --git a/doc/latex/classArena.eps b/doc/latex/classArena.eps
new file mode 100644
index 0000000..45c5d78
--- /dev/null
+++ b/doc/latex/classArena.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 727.272727
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.687500 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Arena) cw
+(World) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Arena) 0.000000 0.000000 box
+ (World) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/classArena.tex b/doc/latex/classArena.tex
new file mode 100644
index 0000000..37f0ba4
--- /dev/null
+++ b/doc/latex/classArena.tex
@@ -0,0 +1,24 @@
+\hypertarget{classArena}{}\section{Arena Class Reference}
+\label{classArena}\index{Arena@{Arena}}
+Inheritance diagram for Arena\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classArena}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classArena_a535e3722c259e4629bf779f4865df761}{}{\bfseries Arena} (\hyperlink{classWorld}{World} $\ast$leave, \hyperlink{classPlayer}{Player} $\ast$p)\label{classArena_a535e3722c259e4629bf779f4865df761}
+
+\item
+\hypertarget{classArena_a58230f6c0670c86d9bdd6f79f53915f2}{}\hyperlink{classWorld}{World} $\ast$ {\bfseries exit\+Arena} (\hyperlink{classPlayer}{Player} $\ast$p)\label{classArena_a58230f6c0670c86d9bdd6f79f53915f2}
+
+\end{DoxyCompactItemize}
+\subsection*{Additional Inherited Members}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+include/\hyperlink{world_8h}{world.\+h}\item
+src/world.\+cpp\end{DoxyCompactItemize}
diff --git a/doc/latex/classEntity.eps b/doc/latex/classEntity.eps
new file mode 100644
index 0000000..c579190
--- /dev/null
+++ b/doc/latex/classEntity.eps
@@ -0,0 +1,215 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 102.564103
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 4.875000 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 5 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Entity) cw
+(Mob) cw
+(NPC) cw
+(Object) cw
+(Player) cw
+(Structures) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Entity) 2.000000 1.000000 box
+ (Mob) 0.000000 0.000000 box
+ (NPC) 1.000000 0.000000 box
+ (Object) 2.000000 0.000000 box
+ (Player) 3.000000 0.000000 box
+ (Structures) 4.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+1 2.000000 0.250000 out
+solid
+0.000000 4.000000 1.000000 conn
+solid
+0 0.000000 0.750000 in
+solid
+0 1.000000 0.750000 in
+solid
+0 2.000000 0.750000 in
+solid
+0 3.000000 0.750000 in
+solid
+0 4.000000 0.750000 in
diff --git a/doc/latex/classEntity.tex b/doc/latex/classEntity.tex
new file mode 100644
index 0000000..46937df
--- /dev/null
+++ b/doc/latex/classEntity.tex
@@ -0,0 +1,92 @@
+\hypertarget{classEntity}{}\section{Entity Class Reference}
+\label{classEntity}\index{Entity@{Entity}}
+Inheritance diagram for Entity\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classEntity}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classEntity_a1ea7af40bd2d22c3ccffffb9d75449f1}{}void {\bfseries draw} (void)\label{classEntity_a1ea7af40bd2d22c3ccffffb9d75449f1}
+
+\item
+\hypertarget{classEntity_a395847a44327233974bdb6c546412f72}{}void {\bfseries spawn} (float, float)\label{classEntity_a395847a44327233974bdb6c546412f72}
+
+\item
+\hypertarget{classEntity_a9cda23bb400ce86af59f673065e8be6e}{}virtual void {\bfseries wander} (int)\label{classEntity_a9cda23bb400ce86af59f673065e8be6e}
+
+\item
+\hypertarget{classEntity_aad35d2bfa6b5f2af9c433177b455f20b}{}virtual void {\bfseries interact} ()\label{classEntity_aad35d2bfa6b5f2af9c433177b455f20b}
+
+\end{DoxyCompactItemize}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classEntity_ac755b0547e12f4b00472fec833807069}{}\hyperlink{classInventory}{Inventory} $\ast$ {\bfseries inv}\label{classEntity_ac755b0547e12f4b00472fec833807069}
+
+\item
+\hypertarget{classEntity_afb76fb5ae8ce6d4410feac55f082c139}{}\hyperlink{structvec2}{vec2} {\bfseries loc}\label{classEntity_afb76fb5ae8ce6d4410feac55f082c139}
+
+\item
+\hypertarget{classEntity_a59d3befa027c6c003b80651d79efae32}{}\hyperlink{structvec2}{vec2} {\bfseries vel}\label{classEntity_a59d3befa027c6c003b80651d79efae32}
+
+\item
+\hypertarget{classEntity_adadfcc784f30b51b8e49f8230a56b793}{}float {\bfseries width}\label{classEntity_adadfcc784f30b51b8e49f8230a56b793}
+
+\item
+\hypertarget{classEntity_a4550dc1011f47f6c4bb86e564e7d605b}{}float {\bfseries height}\label{classEntity_a4550dc1011f47f6c4bb86e564e7d605b}
+
+\item
+\hypertarget{classEntity_a1de3d8d9ab8088f61e6726069b26fa60}{}float {\bfseries speed}\label{classEntity_a1de3d8d9ab8088f61e6726069b26fa60}
+
+\item
+\hypertarget{classEntity_ad25b1a16a6b7b5affbf59b831b86ef69}{}bool {\bfseries near}\label{classEntity_ad25b1a16a6b7b5affbf59b831b86ef69}
+
+\item
+\hypertarget{classEntity_ac3592b1453f4fae35f012f1c3a41a0a0}{}bool {\bfseries can\+Move}\label{classEntity_ac3592b1453f4fae35f012f1c3a41a0a0}
+
+\item
+\hypertarget{classEntity_a4089f437394654df9439248876b704d7}{}bool {\bfseries right}\label{classEntity_a4089f437394654df9439248876b704d7}
+
+\item
+\hypertarget{classEntity_ae64dc68118771cee108ec9a69d0adcc3}{}bool {\bfseries left}\label{classEntity_ae64dc68118771cee108ec9a69d0adcc3}
+
+\item
+\hypertarget{classEntity_a0d09a7e175d9dcfbfb359e5f74f2e692}{}bool {\bfseries alive}\label{classEntity_a0d09a7e175d9dcfbfb359e5f74f2e692}
+
+\item
+\hypertarget{classEntity_a2c8b0ce760cf77a2ba9b8d1c37209fd7}{}unsigned char {\bfseries ground}\label{classEntity_a2c8b0ce760cf77a2ba9b8d1c37209fd7}
+
+\item
+\hypertarget{classEntity_a854c9b7a8ed49aae4538734df4915727}{}float {\bfseries health}\label{classEntity_a854c9b7a8ed49aae4538734df4915727}
+
+\item
+\hypertarget{classEntity_a59499f3d9d7def4f5a5cab1c9c30f570}{}float {\bfseries max\+Health}\label{classEntity_a59499f3d9d7def4f5a5cab1c9c30f570}
+
+\item
+\hypertarget{classEntity_a85be7fcdcdedefeccf05daf80d3bcc73}{}\+\_\+\+T\+Y\+P\+E {\bfseries type}\label{classEntity_a85be7fcdcdedefeccf05daf80d3bcc73}
+
+\item
+\hypertarget{classEntity_a80eea5b24c587dc4ae6beba6c8b3d5b5}{}int {\bfseries subtype}\label{classEntity_a80eea5b24c587dc4ae6beba6c8b3d5b5}
+
+\item
+\hypertarget{classEntity_a861f653e2ffbe97c0deed7ab85eb7ce6}{}char $\ast$ {\bfseries name}\label{classEntity_a861f653e2ffbe97c0deed7ab85eb7ce6}
+
+\item
+\hypertarget{classEntity_a89bc767973827fd8512643f8d2e05837}{}G\+E\+N\+D\+E\+R {\bfseries gender}\label{classEntity_a89bc767973827fd8512643f8d2e05837}
+
+\item
+\hypertarget{classEntity_af664044f029b81c097cb3e6e0d987fb3}{}\hyperlink{classTexturec}{Texturec} $\ast$ {\bfseries tex}\label{classEntity_af664044f029b81c097cb3e6e0d987fb3}
+
+\item
+\hypertarget{classEntity_a9cb580e6e12bace5a86c955e25f8825c}{}int {\bfseries ticks\+To\+Use}\label{classEntity_a9cb580e6e12bace5a86c955e25f8825c}
+
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+include/entities.\+h\item
+src/entities.\+cpp\end{DoxyCompactItemize}
diff --git a/doc/latex/classIndoorWorld.eps b/doc/latex/classIndoorWorld.eps
new file mode 100644
index 0000000..53b47c6
--- /dev/null
+++ b/doc/latex/classIndoorWorld.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 449.438202
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 1.112500 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(IndoorWorld) cw
+(World) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (IndoorWorld) 0.000000 0.000000 box
+ (World) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/classIndoorWorld.tex b/doc/latex/classIndoorWorld.tex
new file mode 100644
index 0000000..7c8e4a1
--- /dev/null
+++ b/doc/latex/classIndoorWorld.tex
@@ -0,0 +1,30 @@
+\hypertarget{classIndoorWorld}{}\section{Indoor\+World Class Reference}
+\label{classIndoorWorld}\index{Indoor\+World@{Indoor\+World}}
+Inheritance diagram for Indoor\+World\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classIndoorWorld}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classIndoorWorld_a06b929154c7dd3cafe6c81550df47494}{}void {\bfseries generate} (unsigned int width)\label{classIndoorWorld_a06b929154c7dd3cafe6c81550df47494}
+
+\item
+\hypertarget{classIndoorWorld_ab201d18555af3121e897ccbe889c90ff}{}void {\bfseries draw} (\hyperlink{classPlayer}{Player} $\ast$p)\label{classIndoorWorld_ab201d18555af3121e897ccbe889c90ff}
+
+\end{DoxyCompactItemize}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classIndoorWorld_a3f9df1a8e4e6751fcb73f77f4bd174fa}{}\hyperlink{classWorld}{World} $\ast$ {\bfseries outside}\label{classIndoorWorld_a3f9df1a8e4e6751fcb73f77f4bd174fa}
+
+\end{DoxyCompactItemize}
+\subsection*{Additional Inherited Members}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+include/\hyperlink{world_8h}{world.\+h}\item
+src/world.\+cpp\end{DoxyCompactItemize}
diff --git a/doc/latex/classInventory.tex b/doc/latex/classInventory.tex
new file mode 100644
index 0000000..4328d95
--- /dev/null
+++ b/doc/latex/classInventory.tex
@@ -0,0 +1,50 @@
+\hypertarget{classInventory}{}\section{Inventory Class Reference}
+\label{classInventory}\index{Inventory@{Inventory}}
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classInventory_a426d86c552dfa7c3350a4e5cac20be44}{}{\bfseries Inventory} (unsigned int s)\label{classInventory_a426d86c552dfa7c3350a4e5cac20be44}
+
+\item
+\hypertarget{classInventory_ada97bb76c3597bbed728ec2ca253c395}{}int {\bfseries add\+Item} (I\+T\+E\+M\+\_\+\+I\+D id, unsigned char count)\label{classInventory_ada97bb76c3597bbed728ec2ca253c395}
+
+\item
+\hypertarget{classInventory_ad15654bd6697d1a7efd368f95a08ceb9}{}int {\bfseries take\+Item} (I\+T\+E\+M\+\_\+\+I\+D id, unsigned char count)\label{classInventory_ad15654bd6697d1a7efd368f95a08ceb9}
+
+\item
+\hypertarget{classInventory_a8ba9b0c4985c76d6ee8305f894281703}{}int {\bfseries use\+Item} (void)\label{classInventory_a8ba9b0c4985c76d6ee8305f894281703}
+
+\item
+\hypertarget{classInventory_a832820a6fbc52955c35c9c33514817d3}{}void {\bfseries set\+Selection} (unsigned int s)\label{classInventory_a832820a6fbc52955c35c9c33514817d3}
+
+\item
+\hypertarget{classInventory_acb3036240abe5fe05fc1980904924528}{}void {\bfseries draw} (void)\label{classInventory_acb3036240abe5fe05fc1980904924528}
+
+\end{DoxyCompactItemize}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classInventory_a5d722c28f93a03629a9f89574b19439c}{}unsigned int {\bfseries sel}\label{classInventory_a5d722c28f93a03629a9f89574b19439c}
+
+\item
+\hypertarget{classInventory_a553173903f401bb9c2266e835eee22c2}{}bool {\bfseries inv\+Open} = false\label{classInventory_a553173903f401bb9c2266e835eee22c2}
+
+\item
+\hypertarget{classInventory_a9421553e33c39f45c0785e6cb3b2cfb6}{}bool {\bfseries inv\+Opening} = false\label{classInventory_a9421553e33c39f45c0785e6cb3b2cfb6}
+
+\item
+\hypertarget{classInventory_a4e403f168bd7356fa4d5ee282bad9443}{}bool {\bfseries inv\+Hover} = false\label{classInventory_a4e403f168bd7356fa4d5ee282bad9443}
+
+\item
+\hypertarget{classInventory_ad6d93c6b6f621f8fe03fbbd1f63863d4}{}bool {\bfseries selected} = false\label{classInventory_ad6d93c6b6f621f8fe03fbbd1f63863d4}
+
+\item
+\hypertarget{classInventory_a263a170660c9a0f9de4a7a13f71a4c6a}{}bool {\bfseries mouse\+Sel} = false\label{classInventory_a263a170660c9a0f9de4a7a13f71a4c6a}
+
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+include/inventory.\+h\item
+src/inventory.\+cpp\end{DoxyCompactItemize}
diff --git a/doc/latex/classItem.tex b/doc/latex/classItem.tex
new file mode 100644
index 0000000..5badef0
--- /dev/null
+++ b/doc/latex/classItem.tex
@@ -0,0 +1,47 @@
+\hypertarget{classItem}{}\section{Item Class Reference}
+\label{classItem}\index{Item@{Item}}
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classItem_a77eab49b757d200509868e2961a39174}{}{\bfseries Item} (I\+T\+E\+M\+\_\+\+I\+D i, const char $\ast$n, I\+T\+E\+M\+\_\+\+T\+Y\+P\+E t, float w, float h, int m, const char $\ast$tl)\label{classItem_a77eab49b757d200509868e2961a39174}
+
+\item
+\hypertarget{classItem_abd8a2c585eaee924ca99724d236466ab}{}G\+Luint {\bfseries rtex} ()\label{classItem_abd8a2c585eaee924ca99724d236466ab}
+
+\end{DoxyCompactItemize}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classItem_ae16ef760610988c396ff963c2fb486b3}{}I\+T\+E\+M\+\_\+\+I\+D {\bfseries id}\label{classItem_ae16ef760610988c396ff963c2fb486b3}
+
+\item
+\hypertarget{classItem_a06c6faeee0e8202db92886ea8a4472d7}{}char $\ast$ {\bfseries name}\label{classItem_a06c6faeee0e8202db92886ea8a4472d7}
+
+\item
+\hypertarget{classItem_af59b9c75c68c7369ba8992b4a7ac5414}{}I\+T\+E\+M\+\_\+\+T\+Y\+P\+E {\bfseries type}\label{classItem_af59b9c75c68c7369ba8992b4a7ac5414}
+
+\item
+\hypertarget{classItem_a7a444a25dab3814f4c275a44da0ca198}{}float {\bfseries width}\label{classItem_a7a444a25dab3814f4c275a44da0ca198}
+
+\item
+\hypertarget{classItem_a936834d805f6c53630f84dae5765108c}{}float {\bfseries height}\label{classItem_a936834d805f6c53630f84dae5765108c}
+
+\item
+\hypertarget{classItem_a21048ebf5f1893ed429657863c622288}{}int {\bfseries max\+Stack\+Size}\label{classItem_a21048ebf5f1893ed429657863c622288}
+
+\item
+\hypertarget{classItem_a54244d0dc976bc28d091cec66163cd49}{}char $\ast$ {\bfseries texture\+Loc}\label{classItem_a54244d0dc976bc28d091cec66163cd49}
+
+\item
+\hypertarget{classItem_ab457f6ac62ff7d7d593992e70cd7b8d3}{}\hyperlink{classTexturec}{Texturec} $\ast$ {\bfseries tex}\label{classItem_ab457f6ac62ff7d7d593992e70cd7b8d3}
+
+\item
+\hypertarget{classItem_a059046326e4a17610ea4e39f342957d8}{}G\+Luint {\bfseries text}\label{classItem_a059046326e4a17610ea4e39f342957d8}
+
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+include/inventory.\+h\item
+src/inventory.\+cpp\end{DoxyCompactItemize}
diff --git a/doc/latex/classMob.eps b/doc/latex/classMob.eps
new file mode 100644
index 0000000..12bbb3a
--- /dev/null
+++ b/doc/latex/classMob.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 784.313725
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.637500 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Mob) cw
+(Entity) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Mob) 0.000000 0.000000 box
+ (Entity) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/classMob.tex b/doc/latex/classMob.tex
new file mode 100644
index 0000000..f7ddcf3
--- /dev/null
+++ b/doc/latex/classMob.tex
@@ -0,0 +1,35 @@
+\hypertarget{classMob}{}\section{Mob Class Reference}
+\label{classMob}\index{Mob@{Mob}}
+Inheritance diagram for Mob\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classMob}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classMob_ad50eb95b46c938b241740a4d32722819}{}{\bfseries Mob} (int)\label{classMob_ad50eb95b46c938b241740a4d32722819}
+
+\item
+\hypertarget{classMob_a71d17d4e5ea4fe52e26d5915657c6a5a}{}{\bfseries Mob} (int, unsigned int)\label{classMob_a71d17d4e5ea4fe52e26d5915657c6a5a}
+
+\item
+\hypertarget{classMob_a71c65ea9cab8e4c53c46ee37e24ea843}{}void {\bfseries wander} (int)\label{classMob_a71c65ea9cab8e4c53c46ee37e24ea843}
+
+\end{DoxyCompactItemize}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classMob_af70bc5294f024ff06e980452f1aea3f0}{}double {\bfseries init\+\_\+y}\label{classMob_af70bc5294f024ff06e980452f1aea3f0}
+
+\item
+\hypertarget{classMob_ae0639f1baf866a935194372473734033}{}void($\ast$ {\bfseries hey} )(\hyperlink{classMob}{Mob} $\ast$callee)\label{classMob_ae0639f1baf866a935194372473734033}
+
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+include/entities.\+h\item
+src/entities.\+cpp\end{DoxyCompactItemize}
diff --git a/doc/latex/classNPC.eps b/doc/latex/classNPC.eps
new file mode 100644
index 0000000..4c5ef1b
--- /dev/null
+++ b/doc/latex/classNPC.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 784.313725
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.637500 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(NPC) cw
+(Entity) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (NPC) 0.000000 0.000000 box
+ (Entity) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/classNPC.tex b/doc/latex/classNPC.tex
new file mode 100644
index 0000000..9c4f1c1
--- /dev/null
+++ b/doc/latex/classNPC.tex
@@ -0,0 +1,32 @@
+\hypertarget{classNPC}{}\section{N\+P\+C Class Reference}
+\label{classNPC}\index{N\+P\+C@{N\+P\+C}}
+Inheritance diagram for N\+P\+C\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classNPC}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classNPC_a1dc27a95b74708f8c0c1364c14f61cba}{}void {\bfseries add\+A\+I\+Func} (int($\ast$func)(\hyperlink{classNPC}{N\+P\+C} $\ast$), bool preload)\label{classNPC_a1dc27a95b74708f8c0c1364c14f61cba}
+
+\item
+\hypertarget{classNPC_a06fd48676169693baaa46c260c00bb7d}{}void {\bfseries interact} ()\label{classNPC_a06fd48676169693baaa46c260c00bb7d}
+
+\item
+\hypertarget{classNPC_a6b8833617ae24c65787af4ea6074b897}{}void {\bfseries wander} (int)\label{classNPC_a6b8833617ae24c65787af4ea6074b897}
+
+\end{DoxyCompactItemize}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classNPC_ab73690d45357e769bca2ec1bf6c2792d}{}std\+::vector$<$ int($\ast$)(\hyperlink{classNPC}{N\+P\+C} $\ast$)$>$ {\bfseries ai\+Func}\label{classNPC_ab73690d45357e769bca2ec1bf6c2792d}
+
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+include/entities.\+h\item
+src/entities.\+cpp\end{DoxyCompactItemize}
diff --git a/doc/latex/classObject.eps b/doc/latex/classObject.eps
new file mode 100644
index 0000000..fbcba51
--- /dev/null
+++ b/doc/latex/classObject.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 701.754386
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.712500 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Object) cw
+(Entity) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Object) 0.000000 0.000000 box
+ (Entity) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/classObject.tex b/doc/latex/classObject.tex
new file mode 100644
index 0000000..c5afeac
--- /dev/null
+++ b/doc/latex/classObject.tex
@@ -0,0 +1,32 @@
+\hypertarget{classObject}{}\section{Object Class Reference}
+\label{classObject}\index{Object@{Object}}
+Inheritance diagram for Object\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classObject}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classObject_a18c98f4426616655aa99e8b2240dd636}{}{\bfseries Object} (I\+T\+E\+M\+\_\+\+I\+D id, bool qo, const char $\ast$pd)\label{classObject_a18c98f4426616655aa99e8b2240dd636}
+
+\item
+\hypertarget{classObject_ab95de774fb418c35ebb951a1ba76cc14}{}void {\bfseries interact} (void)\label{classObject_ab95de774fb418c35ebb951a1ba76cc14}
+
+\end{DoxyCompactItemize}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classObject_af7a4246d7ef42249fa87080dbe75457d}{}char $\ast$ {\bfseries pickup\+Dialog}\label{classObject_af7a4246d7ef42249fa87080dbe75457d}
+
+\item
+\hypertarget{classObject_a6e1f7d9e24ca1a0da0b28fa407ca82b4}{}bool {\bfseries quest\+Object} = false\label{classObject_a6e1f7d9e24ca1a0da0b28fa407ca82b4}
+
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+include/entities.\+h\item
+src/entities.\+cpp\end{DoxyCompactItemize}
diff --git a/doc/latex/classPlayer.eps b/doc/latex/classPlayer.eps
new file mode 100644
index 0000000..e2d9527
--- /dev/null
+++ b/doc/latex/classPlayer.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 701.754386
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.712500 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Player) cw
+(Entity) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Player) 0.000000 0.000000 box
+ (Entity) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/classPlayer.tex b/doc/latex/classPlayer.tex
new file mode 100644
index 0000000..39a6b84
--- /dev/null
+++ b/doc/latex/classPlayer.tex
@@ -0,0 +1,29 @@
+\hypertarget{classPlayer}{}\section{Player Class Reference}
+\label{classPlayer}\index{Player@{Player}}
+Inheritance diagram for Player\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classPlayer}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classPlayer_a10bc8c26a58ca8c85cc1289b7817ff27}{}void {\bfseries interact} ()\label{classPlayer_a10bc8c26a58ca8c85cc1289b7817ff27}
+
+\end{DoxyCompactItemize}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classPlayer_affe7581cbc72ea82130cfdd1f6251df2}{}\hyperlink{classQuestHandler}{Quest\+Handler} {\bfseries qh}\label{classPlayer_affe7581cbc72ea82130cfdd1f6251df2}
+
+\item
+\hypertarget{classPlayer_ae0f3e41a743dcfd1fac43155f166cf5e}{}bool {\bfseries light} = false\label{classPlayer_ae0f3e41a743dcfd1fac43155f166cf5e}
+
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+include/entities.\+h\item
+src/entities.\+cpp\end{DoxyCompactItemize}
diff --git a/doc/latex/classQuest.tex b/doc/latex/classQuest.tex
new file mode 100644
index 0000000..95f148a
--- /dev/null
+++ b/doc/latex/classQuest.tex
@@ -0,0 +1,26 @@
+\hypertarget{classQuest}{}\section{Quest Class Reference}
+\label{classQuest}\index{Quest@{Quest}}
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classQuest_a39ce0527d8b287a38d136ac065b4e5a6}{}{\bfseries Quest} (const char $\ast$t, const char $\ast$d, struct \hyperlink{structitem__t}{item\+\_\+t} r)\label{classQuest_a39ce0527d8b287a38d136ac065b4e5a6}
+
+\end{DoxyCompactItemize}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classQuest_a4beb162692ae1c6f6671534ba41caeaf}{}char $\ast$ {\bfseries title}\label{classQuest_a4beb162692ae1c6f6671534ba41caeaf}
+
+\item
+\hypertarget{classQuest_a3a846582fcef1a800d3795cf1077c95e}{}char $\ast$ {\bfseries desc}\label{classQuest_a3a846582fcef1a800d3795cf1077c95e}
+
+\item
+\hypertarget{classQuest_a188d942f0e5c39771aa1d23b61c0e6c0}{}struct \hyperlink{structitem__t}{item\+\_\+t} {\bfseries reward}\label{classQuest_a188d942f0e5c39771aa1d23b61c0e6c0}
+
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+include/Quest.\+h\item
+src/Quest.\+cpp\end{DoxyCompactItemize}
diff --git a/doc/latex/classQuestHandler.tex b/doc/latex/classQuestHandler.tex
new file mode 100644
index 0000000..ace0fe4
--- /dev/null
+++ b/doc/latex/classQuestHandler.tex
@@ -0,0 +1,29 @@
+\hypertarget{classQuestHandler}{}\section{Quest\+Handler Class Reference}
+\label{classQuestHandler}\index{Quest\+Handler@{Quest\+Handler}}
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classQuestHandler_a61c30ef0a8f5d5fac0e7595f38f3701a}{}int {\bfseries assign} (const char $\ast$t)\label{classQuestHandler_a61c30ef0a8f5d5fac0e7595f38f3701a}
+
+\item
+\hypertarget{classQuestHandler_afac46a727130210fef11a722dd69235f}{}int {\bfseries drop} (const char $\ast$t)\label{classQuestHandler_afac46a727130210fef11a722dd69235f}
+
+\item
+\hypertarget{classQuestHandler_a0d9905701c9572a7d6337b83f7454d5f}{}int {\bfseries finish} (const char $\ast$t, void $\ast$completer)\label{classQuestHandler_a0d9905701c9572a7d6337b83f7454d5f}
+
+\item
+\hypertarget{classQuestHandler_abea1135d393d5499f1bdc3d924c41825}{}bool {\bfseries has\+Quest} (const char $\ast$t)\label{classQuestHandler_abea1135d393d5499f1bdc3d924c41825}
+
+\end{DoxyCompactItemize}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classQuestHandler_a79966e1ba3decad47149fab057625e8e}{}std\+::vector$<$ const \hyperlink{classQuest}{Quest} $\ast$ $>$ {\bfseries current}\label{classQuestHandler_a79966e1ba3decad47149fab057625e8e}
+
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+include/Quest.\+h\item
+src/Quest.\+cpp\end{DoxyCompactItemize}
diff --git a/doc/latex/classStructures.eps b/doc/latex/classStructures.eps
new file mode 100644
index 0000000..32d107a
--- /dev/null
+++ b/doc/latex/classStructures.eps
@@ -0,0 +1,197 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 512.820513
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 0.975000 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 1 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(Structures) cw
+(Entity) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (Structures) 0.000000 0.000000 box
+ (Entity) 0.000000 1.000000 box
+
+% ----- relations -----
+
+solid
+0 0.000000 0.000000 out
+solid
+1 0.000000 1.000000 in
diff --git a/doc/latex/classStructures.tex b/doc/latex/classStructures.tex
new file mode 100644
index 0000000..52e29df
--- /dev/null
+++ b/doc/latex/classStructures.tex
@@ -0,0 +1,29 @@
+\hypertarget{classStructures}{}\section{Structures Class Reference}
+\label{classStructures}\index{Structures@{Structures}}
+Inheritance diagram for Structures\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classStructures}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classStructures_a410e68c77b77b9fa61b3dd48a1069dd3}{}unsigned int {\bfseries spawn} (\+\_\+\+T\+Y\+P\+E, float, float)\label{classStructures_a410e68c77b77b9fa61b3dd48a1069dd3}
+
+\end{DoxyCompactItemize}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classStructures_a99b0d24ff339519aa0580761829f3d94}{}void $\ast$ {\bfseries in\+World}\label{classStructures_a99b0d24ff339519aa0580761829f3d94}
+
+\item
+\hypertarget{classStructures_a2de8aa35c7d21ca33af056634e34f1c9}{}void $\ast$ {\bfseries inside}\label{classStructures_a2de8aa35c7d21ca33af056634e34f1c9}
+
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+include/entities.\+h\item
+src/entities.\+cpp\end{DoxyCompactItemize}
diff --git a/doc/latex/classTexturec.tex b/doc/latex/classTexturec.tex
new file mode 100644
index 0000000..02418ad
--- /dev/null
+++ b/doc/latex/classTexturec.tex
@@ -0,0 +1,35 @@
+\hypertarget{classTexturec}{}\section{Texturec Class Reference}
+\label{classTexturec}\index{Texturec@{Texturec}}
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classTexturec_a9c85c5ad8c49b20e345af412ec9a8cf7}{}{\bfseries Texturec} (uint amt,...)\label{classTexturec_a9c85c5ad8c49b20e345af412ec9a8cf7}
+
+\item
+\hypertarget{classTexturec_a13dfae47f9fa2e09f79530b07a751fcd}{}{\bfseries Texturec} (uint amt, const char $\ast$$\ast$paths)\label{classTexturec_a13dfae47f9fa2e09f79530b07a751fcd}
+
+\item
+\hypertarget{classTexturec_a81be789f196a84a31083b3b2125d76fc}{}void {\bfseries bind\+Next} ()\label{classTexturec_a81be789f196a84a31083b3b2125d76fc}
+
+\item
+\hypertarget{classTexturec_abe4c65be6bedab6909ee6bd9cd349654}{}void {\bfseries bind\+Prev} ()\label{classTexturec_abe4c65be6bedab6909ee6bd9cd349654}
+
+\item
+\hypertarget{classTexturec_a71609907927fdf94bd217991b6e87988}{}void {\bfseries bind} (unsigned int)\label{classTexturec_a71609907927fdf94bd217991b6e87988}
+
+\item
+\hypertarget{classTexturec_af1af4af64edca50836478f27501c2e6b}{}void {\bfseries walk} ()\label{classTexturec_af1af4af64edca50836478f27501c2e6b}
+
+\end{DoxyCompactItemize}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classTexturec_affe3209886e041c0deac1f54eb0bb6ce}{}G\+Luint $\ast$ {\bfseries image}\label{classTexturec_affe3209886e041c0deac1f54eb0bb6ce}
+
+\end{DoxyCompactItemize}
+
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+include/Texture.\+h\item
+src/Texture.\+cpp\end{DoxyCompactItemize}
diff --git a/doc/latex/classWorld.eps b/doc/latex/classWorld.eps
new file mode 100644
index 0000000..0e5fe1d
--- /dev/null
+++ b/doc/latex/classWorld.eps
@@ -0,0 +1,203 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ClassName
+%%Creator: Doxygen
+%%CreationDate: Time
+%%For:
+%Magnification: 1.00
+%%Orientation: Portrait
+%%BoundingBox: 0 0 500 224.719101
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%EndComments
+
+% ----- variables -----
+
+/boxwidth 0 def
+/boxheight 40 def
+/fontheight 24 def
+/marginwidth 10 def
+/distx 20 def
+/disty 40 def
+/boundaspect 2.225000 def % aspect ratio of the BoundingBox (width/height)
+/boundx 500 def
+/boundy boundx boundaspect div def
+/xspacing 0 def
+/yspacing 0 def
+/rows 2 def
+/cols 2 def
+/scalefactor 0 def
+/boxfont /Times-Roman findfont fontheight scalefont def
+
+% ----- procedures -----
+
+/dotted { [1 4] 0 setdash } def
+/dashed { [5] 0 setdash } def
+/solid { [] 0 setdash } def
+
+/max % result = MAX(arg1,arg2)
+{
+ /a exch def
+ /b exch def
+ a b gt {a} {b} ifelse
+} def
+
+/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)
+{
+ 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max
+} def
+
+/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))
+{
+ /str exch def
+ /boxwidth boxwidth str stringwidth pop max def
+} def
+
+/box % draws a box with text `arg1' at grid pos (arg2,arg3)
+{ gsave
+ 2 setlinewidth
+ newpath
+ exch xspacing mul xoffset add
+ exch yspacing mul
+ moveto
+ boxwidth 0 rlineto
+ 0 boxheight rlineto
+ boxwidth neg 0 rlineto
+ 0 boxheight neg rlineto
+ closepath
+ dup stringwidth pop neg boxwidth add 2 div
+ boxheight fontheight 2 div sub 2 div
+ rmoveto show stroke
+ grestore
+} def
+
+/mark
+{ newpath
+ exch xspacing mul xoffset add boxwidth add
+ exch yspacing mul
+ moveto
+ 0 boxheight 4 div rlineto
+ boxheight neg 4 div boxheight neg 4 div rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/arrow
+{ newpath
+ moveto
+ 3 -8 rlineto
+ -6 0 rlineto
+ 3 8 rlineto
+ closepath
+ eofill
+ stroke
+} def
+
+/out % draws an output connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight add
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/in % draws an input connector for the block at (arg1,arg2)
+{
+ newpath
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul disty 2 div sub
+ /y exch def
+ /x exch def
+ x y moveto
+ 0 disty 2 div rlineto
+ stroke
+ 1 eq { x y disty 2 div add arrow } if
+} def
+
+/hedge
+{
+ exch xspacing mul xoffset add boxwidth 2 div add
+ exch yspacing mul boxheight 2 div sub
+ /y exch def
+ /x exch def
+ newpath
+ x y moveto
+ boxwidth 2 div distx add 0 rlineto
+ stroke
+ 1 eq
+ { newpath x boxwidth 2 div distx add add y moveto
+ -8 3 rlineto
+ 0 -6 rlineto
+ 8 3 rlineto
+ closepath
+ eofill
+ stroke
+ } if
+} def
+
+/vedge
+{
+ /ye exch def
+ /ys exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add dup
+ ys yspacing mul boxheight 2 div sub
+ moveto
+ ye yspacing mul boxheight 2 div sub
+ lineto
+ stroke
+} def
+
+/conn % connections the blocks from col `arg1' to `arg2' of row `arg3'
+{
+ /ys exch def
+ /xe exch def
+ /xs exch def
+ newpath
+ xs xspacing mul xoffset add boxwidth 2 div add
+ ys yspacing mul disty 2 div sub
+ moveto
+ xspacing xe xs sub mul 0
+ rlineto
+ stroke
+} def
+
+% ----- main ------
+
+boxfont setfont
+1 boundaspect scale
+(World) cw
+(Arena) cw
+(IndoorWorld) cw
+/boxwidth boxwidth marginwidth 2 mul add def
+/xspacing boxwidth distx add def
+/yspacing boxheight disty add def
+/scalefactor
+ boxwidth cols mul distx cols 1 sub mul add
+ boxheight rows mul disty rows 1 sub mul add boundaspect mul
+ max def
+boundx scalefactor div boundy scalefactor div scale
+
+% ----- classes -----
+
+ (World) 0.500000 1.000000 box
+ (Arena) 0.000000 0.000000 box
+ (IndoorWorld) 1.000000 0.000000 box
+
+% ----- relations -----
+
+solid
+1 0.500000 0.250000 out
+solid
+0.000000 1.000000 1.000000 conn
+solid
+0 0.000000 0.750000 in
+solid
+0 1.000000 0.750000 in
diff --git a/doc/latex/classWorld.tex b/doc/latex/classWorld.tex
new file mode 100644
index 0000000..eca6ffc
--- /dev/null
+++ b/doc/latex/classWorld.tex
@@ -0,0 +1,166 @@
+\hypertarget{classWorld}{}\section{World Class Reference}
+\label{classWorld}\index{World@{World}}
+
+
+{\ttfamily \#include $<$world.\+h$>$}
+
+Inheritance diagram for World\+:\begin{figure}[H]
+\begin{center}
+\leavevmode
+\includegraphics[height=2.000000cm]{classWorld}
+\end{center}
+\end{figure}
+\subsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classWorld_aa02f54d5e38bf0e4c67b210ba4e27761}{}void {\bfseries add\+Structure} (\+\_\+\+T\+Y\+P\+E t, float x, float \hyperlink{world_8h_aa4f0d3eebc3c443f9be81bf48561a217}{y}, \hyperlink{classWorld}{World} $\ast$outside, \hyperlink{classWorld}{World} $\ast$inside)\label{classWorld_aa02f54d5e38bf0e4c67b210ba4e27761}
+
+\item
+\hypertarget{classWorld_a631df20b433c01a9f9a215fd6dba0663}{}void {\bfseries add\+Mob} (int t, float x, float \hyperlink{world_8h_aa4f0d3eebc3c443f9be81bf48561a217}{y})\label{classWorld_a631df20b433c01a9f9a215fd6dba0663}
+
+\item
+\hypertarget{classWorld_a52f1073c5ff06ff1a9290fb46037ba17}{}void {\bfseries add\+Mob} (int t, float x, float \hyperlink{world_8h_aa4f0d3eebc3c443f9be81bf48561a217}{y}, void($\ast$hey)(\hyperlink{classMob}{Mob} $\ast$))\label{classWorld_a52f1073c5ff06ff1a9290fb46037ba17}
+
+\item
+\hypertarget{classWorld_a47b64d285af2fa0ab3e3b5e25b838be1}{}void {\bfseries add\+N\+P\+C} (float x, float \hyperlink{world_8h_aa4f0d3eebc3c443f9be81bf48561a217}{y})\label{classWorld_a47b64d285af2fa0ab3e3b5e25b838be1}
+
+\item
+\hypertarget{classWorld_a38a1489059711bc5173b4e45c9424ac2}{}void {\bfseries add\+Object} (I\+T\+E\+M\+\_\+\+I\+D, bool, const char $\ast$, float, float)\label{classWorld_a38a1489059711bc5173b4e45c9424ac2}
+
+\item
+\hypertarget{classWorld_a8920a4df8c88a4e3c2718253e0ce0a9d}{}void {\bfseries update} (\hyperlink{classPlayer}{Player} $\ast$p, unsigned int delta)\label{classWorld_a8920a4df8c88a4e3c2718253e0ce0a9d}
+
+\item
+\hypertarget{classWorld_a21279facd50bb40e28868fe20133392c}{}virtual void {\bfseries generate} (unsigned int width)\label{classWorld_a21279facd50bb40e28868fe20133392c}
+
+\item
+\hypertarget{classWorld_a52f34574219e97541783d8949ccfad63}{}void {\bfseries generate\+Func} (unsigned int width, float($\ast$func)(float))\label{classWorld_a52f34574219e97541783d8949ccfad63}
+
+\item
+\hypertarget{classWorld_a7700979d3d1674dc3d746dff87e522ed}{}void {\bfseries set\+Background} (\hyperlink{world_8h_a0678a0e576121a23798fdbd5964143c5}{W\+O\+R\+L\+D\+\_\+\+B\+G\+\_\+\+T\+Y\+P\+E} bgt)\label{classWorld_a7700979d3d1674dc3d746dff87e522ed}
+
+\item
+\hypertarget{classWorld_a2a90eea0f52e3ca5df95b8526450bb64}{}void {\bfseries set\+B\+G\+M} (const char $\ast$path)\label{classWorld_a2a90eea0f52e3ca5df95b8526450bb64}
+
+\item
+\hypertarget{classWorld_a837cda808f18afd4f4296c4ebb08507f}{}void {\bfseries bgm\+Play} (void)\label{classWorld_a837cda808f18afd4f4296c4ebb08507f}
+
+\item
+\hypertarget{classWorld_ab0b3691cd6afd82c7f5fc8a625a8746e}{}void {\bfseries bgm\+Stop} (void)\label{classWorld_ab0b3691cd6afd82c7f5fc8a625a8746e}
+
+\item
+\hypertarget{classWorld_aa66f71e6886ac0dade68556163017041}{}void {\bfseries add\+Layer} (unsigned int width)\label{classWorld_aa66f71e6886ac0dade68556163017041}
+
+\item
+\hypertarget{classWorld_af52317a2706b62f472457a926c231f46}{}virtual void {\bfseries draw} (\hyperlink{classPlayer}{Player} $\ast$p)\label{classWorld_af52317a2706b62f472457a926c231f46}
+
+\item
+\hypertarget{classWorld_a4749d1dbffaed4e4487cc5f4086e481e}{}void {\bfseries detect} (\hyperlink{classPlayer}{Player} $\ast$p)\label{classWorld_a4749d1dbffaed4e4487cc5f4086e481e}
+
+\item
+\hypertarget{classWorld_accb9975a135094ecebbe88739b72ab1b}{}\hyperlink{classWorld}{World} $\ast$ {\bfseries go\+World\+Left} (\hyperlink{classPlayer}{Player} $\ast$p)\label{classWorld_accb9975a135094ecebbe88739b72ab1b}
+
+\item
+\hypertarget{classWorld_a184a431e5695fbdba411ba2baa5aee0b}{}\hyperlink{classWorld}{World} $\ast$ {\bfseries go\+World\+Right} (\hyperlink{classPlayer}{Player} $\ast$p)\label{classWorld_a184a431e5695fbdba411ba2baa5aee0b}
+
+\item
+\hypertarget{classWorld_a46221c8af2234749e3416a45d560ec1c}{}\hyperlink{classWorld}{World} $\ast$ {\bfseries go\+World\+Back} (\hyperlink{classPlayer}{Player} $\ast$p)\label{classWorld_a46221c8af2234749e3416a45d560ec1c}
+
+\item
+\hypertarget{classWorld_a6c94d42ed4f963acaf902b9e0f0e6969}{}\hyperlink{classWorld}{World} $\ast$ {\bfseries go\+World\+Front} (\hyperlink{classPlayer}{Player} $\ast$p)\label{classWorld_a6c94d42ed4f963acaf902b9e0f0e6969}
+
+\item
+\hypertarget{classWorld_ae8f0c71e69ef6f760cef8fc5b1b4f272}{}\hyperlink{classWorld}{World} $\ast$ {\bfseries go\+Inside\+Structure} (\hyperlink{classPlayer}{Player} $\ast$p)\label{classWorld_ae8f0c71e69ef6f760cef8fc5b1b4f272}
+
+\item
+\hypertarget{classWorld_ab437e9250306323c6e931bb8658485cf}{}void {\bfseries add\+Hole} (unsigned int start, unsigned int end)\label{classWorld_ab437e9250306323c6e931bb8658485cf}
+
+\item
+\hypertarget{classWorld_ab6979295419240f841da48903c7c554d}{}int {\bfseries get\+The\+Width} (void)\label{classWorld_ab6979295419240f841da48903c7c554d}
+
+\item
+\hypertarget{classWorld_abdd6f140f62255b402d649616304fe09}{}void {\bfseries save} (F\+I\+L\+E $\ast$)\label{classWorld_abdd6f140f62255b402d649616304fe09}
+
+\item
+\hypertarget{classWorld_a394c5b449ab36f75a0c6748ec2c34955}{}void {\bfseries load} (F\+I\+L\+E $\ast$)\label{classWorld_a394c5b449ab36f75a0c6748ec2c34955}
+
+\end{DoxyCompactItemize}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classWorld_aaa256245e0bc49ec2fa55f5d48e1959f}{}\hyperlink{classWorld}{World} $\ast$ {\bfseries to\+Left}\label{classWorld_aaa256245e0bc49ec2fa55f5d48e1959f}
+
+\item
+\hypertarget{classWorld_aa40d02c50a3eedb2f329077f3d6d44e6}{}\hyperlink{classWorld}{World} $\ast$ {\bfseries to\+Right}\label{classWorld_aa40d02c50a3eedb2f329077f3d6d44e6}
+
+\item
+\hypertarget{classWorld_af9aed08dfdf0d280f3e13a21a0090f2c}{}\hyperlink{classWorld}{World} $\ast$ {\bfseries behind}\label{classWorld_af9aed08dfdf0d280f3e13a21a0090f2c}
+
+\item
+\hypertarget{classWorld_a1c1ad92a3d0296c5796a8544537ece13}{}\hyperlink{classWorld}{World} $\ast$ {\bfseries infront}\label{classWorld_a1c1ad92a3d0296c5796a8544537ece13}
+
+\item
+\hypertarget{classWorld_a844d733d29d8367c3896bff7a1fad82d}{}std\+::vector$<$ \hyperlink{classNPC}{N\+P\+C} $\ast$ $>$ {\bfseries npc}\label{classWorld_a844d733d29d8367c3896bff7a1fad82d}
+
+\item
+\hypertarget{classWorld_ab5120be97f20e7ee24e056127ff3164c}{}std\+::vector$<$ \hyperlink{classStructures}{Structures} $\ast$ $>$ {\bfseries build}\label{classWorld_ab5120be97f20e7ee24e056127ff3164c}
+
+\item
+\hypertarget{classWorld_ab45f9d6909b887f01c76bfe6120ccdd9}{}std\+::vector$<$ \hyperlink{classMob}{Mob} $\ast$ $>$ {\bfseries mob}\label{classWorld_ab45f9d6909b887f01c76bfe6120ccdd9}
+
+\item
+\hypertarget{classWorld_afb74ee60415875384d8af0e065d9feb3}{}std\+::vector$<$ \hyperlink{classEntity}{Entity} $\ast$ $>$ {\bfseries entity}\label{classWorld_afb74ee60415875384d8af0e065d9feb3}
+
+\item
+\hypertarget{classWorld_a3ec7a136f45a7283a0a15224819fe330}{}std\+::vector$<$ \hyperlink{classObject}{Object} $\ast$ $>$ {\bfseries object}\label{classWorld_a3ec7a136f45a7283a0a15224819fe330}
+
+\end{DoxyCompactItemize}
+\subsection*{Protected Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{classWorld_a0af69654347b29787877b77020fa0a5a}{}void {\bfseries single\+Detect} (\hyperlink{classEntity}{Entity} $\ast$e)\label{classWorld_a0af69654347b29787877b77020fa0a5a}
+
+\item
+\hypertarget{classWorld_a1c1e6ea7fd0d84660d2791a256aba382}{}void {\bfseries delete\+Entities} (void)\label{classWorld_a1c1e6ea7fd0d84660d2791a256aba382}
+
+\end{DoxyCompactItemize}
+\subsection*{Protected Attributes}
+\begin{DoxyCompactItemize}
+\item
+struct \hyperlink{structline__t}{line\+\_\+t} $\ast$ \hyperlink{classWorld_afd9945f6ede5eabc3ff9243ce2b31247}{line}
+\item
+int \hyperlink{classWorld_a645767ccf316a9b4469db773ac111ae4}{x\+\_\+start}
+\item
+\hypertarget{classWorld_a432e07fd7f7504aaa6ff29408afe0678}{}unsigned int {\bfseries line\+Count}\label{classWorld_a432e07fd7f7504aaa6ff29408afe0678}
+
+\item
+\hypertarget{classWorld_a4f8b12f8eda220060ec01c0e9a6b9325}{}\hyperlink{structvec2}{vec2} $\ast$ {\bfseries star}\label{classWorld_a4f8b12f8eda220060ec01c0e9a6b9325}
+
+\item
+\hypertarget{classWorld_accebca6a747c3db27916770507aee04c}{}\hyperlink{classTexturec}{Texturec} $\ast$ {\bfseries bg\+Tex}\label{classWorld_accebca6a747c3db27916770507aee04c}
+
+\item
+\hypertarget{classWorld_a7ca21c1e62a53cf7024801623aa46325}{}Mix\+\_\+\+Music $\ast$ {\bfseries bgm\+Obj}\label{classWorld_a7ca21c1e62a53cf7024801623aa46325}
+
+\item
+\hypertarget{classWorld_ad8269981b3846aa44b721cdeda30911c}{}char $\ast$ {\bfseries bgm}\label{classWorld_ad8269981b3846aa44b721cdeda30911c}
+
+\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+The world class. This class does everything a world should do.
+
+\subsection{Member Data Documentation}
+\hypertarget{classWorld_afd9945f6ede5eabc3ff9243ce2b31247}{}\index{World@{World}!line@{line}}
+\index{line@{line}!World@{World}}
+\subsubsection[{line}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf line\+\_\+t}$\ast$ World\+::line\hspace{0.3cm}{\ttfamily [protected]}}\label{classWorld_afd9945f6ede5eabc3ff9243ce2b31247}
+The line array. This array is created through \textquotesingle{}new\textquotesingle{} in World\+::generate(), with an amount of elements provided by the function. \hypertarget{classWorld_a645767ccf316a9b4469db773ac111ae4}{}\index{World@{World}!x\+\_\+start@{x\+\_\+start}}
+\index{x\+\_\+start@{x\+\_\+start}!World@{World}}
+\subsubsection[{x\+\_\+start}]{\setlength{\rightskip}{0pt plus 5cm}int World\+::x\+\_\+start\hspace{0.3cm}{\ttfamily [protected]}}\label{classWorld_a645767ccf316a9b4469db773ac111ae4}
+Starting x coordinate. This x value is the point at which line\mbox{[}0\mbox{]} should reside, can be used to calculate the width of the world.
+
+The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
+\item
+include/\hyperlink{world_8h}{world.\+h}\item
+src/world.\+cpp\end{DoxyCompactItemize}
diff --git a/doc/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex b/doc/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex
new file mode 100644
index 0000000..c5d94d3
--- /dev/null
+++ b/doc/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex
@@ -0,0 +1,21 @@
+\hypertarget{dir_68267d1309a1af8e8297ef4c3efbcdba}{}\section{src Directory Reference}
+\label{dir_68267d1309a1af8e8297ef4c3efbcdba}\index{src Directory Reference@{src Directory Reference}}
+\subsection*{Files}
+\begin{DoxyCompactItemize}
+\item
+file {\bfseries common.\+cpp}
+\item
+file {\bfseries entities.\+cpp}
+\item
+file {\bfseries gameplay.\+cpp}
+\item
+file {\bfseries inventory.\+cpp}
+\item
+file {\bfseries Quest.\+cpp}
+\item
+file {\bfseries Texture.\+cpp}
+\item
+file {\bfseries ui.\+cpp}
+\item
+file {\bfseries world.\+cpp}
+\end{DoxyCompactItemize}
diff --git a/doc/latex/dir_d44c64559bbebec7f509842c48db8b23.tex b/doc/latex/dir_d44c64559bbebec7f509842c48db8b23.tex
new file mode 100644
index 0000000..d0ecfec
--- /dev/null
+++ b/doc/latex/dir_d44c64559bbebec7f509842c48db8b23.tex
@@ -0,0 +1,19 @@
+\hypertarget{dir_d44c64559bbebec7f509842c48db8b23}{}\section{include Directory Reference}
+\label{dir_d44c64559bbebec7f509842c48db8b23}\index{include Directory Reference@{include Directory Reference}}
+\subsection*{Files}
+\begin{DoxyCompactItemize}
+\item
+file {\bfseries common.\+h}
+\item
+file {\bfseries entities.\+h}
+\item
+file {\bfseries inventory.\+h}
+\item
+file {\bfseries Quest.\+h}
+\item
+file {\bfseries Texture.\+h}
+\item
+file {\bfseries ui.\+h}
+\item
+file \hyperlink{world_8h}{world.\+h}
+\begin{DoxyCompactList}\small\item\em The world system. \end{DoxyCompactList}\end{DoxyCompactItemize}
diff --git a/doc/latex/doxygen.sty b/doc/latex/doxygen.sty
new file mode 100644
index 0000000..acd68e4
--- /dev/null
+++ b/doc/latex/doxygen.sty
@@ -0,0 +1,480 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{doxygen}
+
+% Packages used by this style file
+\RequirePackage{alltt}
+\RequirePackage{array}
+\RequirePackage{calc}
+\RequirePackage{float}
+\RequirePackage{ifthen}
+\RequirePackage{verbatim}
+\RequirePackage[table]{xcolor}
+\RequirePackage{xtab}
+
+%---------- Internal commands used in this style file ----------------
+
+\newcommand{\ensurespace}[1]{%
+ \begingroup%
+ \setlength{\dimen@}{#1}%
+ \vskip\z@\@plus\dimen@%
+ \penalty -100\vskip\z@\@plus -\dimen@%
+ \vskip\dimen@%
+ \penalty 9999%
+ \vskip -\dimen@%
+ \vskip\z@skip% hide the previous |\vskip| from |\addvspace|
+ \endgroup%
+}
+
+\newcommand{\DoxyLabelFont}{}
+\newcommand{\entrylabel}[1]{%
+ {%
+ \parbox[b]{\labelwidth-4pt}{%
+ \makebox[0pt][l]{\DoxyLabelFont#1}%
+ \vspace{1.5\baselineskip}%
+ }%
+ }%
+}
+
+\newenvironment{DoxyDesc}[1]{%
+ \ensurespace{4\baselineskip}%
+ \begin{list}{}{%
+ \settowidth{\labelwidth}{20pt}%
+ \setlength{\parsep}{0pt}%
+ \setlength{\itemsep}{0pt}%
+ \setlength{\leftmargin}{\labelwidth+\labelsep}%
+ \renewcommand{\makelabel}{\entrylabel}%
+ }%
+ \item[#1]%
+}{%
+ \end{list}%
+}
+
+\newsavebox{\xrefbox}
+\newlength{\xreflength}
+\newcommand{\xreflabel}[1]{%
+ \sbox{\xrefbox}{#1}%
+ \setlength{\xreflength}{\wd\xrefbox}%
+ \ifthenelse{\xreflength>\labelwidth}{%
+ \begin{minipage}{\textwidth}%
+ \setlength{\parindent}{0pt}%
+ \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
+ \end{minipage}%
+ }{%
+ \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
+ }%
+}
+
+%---------- Commands used by doxygen LaTeX output generator ----------
+
+% Used by <pre> ... </pre>
+\newenvironment{DoxyPre}{%
+ \small%
+ \begin{alltt}%
+}{%
+ \end{alltt}%
+ \normalsize%
+}
+
+% Used by @code ... @endcode
+\newenvironment{DoxyCode}{%
+ \par%
+ \scriptsize%
+ \begin{alltt}%
+}{%
+ \end{alltt}%
+ \normalsize%
+}
+
+% Used by @example, @include, @includelineno and @dontinclude
+\newenvironment{DoxyCodeInclude}{%
+ \DoxyCode%
+}{%
+ \endDoxyCode%
+}
+
+% Used by @verbatim ... @endverbatim
+\newenvironment{DoxyVerb}{%
+ \footnotesize%
+ \verbatim%
+}{%
+ \endverbatim%
+ \normalsize%
+}
+
+% Used by @verbinclude
+\newenvironment{DoxyVerbInclude}{%
+ \DoxyVerb%
+}{%
+ \endDoxyVerb%
+}
+
+% Used by numbered lists (using '-#' or <ol> ... </ol>)
+\newenvironment{DoxyEnumerate}{%
+ \enumerate%
+}{%
+ \endenumerate%
+}
+
+% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
+\newenvironment{DoxyItemize}{%
+ \itemize%
+}{%
+ \enditemize%
+}
+
+% Used by description lists (using <dl> ... </dl>)
+\newenvironment{DoxyDescription}{%
+ \description%
+}{%
+ \enddescription%
+}
+
+% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
+% (only if caption is specified)
+\newenvironment{DoxyImage}{%
+ \begin{figure}[H]%
+ \begin{center}%
+}{%
+ \end{center}%
+ \end{figure}%
+}
+
+% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
+% (only if no caption is specified)
+\newenvironment{DoxyImageNoCaption}{%
+ \begin{center}%
+}{%
+ \end{center}%
+}
+
+% Used by @attention
+\newenvironment{DoxyAttention}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @author and @authors
+\newenvironment{DoxyAuthor}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @date
+\newenvironment{DoxyDate}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @invariant
+\newenvironment{DoxyInvariant}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @note
+\newenvironment{DoxyNote}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @post
+\newenvironment{DoxyPostcond}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @pre
+\newenvironment{DoxyPrecond}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @copyright
+\newenvironment{DoxyCopyright}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @remark
+\newenvironment{DoxyRemark}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @return and @returns
+\newenvironment{DoxyReturn}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @since
+\newenvironment{DoxySince}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @see
+\newenvironment{DoxySeeAlso}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @version
+\newenvironment{DoxyVersion}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @warning
+\newenvironment{DoxyWarning}[1]{%
+ \begin{DoxyDesc}{#1}%
+}{%
+ \end{DoxyDesc}%
+}
+
+% Used by @internal
+\newenvironment{DoxyInternal}[1]{%
+ \paragraph*{#1}%
+}{%
+}
+
+% Used by @par and @paragraph
+\newenvironment{DoxyParagraph}[1]{%
+ \begin{list}{}{%
+ \settowidth{\labelwidth}{40pt}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\parsep}{0pt}%
+ \setlength{\itemsep}{-4pt}%
+ \renewcommand{\makelabel}{\entrylabel}%
+ }%
+ \item[#1]%
+}{%
+ \end{list}%
+}
+
+% Used by parameter lists
+\newenvironment{DoxyParams}[2][]{%
+ \par%
+ \tabletail{\hline}%
+ \tablelasttail{\hline}%
+ \tablefirsthead{}%
+ \tablehead{}%
+ \ifthenelse{\equal{#1}{}}%
+ {\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]}%
+ \begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
+ p{0.805\textwidth}|}}%
+ {\ifthenelse{\equal{#1}{1}}%
+ {\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]}%
+ \begin{xtabular}{|>{\centering}p{0.10\textwidth}|%
+ >{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
+ p{0.678\textwidth}|}}%
+ {\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]}%
+ \begin{xtabular}{|>{\centering}p{0.10\textwidth}|%
+ >{\centering\hspace{0pt}}p{0.15\textwidth}|%
+ >{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
+ p{0.501\textwidth}|}}%
+ }\hline%
+}{%
+ \end{xtabular}%
+ \tablefirsthead{}%
+ \vspace{6pt}%
+}
+
+% Used for fields of simple structs
+\newenvironment{DoxyFields}[1]{%
+ \par%
+ \tabletail{\hline}%
+ \tablelasttail{\hline}%
+ \tablehead{}%
+ \tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}%
+ \begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
+ p{0.15\textwidth}|%
+ p{0.63\textwidth}|}%
+ \hline%
+}{%
+ \end{xtabular}%
+ \tablefirsthead{}%
+ \vspace{6pt}%
+}
+
+% Used for parameters within a detailed function description
+\newenvironment{DoxyParamCaption}{%
+ \renewcommand{\item}[2][]{##1 {\em ##2}}%
+}{%
+}
+
+% Used by return value lists
+\newenvironment{DoxyRetVals}[1]{%
+ \par%
+ \tabletail{\hline}%
+ \tablelasttail{\hline}%
+ \tablehead{}%
+ \tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}%
+ \begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|%
+ p{0.705\textwidth}|}%
+ \hline%
+}{%
+ \end{xtabular}%
+ \tablefirsthead{}%
+ \vspace{6pt}%
+}
+
+% Used by exception lists
+\newenvironment{DoxyExceptions}[1]{%
+ \par%
+ \tabletail{\hline}%
+ \tablelasttail{\hline}%
+ \tablehead{}%
+ \tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}%
+ \begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|%
+ p{0.705\textwidth}|}%
+ \hline%
+}{%
+ \end{xtabular}%
+ \tablefirsthead{}%
+ \vspace{6pt}%
+}
+
+% Used by template parameter lists
+\newenvironment{DoxyTemplParams}[1]{%
+ \par%
+ \tabletail{\hline}%
+ \tablelasttail{\hline}%
+ \tablehead{}%
+ \tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}%
+ \begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|%
+ p{0.705\textwidth}|}%
+ \hline%
+}{%
+ \end{xtabular}%
+ \tablefirsthead{}%
+ \vspace{6pt}%
+}
+
+% Used for member lists
+\newenvironment{DoxyCompactItemize}{%
+ \begin{itemize}%
+ \setlength{\itemsep}{-3pt}%
+ \setlength{\parsep}{0pt}%
+ \setlength{\topsep}{0pt}%
+ \setlength{\partopsep}{0pt}%
+}{%
+ \end{itemize}%
+}
+
+% Used for member descriptions
+\newenvironment{DoxyCompactList}{%
+ \begin{list}{}{%
+ \setlength{\leftmargin}{0.5cm}%
+ \setlength{\itemsep}{0pt}%
+ \setlength{\parsep}{0pt}%
+ \setlength{\topsep}{0pt}%
+ \renewcommand{\makelabel}{\hfill}%
+ }%
+}{%
+ \end{list}%
+}
+
+% Used for reference lists (@bug, @deprecated, @todo, etc.)
+\newenvironment{DoxyRefList}{%
+ \begin{list}{}{%
+ \setlength{\labelwidth}{10pt}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \addtolength{\leftmargin}{\labelsep}%
+ \renewcommand{\makelabel}{\xreflabel}%
+ }%
+}{%
+ \end{list}%
+}
+
+% Used by @bug, @deprecated, @todo, etc.
+\newenvironment{DoxyRefDesc}[1]{%
+ \begin{list}{}{%
+ \renewcommand\makelabel[1]{\textbf{##1}}%
+ \settowidth\labelwidth{\makelabel{#1}}%
+ \setlength\leftmargin{\labelwidth+\labelsep}%
+ }%
+}{%
+ \end{list}%
+}
+
+% Used by parameter lists and simple sections
+\newenvironment{Desc}
+{\begin{list}{}{%
+ \settowidth{\labelwidth}{40pt}%
+ \setlength{\leftmargin}{\labelwidth}%
+ \setlength{\parsep}{0pt}%
+ \setlength{\itemsep}{-4pt}%
+ \renewcommand{\makelabel}{\entrylabel}%
+ }
+}{%
+ \end{list}%
+}
+
+% Used by tables
+\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
+\newlength{\tmplength}%
+\newenvironment{TabularC}[1]%
+{%
+\setlength{\tmplength}%
+ {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}%
+ \par\begin{xtabular*}{\linewidth}%
+ {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}%
+}%
+{\end{xtabular*}\par}%
+
+% Used by nested tables
+\newenvironment{TabularNC}[1]%
+{%
+\setlength{\tmplength}%
+ {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}%
+ \par\begin{tabular*}{\linewidth}%
+ {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}%
+}%
+{\end{tabular*}\par}%
+
+% Used for member group headers
+\newenvironment{Indent}{%
+ \begin{list}{}{%
+ \setlength{\leftmargin}{0.5cm}%
+ }%
+ \item[]\ignorespaces%
+}{%
+ \unskip%
+ \end{list}%
+}
+
+% Used when hyperlinks are turned off
+\newcommand{\doxyref}[3]{%
+ \textbf{#1} (\textnormal{#2}\,\pageref{#3})%
+}
+
+% Used by @addindex
+\newcommand{\lcurly}{\{}
+\newcommand{\rcurly}{\}}
+
+% Used for syntax highlighting
+\definecolor{comment}{rgb}{0.5,0.0,0.0}
+\definecolor{keyword}{rgb}{0.0,0.5,0.0}
+\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
+\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
+\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
+\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
+\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
+\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
+\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
+\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
+\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
diff --git a/doc/latex/files.tex b/doc/latex/files.tex
new file mode 100644
index 0000000..d8d5247
--- /dev/null
+++ b/doc/latex/files.tex
@@ -0,0 +1,11 @@
+\section{File List}
+Here is a list of all documented files with brief descriptions\+:\begin{DoxyCompactList}
+\item\contentsline{section}{\hyperlink{main_8cpp}{main.\+cpp} \\*The file that links everything together for the game to run. The main game loop contains all of the global variables the game uses, and it runs the main game loop, the render loop, and the logic loop that control all of the entities }{\pageref{main_8cpp}}{}
+\item\contentsline{section}{include/{\bfseries common.\+h} }{\pageref{common_8h}}{}
+\item\contentsline{section}{include/{\bfseries entities.\+h} }{\pageref{entities_8h}}{}
+\item\contentsline{section}{include/{\bfseries inventory.\+h} }{\pageref{inventory_8h}}{}
+\item\contentsline{section}{include/{\bfseries Quest.\+h} }{\pageref{Quest_8h}}{}
+\item\contentsline{section}{include/{\bfseries Texture.\+h} }{\pageref{Texture_8h}}{}
+\item\contentsline{section}{include/{\bfseries ui.\+h} }{\pageref{ui_8h}}{}
+\item\contentsline{section}{include/\hyperlink{world_8h}{world.\+h} \\*The world system }{\pageref{world_8h}}{}
+\end{DoxyCompactList}
diff --git a/doc/latex/hierarchy.tex b/doc/latex/hierarchy.tex
new file mode 100644
index 0000000..7f4d13a
--- /dev/null
+++ b/doc/latex/hierarchy.tex
@@ -0,0 +1,26 @@
+\section{Class Hierarchy}
+This inheritance list is sorted roughly, but not completely, alphabetically\+:\begin{DoxyCompactList}
+\item \contentsline{section}{Entity}{\pageref{classEntity}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{Mob}{\pageref{classMob}}{}
+\item \contentsline{section}{N\+P\+C}{\pageref{classNPC}}{}
+\item \contentsline{section}{Object}{\pageref{classObject}}{}
+\item \contentsline{section}{Player}{\pageref{classPlayer}}{}
+\item \contentsline{section}{Structures}{\pageref{classStructures}}{}
+\end{DoxyCompactList}
+\item \contentsline{section}{Inventory}{\pageref{classInventory}}{}
+\item \contentsline{section}{Item}{\pageref{classItem}}{}
+\item \contentsline{section}{item\+\_\+t}{\pageref{structitem__t}}{}
+\item \contentsline{section}{line\+\_\+t}{\pageref{structline__t}}{}
+\item \contentsline{section}{Quest}{\pageref{classQuest}}{}
+\item \contentsline{section}{Quest\+Handler}{\pageref{classQuestHandler}}{}
+\item \contentsline{section}{Ray}{\pageref{structRay}}{}
+\item \contentsline{section}{texture\+\_\+t}{\pageref{structtexture__t}}{}
+\item \contentsline{section}{Texturec}{\pageref{classTexturec}}{}
+\item \contentsline{section}{vec2}{\pageref{structvec2}}{}
+\item \contentsline{section}{World}{\pageref{classWorld}}{}
+\begin{DoxyCompactList}
+\item \contentsline{section}{Arena}{\pageref{classArena}}{}
+\item \contentsline{section}{Indoor\+World}{\pageref{classIndoorWorld}}{}
+\end{DoxyCompactList}
+\end{DoxyCompactList}
diff --git a/doc/latex/main_8cpp.tex b/doc/latex/main_8cpp.tex
new file mode 100644
index 0000000..5bab8d8
--- /dev/null
+++ b/doc/latex/main_8cpp.tex
@@ -0,0 +1,145 @@
+\hypertarget{main_8cpp}{}\section{main.\+cpp File Reference}
+\label{main_8cpp}\index{main.\+cpp@{main.\+cpp}}
+
+
+The file that links everything together for the game to run. The main game loop contains all of the global variables the game uses, and it runs the main game loop, the render loop, and the logic loop that control all of the entities.
+
+
+{\ttfamily \#include $<$cstdio$>$}\\*
+{\ttfamily \#include $<$chrono$>$}\\*
+{\ttfamily \#include $<$common.\+h$>$}\\*
+{\ttfamily \#include $<$world.\+h$>$}\\*
+{\ttfamily \#include $<$ui.\+h$>$}\\*
+{\ttfamily \#include $<$entities.\+h$>$}\\*
+\subsection*{Macros}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{main_8cpp_a4a0c770328891d8916c1142a26481e4a}{}\#define {\bfseries T\+I\+C\+K\+S\+\_\+\+P\+E\+R\+\_\+\+S\+E\+C}~20\label{main_8cpp_a4a0c770328891d8916c1142a26481e4a}
+
+\item
+\hypertarget{main_8cpp_a3ac3c588b407d69920af6496f3aaeaf9}{}\#define {\bfseries M\+S\+E\+C\+\_\+\+P\+E\+R\+\_\+\+T\+I\+C\+K}~(1000/T\+I\+C\+K\+S\+\_\+\+P\+E\+R\+\_\+\+S\+E\+C)\label{main_8cpp_a3ac3c588b407d69920af6496f3aaeaf9}
+
+\end{DoxyCompactItemize}
+\subsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{main_8cpp_af1feec528aef91d55552ce7e325e0f74}{}void {\bfseries init\+Everything} (void)\label{main_8cpp_af1feec528aef91d55552ce7e325e0f74}
+
+\item
+\hypertarget{main_8cpp_a68636a939ce1a8c8736e1671d6f2c921}{}void {\bfseries logic} (void)\label{main_8cpp_a68636a939ce1a8c8736e1671d6f2c921}
+
+\item
+\hypertarget{main_8cpp_a6765cdcebe5c8445969d5f76345df457}{}void {\bfseries render} (void)\label{main_8cpp_a6765cdcebe5c8445969d5f76345df457}
+
+\item
+\hypertarget{main_8cpp_a52387bf053883d1a8feeee2dd2cdd4f3}{}void {\bfseries main\+Loop} (void)\label{main_8cpp_a52387bf053883d1a8feeee2dd2cdd4f3}
+
+\item
+\hypertarget{main_8cpp_a3f4650350f7c52cdb50175e55058c604}{}std\+::string {\bfseries read\+File} (const char $\ast$file\+Path)\label{main_8cpp_a3f4650350f7c52cdb50175e55058c604}
+
+\item
+unsigned int \hyperlink{main_8cpp_a941a22cb7e0f6429fe40f91e83ead3d9}{millis} (void)
+\item
+int \hyperlink{main_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4}{main} ()
+\end{DoxyCompactItemize}
+\subsection*{Variables}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{main_8cpp_aaa8e409e04dcf575ef63fd5fb3db06f9}{}S\+D\+L\+\_\+\+Window $\ast$ {\bfseries window} = N\+U\+L\+L\label{main_8cpp_aaa8e409e04dcf575ef63fd5fb3db06f9}
+
+\item
+\hypertarget{main_8cpp_a7b5f505ee07aa2fc132a1f04ce33162c}{}S\+D\+L\+\_\+\+G\+L\+Context {\bfseries main\+G\+L\+Context} = N\+U\+L\+L\label{main_8cpp_a7b5f505ee07aa2fc132a1f04ce33162c}
+
+\item
+\hypertarget{main_8cpp_a9b008924a50085448a0761c7e841acfc}{}G\+Luint {\bfseries bg\+Day}\label{main_8cpp_a9b008924a50085448a0761c7e841acfc}
+
+\item
+\hypertarget{main_8cpp_a3837f6d6b1701e98578f3ba0ee9d90e7}{}G\+Luint {\bfseries bg\+Night}\label{main_8cpp_a3837f6d6b1701e98578f3ba0ee9d90e7}
+
+\item
+\hypertarget{main_8cpp_afce018081a460f35ddd04033a081ac83}{}G\+Luint {\bfseries bg\+Mtn}\label{main_8cpp_afce018081a460f35ddd04033a081ac83}
+
+\item
+\hypertarget{main_8cpp_a34e3cb52ded6aaf845074c0303a84c33}{}G\+Luint {\bfseries bg\+Trees\+Front}\label{main_8cpp_a34e3cb52ded6aaf845074c0303a84c33}
+
+\item
+\hypertarget{main_8cpp_aa36d4c9de8b002fe641f043ecb819656}{}G\+Luint {\bfseries bg\+Trees\+Mid}\label{main_8cpp_aa36d4c9de8b002fe641f043ecb819656}
+
+\item
+\hypertarget{main_8cpp_a48a7f2abfb80ba87a38600885fc24904}{}G\+Luint {\bfseries bg\+Trees\+Far}\label{main_8cpp_a48a7f2abfb80ba87a38600885fc24904}
+
+\item
+\hypertarget{main_8cpp_a2bf73692c7682fcae9cdc62fb1778e9f}{}G\+Luint {\bfseries inv\+U\+I}\label{main_8cpp_a2bf73692c7682fcae9cdc62fb1778e9f}
+
+\item
+\hypertarget{main_8cpp_aaa52a27abaaf72231a84c99f2bfa4283}{}bool {\bfseries game\+Running}\label{main_8cpp_aaa52a27abaaf72231a84c99f2bfa4283}
+
+\item
+\hypertarget{main_8cpp_adc1a7b3846cdf41f82a17950d107bfb2}{}float {\bfseries hand\+Angle}\label{main_8cpp_adc1a7b3846cdf41f82a17950d107bfb2}
+
+\item
+\hypertarget{main_8cpp_ab0d5cf0befa2a1b6fd9eed35c5f6eb54}{}\hyperlink{classWorld}{World} $\ast$ {\bfseries current\+World} =N\+U\+L\+L\label{main_8cpp_ab0d5cf0befa2a1b6fd9eed35c5f6eb54}
+
+\item
+\hypertarget{main_8cpp_a96781128d3743da3d17e0fdd91afba7b}{}\hyperlink{classPlayer}{Player} $\ast$ {\bfseries player}\label{main_8cpp_a96781128d3743da3d17e0fdd91afba7b}
+
+\item
+\hypertarget{main_8cpp_a8bace7920d06b121b855a75639a7f625}{}bool {\bfseries world\+Inside}\label{main_8cpp_a8bace7920d06b121b855a75639a7f625}
+
+\item
+\hypertarget{main_8cpp_a50403f70d039eb253c1be121d72a9c5a}{}unsigned int {\bfseries tick\+Count} = 0\label{main_8cpp_a50403f70d039eb253c1be121d72a9c5a}
+
+\item
+\hypertarget{main_8cpp_af54c40bfc9df47f871a2f1988b5698a6}{}unsigned int {\bfseries delta\+Time} = 0\label{main_8cpp_af54c40bfc9df47f871a2f1988b5698a6}
+
+\item
+\hypertarget{main_8cpp_a836dcec716beba7d9709b49832064b6a}{}G\+Luint {\bfseries frag\+Shader}\label{main_8cpp_a836dcec716beba7d9709b49832064b6a}
+
+\item
+\hypertarget{main_8cpp_a1e91db27f0eca4f48996febd1ec5fd23}{}G\+Luint {\bfseries shader\+Program}\label{main_8cpp_a1e91db27f0eca4f48996febd1ec5fd23}
+
+\item
+\hypertarget{main_8cpp_aa3a0cfcda8346bb1599fb41cda621f16}{}F\+I\+L\+E $\ast$ {\bfseries names}\label{main_8cpp_aa3a0cfcda8346bb1599fb41cda621f16}
+
+\item
+\hypertarget{main_8cpp_aecf0a8f9c4e7b09fcbcfd911ae015533}{}unsigned int {\bfseries loops} = 0\label{main_8cpp_aecf0a8f9c4e7b09fcbcfd911ae015533}
+
+\item
+\hypertarget{main_8cpp_a1f883088bca4920bd59729925f82fdcb}{}\hyperlink{structvec2}{vec2} {\bfseries offset}\label{main_8cpp_a1f883088bca4920bd59729925f82fdcb}
+
+\item
+\hypertarget{main_8cpp_a01f16482fbffb67b04283fda27a35b0f}{}\hyperlink{world_8h_a7e5783b78992864281462a5380a28924}{W\+E\+A\+T\+H\+E\+R} {\bfseries weather}\label{main_8cpp_a01f16482fbffb67b04283fda27a35b0f}
+
+\item
+\hypertarget{main_8cpp_a4b1577e5b7bc2e8dc302c02dfe2e6526}{}bool {\bfseries fade\+Enable}\label{main_8cpp_a4b1577e5b7bc2e8dc302c02dfe2e6526}
+
+\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+The file that links everything together for the game to run. The main game loop contains all of the global variables the game uses, and it runs the main game loop, the render loop, and the logic loop that control all of the entities.
+
+
+
+\subsection{Function Documentation}
+\hypertarget{main_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4}{}\index{main.\+cpp@{main.\+cpp}!main@{main}}
+\index{main@{main}!main.\+cpp@{main.\+cpp}}
+\subsubsection[{main()}]{\setlength{\rightskip}{0pt plus 5cm}int main (
+\begin{DoxyParamCaption}
+{}
+\end{DoxyParamCaption}
+)}\label{main_8cpp_ae66f6b31b5ad750f1fe042a706a4e3d4}
+(Attempt to) Initialize S\+D\+L libraries so that we can use S\+D\+L facilities and eventually make open\+G\+L calls. Exit if there was an error.
+
+` (Attempt to) Initialize S\+D\+L\+\_\+image libraries with I\+M\+G\+\_\+\+I\+N\+I\+T\+\_\+\+P\+N\+G so that we can load P\+N\+G textures for the entities and stuff.
+
+(Attempt to) Initialize S\+D\+L\+\_\+mixer libraries for loading and playing music/sound files.\hypertarget{main_8cpp_a941a22cb7e0f6429fe40f91e83ead3d9}{}\index{main.\+cpp@{main.\+cpp}!millis@{millis}}
+\index{millis@{millis}!main.\+cpp@{main.\+cpp}}
+\subsubsection[{millis(void)}]{\setlength{\rightskip}{0pt plus 5cm}unsigned int millis (
+\begin{DoxyParamCaption}
+\item[{void}]{}
+\end{DoxyParamCaption}
+)}\label{main_8cpp_a941a22cb7e0f6429fe40f91e83ead3d9}
+millis
+
+We\textquotesingle{}ve encountered many problems when attempting to create delays for triggering the logic function. As a result, we decided on using the timing libraries given by $<$chrono$>$ in the standard C++ library. This function simply returns the amount of milliseconds that have passed sine the epoch. \ No newline at end of file
diff --git a/doc/latex/md_README.tex b/doc/latex/md_README.tex
new file mode 100644
index 0000000..0f82393
--- /dev/null
+++ b/doc/latex/md_README.tex
@@ -0,0 +1 @@
+gamedev is a high school project between drumsetmonkey and tcsullivan written in C++ and using S\+D\+L2/\+Open\+G\+L. The goal of this project is to have a completed commercial-\/grade video game available to Linux and Windows users. We plan on profiting off of the game once we finish it, so once the game reaches its final stages it may become closed source (however, what was uploaded will stay for others to use as a resource). \ No newline at end of file
diff --git a/doc/latex/refman.tex b/doc/latex/refman.tex
new file mode 100644
index 0000000..9e5cfc6
--- /dev/null
+++ b/doc/latex/refman.tex
@@ -0,0 +1,184 @@
+\documentclass[twoside]{book}
+
+% Packages required by doxygen
+\usepackage{fixltx2e}
+\usepackage{calc}
+\usepackage{doxygen}
+\usepackage[export]{adjustbox} % also loads graphicx
+\usepackage{graphicx}
+\usepackage[utf8]{inputenc}
+\usepackage{makeidx}
+\usepackage{multicol}
+\usepackage{multirow}
+\PassOptionsToPackage{warn}{textcomp}
+\usepackage{textcomp}
+\usepackage[nointegrals]{wasysym}
+\usepackage[table]{xcolor}
+
+% Font selection
+\usepackage[T1]{fontenc}
+\usepackage[scaled=.90]{helvet}
+\usepackage{courier}
+\usepackage{amssymb}
+\usepackage{sectsty}
+\renewcommand{\familydefault}{\sfdefault}
+\allsectionsfont{%
+ \fontseries{bc}\selectfont%
+ \color{darkgray}%
+}
+\renewcommand{\DoxyLabelFont}{%
+ \fontseries{bc}\selectfont%
+ \color{darkgray}%
+}
+\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
+
+% Page & text layout
+\usepackage{geometry}
+\geometry{%
+ a4paper,%
+ top=2.5cm,%
+ bottom=2.5cm,%
+ left=2.5cm,%
+ right=2.5cm%
+}
+\tolerance=750
+\hfuzz=15pt
+\hbadness=750
+\setlength{\emergencystretch}{15pt}
+\setlength{\parindent}{0cm}
+\setlength{\parskip}{0.2cm}
+\makeatletter
+\renewcommand{\paragraph}{%
+ \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
+ \normalfont\normalsize\bfseries\SS@parafont%
+ }%
+}
+\renewcommand{\subparagraph}{%
+ \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
+ \normalfont\normalsize\bfseries\SS@subparafont%
+ }%
+}
+\makeatother
+
+% Headers & footers
+\usepackage{fancyhdr}
+\pagestyle{fancyplain}
+\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}}
+\fancyhead[CE]{\fancyplain{}{}}
+\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}}
+\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}}
+\fancyhead[CO]{\fancyplain{}{}}
+\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
+\fancyfoot[LE]{\fancyplain{}{}}
+\fancyfoot[CE]{\fancyplain{}{}}
+\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated on Mon Dec 7 2015 08\+:44\+:42 for gamedev by Doxygen }}
+\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated on Mon Dec 7 2015 08\+:44\+:42 for gamedev by Doxygen }}
+\fancyfoot[CO]{\fancyplain{}{}}
+\fancyfoot[RO]{\fancyplain{}{}}
+\renewcommand{\footrulewidth}{0.4pt}
+\renewcommand{\chaptermark}[1]{%
+ \markboth{#1}{}%
+}
+\renewcommand{\sectionmark}[1]{%
+ \markright{\thesection\ #1}%
+}
+
+% Indices & bibliography
+\usepackage{natbib}
+\usepackage[titles]{tocloft}
+\setcounter{tocdepth}{3}
+\setcounter{secnumdepth}{5}
+\makeindex
+
+% Hyperlinks (required, but should be loaded last)
+\usepackage{ifpdf}
+\ifpdf
+ \usepackage[pdftex,pagebackref=true]{hyperref}
+\else
+ \usepackage[ps2pdf,pagebackref=true]{hyperref}
+\fi
+\hypersetup{%
+ colorlinks=true,%
+ linkcolor=blue,%
+ citecolor=blue,%
+ unicode%
+}
+
+% Custom commands
+\newcommand{\clearemptydoublepage}{%
+ \newpage{\pagestyle{empty}\cleardoublepage}%
+}
+
+
+%===== C O N T E N T S =====
+
+\begin{document}
+
+% Titlepage & ToC
+\hypersetup{pageanchor=false,
+ bookmarks=true,
+ bookmarksnumbered=true,
+ pdfencoding=unicode
+ }
+\pagenumbering{roman}
+\begin{titlepage}
+\vspace*{7cm}
+\begin{center}%
+{\Large gamedev }\\
+\vspace*{1cm}
+{\large Generated by Doxygen 1.8.10}\\
+\vspace*{0.5cm}
+{\small Mon Dec 7 2015 08:44:42}\\
+\end{center}
+\end{titlepage}
+\clearemptydoublepage
+\tableofcontents
+\clearemptydoublepage
+\pagenumbering{arabic}
+\hypersetup{pageanchor=true}
+
+%--- Begin generated contents ---
+\chapter{gamedev}
+\label{md_README}
+\hypertarget{md_README}{}
+\input{md_README}
+\chapter{Hierarchical Index}
+\input{hierarchy}
+\chapter{Class Index}
+\input{annotated}
+\chapter{File Index}
+\input{files}
+\chapter{Class Documentation}
+\input{classArena}
+\input{classEntity}
+\input{classIndoorWorld}
+\input{classInventory}
+\input{classItem}
+\input{structitem__t}
+\input{structline__t}
+\input{classMob}
+\input{classNPC}
+\input{classObject}
+\input{classPlayer}
+\input{classQuest}
+\input{classQuestHandler}
+\input{structRay}
+\input{classStructures}
+\input{structtexture__t}
+\input{classTexturec}
+\input{structvec2}
+\input{classWorld}
+\chapter{File Documentation}
+\input{world_8h}
+\input{main_8cpp}
+%--- End generated contents ---
+
+% Index
+\backmatter
+\newpage
+\phantomsection
+\clearemptydoublepage
+\addcontentsline{toc}{chapter}{Index}
+\printindex
+
+\end{document}
diff --git a/doc/latex/structRay.tex b/doc/latex/structRay.tex
new file mode 100644
index 0000000..f60f22a
--- /dev/null
+++ b/doc/latex/structRay.tex
@@ -0,0 +1,16 @@
+\hypertarget{structRay}{}\section{Ray Struct Reference}
+\label{structRay}\index{Ray@{Ray}}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{structRay_a37cfe593762533d7fb094842172ce3eb}{}\hyperlink{structvec2}{vec2} {\bfseries start}\label{structRay_a37cfe593762533d7fb094842172ce3eb}
+
+\item
+\hypertarget{structRay_a05ef34dc0c2a42ccfa6d54c8c00d00a7}{}\hyperlink{structvec2}{vec2} {\bfseries end}\label{structRay_a05ef34dc0c2a42ccfa6d54c8c00d00a7}
+
+\end{DoxyCompactItemize}
+
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+include/common.\+h\end{DoxyCompactItemize}
diff --git a/doc/latex/structitem__t.tex b/doc/latex/structitem__t.tex
new file mode 100644
index 0000000..8599550
--- /dev/null
+++ b/doc/latex/structitem__t.tex
@@ -0,0 +1,16 @@
+\hypertarget{structitem__t}{}\section{item\+\_\+t Struct Reference}
+\label{structitem__t}\index{item\+\_\+t@{item\+\_\+t}}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{structitem__t_a027684448f5b2ab6e00f267e6f9f5fb6}{}int {\bfseries count}\label{structitem__t_a027684448f5b2ab6e00f267e6f9f5fb6}
+
+\item
+\hypertarget{structitem__t_aaa76ee85cd612b5df5f015c3488e99da}{}I\+T\+E\+M\+\_\+\+I\+D {\bfseries id}\label{structitem__t_aaa76ee85cd612b5df5f015c3488e99da}
+
+\end{DoxyCompactItemize}
+
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+include/inventory.\+h\end{DoxyCompactItemize}
diff --git a/doc/latex/structline__t.tex b/doc/latex/structline__t.tex
new file mode 100644
index 0000000..458c4d0
--- /dev/null
+++ b/doc/latex/structline__t.tex
@@ -0,0 +1,40 @@
+\hypertarget{structline__t}{}\section{line\+\_\+t Struct Reference}
+\label{structline__t}\index{line\+\_\+t@{line\+\_\+t}}
+
+
+{\ttfamily \#include $<$world.\+h$>$}
+
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+float \hyperlink{structline__t_a77fb44a40c2154411e5af6cf39194b30}{y}
+\item
+bool \hyperlink{structline__t_a06568d82429331a242b9e6f45a36ae6d}{gs}
+\item
+float \hyperlink{structline__t_a43341c3344f32533472fdd85c7e9e430}{gh} \mbox{[}2\mbox{]}
+\item
+unsigned char \hyperlink{structline__t_a90c59d30a06d5c4bd7ee6c73c66fc414}{color}
+\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+The line structure. This structure is used to store the world\textquotesingle{}s ground, stored in vertical lines. Dirt color and grass properties are also kept track of here.
+
+\subsection{Member Data Documentation}
+\hypertarget{structline__t_a90c59d30a06d5c4bd7ee6c73c66fc414}{}\index{line\+\_\+t@{line\+\_\+t}!color@{color}}
+\index{color@{color}!line\+\_\+t@{line\+\_\+t}}
+\subsubsection[{color}]{\setlength{\rightskip}{0pt plus 5cm}unsigned char line\+\_\+t\+::color}\label{structline__t_a90c59d30a06d5c4bd7ee6c73c66fc414}
+Lightness of dirt (brown) \hypertarget{structline__t_a43341c3344f32533472fdd85c7e9e430}{}\index{line\+\_\+t@{line\+\_\+t}!gh@{gh}}
+\index{gh@{gh}!line\+\_\+t@{line\+\_\+t}}
+\subsubsection[{gh}]{\setlength{\rightskip}{0pt plus 5cm}float line\+\_\+t\+::gh\mbox{[}2\mbox{]}}\label{structline__t_a43341c3344f32533472fdd85c7e9e430}
+Height of glass (2 blades per line) \hypertarget{structline__t_a06568d82429331a242b9e6f45a36ae6d}{}\index{line\+\_\+t@{line\+\_\+t}!gs@{gs}}
+\index{gs@{gs}!line\+\_\+t@{line\+\_\+t}}
+\subsubsection[{gs}]{\setlength{\rightskip}{0pt plus 5cm}bool line\+\_\+t\+::gs}\label{structline__t_a06568d82429331a242b9e6f45a36ae6d}
+Show grass \hypertarget{structline__t_a77fb44a40c2154411e5af6cf39194b30}{}\index{line\+\_\+t@{line\+\_\+t}!y@{y}}
+\index{y@{y}!line\+\_\+t@{line\+\_\+t}}
+\subsubsection[{y}]{\setlength{\rightskip}{0pt plus 5cm}float line\+\_\+t\+::y}\label{structline__t_a77fb44a40c2154411e5af6cf39194b30}
+Height of this vertical line
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+include/\hyperlink{world_8h}{world.\+h}\end{DoxyCompactItemize}
diff --git a/doc/latex/structtexture__t.tex b/doc/latex/structtexture__t.tex
new file mode 100644
index 0000000..bb5a9cf
--- /dev/null
+++ b/doc/latex/structtexture__t.tex
@@ -0,0 +1,16 @@
+\hypertarget{structtexture__t}{}\section{texture\+\_\+t Struct Reference}
+\label{structtexture__t}\index{texture\+\_\+t@{texture\+\_\+t}}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{structtexture__t_a0a44d52225ea8f0a485404ec6350c21e}{}char $\ast$ {\bfseries name}\label{structtexture__t_a0a44d52225ea8f0a485404ec6350c21e}
+
+\item
+\hypertarget{structtexture__t_afeecfe451c6753eb370af68a54ba4370}{}G\+Luint {\bfseries tex}\label{structtexture__t_afeecfe451c6753eb370af68a54ba4370}
+
+\end{DoxyCompactItemize}
+
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+src/Texture.\+cpp\end{DoxyCompactItemize}
diff --git a/doc/latex/structvec2.tex b/doc/latex/structvec2.tex
new file mode 100644
index 0000000..7e93833
--- /dev/null
+++ b/doc/latex/structvec2.tex
@@ -0,0 +1,16 @@
+\hypertarget{structvec2}{}\section{vec2 Struct Reference}
+\label{structvec2}\index{vec2@{vec2}}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{structvec2_a002d3519d48fe3cd79729b5b0ded74bf}{}float {\bfseries x}\label{structvec2_a002d3519d48fe3cd79729b5b0ded74bf}
+
+\item
+\hypertarget{structvec2_a6d28b12b511da692550fc9d37b4e9b1d}{}float {\bfseries y}\label{structvec2_a6d28b12b511da692550fc9d37b4e9b1d}
+
+\end{DoxyCompactItemize}
+
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+include/common.\+h\end{DoxyCompactItemize}
diff --git a/doc/latex/structwSavePack.tex b/doc/latex/structwSavePack.tex
new file mode 100644
index 0000000..44cd470
--- /dev/null
+++ b/doc/latex/structwSavePack.tex
@@ -0,0 +1,16 @@
+\hypertarget{structwSavePack}{}\section{w\+Save\+Pack Struct Reference}
+\label{structwSavePack}\index{w\+Save\+Pack@{w\+Save\+Pack}}
+\subsection*{Public Attributes}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{structwSavePack_ac8c1acad9ad6d6937e7bf7e04a395c47}{}int {\bfseries x\+\_\+start}\label{structwSavePack_ac8c1acad9ad6d6937e7bf7e04a395c47}
+
+\item
+\hypertarget{structwSavePack_ac7f749ffe058ac5419f312f06bc23e67}{}unsigned int {\bfseries line\+Count}\label{structwSavePack_ac7f749ffe058ac5419f312f06bc23e67}
+
+\end{DoxyCompactItemize}
+
+
+The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+src/world.\+cpp\end{DoxyCompactItemize}
diff --git a/doc/latex/world_8h.tex b/doc/latex/world_8h.tex
new file mode 100644
index 0000000..acda8bb
--- /dev/null
+++ b/doc/latex/world_8h.tex
@@ -0,0 +1,117 @@
+\hypertarget{world_8h}{}\section{include/world.h File Reference}
+\label{world_8h}\index{include/world.\+h@{include/world.\+h}}
+
+
+The world system.
+
+
+{\ttfamily \#include $<$common.\+h$>$}\\*
+{\ttfamily \#include $<$entities.\+h$>$}\\*
+\subsection*{Classes}
+\begin{DoxyCompactItemize}
+\item
+struct \hyperlink{structline__t}{line\+\_\+t}
+\item
+class \hyperlink{classWorld}{World}
+\item
+class \hyperlink{classIndoorWorld}{Indoor\+World}
+\item
+class \hyperlink{classArena}{Arena}
+\end{DoxyCompactItemize}
+\subsection*{Macros}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{world_8h_abe6612844622bc702d7bf4d4a02772d1}{}\#define {\bfseries G\+E\+N\+\_\+\+I\+N\+C}~10\label{world_8h_abe6612844622bc702d7bf4d4a02772d1}
+
+\item
+\hypertarget{world_8h_afe31ec7e8b74045491fa2488e73bc13e}{}\#define {\bfseries D\+A\+Y\+\_\+\+C\+Y\+C\+L\+E}~3000\label{world_8h_afe31ec7e8b74045491fa2488e73bc13e}
+
+\end{DoxyCompactItemize}
+\subsection*{Enumerations}
+\begin{DoxyCompactItemize}
+\item
+enum \hyperlink{world_8h_a0678a0e576121a23798fdbd5964143c5}{W\+O\+R\+L\+D\+\_\+\+B\+G\+\_\+\+T\+Y\+P\+E} \{ \hyperlink{world_8h_a0678a0e576121a23798fdbd5964143c5a53c9e606f96cd2e762bac6c048d2dddb}{B\+G\+\_\+\+F\+O\+R\+E\+S\+T},
+\hyperlink{world_8h_a0678a0e576121a23798fdbd5964143c5ae678da5bb217c4bb81b5ac0de53ad9cb}{B\+G\+\_\+\+W\+O\+O\+D\+H\+O\+U\+S\+E}
+ \}
+\item
+enum \hyperlink{world_8h_a7e5783b78992864281462a5380a28924}{W\+E\+A\+T\+H\+E\+R} \{ \hyperlink{world_8h_a7e5783b78992864281462a5380a28924a970420c889e8f3dfb76298adc94c98f0}{S\+U\+N\+N\+Y} = 0,
+\hyperlink{world_8h_a7e5783b78992864281462a5380a28924a5564de0baf1f25257db17367eba68edd}{D\+A\+R\+K},
+\hyperlink{world_8h_a7e5783b78992864281462a5380a28924a5b1b71f2b77a08a17c728a6f854a7bfe}{R\+A\+I\+N}
+ \}
+\end{DoxyCompactItemize}
+\subsection*{Functions}
+\begin{DoxyCompactItemize}
+\item
+\hypertarget{world_8h_a990bc0622ea3942233d5274c40fb475d}{}struct \hyperlink{structline__t}{line\+\_\+t} {\bfseries \+\_\+\+\_\+attribute\+\_\+\+\_\+} ((packed))\label{world_8h_a990bc0622ea3942233d5274c40fb475d}
+
+\item
+\hypertarget{world_8h_ab59186fdb5f2b79a00393a6acd285411}{}float {\bfseries world\+Get\+Y\+Base} (\hyperlink{classWorld}{World} $\ast$w)\label{world_8h_ab59186fdb5f2b79a00393a6acd285411}
+
+\end{DoxyCompactItemize}
+\subsection*{Variables}
+\begin{DoxyCompactItemize}
+\item
+float \hyperlink{world_8h_aa4f0d3eebc3c443f9be81bf48561a217}{y}
+\item
+bool \hyperlink{world_8h_aabefe07939b18f14fedbb9c9a14d02d5}{gs}
+\item
+float \hyperlink{world_8h_aa523d841be6ccb88f26cd56294adcd01}{gh} \mbox{[}2\mbox{]}
+\item
+unsigned char \hyperlink{world_8h_af61b66b2d9004f4975ae5f51c2177f3d}{color}
+\item
+\hypertarget{world_8h_a786ac58c78359cc826132c8a25d120fd}{}class \hyperlink{classWorld}{World} {\bfseries \+\_\+\+\_\+attribute\+\_\+\+\_\+}\label{world_8h_a786ac58c78359cc826132c8a25d120fd}
+
+\item
+\hypertarget{world_8h_ac88924e2aeaca61e7a5caa46a9cd0982}{}int {\bfseries world\+Shade}\label{world_8h_ac88924e2aeaca61e7a5caa46a9cd0982}
+
+\end{DoxyCompactItemize}
+
+
+\subsection{Detailed Description}
+The world system.
+
+This file contains the classes and variables necessary to create an in-\/game world.
+
+\subsection{Enumeration Type Documentation}
+\hypertarget{world_8h_a7e5783b78992864281462a5380a28924}{}\index{world.\+h@{world.\+h}!W\+E\+A\+T\+H\+E\+R@{W\+E\+A\+T\+H\+E\+R}}
+\index{W\+E\+A\+T\+H\+E\+R@{W\+E\+A\+T\+H\+E\+R}!world.\+h@{world.\+h}}
+\subsubsection[{W\+E\+A\+T\+H\+E\+R}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf W\+E\+A\+T\+H\+E\+R}}\label{world_8h_a7e5783b78992864281462a5380a28924}
+The weather type enum. This enum contains every type of weather currently implemented in the game. Weather is set by the world somewhere. \begin{Desc}
+\item[Enumerator]\par
+\begin{description}
+\index{S\+U\+N\+N\+Y@{S\+U\+N\+N\+Y}!world.\+h@{world.\+h}}\index{world.\+h@{world.\+h}!S\+U\+N\+N\+Y@{S\+U\+N\+N\+Y}}\item[{\em
+\hypertarget{world_8h_a7e5783b78992864281462a5380a28924a970420c889e8f3dfb76298adc94c98f0}{}S\+U\+N\+N\+Y\label{world_8h_a7e5783b78992864281462a5380a28924a970420c889e8f3dfb76298adc94c98f0}
+}]Sunny/daytime \index{D\+A\+R\+K@{D\+A\+R\+K}!world.\+h@{world.\+h}}\index{world.\+h@{world.\+h}!D\+A\+R\+K@{D\+A\+R\+K}}\item[{\em
+\hypertarget{world_8h_a7e5783b78992864281462a5380a28924a5564de0baf1f25257db17367eba68edd}{}D\+A\+R\+K\label{world_8h_a7e5783b78992864281462a5380a28924a5564de0baf1f25257db17367eba68edd}
+}]Nighttime \index{R\+A\+I\+N@{R\+A\+I\+N}!world.\+h@{world.\+h}}\index{world.\+h@{world.\+h}!R\+A\+I\+N@{R\+A\+I\+N}}\item[{\em
+\hypertarget{world_8h_a7e5783b78992864281462a5380a28924a5b1b71f2b77a08a17c728a6f854a7bfe}{}R\+A\+I\+N\label{world_8h_a7e5783b78992864281462a5380a28924a5b1b71f2b77a08a17c728a6f854a7bfe}
+}]Rain (not implemented \+:) ) \end{description}
+\end{Desc}
+\hypertarget{world_8h_a0678a0e576121a23798fdbd5964143c5}{}\index{world.\+h@{world.\+h}!W\+O\+R\+L\+D\+\_\+\+B\+G\+\_\+\+T\+Y\+P\+E@{W\+O\+R\+L\+D\+\_\+\+B\+G\+\_\+\+T\+Y\+P\+E}}
+\index{W\+O\+R\+L\+D\+\_\+\+B\+G\+\_\+\+T\+Y\+P\+E@{W\+O\+R\+L\+D\+\_\+\+B\+G\+\_\+\+T\+Y\+P\+E}!world.\+h@{world.\+h}}
+\subsubsection[{W\+O\+R\+L\+D\+\_\+\+B\+G\+\_\+\+T\+Y\+P\+E}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf W\+O\+R\+L\+D\+\_\+\+B\+G\+\_\+\+T\+Y\+P\+E}}\label{world_8h_a0678a0e576121a23798fdbd5964143c5}
+The background type enum. This enum contains all different possibilities for world backgrounds; used in World\+::set\+Background() to select the appropriate images. \begin{Desc}
+\item[Enumerator]\par
+\begin{description}
+\index{B\+G\+\_\+\+F\+O\+R\+E\+S\+T@{B\+G\+\_\+\+F\+O\+R\+E\+S\+T}!world.\+h@{world.\+h}}\index{world.\+h@{world.\+h}!B\+G\+\_\+\+F\+O\+R\+E\+S\+T@{B\+G\+\_\+\+F\+O\+R\+E\+S\+T}}\item[{\em
+\hypertarget{world_8h_a0678a0e576121a23798fdbd5964143c5a53c9e606f96cd2e762bac6c048d2dddb}{}B\+G\+\_\+\+F\+O\+R\+E\+S\+T\label{world_8h_a0678a0e576121a23798fdbd5964143c5a53c9e606f96cd2e762bac6c048d2dddb}
+}]A forest theme. \index{B\+G\+\_\+\+W\+O\+O\+D\+H\+O\+U\+S\+E@{B\+G\+\_\+\+W\+O\+O\+D\+H\+O\+U\+S\+E}!world.\+h@{world.\+h}}\index{world.\+h@{world.\+h}!B\+G\+\_\+\+W\+O\+O\+D\+H\+O\+U\+S\+E@{B\+G\+\_\+\+W\+O\+O\+D\+H\+O\+U\+S\+E}}\item[{\em
+\hypertarget{world_8h_a0678a0e576121a23798fdbd5964143c5ae678da5bb217c4bb81b5ac0de53ad9cb}{}B\+G\+\_\+\+W\+O\+O\+D\+H\+O\+U\+S\+E\label{world_8h_a0678a0e576121a23798fdbd5964143c5ae678da5bb217c4bb81b5ac0de53ad9cb}
+}]An indoor wooden house theme. \end{description}
+\end{Desc}
+
+
+\subsection{Variable Documentation}
+\hypertarget{world_8h_af61b66b2d9004f4975ae5f51c2177f3d}{}\index{world.\+h@{world.\+h}!color@{color}}
+\index{color@{color}!world.\+h@{world.\+h}}
+\subsubsection[{color}]{\setlength{\rightskip}{0pt plus 5cm}unsigned char color}\label{world_8h_af61b66b2d9004f4975ae5f51c2177f3d}
+Lightness of dirt (brown) \hypertarget{world_8h_aa523d841be6ccb88f26cd56294adcd01}{}\index{world.\+h@{world.\+h}!gh@{gh}}
+\index{gh@{gh}!world.\+h@{world.\+h}}
+\subsubsection[{gh}]{\setlength{\rightskip}{0pt plus 5cm}float gh\mbox{[}2\mbox{]}}\label{world_8h_aa523d841be6ccb88f26cd56294adcd01}
+Height of glass (2 blades per line) \hypertarget{world_8h_aabefe07939b18f14fedbb9c9a14d02d5}{}\index{world.\+h@{world.\+h}!gs@{gs}}
+\index{gs@{gs}!world.\+h@{world.\+h}}
+\subsubsection[{gs}]{\setlength{\rightskip}{0pt plus 5cm}bool gs}\label{world_8h_aabefe07939b18f14fedbb9c9a14d02d5}
+Show grass \hypertarget{world_8h_aa4f0d3eebc3c443f9be81bf48561a217}{}\index{world.\+h@{world.\+h}!y@{y}}
+\index{y@{y}!world.\+h@{world.\+h}}
+\subsubsection[{y}]{\setlength{\rightskip}{0pt plus 5cm}float y}\label{world_8h_aa4f0d3eebc3c443f9be81bf48561a217}
+Height of this vertical line \ No newline at end of file