MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / MultiSendClientInventoryUseItem

Function MultiSendClientInventoryUseItem

Descent3/multi.cpp:7160–7204  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7158}
7159
7160void MultiSendClientInventoryUseItem(int type, int id) {
7161 if (id == -1) {
7162 mprintf(0, "Asking server to use objnum %d\n", OBJNUM(ObjGet(type)));
7163 } else {
7164 mprintf(0, "Asking server to use T=%d ID=%d\n", type, id);
7165 }
7166
7167 int size = 0;
7168 uint8_t data[MAX_GAME_DATA_SIZE];
7169 int count = 0;
7170 // Client sends this only
7171 MULTI_ASSERT_NOMESSAGE(Netgame.local_role != LR_SERVER);
7172
7173 if (id != -1) {
7174 // type/id use
7175 size = START_DATA(MP_CLIENT_USE_INVENTORY_ITEM, data, &count, 1);
7176 MultiAddUshort(type, data, &count);
7177 MultiAddUint(MultiGetMatchChecksum(type, id), data, &count);
7178 END_DATA(count, data, size);
7179 nw_SendReliable(NetPlayers[Player_num].reliable_socket, data, count, false);
7180
7181 } else {
7182 // object use
7183 int local_objhandle = type;
7184 object *local_obj = ObjGet(local_objhandle);
7185 ASSERT(local_obj);
7186 ASSERT(local_obj->type != OBJ_NONE);
7187
7188 if (local_obj) {
7189 int server_objnum = Local_object_list[OBJNUM(local_obj)];
7190 ASSERT(server_objnum != 65535);
7191
7192 mprintf(0, "Inven Use: Requesting to use server objnum %d. T=%d i=%d\n",
7193 server_objnum,
7194 local_obj->type,
7195 local_obj->id);
7196
7197 size = START_DATA(MP_CLIENT_USE_INVENTORY_ITEM, data, &count, 1);
7198 MultiAddUshort(server_objnum, data, &count);
7199 MultiAddUint(0xFFFFFFFF, data, &count);
7200 END_DATA(count, data, size);
7201 nw_SendReliable(NetPlayers[Player_num].reliable_socket, data, count, false);
7202 }
7203 }
7204}
7205
7206void MultiDoClientInventoryUseItem(int slot, uint8_t *data) {
7207 int count = 0;

Callers 1

Calls 7

ObjGetFunction · 0.85
START_DATAFunction · 0.85
MultiAddUshortFunction · 0.85
MultiAddUintFunction · 0.85
MultiGetMatchChecksumFunction · 0.85
END_DATAFunction · 0.85
nw_SendReliableFunction · 0.85

Tested by

no test coverage detected