mirror of
https://github.com/ENSL/NS.git
synced 2025-06-02 10:01:04 +00:00
Branched for the performance test.
git-svn-id: https://unknownworlds.svn.cloudforge.com/ns1@219 67975925-1194-0748-b3d5-c16f83f1a3a1
This commit is contained in:
parent
410d1ea62f
commit
3e025675b3
2811 changed files with 370563 additions and 0 deletions
165
dev/performance/source/mod/AvHClientUtil.cpp
Normal file
165
dev/performance/source/mod/AvHClientUtil.cpp
Normal file
|
@ -0,0 +1,165 @@
|
|||
//======== (C) Copyright 2002 Charles G. Cleveland All rights reserved. =========
|
||||
//
|
||||
// The copyright to the contents herein is the property of Charles G. Cleveland.
|
||||
// The contents may be used and/or copied only with the written permission of
|
||||
// Charles G. Cleveland, or in accordance with the terms and conditions stipulated in
|
||||
// the agreement/contract under which the contents have been supplied.
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $Workfile: AvHClientUtil.cpp $
|
||||
// $Date: 2002/07/24 18:45:41 $
|
||||
//
|
||||
//-------------------------------------------------------------------------------
|
||||
// $Log: AvHClientUtil.cpp,v $
|
||||
// Revision 1.5 2002/07/24 18:45:41 Flayra
|
||||
// - Linux and scripting changes
|
||||
//
|
||||
// Revision 1.4 2002/07/23 16:59:41 Flayra
|
||||
// - AvHCUWorldToScreen now returns true if the position is in front of player
|
||||
//
|
||||
// Revision 1.3 2002/05/23 02:34:00 Flayra
|
||||
// - Post-crash checkin. Restored @Backup from around 4/16. Contains changes for last four weeks of development.
|
||||
//
|
||||
//===============================================================================
|
||||
#include "mod/AvHClientUtil.h"
|
||||
#include "mod/AvHSpecials.h"
|
||||
#include "common/vector_util.h"
|
||||
#include "common/com_model.h"
|
||||
#include "cl_dll/studio_util.h"
|
||||
#include "cl_dll/r_studioint.h"
|
||||
#include "engine/studio.h"
|
||||
#include "cl_dll/hud.h"
|
||||
#include "cl_dll/cl_util.h"
|
||||
#include "common/cl_entity.h"
|
||||
#include "common/triangleapi.h"
|
||||
#include "cl_dll/vgui_TeamFortressViewport.h"
|
||||
#include "util/STLUtil.h"
|
||||
|
||||
extern engine_studio_api_t IEngineStudio;
|
||||
|
||||
int AvHCUGetIconHeightForPlayer(AvHUser3 theUser3)
|
||||
{
|
||||
int theIconHeight = 45;
|
||||
|
||||
switch(theUser3)
|
||||
{
|
||||
case AVH_USER3_ALIEN_EMBRYO:
|
||||
case AVH_USER3_ALIEN_PLAYER1:
|
||||
case AVH_USER3_ALIEN_PLAYER2:
|
||||
case AVH_USER3_ALIEN_PLAYER3:
|
||||
theIconHeight = 25;
|
||||
break;
|
||||
|
||||
case AVH_USER3_ALIEN_PLAYER4:
|
||||
theIconHeight = 60;
|
||||
break;
|
||||
case AVH_USER3_ALIEN_PLAYER5:
|
||||
theIconHeight = 80;
|
||||
break;
|
||||
}
|
||||
|
||||
return theIconHeight;
|
||||
}
|
||||
|
||||
void AvHCUGetViewAngles(cl_entity_t* inEntity, float* outViewAngles)
|
||||
{
|
||||
VectorCopy(inEntity->curstate.angles, outViewAngles);
|
||||
|
||||
if(GetHasUpgrade(inEntity->curstate.iuser4, MASK_BUILDABLE))
|
||||
{
|
||||
if(inEntity->curstate.iuser3 == AVH_USER3_TURRET)
|
||||
{
|
||||
studiohdr_t* m_pStudioHeader = (studiohdr_t *)IEngineStudio.Mod_Extradata(inEntity->model);
|
||||
mstudiobonecontroller_t* pbonecontroller = (mstudiobonecontroller_t *)((byte *)m_pStudioHeader + m_pStudioHeader->bonecontrollerindex);
|
||||
|
||||
// Get attachment 0 for angles
|
||||
//int theAngle = pbone->bonecontroller[0];
|
||||
mstudiobone_t* pbone = (mstudiobone_t *)((byte *)m_pStudioHeader + m_pStudioHeader->boneindex);
|
||||
pbone = pbone + pbonecontroller->bone;
|
||||
int theAngle = (int)(pbone->value[0]);
|
||||
if(theAngle != -1)
|
||||
{
|
||||
outViewAngles[1] = (float)theAngle;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AvHCUGetViewOrigin(cl_entity_t* inEntity, float* outViewOrigin)
|
||||
{
|
||||
VectorCopy(inEntity->origin, outViewOrigin);
|
||||
|
||||
if(GetHasUpgrade(inEntity->curstate.iuser4, MASK_BUILDABLE))
|
||||
{
|
||||
if(inEntity->curstate.iuser3 == AVH_USER3_TURRET)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool AvHCUWorldToScreen(float* inWorldCoords, float* outScreenCoords)
|
||||
{
|
||||
bool theIsOnScreen = false;
|
||||
|
||||
ASSERT(inWorldCoords);
|
||||
ASSERT(outScreenCoords);
|
||||
|
||||
if(!gEngfuncs.pTriAPI->WorldToScreen(inWorldCoords, outScreenCoords))
|
||||
{
|
||||
outScreenCoords[0] = XPROJECT(outScreenCoords[0]);
|
||||
outScreenCoords[1] = YPROJECT(outScreenCoords[1]);
|
||||
outScreenCoords[2] = 0.0f;
|
||||
|
||||
theIsOnScreen = true;
|
||||
}
|
||||
|
||||
return theIsOnScreen;
|
||||
}
|
||||
|
||||
bool AvHCUGetIsEntityInPVSAndVisible(int inEntityIndex)
|
||||
{
|
||||
bool theReturnCode = false;
|
||||
|
||||
cl_entity_t* theLocalPlayer = gEngfuncs.GetLocalPlayer();
|
||||
cl_entity_s* theClient = gEngfuncs.GetEntityByIndex(inEntityIndex);
|
||||
if(theLocalPlayer && theClient)
|
||||
{
|
||||
// Don't show an icon if the player is not in our PVS.
|
||||
if(theClient->curstate.messagenum >= theLocalPlayer->curstate.messagenum)
|
||||
{
|
||||
// Don't show an icon for dead or spectating players (ie: invisible entities).
|
||||
if(!(theClient->curstate.effects & EF_NODRAW))
|
||||
{
|
||||
theReturnCode = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return theReturnCode;
|
||||
}
|
||||
|
||||
void AvHCUTrimExtraneousLocationText(string& ioTranslatedString)
|
||||
{
|
||||
// Trim extra whitespace, carriage-returns and newlines
|
||||
TrimString(ioTranslatedString);
|
||||
|
||||
// Now trim off the "Hive location" before hand, everything up to the -
|
||||
string theChoppedTranslatedLocationName;
|
||||
int theStartChopIndex = (int)ioTranslatedString.find_first_of("-") + 1;
|
||||
if((theStartChopIndex < 0) || (theStartChopIndex >= (int)(ioTranslatedString.length())))
|
||||
{
|
||||
theStartChopIndex = 0;
|
||||
}
|
||||
|
||||
int theLength = (int)ioTranslatedString.length() - theStartChopIndex;
|
||||
if(theLength > 0)
|
||||
{
|
||||
theChoppedTranslatedLocationName = ioTranslatedString.substr(theStartChopIndex, theLength);
|
||||
}
|
||||
|
||||
ioTranslatedString = theChoppedTranslatedLocationName;
|
||||
|
||||
// Remove any more spaces
|
||||
TrimString(ioTranslatedString);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue