--- deliantra/server/include/player.h 2006/12/23 15:49:40 1.34 +++ deliantra/server/include/player.h 2006/12/26 05:44:15 1.36 @@ -110,11 +110,11 @@ #define for_all_players(var) for (player *var = first_player; var; var = var->next) -ACC_CLASS (player) -struct player : zero_initialised, refcounted, attachable +INTERFACE_CLASS (player) +struct player : zero_initialised, attachable { player *ACC (RW, next); /* Pointer to next player, NULL if this is last */ - client *ACC (RO, ns); /* Socket information for this player */ + client_ptr ACC (RO, ns); /* Socket information for this player */ object_ptr ACC (RW, ob); /* The object representing the player */ maptile *loading; /* When entering a map in progress of loading, not really used */ rangetype ACC (RW, shoottype); /* Which range-attack is being used by player */ @@ -206,11 +206,14 @@ bool ACC (RW, enable_save); Output_Buf outputs[NUM_OUTPUT_BUFS]; /* holds output strings to client */ - static player *create (); - static player *load (const char *path); - void save (bool final = false); + MTH static player *create (); + MTH static player *load (const char *path); + MTH void save (bool final = false); + void do_destroy (); + void gather_callbacks (AV *&callbacks, event_type event) const; - void connect (client *ns); + MTH void connect (client *ns); + MTH void disconnect (); ~player ();