From 91f7cda041a6a75f15d0b2b149e72eab41fa4682 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Tue, 29 Apr 2014 06:57:27 +1000 Subject: [PATCH] Deprecated and deleted some unneeded files Also merged misc/Notes.md into the GDD. I'll work on this soon. --- .../deprecated map system 1.txt | 0 .../refactoring fun/README.md | 0 {misc => deprecated}/refactoring fun/diff.png | Bin .../refactoring fun/network.diff | 0 .../refactoring fun/server_connections.diff | 0 .../refactoring fun/server_internals.diff | 0 design doc.docx | Bin 36297 -> 42583 bytes misc/Notes.md | 242 ---- misc/server-uml-1.class.violet | 255 ---- misc/server-uml-2.class.violet | 1060 --------------- misc/server-uml-3.class.violet | 413 ------ misc/server-uml-4.class.violet.html | 1198 ----------------- 12 files changed, 3168 deletions(-) rename misc/deprecated map system.txt => deprecated/deprecated map system 1.txt (100%) rename {misc => deprecated}/refactoring fun/README.md (100%) rename {misc => deprecated}/refactoring fun/diff.png (100%) rename {misc => deprecated}/refactoring fun/network.diff (100%) rename {misc => deprecated}/refactoring fun/server_connections.diff (100%) rename {misc => deprecated}/refactoring fun/server_internals.diff (100%) delete mode 100644 misc/Notes.md delete mode 100644 misc/server-uml-1.class.violet delete mode 100644 misc/server-uml-2.class.violet delete mode 100644 misc/server-uml-3.class.violet delete mode 100644 misc/server-uml-4.class.violet.html diff --git a/misc/deprecated map system.txt b/deprecated/deprecated map system 1.txt similarity index 100% rename from misc/deprecated map system.txt rename to deprecated/deprecated map system 1.txt diff --git a/misc/refactoring fun/README.md b/deprecated/refactoring fun/README.md similarity index 100% rename from misc/refactoring fun/README.md rename to deprecated/refactoring fun/README.md diff --git a/misc/refactoring fun/diff.png b/deprecated/refactoring fun/diff.png similarity index 100% rename from misc/refactoring fun/diff.png rename to deprecated/refactoring fun/diff.png diff --git a/misc/refactoring fun/network.diff b/deprecated/refactoring fun/network.diff similarity index 100% rename from misc/refactoring fun/network.diff rename to deprecated/refactoring fun/network.diff diff --git a/misc/refactoring fun/server_connections.diff b/deprecated/refactoring fun/server_connections.diff similarity index 100% rename from misc/refactoring fun/server_connections.diff rename to deprecated/refactoring fun/server_connections.diff diff --git a/misc/refactoring fun/server_internals.diff b/deprecated/refactoring fun/server_internals.diff similarity index 100% rename from misc/refactoring fun/server_internals.diff rename to deprecated/refactoring fun/server_internals.diff diff --git a/design doc.docx b/design doc.docx index 9abfe27bca2bd21b458fab46ec78610baa4b04b7..47170cfe2be31841a11919fdf7bad15473a35e47 100644 GIT binary patch delta 26567 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 delta 20192 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 - - - - - - - room list -client list --? - - - - - Constructor() -Destructor() -Init() -Loop() -Quit() -SetRunning(bool) -GetRunning() -OpenRoom(args) -CloseRoom(roomHandle) - - - - - Server Application - - - - - - x - - - 146.0 - - - - y - - - 52.0 - - - - 146.0 - 52.0 - - - - - - - - arguments -mailBox - - - - - - Constructor(args) -Destructor() -Init() -Loop() -Quit() -SetRunning(bool) -GetRunning() -GetMailBox() - - - - - - Base Room - - - - - - x - - - 343.0 - - - - y - - - 49.0 - - - - 343.0 - 49.0 - - - - - - - - input queue -output queue -input lock -output lock - - - - - PushIn(arg) -PeekIn() -PopIn() -PushOut(arg) -PeekOut() -PopOut() - - - - - Mail Box - - - - - - x - - - 489.0 - - - - y - - - 50.0 - - - - 489.0 - 50.0 - - - - - - - - Generic Room - - - - - - x - - - 284.0 - - - - y - - - 299.0 - - - - 284.0 - 299.0 - - - - - - - - Combat Room - - - - - - x - - - 419.0 - - - - y - - - 300.0 - - - - 419.0 - 300.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/misc/server-uml-2.class.violet b/misc/server-uml-2.class.violet deleted file mode 100644 index 37edebd..0000000 --- a/misc/server-uml-2.class.violet +++ /dev/null @@ -1,1060 +0,0 @@ - - - - - - - - std::list<ClientEntry> - - - - - Client Manager - - - - - - x - - - 299.0 - - - - y - - - 214.0 - - - - 299.0 - 214.0 - - - - - - - - Network - - - - - - x - - - 299.0 - - - - y - - - 115.0 - - - - 299.0 - 115.0 - - - - - - - - Game Info -Account Info -Player Info -Map Info - - - - Database - - - - - x - - - 857.0 - - - - y - - - 36.0 - - - - 857.0 - 36.0 - - - - - - - - Terminal - - - - - - x - - - 181.0 - - - - y - - - 210.0 - - - - 181.0 - 210.0 - - - - - - - - Just an idea for -controlling the -server directly - - - - - - x - - - 44.0 - - - - y - - - 204.0 - - - - 44.0 - 204.0 - - - - - - - - std::list<AccountEntry> - - - - - Account Manager - - - - - - x - - - 769.0 - - - - y - - - 178.0 - - - - 769.0 - 178.0 - - - - - - - - std::list<PlayerEntry> - - - - - Player Manager - - - - - - x - - - 974.0 - - - - y - - - 177.0 - - - - 974.0 - 177.0 - - - - - - - - Chat Server - - - - - - x - - - 451.0 - - - - y - - - 208.0 - - - - 451.0 - 208.0 - - - - - - - - std::list<RoomHandle> - - - - - OpenRoom() -CloseRoom() - - - - - - Room Manager - - - - - - x - - - 598.0 - - - - y - - - 53.0 - - - - 598.0 - 53.0 - - - - - - - - index -statistics -equipment -inventory - - - - - - Player Entry - - - - - - x - - - 983.0 - - - - y - - - 272.0 - - - - 983.0 - 272.0 - - - - - - - - index -mail box - - - - - Init() = pure virtual -Loop() = pure virtual -Quit() = pure virtual - - - - - Base Room - - - - - - x - - - 606.0 - - - - y - - - 292.0 - - - - 606.0 - 292.0 - - - - - - - - collision map -etc. maps -player list -combat portals - - - - - World Room - - - - - - x - - - 549.0 - - - - y - - - 447.0 - - - - 549.0 - 447.0 - - - - - - - - parent room index -combatants -monsters - - - - - - Combat Room - - - - - - x - - - 678.0 - - - - y - - - 448.0 - - - - 678.0 - 448.0 - - - - - - - - lua state - - - - - Init() -Loop() -Quit() - - - - - Server Application - - - - - - x - - - 437.0 - - - - y - - - 297.0 - - - - 437.0 - 297.0 - - - - - - - - thread* -BaseRoom* - - - - - Room Handle - - - - - - x - - - 624.0 - - - - y - - - 168.0 - - - - 624.0 - 168.0 - - - - - - - - 255 - 239 - 213 - 255 - - - - - Combat rooms should be closed -when they're empty. Send the "close" -message to the parent world room -and the Room Manager. - - - - - - x - - - 817.0 - - - - y - - - 452.0 - - - - 817.0 - 452.0 - - - - - - - - Also used for -/commands - - - - - - x - - - 462.0 - - - - y - - - 147.0 - - - - 462.0 - 147.0 - - - - - - - - Attention: -Anything with "Manager" in their name is a singleton. -Anything with "Entry" in their name is a data class. - - - - - - x - - - 47.0 - - - - y - - - 422.0 - - - - 47.0 - 422.0 - - - - - - - - Undecided, -possibly SQLite3 - - - - - - x - - - 982.0 - - - - y - - - 47.0 - - - - 982.0 - 47.0 - - - - - - - - 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/misc/server-uml-3.class.violet b/misc/server-uml-3.class.violet deleted file mode 100644 index 78818dc..0000000 --- a/misc/server-uml-3.class.violet +++ /dev/null @@ -1,413 +0,0 @@ - - - - - - - - Init(argc, argv) -Loop() -Quit() - - - - - Server Application - - - - - - x - - - 734.0 - - - - y - - - 45.0 - - - - 734.0 - 45.0 - - - - - - - - index -address - - - - - Client Entry - - - - - - x - - - 733.0 - - - - y - - - 192.0 - - - - 733.0 - 192.0 - - - - - - - - index -thread* -room* - - - - - Room Handle - - - - - - x - - - 1013.0 - - - - y - - - 187.0 - - - - 1013.0 - 187.0 - - - - - - - - room list - - - - - OpenRoom(...) -GetRoom(...) -CloseRoom(...) - - - - - Room Manager - - - - - - x - - - 1006.0 - - - - y - - - 55.0 - - - - 1006.0 - 55.0 - - - - - - - - Player Manager - - - - - - x - - - 481.0 - - - - y - - - 502.0 - - - - 481.0 - 502.0 - - - - - - - - Account Manager - - - - - - x - - - 484.0 - - - - y - - - 620.0 - - - - 484.0 - 620.0 - - - - - - - - player list -map... - - - - - - Init() -Loop() -Quit() -AddPlayer(...) -RemovePlayer(...) -HandleConnection(...) -HandleDisconnection(...) - - - - - World Room - - - - - - x - - - 982.0 - - - - y - - - 333.0 - - - - 982.0 - 333.0 - - - - - - - - monster list -player list -accesses statistics of players -calculates all combat... - - - - - Init() -Loop() -Quit() - - - - - Combat Room - - - - - - x - - - 974.0 - - - - y - - - 599.0 - - - - 974.0 - 599.0 - - - - - - - - account information -player characters -item information - - - - SQLite 3 - - - - - x - - - 422.0 - - - - y - - - 90.0 - - - - 422.0 - 90.0 - - - - - - - - Client Manager - - - - - - x - - - 486.0 - - - - y - - - 239.0 - - - - 486.0 - 239.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/misc/server-uml-4.class.violet.html b/misc/server-uml-4.class.violet.html deleted file mode 100644 index 66f88e4..0000000 --- a/misc/server-uml-4.class.violet.html +++ /dev/null @@ -1,1198 +0,0 @@ - - - - - - - - - This file was generated with Violet UML Editor 2.0.1. -   ( View Source / Download Violet ) -
-
- -
-
- embedded diagram image - - \ No newline at end of file