Client.qhsConstruction1 = trap_R_RegisterShader("textures/sfx/construction"); void trap_AddRefEntityToScene_Hook( refEntity_t *re ) { if ( !Settings.bHookActive ) return; if ( !re ) return; // models only if ( re->frame && re->entityNum < MAX_CLIENTS && IsTargetPlayer( re->entityNum ) ) { //Log("e(%3i, %3i, %3i, %3i, %3i, %3i)", re->entityNum, re->reType, re->skinNum, re->frameModel, re->hModel, re->reFlags); re->shaderRGBA[0] = 0xFF; re->shaderRGBA[1] = 0xFF; re->shaderRGBA[2] = 0xFF; re->shaderRGBA[3] = 0xFF; // chams: all if ( Cvars.models.integer ) { // Crystal if ( Cvars.models.integer == 1 || Cvars.models.integer == 2 && !IsTargetTeamMate( re->entityNum ) ) IsTargetVisible( re->entityNum ) ? re->customShader = Client.qhsConstruction2 : re->customShader = Client.qhsConstruction1; // QUAD else if ( Cvars.models.integer == 3 ) { if ( IsTargetVisible( re->entityNum ) ) IsTargetTeamMate( re->entityNum ) ? re->customShader = Client.qhsQuadGreen : re->customShader = Client.qhsQuadRed; else IsTargetTeamMate( re->entityNum ) ? re->customShader = Client.qhsQuadYellow : re->customShader = Client.qhsQuadPurple; } // simple colors else if ( Cvars.models.integer == 4 ) { if ( IsTargetVisible( re->entityNum ) ) IsTargetTeamMate( re->entityNum ) ? re->customShader = Client.qhsFriendVisible : re->customShader = Client.qhsEnemyVisible; else IsTargetTeamMate( re->entityNum ) ? re->customShader = Client.qhsFriendInvisible : re->customShader = Client.qhsEnemyInvisible; } // DEAD if ( IsTargetDeath( re->entityNum ) ) re->customShader = Client.qhsEntityOnFire1; } // wh if ( Cvars.wall.integer ) re->renderfx |= RF_DEPTHHACK | RF_NOSHADOW; } // missiles else if ( re->entityNum > MAX_CLIENTS && re->entityNum < MAX_GENTITIES ) { // QUAD chams if ( Cvars.models.integer == 3 ) { IsTargetVisible( re->entityNum ) ? re->customShader = Client.qhsQuadWeapon1 : re->customShader = Client.qhsQuadWeapon2; } // Crystal else if ( Cvars.models.integer ) re->customShader = Client.qhsConstruction1; } #ifdef USECAMFEATURE // save for cam's if ( Cvars.mortar.integer || Cvars.grenade.integer || Cvars.rifle.integer ) refEntities.push_back( *re ); #endif }