Prevent incomplete vertices using precise NCLIP

- Fixes errors ocurring in +CPU mode where NCLIP is used for collision detection
This commit is contained in:
iCatButler 2017-04-25 14:58:00 +01:00
parent 5dbb8dd786
commit 496df34ee4
3 changed files with 3 additions and 2 deletions

View File

@ -182,7 +182,7 @@ int PGXP_NLCIP_valid(u32 sxy0, u32 sxy1, u32 sxy2)
Validate(&SXY0, sxy0);
Validate(&SXY1, sxy1);
Validate(&SXY2, sxy2);
if (((SXY0.flags & SXY1.flags & SXY2.flags & VALID_01) == VALID_01) && Config.PGXP_GTE && (Config.PGXP_Mode > 0))
if (((SXY0.flags & SXY1.flags & SXY2.flags & VALID_012) == VALID_012) && Config.PGXP_GTE && (Config.PGXP_Mode > 0))
return 1;
return 0;
}

View File

@ -22,7 +22,7 @@ void MakeValid(PGXP_value *pV, u32 psxV)
pV->x = psx.sw.l;
pV->y = psx.sw.h;
pV->z = 0.f;
pV->flags |= VALID_01;
pV->flags = VALID_01;
pV->value = psx.d;
}
}

View File

@ -91,6 +91,7 @@ typedef enum
#define VALID_2 (VALID << 16)
#define VALID_3 (VALID << 24)
#define VALID_01 (VALID_0 | VALID_1)
#define VALID_012 (VALID_0 | VALID_1 | VALID_2)
#define VALID_ALL (VALID_0 | VALID_1 | VALID_2 | VALID_3)
#define INV_VALID_ALL (ALL ^ VALID_ALL)
//} PGXP_value_flags;