--- deliantra/server/include/player.h 2007/01/15 21:06:19 1.45 +++ deliantra/server/include/player.h 2007/04/29 21:44:35 1.50 @@ -1,5 +1,5 @@ /* - * CrossFire, A Multiplayer game for X-windows + * CrossFire, A Multiplayer game * * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team * Copyright (C) 2002 Mark Wedel & Crossfire Development Team @@ -22,42 +22,34 @@ * The authors can be reached via e-mail at crossfire@schmorp.de */ -#define NUM_OUTPUT_BUFS 5 -struct Output_Buf -{ - shstr buf; /* Actual string pointer */ - uint32 first_update; /* First time this message was stored */ - uint16 count; /* How many times we got this message */ -}; - /* wand/rod/horn rolled into range_misc. They all use the same body location * anyways. */ enum rangetype { range_bottom = -1, - range_none = 0, - range_bow = 1, - range_magic = 2, - range_misc = 3, - range_golem = 4, - range_skill = 5, - range_builder = 6, - range_size = 7 + range_none, + range_bow, + range_magic, + range_misc, + range_golem, + range_skill, + range_builder, + range_size }; enum bowtype_t { - bow_normal = 0, - bow_threewide = 1, + bow_normal = 0, + bow_threewide = 1, bow_spreadshot = 2, - bow_n = 3, /* must stay at 3 */ + bow_n = 3, /* must stay at 3 */ bow_ne = 4, - bow_e = 5, + bow_e = 5, bow_se = 6, - bow_s = 7, + bow_s = 7, bow_sw = 8, - bow_w = 9, + bow_w = 9, bow_nw = 10, /* must stay at 10 */ bow_bestarrow = 11 }; @@ -65,16 +57,16 @@ enum petmode_t { pet_normal = 0, - pet_sad = 1, + pet_sad = 1, pet_defend = 2, - pet_arena = 3 + pet_arena = 3, }; enum usekeytype { key_inventory = 0, - keyrings = 1, - containers = 2 + keyrings = 1, + containers = 2, }; /* This is used to control what to do when we need to unapply @@ -186,7 +178,6 @@ /* MAP_CLIENT_.., the upper left is used */ shstr ACC (RW, invis_race); /* What race invisible to? */ - Output_Buf outputs[NUM_OUTPUT_BUFS]; /* holds output strings to client */ MTH static player *create (); @@ -199,6 +190,10 @@ void do_destroy (); void gather_callbacks (AV *&callbacks, event_type event) const; + // wether the player can "see" this mapspace or not, decided by los + // 0 - nothing see, 100 - fully visible + MTH sint8 visibility_at (maptile *map, int x, int y) const; + MTH void connect (client *ns); MTH void disconnect (); @@ -208,6 +203,12 @@ // enters the initial map, after login or creation MTH void enter_map (); + MTH void set_range (rangetype r); + MTH bool legal_range (rangetype r) const; + + MTH void chargen_race_done (); + MTH void chargen_race_next (); + ~player (); private: @@ -220,6 +221,6 @@ extern playervec players; #define for_all_players(var) \ - for (int _i = 0; _i < players.size (); ++_i) \ + for (unsigned _i = 0; _i < players.size (); ++_i) \ declvar (player *, var, players [_i])