MCPcopy Create free account
hub / github.com/StrongPC123/Far-Cry-1-Source-Full / SetShader

Method SetShader

CrySystem/ScriptObjectEntity.cpp:2484–2566  ·  view source on GitHub ↗

note: this should be something more generic/abstract, something like SetShader(iShaderLayer, szShaderName, pUseList(list of items in entity, to use this shader))

Source from the content-addressed store, hash-verified

2482
2483// note: this should be something more generic/abstract, something like SetShader(iShaderLayer, szShaderName, pUseList(list of items in entity, to use this shader))
2484int CScriptObjectEntity::SetShader(IFunctionHandler *pH)
2485{
2486 CHECK_PARAMETERS(2);
2487 const char *pszName;
2488 int iMask=0;
2489 pH->GetParam(1,pszName); // shader name
2490 pH->GetParam(2,iMask); // where to apply shader ? (0= char only, 1=char + attached, 2=char + hands only, 3=char + hands + attached, 4=all)
2491
2492 if(!m_pEntity)
2493 {
2494 return pH->EndFunction();
2495 }
2496
2497 IEntityCharacter *pEntChar=m_pEntity->GetCharInterface();
2498
2499 // where to use ?
2500 bool bOnCharAttached=0, bOnArmsAttached=0, bUseOnArms=0;
2501 switch(iMask) {
2502 case 1:
2503 bUseOnArms=0;
2504 bOnCharAttached=1;
2505 bOnArmsAttached=0;
2506 break;
2507 case 2:
2508 bUseOnArms=1;
2509 bOnCharAttached=0;
2510 bOnArmsAttached=0;
2511 break;
2512 case 3:
2513 bUseOnArms=1;
2514 bOnCharAttached=0;
2515 bOnArmsAttached=1;
2516 break;
2517 case 4:
2518 bUseOnArms=1;
2519 bOnCharAttached=1;
2520 bOnArmsAttached=1;
2521 break;
2522
2523 default:
2524 bUseOnArms=0;
2525 bOnCharAttached=0;
2526 bOnArmsAttached=0;
2527 break;
2528 }
2529
2530 // set third person shader
2531 if(pEntChar->GetCharacter(0))
2532 {
2533 pEntChar->GetCharacter(0)->SetShaderTemplateName(pszName, 0, 0, m_pEntity->GetMaterial(),(bOnCharAttached)?1:0);
2534 }
2535
2536 if(m_pEntity->GetIStatObj(0))
2537 {
2538 m_pEntity->GetIStatObj(0)->SetShaderTemplate(-1, pszName, 0);
2539 }
2540
2541 // set first person shader

Callers

nothing calls this directly

Calls 8

EndFunctionMethod · 0.80
GetCharInterfaceMethod · 0.80
GetParamMethod · 0.45
GetCharacterMethod · 0.45
SetShaderTemplateNameMethod · 0.45
GetMaterialMethod · 0.45
GetIStatObjMethod · 0.45
SetShaderTemplateMethod · 0.45

Tested by

no test coverage detected