mirror of https://github.com/PrimeDecomp/prime.git
Match and link CMaterialFilter/List
This commit is contained in:
parent
9e99dc2d36
commit
480e975add
|
@ -29,6 +29,7 @@ COMPLETE_OBJECTS = [
|
||||||
"MetroidPrime/ScriptObjects/CScriptDebugCameraWaypoint",
|
"MetroidPrime/ScriptObjects/CScriptDebugCameraWaypoint",
|
||||||
"Weapons/IWeaponRenderer",
|
"Weapons/IWeaponRenderer",
|
||||||
"Collision/CMaterialList",
|
"Collision/CMaterialList",
|
||||||
|
"Collision/CMaterialFilter",
|
||||||
"Collision/CMRay",
|
"Collision/CMRay",
|
||||||
"Kyoto/Basics/CStopwatch",
|
"Kyoto/Basics/CStopwatch",
|
||||||
"Kyoto/Basics/COsContextDolphin",
|
"Kyoto/Basics/COsContextDolphin",
|
||||||
|
|
|
@ -118,8 +118,8 @@ public:
|
||||||
// Intersection__13CMaterialListCFRC13CMaterialList weak
|
// Intersection__13CMaterialListCFRC13CMaterialList weak
|
||||||
static s32 BitPosition(u64 flags);
|
static s32 BitPosition(u64 flags);
|
||||||
// GetMaterialString__13CMaterialListCFv weak
|
// GetMaterialString__13CMaterialListCFv weak
|
||||||
u64 SharesMaterials(const CMaterialList& other) const {
|
bool SharesMaterials(const CMaterialList& other) const {
|
||||||
return (other.value & value);
|
return (other.value & value) ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -410,10 +410,10 @@ COLLISION :=\
|
||||||
$(BUILD_DIR)/asm/Collision/CCollisionInfo.o\
|
$(BUILD_DIR)/asm/Collision/CCollisionInfo.o\
|
||||||
$(BUILD_DIR)/asm/Collision/InternalColliders.o\
|
$(BUILD_DIR)/asm/Collision/InternalColliders.o\
|
||||||
$(BUILD_DIR)/asm/Collision/CCollisionPrimitive.o\
|
$(BUILD_DIR)/asm/Collision/CCollisionPrimitive.o\
|
||||||
$(BUILD_DIR)/asm/Collision/CMaterialList.o\
|
$(BUILD_DIR)/src/Collision/CMaterialList.o\
|
||||||
$(BUILD_DIR)/asm/Collision/CollisionUtil.o\
|
$(BUILD_DIR)/asm/Collision/CollisionUtil.o\
|
||||||
$(BUILD_DIR)/asm/Collision/CCollidableSphere.o\
|
$(BUILD_DIR)/asm/Collision/CCollidableSphere.o\
|
||||||
$(BUILD_DIR)/asm/Collision/CMaterialFilter.o\
|
$(BUILD_DIR)/src/Collision/CMaterialFilter.o\
|
||||||
$(BUILD_DIR)/asm/Collision/COBBox.o\
|
$(BUILD_DIR)/asm/Collision/COBBox.o\
|
||||||
$(BUILD_DIR)/src/Collision/CMRay.o\
|
$(BUILD_DIR)/src/Collision/CMRay.o\
|
||||||
|
|
||||||
|
|
|
@ -7,18 +7,11 @@ bool CMaterialFilter::Passes(const CMaterialList& other) const {
|
||||||
case kFT_Always:
|
case kFT_Always:
|
||||||
return true;
|
return true;
|
||||||
case kFT_Include:
|
case kFT_Include:
|
||||||
return other.SharesMaterials(include) != 0 ? true : false;
|
return other.SharesMaterials(include);
|
||||||
case kFT_Exclude:
|
case kFT_Exclude:
|
||||||
return other.SharesMaterials(exclude) == 0;
|
return !other.SharesMaterials(exclude);
|
||||||
case kFT_IncludeExclude: {
|
case kFT_IncludeExclude:
|
||||||
bool ret = false;
|
return other.SharesMaterials(include) && !other.SharesMaterials(exclude);
|
||||||
if (other.SharesMaterials(include) != 0) {
|
|
||||||
if (other.SharesMaterials(exclude) == 0) {
|
|
||||||
ret = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue