Crossfire Server, Branches 1.12  R18729
item.c File Reference
#include <global.h>
#include <object.h>
#include <newclient.h>
#include <newserver.h>
#include <sproto.h>
+ Include dependency graph for item.c:

Go to the source code of this file.

Macros

#define MAXITEMLEN   300
 

Functions

static void add_object_to_socklist (socket_struct *ns, SockList *sl, object *head)
 
void apply_cmd (char *buf, int len, player *pl)
 
void esrv_del_item (player *pl, int tag)
 
void esrv_draw_look (object *pl)
 
static objectesrv_get_ob_from_count (object *pl, tag_t count)
 
void esrv_move_object (object *pl, tag_t to, tag_t tag, long nrof)
 
void esrv_send_inventory (object *pl, object *op)
 
void esrv_send_item (object *pl, object *op)
 
void esrv_update_item (int flags, object *pl, object *op)
 
void examine_cmd (char *buf, int len, player *pl)
 
void inscribe_scroll_cmd (char *buf, int len, player *pl)
 
void lock_item_cmd (uint8 *data, int len, player *pl)
 
void look_at (object *op, int dx, int dy)
 
void look_at_cmd (char *buf, int len, player *pl)
 
void mark_item_cmd (uint8 *data, int len, player *pl)
 
static unsigned int query_flags (const object *op)
 

Detailed Description

Client/server logic.

Date
2003-12-02

This containes item logic for client/server. It doesn't contain the actual commands that send the data, but does contain the logic for what items should be sent.

Definition in file item.c.

Macro Definition Documentation

#define MAXITEMLEN   300

This is the maximum number of bytes we expect any one item to take up

Definition at line 47 of file item.c.

Referenced by esrv_draw_look(), and esrv_send_inventory().

Function Documentation

static void add_object_to_socklist ( socket_struct ns,
SockList sl,
object head 
)
static

Used in the send_look to put object head into SockList sl for socket ns. Need socket to know if we need to send animation of face to the client.

Definition at line 126 of file item.c.

References obj::anim_speed, obj::animation_id, socket_struct::anims_sent, obj::client_type, obj::count, obj::custom_name, esrv_send_animation(), esrv_send_face(), F_NOPICK, FABS, obj::face, socket_struct::faces_sent, FLAG_ANIMATE, FLAG_CLIENT_SENT, FLAG_NO_PICK, flags, MAX_BUF, obj::nrof, NS_FACESENT_FACE, new_face_struct::number, query_base_name(), QUERY_FLAG, query_flags(), SET_FLAG, SockList_AddChar(), SockList_AddInt(), SockList_AddLen8Data(), SockList_AddShort(), obj::speed, and WEIGHT.

Referenced by esrv_draw_look(), esrv_send_inventory(), and esrv_send_item().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void apply_cmd ( char *  buf,
int  len,
player pl 
)

Client wants to apply some object. Lets do so.

Definition at line 581 of file item.c.

References esrv_get_ob_from_count(), FLAG_REMOVED, llevDebug, LOG(), socket_struct::look_position, obj::name, pl::ob, player_apply(), QUERY_FLAG, pl::socket, and socket_struct::update_look.

+ Here is the call graph for this function:

void esrv_del_item ( player pl,
int  tag 
)

Tells the client to delete an item. Uses the item command with a -1 location.

Definition at line 507 of file item.c.

References Send_With_Handling(), pl::socket, SockList_AddInt(), SockList_AddString(), SockList_Init(), and SockList_Term().

+ Here is the call graph for this function:

void esrv_draw_look ( object pl)
static object* esrv_get_ob_from_count ( object pl,
tag_t  count 
)
static

Takes a player and object count (tag) and returns the actual object pointer, or null if it can't be found.

Definition at line 529 of file item.c.

References obj::above, obj::below, obj::container, CONTAINER, obj::contr, obj::count, GET_MAP_OB, obj::head, obj::inv, obj::map, pl::transport, obj::type, obj::x, and obj::y.

Referenced by apply_cmd(), esrv_move_object(), examine_cmd(), inscribe_scroll_cmd(), lock_item_cmd(), and mark_item_cmd().

+ Here is the caller graph for this function:

void esrv_move_object ( object pl,
tag_t  to,
tag_t  tag,
long  nrof 
)

Move an object to a new location

Definition at line 773 of file item.c.

References obj::below, can_pick(), CONTAINER, obj::contr, obj::count, pl::count, drop_object(), obj::env, esrv_get_ob_from_count(), esrv_update_item(), FLAG_APPLIED, obj::inv, llevDebug, LOG(), obj::map, obj::name, pick_up(), put_object_in_sack(), QUERY_FLAG, sack_can_hold(), pl::transport, transport_can_hold(), obj::type, and UPD_WEIGHT.

Referenced by move_cmd().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void esrv_send_inventory ( object pl,
object op 
)
void esrv_send_item ( object pl,
object op 
)
void esrv_update_item ( int  flags,
object pl,
object op 
)
void examine_cmd ( char *  buf,
int  len,
player pl 
)

Client wants to examine some object. So lets do so.

Definition at line 562 of file item.c.

References esrv_get_ob_from_count(), examine(), llevDebug, LOG(), obj::name, and pl::ob.

+ Here is the call graph for this function:

void inscribe_scroll_cmd ( char *  buf,
int  len,
player pl 
)
void lock_item_cmd ( uint8 data,
int  len,
player pl 
)

Client wants to apply some object. Lets do so.

Definition at line 615 of file item.c.

References CLEAR_FLAG, draw_ext_info(), esrv_get_ob_from_count(), esrv_update_item(), FLAG_INV_LOCKED, GetInt_String(), llevDebug, LOG(), merge_ob(), MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, obj::name, NDI_UNIQUE, pl::ob, SET_FLAG, and UPD_FLAGS.

+ Here is the call graph for this function:

void look_at ( object op,
int  dx,
int  dy 
)

Prints items on the specified square.

[ removed EARTHWALL check and added check for containers inventory. Tero..nosp@m.Haat.nosp@m.anen@.nosp@m.lut..nosp@m.fi ]

Definition at line 687 of file item.c.

References obj::above, obj::below, CONTAINER, obj::count, draw_ext_info(), draw_ext_info_format(), FLAG_IS_FLOOR, FLAG_WIZ, FLESH, get_map_from_coord(), GET_MAP_OB, obj::head, obj::inv, inventory(), obj::invisible, obj::map, MAX_BUF, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_EXAMINE, MSG_TYPE_COMMAND_SUCCESS, NDI_UNIQUE, out_of_map(), QUERY_FLAG, query_name(), obj::type, obj::x, and obj::y.

Referenced by look_at_cmd().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void look_at_cmd ( char *  buf,
int  len,
player pl 
)

Client wants to look at some object. Lets do so.

Definition at line 754 of file item.c.

References pl::blocked_los, FABS, look_at(), MAP_CLIENT_X, MAP_CLIENT_Y, socket_struct::mapx, socket_struct::mapy, pl::ob, and pl::socket.

+ Here is the call graph for this function:

void mark_item_cmd ( uint8 data,
int  len,
player pl 
)

Client wants to mark some object. Lets do so.

Parameters
dataobject tag (4 chars).
lendata size.
plplayer.

Definition at line 655 of file item.c.

References obj::count, draw_ext_info(), draw_ext_info_format(), esrv_get_ob_from_count(), GetInt_String(), llevDebug, LOG(), pl::mark, pl::mark_count, MAX_BUF, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, MSG_TYPE_COMMAND_SUCCESS, obj::name, NDI_UNIQUE, pl::ob, and query_name().

+ Here is the call graph for this function:

static unsigned int query_flags ( const object op)
static