--- deliantra/server/socket/init.C 2010/03/26 01:04:45 1.64
+++ deliantra/server/socket/init.C 2012/10/29 23:55:57 1.72
@@ -1,22 +1,22 @@
/*
* This file is part of Deliantra, the Roguelike Realtime MMORPG.
- *
- * Copyright (©) 2005,2006,2007,2008,2009,2010 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
- *
+ *
+ * Copyright (©) 2005,2006,2007,2008,2009,2010,2011,2012 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
+ *
* Deliantra is free software: you can redistribute it and/or modify it under
* the terms of the Affero GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
- *
+ *
* This program 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 Affero GNU General Public License
* and the GNU General Public License along with this program. If not, see
* .
- *
+ *
* The authors can be reached via e-mail to
*/
@@ -130,7 +130,6 @@
LOG (llevError, "InitConnection: Error on fcntl.\n");
state = ST_SETUP;
- mapmode = Map1aCmd;
mapx = 11;
mapy = 11;
itemcmd = 1; /* Default is version item1 command */
@@ -148,7 +147,8 @@
socket_ev.start ();
// initialisation done, kick it!
- send_packet_printf ("version %d %d %s\n", VERSION_CS, VERSION_SC, VERSION_INFO);
+ INVOKE_CLIENT (CONNECT, this);
+
flush ();
reset_stats ();
@@ -169,6 +169,7 @@
void
client::do_destroy ()
{
+ INVOKE_CLIENT (CLIENT_DESTROY, this);
attachable::do_destroy ();
if (pl)
@@ -197,23 +198,23 @@
* send new values to the client, as things like exp start
* at zero.
*/
- for (int i = 0; i < NUM_SKILLS; i++)
+ for (int i = 0; i < array_length (last_skill_exp); i++)
last_skill_exp[i] = -1;
- for (int i = 0; i < NROFATTACKS; i++)
+ for (int i = 0; i < array_length (last_resist); i++)
last_resist[i] = -1;
- last_weapon_sp = -1;
- last_level = -1;
- last_stats.exp = -1;
- last_flags = 0;
- last_weight = -1;
- last_weight_limit = 0;
- last_path_attuned = 0;
+ last_weapon_sp = -1;
+ last_level = -1;
+ last_stats.exp = -1;
+ last_flags = 0;
+ last_weight = -1;
+ last_weight_limit = 0;
+ last_path_attuned = 0;
last_path_repelled = 0;
- last_path_denied = 0;
- last_speed = 0;
- last_flags = 0;
+ last_path_denied = 0;
+ last_speed = 0;
+ last_flags = 0;
static living zero_living;
last_stats = zero_living;
@@ -223,8 +224,9 @@
client::create (int fd, const char *peername)
{
client *ns = new client (dup (fd), peername);
+
ns->instantiate (); // effectively a nop right now
- INVOKE_CLIENT (CONNECT, ns);
+
return ns;
}