diff --git a/port/src/net/netmsg.c b/port/src/net/netmsg.c index 1c9fbae41..236cd0ff0 100644 --- a/port/src/net/netmsg.c +++ b/port/src/net/netmsg.c @@ -1170,7 +1170,7 @@ u32 netmsgSvcPropDamageWrite(struct netbuf *dst, struct prop *prop, f32 damage, netbufWriteF32(dst, damage); netbufWriteS8(dst, weaponnum); netbufWriteS8(dst, playernum); - netbufWriteU32(dst, prop->obj->hidden); + netbufWriteU32(dst, prop->obj->hidden & ~(OBJHFLAG_PROJECTILE | OBJHFLAG_EMBEDDED)); return dst->error; } @@ -1188,7 +1188,7 @@ u32 netmsgSvcPropDamageRead(struct netbuf *src, struct netclient *srccl) } if (prop && prop->obj && prop->type != PROPTYPE_PLAYER && prop->type != PROPTYPE_CHR && !src->error) { prop->obj->damage = damagepre; - prop->obj->hidden = hidden; + prop->obj->hidden = hidden | (prop->obj->hidden & (OBJHFLAG_PROJECTILE | OBJHFLAG_EMBEDDED)); objDamage(prop->obj, -damage, &pos, weaponnum, playernum); } return src->error; diff --git a/src/game/propobj.c b/src/game/propobj.c index 14633b912..39583ddba 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -11040,7 +11040,7 @@ s32 objTickPlayer(struct prop *prop) if (obj->hidden & OBJHFLAG_ISRETICK) { obj->hidden &= ~OBJHFLAG_ISRETICK; - } else if ((obj->hidden & OBJHFLAG_PROJECTILE) && (obj->projectile->flags & PROJECTILEFLAG_SLIDING) == 0) { + } else if ((obj->hidden & OBJHFLAG_PROJECTILE) && obj->projectile && (obj->projectile->flags & PROJECTILEFLAG_SLIDING) == 0) { prop->flags &= ~PROPFLAG_ONTHISSCREENTHISTICK; obj->hidden |= OBJHFLAG_ISRETICK; return TICKOP_RETICK;