note: this should be something more generic/abstract, something like SetShader(iShaderLayer, szShaderName, pUseList(list of items in entity, to use this shader))
| 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)) |
| 2484 | int 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 |
nothing calls this directly
no test coverage detected