hmm;

that may be a better solution. thx.

----- Original Message -----
From: "Sebastian Steinlechner" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, April 29, 2002 3:30 PM
Subject: Re: [hlcoders] Scope Sprites


> Yes, it does... here's how I did it, I'm calling this from
> HUD_DrawTransparentTriangles (well, not exactly this, it's somewhat
> different in Poke646, but the idea & maths is the same):
>
> --- snip ---
>
> #define SCOPE_DISTANCE 10
> #define M_PI   3.14159265358979323846
>
> extern vec3_t v_angles, v_origin;
>
> void CSniperScope::DrawScope( void )
> {
>  if( !fActive )
>   return;
>
>  cl_entity_t *player;
>
>  // make sure the player is up and running
>  player = gEngfuncs.GetLocalPlayer();
>  if ( !player )
>   return;
>
>  // load sniper scope sprite if necessary
>  if ( hsprSniperScope == 0 )
>  {
>   char sz[256];
>   sprintf( sz, "sprites/scopeborder.spr" );
>   hsprSniperScope = SPR_Load( sz );
>  }
>
>  vec3_t viewAngles, v_up, v_right, v_forward;
>
>  gEngfuncs.GetViewAngles( viewAngles );
>  AngleVectors( viewAngles, v_forward, v_right, v_up );
>
>  // the sprite's origin
>  vec3_t org = v_origin + v_forward * SCOPE_DISTANCE;
>
>  // adjust size to fov (simple triangular maths)
>  float fovadjust = tan( gHUD.m_iFOV / 360.0 * M_PI );
>  float size = (SCOPE_DISTANCE + 1.0) * fovadjust; // little bigger than
> necessary
>
>  // use this to overlap the triangles a bit
>  float pixel = size / 256.0;
>
>  float r, g, b, brightness;
>
>  r = g = b = brightness = 1.0;
>
>  vec3_t temporg;
>
>  // now set up triapi code
>  gEngfuncs.pTriAPI->RenderMode( kRenderTransTexture );
>  gEngfuncs.pTriAPI->CullFace( TRI_NONE );
>
>  for( int i = 0; i < 4; i++ )
>  {
>   if ( !gEngfuncs.pTriAPI->SpriteTexture( (struct model_s
> *)gEngfuncs.GetSpritePointer( hsprSniperScope ), i ))
>   {
>    return;
>   }
>
>   gEngfuncs.pTriAPI->Color4f( r, g, b , brightness);
>   gEngfuncs.pTriAPI->Begin( TRI_QUADS );
>
>   gEngfuncs.pTriAPI->Brightness( 1 );
>   gEngfuncs.pTriAPI->TexCoord2f( 0, 1 );
>   switch( i )
>   {
>    case 0: temporg = org + (v_right * -size); break;
>    case 1: temporg = org; break;
>    case 2: temporg = org + (v_right * -size) + (v_up * -size); break;
>    case 3: temporg = org + (v_up * -size); break;
>   }
>   gEngfuncs.pTriAPI->Vertex3fv( temporg );
>
>   gEngfuncs.pTriAPI->Brightness( 1 );
>   gEngfuncs.pTriAPI->TexCoord2f( 0, 0 );
>   switch( i )
>   {
>    case 0: temporg = org + (v_right * -size) + (v_up * size); break;
>    case 1: temporg = org + (v_up * size); break;
>    case 2: temporg = org + (v_right * -size) + (v_up * pixel); break;
>    case 3: temporg = org; break;
>   }
>   gEngfuncs.pTriAPI->Vertex3fv( temporg );
>
>   gEngfuncs.pTriAPI->Brightness( 1 );
>   gEngfuncs.pTriAPI->TexCoord2f( 1, 0 );
>   switch( i )
>   {
>    case 0: temporg = org + (v_up * size); break;
>    case 1: temporg = org + (v_right * size) + (v_up * size); break;
>    case 2: temporg = org; break;
>    case 3: temporg = org + (v_right * size) + (v_up * pixel); break;
>   }
>   gEngfuncs.pTriAPI->Vertex3fv( temporg );
>
>   gEngfuncs.pTriAPI->Brightness( 1 );
>   gEngfuncs.pTriAPI->TexCoord2f( 1, 1 );
>   switch( i )
>   {
>    case 0: temporg = org; break;
>    case 1: temporg = org + (v_right * size); break;
>    case 2: temporg = org + (v_up * -size); break;
>    case 3: temporg = org + (v_right * size) + (v_up * -size); break;
>   }
>   gEngfuncs.pTriAPI->Vertex3fv( temporg );
>
>   gEngfuncs.pTriAPI->End();
>  }
>
> }
>
> -- snap --
>
> cya,
> TheTinySteini
>
>
> ----- Original Message -----
> From: "Cortex" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Monday, April 29, 2002 7:56 PM
> Subject: Re: [hlcoders] Scope Sprites
>
>
> I don't understand how you got it to work using TriApi ! How did you get
the
> coordinate of the polys you had to display ? It has to depend from the
view
> angles, don't they ?
>
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives,
please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to