Selaa lähdekoodia

Made some tweaks so I'm happy with it.

 * Removed #defines
 * Fall back to using visible distance if ghost distance is not used
 * Removed ghost distance from level files as it will default
 * Renamed mConnectionVisibleDistance for consistency
Daniel Buckmaster 10 vuotta sitten
vanhempi
commit
a928d142f7

+ 1 - 10
Engine/source/T3D/gameBase/gameBase.cpp

@@ -389,12 +389,7 @@ F32 GameBase::getUpdatePriority(CameraScopeQuery *camInfo, U32 updateMask, S32 u
    // will be weighted 1, objects behind will be 0
    F32 dot = mDot(pos,camInfo->orientation);
 
-#ifdef GHOSTSCOPING
-   bool inFov = dot > camInfo->cosFov*1.5f;
-#else
-   bool inFov = dot > camInfo->cosFov;
-#endif
-
+   bool inFov = dot > camInfo->cosFov * 1.5f;
 
    F32 wFov = inFov? 1.0f: 0;
 
@@ -413,11 +408,7 @@ F32 GameBase::getUpdatePriority(CameraScopeQuery *camInfo, U32 updateMask, S32 u
 
    // Weight by interest.
    F32 wInterest;
-#ifdef GHOSTSCOPING
    if (getTypeMask() & (PlayerObjectType || VehicleObjectType ))
-#else
-   if (getTypeMask() & PlayerObjectType)
-#endif
       wInterest = 0.75f;
    else if (getTypeMask() & ProjectileObjectType)
    {

+ 0 - 4
Engine/source/T3D/gameBase/gameBase.h

@@ -35,13 +35,9 @@
 #ifndef _DYNAMIC_CONSOLETYPES_H_
 #include "console/dynamicTypes.h"
 #endif
-
-#include "torqueConfig.h"
-#ifdef GHOSTSCOPING
 #ifndef __SCENEMANAGER_H__  
 #include "scene/sceneManager.h"    
 #define __SCENEMANAGER_H__  
-#endif 
 #endif
 
 class NetConnection;

+ 9 - 16
Engine/source/T3D/gameBase/gameConnection.cpp

@@ -226,9 +226,7 @@ GameConnection::GameConnection()
    mAddYawToAbsRot = false;
    mAddPitchToAbsRot = false;
 
-#ifdef GHOSTSCOPING
-   mConnectionVisibleDistance = 0.0f;
-#endif
+   mVisibleGhostDistance = 0.0f;
 
    clearDisplayDevice();
 }
@@ -243,16 +241,16 @@ GameConnection::~GameConnection()
 }
 
 //----------------------------------------------------------------------------
-#ifdef GHOSTSCOPING
+
 void GameConnection::setVisibleGhostDistance(F32 dist)
 {
-	mConnectionVisibleDistance = dist;
+   mVisibleGhostDistance = dist;
 }
+
 F32 GameConnection::getVisibleGhostDistance()
 {
-	return mConnectionVisibleDistance;
+   return mVisibleGhostDistance;
 }
-#endif
 
 bool GameConnection::canRemoteCreate()
 {
@@ -2215,13 +2213,12 @@ DefineEngineMethod( GameConnection, getControlSchemeAbsoluteRotation, bool, (),,
 }
 
 DefineEngineMethod( GameConnection, setVisibleGhostDistance, void, (F32 dist),,
-   "@brief Sets the distance that objects around it will be ghosted.\n\n"
+   "@brief Sets the distance that objects around it will be ghosted. If set to 0, "
+   "it may be defined by the LevelInfo.\n\n"
    "@dist - is the max distance\n\n"
    )
 {
-#ifdef GHOSTSCOPING
-	object->setVisibleGhostDistance(dist);
-#endif
+   object->setVisibleGhostDistance(dist);
 }
 
 DefineEngineMethod( GameConnection, getVisibleGhostDistance, F32, (),,
@@ -2230,9 +2227,5 @@ DefineEngineMethod( GameConnection, getVisibleGhostDistance, F32, (),,
    "@return S32 of distance.\n\n"
    )
 {
-#ifdef GHOSTSCOPING
-	return object->getVisibleGhostDistance();
-#else
-	return 0;
-#endif
+   return object->getVisibleGhostDistance();
 }

+ 1 - 7
Engine/source/T3D/gameBase/gameConnection.h

@@ -39,8 +39,6 @@
 #include "core/bitVector.h"
 #endif
 
-#include "torqueConfig.h"
-
 enum GameConnectionConstants
 {
    MaxClients = 126,
@@ -74,9 +72,7 @@ private:
 
    U32  mMissionCRC;             // crc of the current mission file from the server
 
-#ifdef GHOSTSCOPING
-   F32 mConnectionVisibleDistance;
-#endif
+   F32 mVisibleGhostDistance;
 
 private:
    U32 mLastControlRequestTime;
@@ -161,10 +157,8 @@ public:
 
    bool canRemoteCreate();
 
-#ifdef GHOSTSCOPING
    void setVisibleGhostDistance(F32 dist);
    F32 getVisibleGhostDistance();
-#endif
 
 private:
    /// @name Connection State

+ 3 - 9
Engine/source/T3D/levelInfo.cpp

@@ -79,9 +79,7 @@ static SFXAmbience sDefaultAmbience;
 LevelInfo::LevelInfo()
    :  mNearClip( 0.1f ),
       mVisibleDistance( 1000.0f ),
-#ifdef GHOSTSCOPING
-      mVisibleGhostDistance (200.0f),
-#endif
+      mVisibleGhostDistance ( 0 ),
       mDecalBias( 0.0015f ),
       mCanvasClearColor( 255, 0, 255, 255 ),
       mSoundAmbience( NULL ),
@@ -118,10 +116,8 @@ void LevelInfo::initPersistFields()
    addGroup( "Visibility" );
 
       addField( "nearClip", TypeF32, Offset( mNearClip, LevelInfo ), "Closest distance from the camera's position to render the world." );
-      addField( "visibleDistance", TypeF32, Offset( mVisibleDistance, LevelInfo ), "Furthest distance fromt he camera's position to render the world." );
-#ifdef GHOSTSCOPING
-      addField( "visibleGhostDistance", TypeF32, Offset( mVisibleGhostDistance, LevelInfo ), "Furthest distance from the camera's position to render players." );  
-#endif
+      addField( "visibleDistance", TypeF32, Offset( mVisibleDistance, LevelInfo ), "Furthest distance from the camera's position to render the world." );
+      addField( "visibleGhostDistance", TypeF32, Offset( mVisibleGhostDistance, LevelInfo ), "Furthest distance from the camera's position to render players. Defaults to visibleDistance." );
       addField( "decalBias", TypeF32, Offset( mDecalBias, LevelInfo ),
          "NearPlane bias used when rendering Decal and DecalRoad. This should be tuned to the visibleDistance in your level." );
 
@@ -308,9 +304,7 @@ void LevelInfo::_updateSceneGraph()
    
    scene->setNearClip( mNearClip );
    scene->setVisibleDistance( mVisibleDistance );
-#ifdef GHOSTSCOPING
    scene->setVisibleGhostDistance( mVisibleGhostDistance );
-#endif
 
    gDecalBias = mDecalBias;
 

+ 1 - 4
Engine/source/T3D/levelInfo.h

@@ -36,8 +36,6 @@
    #include "sfx/sfxCommon.h"
 #endif
 
-#include "torqueConfig.h"
-
 class SFXAmbience;
 class SFXSoundscape;
 
@@ -56,9 +54,8 @@ class LevelInfo : public NetObject
 
       F32 mVisibleDistance;
 
-#ifdef GHOSTSCOPING
       F32 mVisibleGhostDistance;
-#endif
+
       F32 mDecalBias;
 
       ColorI mCanvasClearColor;

+ 1 - 3
Engine/source/scene/sceneManager.cpp

@@ -112,9 +112,7 @@ SceneManager::SceneManager( bool isClient )
      mDisplayTargetResolution( 0, 0 ),
      mDefaultRenderPass( NULL ),
      mVisibleDistance( 500.f ),
-#ifdef GHOSTSCOPING
-     mVisibleGhostDistance(GHOSTSCOPING_DEFAULT_DISTANCE_IF_NOT_IN_MISSION),
-#endif
+     mVisibleGhostDistance( 0 ),
      mNearClip( 0.1f ),
      mAmbientLightColor( ColorF( 0.1f, 0.1f, 0.1f, 1.0f ) ),
      mZoneManager( NULL )

+ 1 - 6
Engine/source/scene/sceneManager.h

@@ -59,8 +59,6 @@
 #include "core/util/tSignal.h"
 #endif
 
-#include "torqueConfig.h"
-
 
 class LightManager;
 class SceneRootZone;
@@ -143,9 +141,7 @@ class SceneManager
 
       F32 mVisibleDistance;
 
-#ifdef GHOSTSCOPING
       F32 mVisibleGhostDistance;
-#endif
       F32 mNearClip;
 
       FogData mFogData;
@@ -322,10 +318,9 @@ class SceneManager
       /// Returns the default visible distance for the scene.
       F32 getVisibleDistance() { return mVisibleDistance; }
 
-#ifdef GHOSTSCOPING
       void setVisibleGhostDistance( F32 dist ) { mVisibleGhostDistance = dist; }
       F32  getVisibleGhostDistance() { return mVisibleGhostDistance;}
-#endif
+
       /// Used by LevelInfo to set the default near clip plane 
       /// for rendering the scene.
       ///

+ 4 - 11
Engine/source/scene/sceneObject.cpp

@@ -42,10 +42,7 @@
 #include "math/mathIO.h"
 #include "math/mTransform.h"
 #include "T3D/gameBase/gameProcess.h"
-
-#ifdef GHOSTSCOPING
 #include "T3D/gameBase/gameConnection.h"
-#endif
 
 IMPLEMENT_CONOBJECT(SceneObject);
 
@@ -668,15 +665,11 @@ static void scopeCallback( SceneObject* obj, void* conPtr )
 
 void SceneObject::onCameraScopeQuery( NetConnection* connection, CameraScopeQuery* query )
 {
-
-#ifdef GHOSTSCOPING
-   SceneManager* scenemanager = getSceneManager();
+   SceneManager* sceneManager = getSceneManager();
    GameConnection* conn  = dynamic_cast<GameConnection*> (connection);
-   if (conn && conn->getVisibleGhostDistance() == 0.0f)
-       query->visibleDistance = scenemanager->getVisibleGhostDistance();
-   else
-	   query->visibleDistance = conn->getVisibleGhostDistance();
-#endif
+   if (conn && (query->visibleDistance = conn->getVisibleGhostDistance()) == 0.0f)
+      if ((query->visibleDistance = sceneManager->getVisibleGhostDistance()) == 0.0f)
+         query->visibleDistance = sceneManager->getVisibleDistance();
 
    // Object itself is in scope.
 

+ 0 - 1
Templates/Empty/game/levels/Empty Room.mis

@@ -5,7 +5,6 @@ new SimGroup(MissionGroup) {
 
    new LevelInfo(theLevelInfo) {
       visibleDistance = "1000";
-	  visibleGhostDistance = "1000";
       fogColor = "0.6 0.6 0.7 1";
       fogDensity = "0";
       fogDensityOffset = "700";

+ 0 - 13
Templates/Empty/source/torqueConfig.h

@@ -39,19 +39,6 @@
 /// Version number is major * 1000 + minor * 100 + revision * 10.
 #define TORQUE_APP_VERSION         1000
 
-//Ghost Scoping limits the number of objects being ghosted
-//to a gameConnection to the objects around it within X
-//distance.
-//This is particularly useful for reducing bandwidth usage
-//of games in which there are a lot of players and AI 
-//Basically, anything derived from SceneObject.
-//GHOSTSCOPING_DEFAULT_DISTANCE_IF_NOT_IN_MISSION is the default distance 
-//a game will use if the distance is not defined in the mission file.
-//DO NOT USE IF YOU ARE BUILDING A SIDE SCROLLER.
-//To enable ghost scoping define:
-//#define GHOSTSCOPING
-//#define GHOSTSCOPING_DEFAULT_DISTANCE_IF_NOT_IN_MISSION 200.0f
-
 /// Human readable application version string.
 #define TORQUE_APP_VERSION_STRING  "1.0"
 

+ 0 - 1
Templates/Full/game/levels/Empty Room.mis

@@ -5,7 +5,6 @@ new SimGroup(MissionGroup) {
 
    new LevelInfo(theLevelInfo) {
       visibleDistance = "1000";
-	  visibleGhostDistance = "1000";
       fogColor = "0.6 0.6 0.7 1";
       fogDensity = "0";
       fogDensityOffset = "700";

+ 0 - 1
Templates/Full/game/levels/Empty Terrain.mis

@@ -6,7 +6,6 @@ new SimGroup(MissionGroup) {
    new LevelInfo(theLevelInfo) {
       nearClip = "0.1";
       visibleDistance = "2000";
-	  visibleGhostDistance = "2000";
       decalBias = "0.0015";
       fogColor = "1 1 0.6 1";
       fogDensity = "0.001";

+ 0 - 1
Templates/Full/game/levels/Outpost.mis

@@ -7,7 +7,6 @@ new SimGroup(MissionGroup) {
    new LevelInfo(theLevelInfo) {
       nearClip = "0.1";
       visibleDistance = "2000";
-	  visibleGhostDistance = "2000";
       decalBias = "0.0015";
       fogColor = "0.462745 0.698039 0.729412 1";
       fogDensity = "0.005";

+ 0 - 13
Templates/Full/source/torqueConfig.h

@@ -39,19 +39,6 @@
 /// Version number is major * 1000 + minor * 100 + revision * 10.
 #define TORQUE_APP_VERSION         1000
 
-//Ghost Scoping limits the number of objects being ghosted
-//to a gameConnection to the objects around it within X
-//distance.
-//This is particularly useful for reducing bandwidth usage
-//of games in which there are a lot of players and AI 
-//Basically, anything derived from SceneObject.
-//GHOSTSCOPING_DEFAULT_DISTANCE_IF_NOT_IN_MISSION is the default distance 
-//a game will use if the distance is not defined in the mission file.
-//DO NOT USE IF YOU ARE BUILDING A SIDE SCROLLER.
-//To enable ghost scoping define:
-//#define GHOSTSCOPING
-//#define GHOSTSCOPING_DEFAULT_DISTANCE_IF_NOT_IN_MISSION 200.0f
-
 /// Human readable application version string.
 #define TORQUE_APP_VERSION_STRING  "1.0"