X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fitems%2Finventory.qh;h=f748dda88405d286d73cb0eab68f84431eda96ff;hb=4ad2a6a38665318e08c8ba401b0a2fdb08bd524a;hp=ead573915e1ed8cbacb82af35286b8e67d681f4a;hpb=b683bf23a495d3b1b3f6df3bda75bfe0f069ab05;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/items/inventory.qh b/qcsrc/common/items/inventory.qh index ead573915..f748dda88 100644 --- a/qcsrc/common/items/inventory.qh +++ b/qcsrc/common/items/inventory.qh @@ -11,17 +11,20 @@ class(Inventory) .int inv_items[Items_MAX]; /** Player inventory; Inventories also have one inventory for storing the previous state */ .Inventory inventory; +REGISTER_NET_LINKED(ENT_CLIENT_INVENTORY) + #ifdef CSQC -void Inventory_Read(Inventory data) +NET_HANDLE(ENT_CLIENT_INVENTORY, bool isnew) { - make_pure(self); + make_pure(this); const int bits = ReadInt24_t(); FOREACH(Items, bits & BIT(it.m_id), LAMBDA( .int fld = inv_items[it.m_id]; - int prev = data.(fld); - int next = data.(fld) = ReadByte(); + int prev = this.(fld); + int next = this.(fld) = ReadByte(); LOG_TRACEF("%s: %.0f -> %.0f\n", it.m_name, prev, next); )); + return true; } #endif @@ -43,9 +46,9 @@ void Inventory_Write(Inventory data) #ifdef SVQC bool Inventory_Send(entity this, entity to, int sf) { - WriteByte(MSG_ENTITY, ENT_CLIENT_INVENTORY); + WriteHeader(MSG_ENTITY, ENT_CLIENT_INVENTORY); entity e = self.owner; - if (/*IS_SPEC(e)*/ (e.classname == "spectator")) e = e.enemy; + if (IS_SPEC(e)) e = e.enemy; Inventory data = e.inventory; Inventory_Write(data); return true;