summaryrefslogtreecommitdiff
path: root/src/accounthandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/accounthandler.cpp')
-rw-r--r--src/accounthandler.cpp97
1 files changed, 97 insertions, 0 deletions
diff --git a/src/accounthandler.cpp b/src/accounthandler.cpp
new file mode 100644
index 00000000..f4058bf7
--- /dev/null
+++ b/src/accounthandler.cpp
@@ -0,0 +1,97 @@
+/*
+ * The Mana World Server
+ * Copyright 2004 The Mana World Development Team
+ *
+ * This file is part of The Mana World.
+ *
+ * The Mana World is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * The Mana World is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with The Mana World; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ *
+ */
+
+
+
+/* ----Receive Message----
+ * Generic interface convention for getting a message and sending it to the
+ * correct subroutines. Account handler takes care of determining the
+ * current step in the account process, be it creation, setup, or login.
+ */
+void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
+{
+ int result = 0;
+
+ // determine message type
+ switch(message.type)
+ {
+ case TYPE_LOGIN:
+ result = loginMessage(computer, message);
+ break;
+ }
+
+ debugCatch(result);
+}
+
+/* ----Login Message----
+ * Accepts a login message and interprets it, assigning the proper
+ * login
+ * Preconditions: The requested handle is not logged in already.
+ * The requested handle exists.
+ * The requested handle is not banned or restricted.
+ * The character profile is valid
+ * Postconditions: The player recieves access through a character in
+ * the world.
+ * Return Value: SUCCESS if the player was successfully assigned the
+ * requested char, ERROR on early termination of the
+ * routine.
+ */
+int AccountHandler::loginMessage(NetComputer &computer, MessageIn &message)
+{
+ // Get the handle (account) the player is requesting
+ // RETURN TMW_ACCOUNTERROR_NOEXIST if: requested does not handle exist
+ // RETURN TMW_ACCOUNTERROR_BANNED if: the handle status is
+ // HANDLE_STATUS_BANNED
+ // RETURN TMW_ACCOUNTERROR_ALREADYASSIGNED if: the handle is already
+ // assigned
+
+ // Get the character within that handle that the player is requesting
+ // RETURN TMW_ACCOUNTERROR_CHARNOTFOUND if: character not found
+
+ // Assign the player to that character
+ // RETURN TMW_ACCOUNTERROR_ASSIGNFAILED if: assignment not successful
+
+ // return TMW_SUCCESS -- successful exit
+ return TMW_SUCCESS;
+}
+
+/* ----Account Assignment----
+ * Assigns the computer to this accout, and allows it to make account
+ * changes using this structure.
+ * Preconditions: This structure already contains a valid accountHandle
+ * Postconditions: The player is connected to the account through this handle
+ * Return Value: SUCCESS if the player was successfully assigned the
+ * requested handle, ERROR on early termination of the
+ * routine.
+ */
+int AccountHandler::accountAssign(NetComputer &computer, accountData *account)
+{
+ // RETURN TMW_ACCOUNTERROR_ASSIGNFAILED if: the account was accessed before
+ // being initalized.
+
+ // Assign the handle
+
+
+ return TMW_SUCCESS;
+
+} \ No newline at end of file