diff --git a/images/server-uml-2.png b/images/server-uml-2.png
index 41f574e..d7042c3 100644
Binary files a/images/server-uml-2.png and b/images/server-uml-2.png differ
diff --git a/misc/server-uml-2.class.violet b/misc/server-uml-2.class.violet
index 511ceed..37edebd 100644
--- a/misc/server-uml-2.class.violet
+++ b/misc/server-uml-2.class.violet
@@ -3,6 +3,11 @@
-
+
x
-
+
44.0
y
-
+
204.0
@@ -271,25 +160,30 @@ server directly
-
+
+
+
+ std::list<AccountEntry>
+
+
Account Manager
-
+
x
-
+
769.0
y
-
+
178.0
@@ -300,74 +194,80 @@ server directly
-
+
+
+
+ std::list<PlayerEntry>
+
+
Player Manager
-
+
x
-
- 922.0
+
+ 974.0
y
-
+
177.0
- 922.0
+ 974.0
177.0
-
+
Chat Server
-
+
x
-
- 421.0
+
+ 451.0
y
-
- 205.0
+
+ 208.0
- 421.0
- 205.0
+ 451.0
+ 208.0
-
+
- std::list<ThreadHandle>
+ std::list<RoomHandle>
- OpenRoom(args)
-CloseRoom(args)
+ OpenRoom()
+CloseRoom()
+
@@ -376,18 +276,18 @@ CloseRoom(args)
-
+
x
-
+
598.0
y
-
+
53.0
@@ -398,44 +298,45 @@ CloseRoom(args)
-
+
index
-inventory
+statistics
equipment
-statistics
+inventory
+
- Player
+ Player Entry
-
+
x
-
- 916.0
+
+ 983.0
y
-
- 265.0
+
+ 272.0
- 916.0
- 265.0
+ 983.0
+ 272.0
-
+
index
@@ -455,18 +356,18 @@ Quit() = pure virtual
-
+
x
-
+
606.0
y
-
+
292.0
@@ -477,7 +378,7 @@ Quit() = pure virtual
-
+
collision map
@@ -492,18 +393,18 @@ combat portals
-
+
x
-
+
549.0
y
-
+
447.0
@@ -514,10 +415,10 @@ combat portals
-
+
- parent room
+ parent room index
combatants
monsters
@@ -529,29 +430,29 @@ monsters
-
+
x
-
- 690.0
+
+ 678.0
y
-
+
448.0
- 690.0
+ 678.0
448.0
-
+
lua state
@@ -570,93 +471,64 @@ Quit()
-
+
x
-
- 407.0
+
+ 437.0
y
-
- 309.0
+
+ 297.0
- 407.0
- 309.0
+ 437.0
+ 297.0
+
+
+
+
+
+
+
+ thread*
+BaseRoom*
+
+
+
+
+ Room Handle
+
+
+
+
+
+ x
+
+
+ 624.0
+
+
+
+ y
+
+
+ 168.0
+
+
+
+ 624.0
+ 168.0
-
-
- Direct connections
-
-
-
-
-
- x
-
-
- 40.0
-
-
-
- y
-
-
- 38.0
-
-
-
- 40.0
- 38.0
-
-
-
-
-
-
-
- thread
-std::list<BaseRoom>
-
-
-
-
- Thread Handle
-
-
-
-
-
- x
-
-
- 595.0
-
-
-
- y
-
-
- 161.0
-
-
-
- 595.0
- 161.0
-
-
-
-
-
255
@@ -674,18 +546,18 @@ and the Room Manager.
-
+
x
-
+
817.0
y
-
+
452.0
@@ -696,7 +568,7 @@ and the Room Manager.
-
+
Also used for
@@ -704,23 +576,23 @@ and the Room Manager.
-
+
x
-
- 431.0
+
+ 462.0
y
-
+
147.0
- 431.0
+ 462.0
147.0
@@ -730,34 +602,34 @@ and the Room Manager.
Attention:
-*Anything with "Manager" in their name is a singleton.
-
+Anything with "Manager" in their name is a singleton.
+Anything with "Entry" in their name is a data class.
-
+
x
-
- 63.0
+
+ 47.0
y
-
- 316.0
+
+ 422.0
- 63.0
- 316.0
+ 47.0
+ 422.0
-
+
Undecided,
@@ -765,18 +637,18 @@ possibly SQLite3
-
+
x
-
+
982.0
y
-
+
47.0
@@ -786,50 +658,295 @@ possibly SQLite3
+
+
+
+
+ index
+account index
+
+
+
+
+ Client Entry
+
+
+
+
+
+ x
+
+
+ 297.0
+
+
+
+ y
+
+
+ 300.0
+
+
+
+ 297.0
+ 300.0
+
+
+
+
+
+
+
+ index
+client index
+username
+player indices
+
+
+
+
+ Account Entry
+
+
+
+
+
+ x
+
+
+ 782.0
+
+
+
+ y
+
+
+ 267.0
+
+
+
+ 782.0
+ 267.0
+
+
+
+
+
+
+
+ Direct connections
+
+
+
+
+
+ x
+
+
+ 40.0
+
+
+
+ y
+
+
+ 38.0
+
+
+
+ 40.0
+ 38.0
+
+
+
+
+
+
+
+ Client
+
+
+
+
+
+ x
+
+
+ 177.0
+
+
+
+ y
+
+
+ 115.0
+
+
+
+ 177.0
+ 115.0
+
+
+
+
+
+
+
+ Client
+
+
+
+
+
+ x
+
+
+ 181.0
+
+
+
+ y
+
+
+ 27.0
+
+
+
+ 181.0
+ 27.0
+
+
+
+
+
+
+
+ Client
+
+
+
+
+
+ x
+
+
+ 301.0
+
+
+
+ y
+
+
+ 25.0
+
+
+
+ 301.0
+ 25.0
+
+
+
+
+
+
+
+ Client
+
+
+
+
+
+ x
+
+
+ 416.0
+
+
+
+ y
+
+
+ 28.0
+
+
+
+ 416.0
+ 28.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -840,32 +957,8 @@ possibly SQLite3
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -876,67 +969,92 @@ possibly SQLite3
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+