TTileItem *CollideGetFirstItem( const TTileItem *item, const Vec2i pos, const int mask, const CollisionTeam team, const bool isPVP) { TTileItem *firstItem = NULL; CollideTileItems( item, pos, mask, team, isPVP, CollideGetFirstItemCallback, &firstItem); return firstItem; }
static HitType HitItem( TMobileObject *obj, const Vec2i pos, const bool multipleHits) { // Don't hit if no damage dealt // This covers non-damaging debris explosions if (obj->bulletClass->Power <= 0 && (obj->specialLock > 0 || obj->bulletClass->Special == SPECIAL_NONE)) { return HIT_NONE; } // Get all items that collide HitItemData data; data.HitType = HIT_NONE; data.MultipleHits = multipleHits; data.Obj = obj; CollideTileItems( &obj->tileItem, Vec2iFull2Real(pos), TILEITEM_CAN_BE_SHOT, COLLISIONTEAM_NONE, IsPVP(gCampaign.Entry.Mode), HitItemFunc, &data); return data.HitType; }