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

