I'm no expert by any means, but wouldn't Vector(1,0,0) * 92 just create 
a vector and then multiply it by 92, using CPU power unnecessarily? 
Couldn't it just be Vector(92,0,0) initially and not waste CPU?

Christopher Harris wrote:
> Er lol I mean Vector( 1, 0, 0)
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Yaakov Smith
> Sent: Friday, March 20, 2009 2:20 AM
> To: 'Discussion of Half-Life Programming'
> Subject: Re: [hlcoders] Wierd Chatbubble problem
>
> Anybody? It seems to be rotating around the players origin, relative to
> where the player is looking.
>
>  
>
> From: Yaakov Smith [mailto:[email protected]] 
> Sent: Wednesday, 18 March 2009 4:56 PM
> To: 'Discussion of Half-Life Programming'
> Subject: Wierd Chatbubble problem
>
>  
>
> I'm implementing the chatbubble in the OB SDK beta, but I ran into a slight
> problem.
>
>  
>
> When the player is looking down, the bubble is in front of them rotated to
> what I guess is the players origin.
>
> When the player is looking up, the bubble is behind them, rotated as above.
>
>  
>
> How do I get it to stay above them?
>
>  
>
> Code:
>
> #define CHAT_BUBBLE_MODEL "models/extras/info_chatbubble.mdl"
>
> class CChatBubble : public CBaseAnimating
>
> {
>
> public:
>
>       DECLARE_CLASS(CChatBubble, CBaseAnimating);
>
>       CChatBubble::CChatBubble()
>
>       {
>
>             UseClientSideAnimation();
>
>       }
>
>       virtual void Spawn()
>
>       {
>
>             SetModel(CHAT_BUBBLE_MODEL);
>
>             SetSolid(SOLID_NONE);
>
>             SetMoveType(MOVETYPE_NONE);
>
>  
>
>             BaseClass::Spawn();
>
>             
>
>       }
>
>       virtual void Precache()
>
>       {
>
>             PrecacheModel(CHAT_BUBBLE_MODEL);
>
>       }
>
> };
>
> LINK_ENTITY_TO_CLASS(chat_bubble, CChatBubble);
>
> PRECACHE_REGISTER(chat_bubble);
>
> void CBasePlayer::MakeChatBubble(int iChatBubble)
>
> {
>
>       //Tony; incase there already is one, and another check failed.
>
>       if ( m_lifeState != LIFE_ALIVE || GetTeamNumber() == TEAM_SPECTATOR)
>
>       {
>
>             KillChatBubble();
>
>             return;
>
>       }
>
>  
>
>       //Tony; don't make new ones if you already have one.
>
>       if (m_hChatBubble.Get() != NULL)
>
>             return;
>
>  
>
>       Vector fr, rt, up;
>
>       AngleVectors(GetAbsAngles(), &fr, &rt, &up);
>
>       Vector offset = GetAbsOrigin() + up * 92;
>
>  
>
>       CChatBubble *pBubble = (CChatBubble*)CBaseEntity::CreateNoSpawn(
> "chat_bubble", offset, GetAbsAngles(), this );
>
>       if (pBubble)
>
>       {
>
>             pBubble->Spawn();
>
>             pBubble->FollowEntity(this, false);
>
>  
>
>             m_hChatBubble = pBubble; //Tony; assign it
>
>       }
>
>  
>
> }
>
> void CBasePlayer::KillChatBubble()
>
> {
>
>       if (m_hChatBubble.Get() != NULL)
>
>       {
>
>             m_hChatBubble.Get()->FollowEntity(NULL);
>
>             m_hChatBubble.Get()->SetThink(&CBaseEntity::Remove);
>
>             m_hChatBubble.Get()->SetNextThink(gpGlobals->curtime + 0.001);
>
>             m_hChatBubble = NULL;
>
>       }
>
> }
>
>  
>
> void CBasePlayer::CheckChatBubble( CUserCmd *cmd )
>
> {
>
>       if (!cmd)
>
>             return;
>
>  
>
>       if (cmd->chatenabled)
>
>             MakeChatBubble(cmd->chatenabled);
>
>       else
>
>             KillChatBubble();
>
> }
>
> _______________________________________________
> 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
>
>
>   


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

Reply via email to