add material interface functions
This commit is contained in:
		@ -429,6 +429,291 @@ bool BMTexture_SetVideoFormat(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(Lib
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#pragma region CKMaterial
 | 
					#pragma region CKMaterial
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool BMMaterial_GetDiffuse(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::VxMath::VxColor, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetDiffuse());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetDiffuse(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::VxMath::VxColor, col)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetDiffuse(col);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetAmbient(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::VxMath::VxColor, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetAmbient());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetAmbient(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::VxMath::VxColor, col)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetAmbient(col);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetSpecular(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::VxMath::VxColor, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetSpecular());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetSpecular(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::VxMath::VxColor, col)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetSpecular(col);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetEmissive(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::VxMath::VxColor, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetEmissive());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetEmissive(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::VxMath::VxColor, col)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetEmissive(col);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetSpecularPower(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::CKFLOAT, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetSpecularPower());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetSpecularPower(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::CKFLOAT, val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetSpecularPower(val);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool BMMaterial_GetTexture(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::CK2::CK_ID, out_texid)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_texid, SafeGetID(obj->GetTexture(0)));
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetTexture(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::CK2::CK_ID, texid)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						auto texobj = CheckCKTexture(bmfile, texid);
 | 
				
			||||||
 | 
						if (obj == nullptr /*|| texobj == nullptr*/) return false;	// allow nullptr assign
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						obj->SetTexture(texobj, 0);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetTextureBorderColor(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::CKDWORD, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetTextureBorderColor());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetTextureBorderColor(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::CKDWORD, val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetTextureBorderColor(val);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool BMMaterial_GetTextureBlendMode(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::VxMath::VXTEXTURE_BLENDMODE, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetTextureBlendMode());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetTextureBlendMode(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::VxMath::VXTEXTURE_BLENDMODE, val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetTextureBlendMode(val);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetTextureMinMode(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::VxMath::VXTEXTURE_FILTERMODE, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetTextureMinMode());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetTextureMinMode(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::VxMath::VXTEXTURE_FILTERMODE, val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetTextureMinMode(val);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetTextureMagMode(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::VxMath::VXTEXTURE_FILTERMODE, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetTextureMagMode());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetTextureMagMode(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::VxMath::VXTEXTURE_FILTERMODE, val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetTextureMagMode(val);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetTextureAddressMode(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::VxMath::VXTEXTURE_ADDRESSMODE, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetTextureAddressMode());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetTextureAddressMode(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::VxMath::VXTEXTURE_ADDRESSMODE, val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetTextureAddressMode(val);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool BMMaterial_GetSourceBlend(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::VxMath::VXBLEND_MODE, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetSourceBlend());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetSourceBlend(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::VxMath::VXBLEND_MODE, val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetSourceBlend(val);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetDestBlend(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::VxMath::VXBLEND_MODE, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetDestBlend());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetDestBlend(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::VxMath::VXBLEND_MODE, val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetDestBlend(val);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetFillMode(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::VxMath::VXFILL_MODE, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetFillMode());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetFillMode(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::VxMath::VXFILL_MODE, val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetFillMode(val);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetShadeMode(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::VxMath::VXSHADE_MODE, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetShadeMode());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetShadeMode(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::VxMath::VXSHADE_MODE, val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetShadeMode(val);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool BMMaterial_GetAlphaTestEnabled(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(bool, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetAlphaTestEnabled());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetAlphaTestEnabled(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(bool, enabled)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetAlphaTestEnabled(enabled);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetAlphaBlendEnabled(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(bool, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetAlphaBlendEnabled());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetAlphaBlendEnabled(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(bool, enabled)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetAlphaBlendEnabled(enabled);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetPerspectiveCorrectionEnabled(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(bool, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetPerspectiveCorrectionEnabled());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetPerspectiveCorrectionEnabled(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(bool, enabled)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetPerspectiveCorrectionEnabled(enabled);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetZWriteEnabled(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(bool, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetZWriteEnabled());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetZWriteEnabled(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(bool, enabled)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetZWriteEnabled(enabled);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetTwoSidedEnabled(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(bool, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetTwoSidedEnabled());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetTwoSidedEnabled(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(bool, enabled)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetTwoSidedEnabled(enabled);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool BMMaterial_GetAlphaRef(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::CKBYTE, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetAlphaRef());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetAlphaRef(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::CKBYTE, val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetAlphaRef(val);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetAlphaFunc(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::VxMath::VXCMPFUNC, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetAlphaFunc());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetAlphaFunc(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::VxMath::VXCMPFUNC, val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetAlphaFunc(val);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_GetZFunc(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::VxMath::VXCMPFUNC, out_val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						BMPARAM_OUT_ASSIGN(out_val, obj->GetZFunc());
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					bool BMMaterial_SetZFunc(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::VxMath::VXCMPFUNC, val)) {
 | 
				
			||||||
 | 
						auto obj = CheckCKMaterial(bmfile, objid);
 | 
				
			||||||
 | 
						if (obj == nullptr) return false;
 | 
				
			||||||
 | 
						obj->SetZFunc(val);
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma endregion
 | 
					#pragma endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#pragma region CKMesh
 | 
					#pragma region CKMesh
 | 
				
			||||||
 | 
				
			|||||||
@ -174,8 +174,8 @@ LIBCMO_EXPORT bool BMMaterial_SetEmissive(BMPARAM_OBJECT_DECL(bmfile, objid), BM
 | 
				
			|||||||
LIBCMO_EXPORT bool BMMaterial_GetSpecularPower(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::CKFLOAT, out_val));
 | 
					LIBCMO_EXPORT bool BMMaterial_GetSpecularPower(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::CKFLOAT, out_val));
 | 
				
			||||||
LIBCMO_EXPORT bool BMMaterial_SetSpecularPower(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::CKFLOAT, val));
 | 
					LIBCMO_EXPORT bool BMMaterial_SetSpecularPower(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::CKFLOAT, val));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LIBCMO_EXPORT bool BMMaterial_GetTexture(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::CK2::CK_ID, out_tex));
 | 
					LIBCMO_EXPORT bool BMMaterial_GetTexture(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::CK2::CK_ID, out_texid));
 | 
				
			||||||
LIBCMO_EXPORT bool BMMaterial_SetTexture(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::CK2::CK_ID, tex));
 | 
					LIBCMO_EXPORT bool BMMaterial_SetTexture(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::CK2::CK_ID, texid));
 | 
				
			||||||
LIBCMO_EXPORT bool BMMaterial_GetTextureBorderColor(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::CKDWORD, out_val));
 | 
					LIBCMO_EXPORT bool BMMaterial_GetTextureBorderColor(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_OUT(LibCmo::CKDWORD, out_val));
 | 
				
			||||||
LIBCMO_EXPORT bool BMMaterial_SetTextureBorderColor(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::CKDWORD, val));
 | 
					LIBCMO_EXPORT bool BMMaterial_SetTextureBorderColor(BMPARAM_OBJECT_DECL(bmfile, objid), BMPARAM_IN(LibCmo::CKDWORD, val));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user