mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-17 11:00:38 +02:00
Added recast navmesh.
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -346,6 +346,7 @@ typeinfo.exe</Command>
|
|||||||
<ClCompile Include="game\ai\AAS_debug.cpp" />
|
<ClCompile Include="game\ai\AAS_debug.cpp" />
|
||||||
<ClCompile Include="game\ai\AAS_pathing.cpp" />
|
<ClCompile Include="game\ai\AAS_pathing.cpp" />
|
||||||
<ClCompile Include="game\ai\AAS_routing.cpp" />
|
<ClCompile Include="game\ai\AAS_routing.cpp" />
|
||||||
|
<ClCompile Include="game\ai\RecastNavMesh.cpp" />
|
||||||
<ClCompile Include="game\ai\AI.cpp" />
|
<ClCompile Include="game\ai\AI.cpp" />
|
||||||
<ClCompile Include="game\ai\AI_events.cpp" />
|
<ClCompile Include="game\ai\AI_events.cpp" />
|
||||||
<ClCompile Include="game\ai\AI_pathing.cpp" />
|
<ClCompile Include="game\ai\AI_pathing.cpp" />
|
||||||
@@ -461,6 +462,7 @@ typeinfo.exe</Command>
|
|||||||
<ClInclude Include="game\ai\AASCallback_FindAttackPosition.h" />
|
<ClInclude Include="game\ai\AASCallback_FindAttackPosition.h" />
|
||||||
<ClInclude Include="game\ai\AASCallback_FindCoverArea.h" />
|
<ClInclude Include="game\ai\AASCallback_FindCoverArea.h" />
|
||||||
<ClInclude Include="game\ai\AAS_local.h" />
|
<ClInclude Include="game\ai\AAS_local.h" />
|
||||||
|
<ClInclude Include="game\ai\RecastNavMesh.h" />
|
||||||
<ClInclude Include="game\ai\AI.h" />
|
<ClInclude Include="game\ai\AI.h" />
|
||||||
<ClInclude Include="game\anim\Anim.h" />
|
<ClInclude Include="game\anim\Anim.h" />
|
||||||
<ClInclude Include="game\anim\Anim_Testmodel.h" />
|
<ClInclude Include="game\anim\Anim_Testmodel.h" />
|
||||||
@@ -559,4 +561,4 @@ typeinfo.exe</Command>
|
|||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -36,6 +36,9 @@
|
|||||||
<ClCompile Include="game\ai\AAS_routing.cpp">
|
<ClCompile Include="game\ai\AAS_routing.cpp">
|
||||||
<Filter>AI</Filter>
|
<Filter>AI</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="game\ai\RecastNavMesh.cpp">
|
||||||
|
<Filter>AI</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="game\ai\AI.cpp">
|
<ClCompile Include="game\ai\AI.cpp">
|
||||||
<Filter>AI</Filter>
|
<Filter>AI</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
@@ -287,6 +290,9 @@
|
|||||||
<ClInclude Include="game\ai\AAS_local.h">
|
<ClInclude Include="game\ai\AAS_local.h">
|
||||||
<Filter>AI</Filter>
|
<Filter>AI</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="game\ai\RecastNavMesh.h">
|
||||||
|
<Filter>AI</Filter>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="game\ai\AI.h">
|
<ClInclude Include="game\ai\AI.h">
|
||||||
<Filter>AI</Filter>
|
<Filter>AI</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
@@ -492,4 +498,4 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="game\Game.def" />
|
<None Include="game\Game.def" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -320,7 +320,9 @@ extern idGameEdit * gameEdit;
|
|||||||
===============================================================================
|
===============================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const int GAME_API_VERSION = 8;
|
class idRecastNavigationManager;
|
||||||
|
|
||||||
|
const int GAME_API_VERSION = 9;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
||||||
@@ -337,6 +339,7 @@ typedef struct {
|
|||||||
idUserInterfaceManager * uiManager; // user interface manager
|
idUserInterfaceManager * uiManager; // user interface manager
|
||||||
idDeclManager * declManager; // declaration manager
|
idDeclManager * declManager; // declaration manager
|
||||||
idAASFileManager * AASFileManager; // AAS file manager
|
idAASFileManager * AASFileManager; // AAS file manager
|
||||||
|
idRecastNavigationManager * RecastNavigationManager; // Recast/Detour navigation manager
|
||||||
idCollisionModelManager * collisionModelManager; // collision model manager
|
idCollisionModelManager * collisionModelManager; // collision model manager
|
||||||
|
|
||||||
} gameImport_t;
|
} gameImport_t;
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ idRenderModelManager * renderModelManager = NULL;
|
|||||||
idUserInterfaceManager * uiManager = NULL;
|
idUserInterfaceManager * uiManager = NULL;
|
||||||
idDeclManager * declManager = NULL;
|
idDeclManager * declManager = NULL;
|
||||||
idAASFileManager * AASFileManager = NULL;
|
idAASFileManager * AASFileManager = NULL;
|
||||||
|
idRecastNavigationManager * RecastNavigationManager = NULL;
|
||||||
idCollisionModelManager * collisionModelManager = NULL;
|
idCollisionModelManager * collisionModelManager = NULL;
|
||||||
idCVar * idCVar::staticVars = NULL;
|
idCVar * idCVar::staticVars = NULL;
|
||||||
|
|
||||||
@@ -100,6 +101,7 @@ extern "C" gameExport_t *GetGameAPI( gameImport_t *import ) {
|
|||||||
uiManager = import->uiManager;
|
uiManager = import->uiManager;
|
||||||
declManager = import->declManager;
|
declManager = import->declManager;
|
||||||
AASFileManager = import->AASFileManager;
|
AASFileManager = import->AASFileManager;
|
||||||
|
RecastNavigationManager = import->RecastNavigationManager;
|
||||||
collisionModelManager = import->collisionModelManager;
|
collisionModelManager = import->collisionModelManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,6 +143,7 @@ void TestGameAPI( void ) {
|
|||||||
testImport.uiManager = ::uiManager;
|
testImport.uiManager = ::uiManager;
|
||||||
testImport.declManager = ::declManager;
|
testImport.declManager = ::declManager;
|
||||||
testImport.AASFileManager = ::AASFileManager;
|
testImport.AASFileManager = ::AASFileManager;
|
||||||
|
testImport.RecastNavigationManager = ::RecastNavigationManager;
|
||||||
testImport.collisionModelManager = ::collisionModelManager;
|
testImport.collisionModelManager = ::collisionModelManager;
|
||||||
|
|
||||||
testExport = *GetGameAPI( &testImport );
|
testExport = *GetGameAPI( &testImport );
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ If you have questions concerning this license or the applicable additional terms
|
|||||||
#include "precompiled.h"
|
#include "precompiled.h"
|
||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
|
|
||||||
|
#include "../Game_local.h"
|
||||||
#include "AAS_local.h"
|
#include "AAS_local.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -72,6 +73,28 @@ idAASLocal::Init
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
bool idAASLocal::Init( const idStr &mapName, unsigned int mapFileCRC ) {
|
bool idAASLocal::Init( const idStr &mapName, unsigned int mapFileCRC ) {
|
||||||
|
const idStr navName = idRecastNavMesh::NavFileNameForAASName( mapName );
|
||||||
|
if ( recastNavMesh.IsLoaded() && mapName.Icmp( name ) == 0 ) {
|
||||||
|
common->Printf( "Keeping %s\n", navName.c_str() );
|
||||||
|
recastNavMesh.RemoveAllObstacles();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( recastNavMesh.Load( mapName, navName, mapFileCRC ) ) {
|
||||||
|
if ( file ) {
|
||||||
|
for ( int i = 0; i < obstacleList.Num(); i++ ) {
|
||||||
|
delete obstacleList[i];
|
||||||
|
}
|
||||||
|
obstacleList.Clear();
|
||||||
|
ShutdownRouting();
|
||||||
|
AASFileManager->FreeAAS( file );
|
||||||
|
file = NULL;
|
||||||
|
}
|
||||||
|
name = mapName;
|
||||||
|
common->Printf( "Loaded Recast navmesh: %s\n", navName.c_str() );
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if ( file && mapName.Icmp( file->GetName() ) == 0 && mapFileCRC == file->GetCRC() ) {
|
if ( file && mapName.Icmp( file->GetName() ) == 0 && mapFileCRC == file->GetCRC() ) {
|
||||||
common->Printf( "Keeping %s\n", file->GetName() );
|
common->Printf( "Keeping %s\n", file->GetName() );
|
||||||
RemoveAllObstacles();
|
RemoveAllObstacles();
|
||||||
@@ -95,6 +118,7 @@ idAASLocal::Shutdown
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
void idAASLocal::Shutdown( void ) {
|
void idAASLocal::Shutdown( void ) {
|
||||||
|
recastNavMesh.Shutdown();
|
||||||
if ( file ) {
|
if ( file ) {
|
||||||
ShutdownRouting();
|
ShutdownRouting();
|
||||||
RemoveAllObstacles();
|
RemoveAllObstacles();
|
||||||
@@ -109,6 +133,10 @@ idAASLocal::Stats
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
void idAASLocal::Stats( void ) const {
|
void idAASLocal::Stats( void ) const {
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
recastNavMesh.Stats();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -123,6 +151,9 @@ idAASLocal::GetSettings
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
const idAASSettings *idAASLocal::GetSettings( void ) const {
|
const idAASSettings *idAASLocal::GetSettings( void ) const {
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.GetSettings();
|
||||||
|
}
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -135,6 +166,9 @@ idAASLocal::PointAreaNum
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
int idAASLocal::PointAreaNum( const idVec3 &origin ) const {
|
int idAASLocal::PointAreaNum( const idVec3 &origin ) const {
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.PointAreaNum( origin );
|
||||||
|
}
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -147,6 +181,9 @@ idAASLocal::PointReachableAreaNum
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
int idAASLocal::PointReachableAreaNum( const idVec3 &origin, const idBounds &searchBounds, const int areaFlags ) const {
|
int idAASLocal::PointReachableAreaNum( const idVec3 &origin, const idBounds &searchBounds, const int areaFlags ) const {
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.PointReachableAreaNum( origin, searchBounds, areaFlags );
|
||||||
|
}
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -160,6 +197,9 @@ idAASLocal::BoundsReachableAreaNum
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
int idAASLocal::BoundsReachableAreaNum( const idBounds &bounds, const int areaFlags ) const {
|
int idAASLocal::BoundsReachableAreaNum( const idBounds &bounds, const int areaFlags ) const {
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.BoundsReachableAreaNum( bounds, areaFlags );
|
||||||
|
}
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -173,6 +213,10 @@ idAASLocal::PushPointIntoAreaNum
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
void idAASLocal::PushPointIntoAreaNum( int areaNum, idVec3 &origin ) const {
|
void idAASLocal::PushPointIntoAreaNum( int areaNum, idVec3 &origin ) const {
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
recastNavMesh.PushPointIntoAreaNum( areaNum, origin );
|
||||||
|
return;
|
||||||
|
}
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -185,6 +229,9 @@ idAASLocal::AreaCenter
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
idVec3 idAASLocal::AreaCenter( int areaNum ) const {
|
idVec3 idAASLocal::AreaCenter( int areaNum ) const {
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.AreaCenter( areaNum );
|
||||||
|
}
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
return vec3_origin;
|
return vec3_origin;
|
||||||
}
|
}
|
||||||
@@ -197,6 +244,9 @@ idAASLocal::AreaFlags
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
int idAASLocal::AreaFlags( int areaNum ) const {
|
int idAASLocal::AreaFlags( int areaNum ) const {
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.AreaFlags( areaNum );
|
||||||
|
}
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -209,6 +259,9 @@ idAASLocal::AreaTravelFlags
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
int idAASLocal::AreaTravelFlags( int areaNum ) const {
|
int idAASLocal::AreaTravelFlags( int areaNum ) const {
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.AreaTravelFlags( areaNum );
|
||||||
|
}
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -221,6 +274,9 @@ idAASLocal::Trace
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
bool idAASLocal::Trace( aasTrace_t &trace, const idVec3 &start, const idVec3 &end ) const {
|
bool idAASLocal::Trace( aasTrace_t &trace, const idVec3 &start, const idVec3 &end ) const {
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.Trace( trace, start, end );
|
||||||
|
}
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
trace.fraction = 0.0f;
|
trace.fraction = 0.0f;
|
||||||
trace.lastAreaNum = 0;
|
trace.lastAreaNum = 0;
|
||||||
@@ -285,4 +341,4 @@ int idAASLocal::AdjustPositionAndGetArea(idVec3& origin)
|
|||||||
int area = PointReachableAreaNum(origin, DefaultSearchBounds(), AREA_REACHABLE_WALK);
|
int area = PointReachableAreaNum(origin, DefaultSearchBounds(), AREA_REACHABLE_WALK);
|
||||||
PushPointIntoAreaNum(area, origin);
|
PushPointIntoAreaNum(area, origin);
|
||||||
return area;
|
return area;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -175,6 +175,9 @@ idAASLocal::DefaultSearchBounds
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
const idBounds &idAASLocal::DefaultSearchBounds( void ) const {
|
const idBounds &idAASLocal::DefaultSearchBounds( void ) const {
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.GetSettings()->boundingBoxes[0];
|
||||||
|
}
|
||||||
return file->GetSettings().boundingBoxes[0];
|
return file->GetSettings().boundingBoxes[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -184,6 +187,10 @@ idAASLocal::ShowArea
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
void idAASLocal::ShowArea( const idVec3 &origin ) const {
|
void idAASLocal::ShowArea( const idVec3 &origin ) const {
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
recastNavMesh.ShowArea( origin );
|
||||||
|
return;
|
||||||
|
}
|
||||||
static int lastAreaNum;
|
static int lastAreaNum;
|
||||||
int areaNum;
|
int areaNum;
|
||||||
const aasArea_t *area;
|
const aasArea_t *area;
|
||||||
@@ -242,6 +249,10 @@ idAASLocal::ShowWalkPath
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
void idAASLocal::ShowWalkPath( const idVec3 &origin, int goalAreaNum, const idVec3 &goalOrigin ) const {
|
void idAASLocal::ShowWalkPath( const idVec3 &origin, int goalAreaNum, const idVec3 &goalOrigin ) const {
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
recastNavMesh.ShowPath( origin, goalAreaNum, goalOrigin );
|
||||||
|
return;
|
||||||
|
}
|
||||||
int i, areaNum, curAreaNum, travelTime;
|
int i, areaNum, curAreaNum, travelTime;
|
||||||
idReachability *reach;
|
idReachability *reach;
|
||||||
idVec3 org, areaCenter;
|
idVec3 org, areaCenter;
|
||||||
@@ -288,6 +299,10 @@ idAASLocal::ShowFlyPath
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
void idAASLocal::ShowFlyPath( const idVec3 &origin, int goalAreaNum, const idVec3 &goalOrigin ) const {
|
void idAASLocal::ShowFlyPath( const idVec3 &origin, int goalAreaNum, const idVec3 &goalOrigin ) const {
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
recastNavMesh.ShowPath( origin, goalAreaNum, goalOrigin );
|
||||||
|
return;
|
||||||
|
}
|
||||||
int i, areaNum, curAreaNum, travelTime;
|
int i, areaNum, curAreaNum, travelTime;
|
||||||
idReachability *reach;
|
idReachability *reach;
|
||||||
idVec3 org, areaCenter;
|
idVec3 org, areaCenter;
|
||||||
@@ -476,6 +491,22 @@ idAASLocal::Test
|
|||||||
*/
|
*/
|
||||||
void idAASLocal::Test( const idVec3 &origin ) {
|
void idAASLocal::Test( const idVec3 &origin ) {
|
||||||
|
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
if ( aas_showRecastNavMesh.GetInteger() > 0 ) {
|
||||||
|
recastNavMesh.DebugDraw( aas_showRecastNavMesh.GetInteger() );
|
||||||
|
}
|
||||||
|
if ( aas_showAreas.GetBool() ) {
|
||||||
|
ShowArea( origin );
|
||||||
|
}
|
||||||
|
if ( aas_showPath.GetInteger() > 0 ) {
|
||||||
|
ShowWalkPath( origin, aas_showPath.GetInteger(), AreaCenter( aas_showPath.GetInteger() ) );
|
||||||
|
}
|
||||||
|
if ( aas_showFlyPath.GetInteger() > 0 ) {
|
||||||
|
ShowFlyPath( origin, aas_showFlyPath.GetInteger(), AreaCenter( aas_showFlyPath.GetInteger() ) );
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ If you have questions concerning this license or the applicable additional terms
|
|||||||
|
|
||||||
#include "AAS.h"
|
#include "AAS.h"
|
||||||
#include "../Pvs.h"
|
#include "../Pvs.h"
|
||||||
|
#include "RecastNavMesh.h"
|
||||||
|
|
||||||
|
|
||||||
class idRoutingCache {
|
class idRoutingCache {
|
||||||
@@ -125,6 +126,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
idAASFile * file;
|
idAASFile * file;
|
||||||
idStr name;
|
idStr name;
|
||||||
|
idRecastNavMesh recastNavMesh;
|
||||||
|
|
||||||
private: // routing data
|
private: // routing data
|
||||||
idRoutingCache *** areaCacheIndex; // for each area in each cluster the travel times to all other areas in the cluster
|
idRoutingCache *** areaCacheIndex; // for each area in each cluster the travel times to all other areas in the cluster
|
||||||
|
|||||||
@@ -143,6 +143,10 @@ bool idAASLocal::WalkPathValid( int areaNum, const idVec3 &origin, int goalAreaN
|
|||||||
const aasArea_t *area;
|
const aasArea_t *area;
|
||||||
idVec3 p, dir;
|
idVec3 p, dir;
|
||||||
|
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.PathValid( areaNum, origin, goalAreaNum, goalOrigin, travelFlags, endPos, endAreaNum );
|
||||||
|
}
|
||||||
|
|
||||||
if ( file == NULL ) {
|
if ( file == NULL ) {
|
||||||
endPos = goalOrigin;
|
endPos = goalOrigin;
|
||||||
endAreaNum = 0;
|
endAreaNum = 0;
|
||||||
@@ -283,6 +287,10 @@ bool idAASLocal::WalkPathToGoal( aasPath_t &path, int areaNum, const idVec3 &ori
|
|||||||
idReachability *reach;
|
idReachability *reach;
|
||||||
idVec3 endPos;
|
idVec3 endPos;
|
||||||
|
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.PathToGoal( path, areaNum, origin, goalAreaNum, goalOrigin, travelFlags );
|
||||||
|
}
|
||||||
|
|
||||||
path.type = PATHTYPE_WALK;
|
path.type = PATHTYPE_WALK;
|
||||||
path.moveGoal = origin;
|
path.moveGoal = origin;
|
||||||
path.moveAreaNum = areaNum;
|
path.moveAreaNum = areaNum;
|
||||||
@@ -402,6 +410,10 @@ idAASLocal::FlyPathValid
|
|||||||
bool idAASLocal::FlyPathValid( int areaNum, const idVec3 &origin, int goalAreaNum, const idVec3 &goalOrigin, int travelFlags, idVec3 &endPos, int &endAreaNum ) const {
|
bool idAASLocal::FlyPathValid( int areaNum, const idVec3 &origin, int goalAreaNum, const idVec3 &goalOrigin, int travelFlags, idVec3 &endPos, int &endAreaNum ) const {
|
||||||
aasTrace_t trace;
|
aasTrace_t trace;
|
||||||
|
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.PathValid( areaNum, origin, goalAreaNum, goalOrigin, travelFlags, endPos, endAreaNum );
|
||||||
|
}
|
||||||
|
|
||||||
if ( file == NULL ) {
|
if ( file == NULL ) {
|
||||||
endPos = goalOrigin;
|
endPos = goalOrigin;
|
||||||
endAreaNum = 0;
|
endAreaNum = 0;
|
||||||
@@ -459,6 +471,10 @@ bool idAASLocal::FlyPathToGoal( aasPath_t &path, int areaNum, const idVec3 &orig
|
|||||||
idReachability *reach;
|
idReachability *reach;
|
||||||
idVec3 endPos;
|
idVec3 endPos;
|
||||||
|
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.PathToGoal( path, areaNum, origin, goalAreaNum, goalOrigin, travelFlags );
|
||||||
|
}
|
||||||
|
|
||||||
path.type = PATHTYPE_WALK;
|
path.type = PATHTYPE_WALK;
|
||||||
path.moveGoal = origin;
|
path.moveGoal = origin;
|
||||||
path.moveAreaNum = areaNum;
|
path.moveAreaNum = areaNum;
|
||||||
|
|||||||
@@ -435,6 +435,10 @@ idAASLocal::SetAreaState
|
|||||||
bool idAASLocal::SetAreaState( const idBounds &bounds, const int areaContents, bool disabled ) {
|
bool idAASLocal::SetAreaState( const idBounds &bounds, const int areaContents, bool disabled ) {
|
||||||
idBounds expBounds;
|
idBounds expBounds;
|
||||||
|
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.SetAreaState( bounds, areaContents, disabled );
|
||||||
|
}
|
||||||
|
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -537,6 +541,10 @@ idAASLocal::AddObstacle
|
|||||||
aasHandle_t idAASLocal::AddObstacle( const idBounds &bounds ) {
|
aasHandle_t idAASLocal::AddObstacle( const idBounds &bounds ) {
|
||||||
idRoutingObstacle *obstacle;
|
idRoutingObstacle *obstacle;
|
||||||
|
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.AddObstacle( bounds );
|
||||||
|
}
|
||||||
|
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@@ -557,6 +565,10 @@ idAASLocal::RemoveObstacle
|
|||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
void idAASLocal::RemoveObstacle( const aasHandle_t handle ) {
|
void idAASLocal::RemoveObstacle( const aasHandle_t handle ) {
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
recastNavMesh.RemoveObstacle( handle );
|
||||||
|
return;
|
||||||
|
}
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -576,6 +588,11 @@ idAASLocal::RemoveAllObstacles
|
|||||||
void idAASLocal::RemoveAllObstacles( void ) {
|
void idAASLocal::RemoveAllObstacles( void ) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
recastNavMesh.RemoveAllObstacles();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1002,6 +1019,10 @@ bool idAASLocal::RouteToGoalArea( int areaNum, const idVec3 origin, int goalArea
|
|||||||
travelTime = 0;
|
travelTime = 0;
|
||||||
*reach = NULL;
|
*reach = NULL;
|
||||||
|
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.RouteToGoalArea( areaNum, origin, goalAreaNum, travelFlags, travelTime, reach );
|
||||||
|
}
|
||||||
|
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -1151,6 +1172,10 @@ int idAASLocal::TravelTimeToGoalArea( int areaNum, const idVec3 &origin, int goa
|
|||||||
int travelTime;
|
int travelTime;
|
||||||
idReachability *reach;
|
idReachability *reach;
|
||||||
|
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.TravelTimeToGoalArea( areaNum, origin, goalAreaNum, travelFlags );
|
||||||
|
}
|
||||||
|
|
||||||
if ( !file ) {
|
if ( !file ) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1175,6 +1200,10 @@ bool idAASLocal::FindNearestGoal( aasGoal_t &goal, int areaNum, const idVec3 ori
|
|||||||
idVec3 v1, v2, p;
|
idVec3 v1, v2, p;
|
||||||
float targetDist, dist;
|
float targetDist, dist;
|
||||||
|
|
||||||
|
if ( recastNavMesh.IsLoaded() ) {
|
||||||
|
return recastNavMesh.FindNearestGoal( this, goal, areaNum, origin, target, travelFlags, obstacles, numObstacles, callback );
|
||||||
|
}
|
||||||
|
|
||||||
if ( file == NULL || areaNum <= 0 ) {
|
if ( file == NULL || areaNum <= 0 ) {
|
||||||
goal.areaNum = areaNum;
|
goal.areaNum = areaNum;
|
||||||
goal.origin = origin;
|
goal.origin = origin;
|
||||||
|
|||||||
@@ -7,9 +7,9 @@
|
|||||||
|
|
||||||
This file has been generated with the Type Info Generator v1.1 (c) 2004 id Software
|
This file has been generated with the Type Info Generator v1.1 (c) 2004 id Software
|
||||||
|
|
||||||
1186 constants
|
1188 constants
|
||||||
133 enums
|
133 enums
|
||||||
581 classes/structs/unions
|
583 classes/structs/unions
|
||||||
38 templates
|
38 templates
|
||||||
7 max inheritance level for 'idAI_Vagary'
|
7 max inheritance level for 'idAI_Vagary'
|
||||||
|
|
||||||
@@ -643,6 +643,8 @@ static constantInfo_t constantInfo[] = {
|
|||||||
{ "int", "CONTACT_EDGE", "1" },
|
{ "int", "CONTACT_EDGE", "1" },
|
||||||
{ "int", "CONTACT_MODELVERTEX", "2" },
|
{ "int", "CONTACT_MODELVERTEX", "2" },
|
||||||
{ "int", "CONTACT_TRMVERTEX", "3" },
|
{ "int", "CONTACT_TRMVERTEX", "3" },
|
||||||
|
{ "static const recastNavHandle_t", "RECAST_NAV_HANDLE_INVALID", "-1" },
|
||||||
|
{ "static const int", "MAX_RECAST_PATH_AREAS", "256" },
|
||||||
{ "int", "ALLOW_YES", "0" },
|
{ "int", "ALLOW_YES", "0" },
|
||||||
{ "int", "ALLOW_BADPASS", "1" },
|
{ "int", "ALLOW_BADPASS", "1" },
|
||||||
{ "int", "ALLOW_NOTYET", "2" },
|
{ "int", "ALLOW_NOTYET", "2" },
|
||||||
@@ -655,7 +657,7 @@ static constantInfo_t constantInfo[] = {
|
|||||||
{ "int", "TEST_PARTICLE_MUZZLE", "2" },
|
{ "int", "TEST_PARTICLE_MUZZLE", "2" },
|
||||||
{ "int", "TEST_PARTICLE_FLIGHT", "3" },
|
{ "int", "TEST_PARTICLE_FLIGHT", "3" },
|
||||||
{ "int", "TEST_PARTICLE_SELECTED", "4" },
|
{ "int", "TEST_PARTICLE_SELECTED", "4" },
|
||||||
{ "const int", "GAME_API_VERSION", "8" },
|
{ "const int", "GAME_API_VERSION", "9" },
|
||||||
{ "static const int", "MAX_LOGGED_STATS", "60*120" },
|
{ "static const int", "MAX_LOGGED_STATS", "60*120" },
|
||||||
{ "int", "MSG_OK", "0" },
|
{ "int", "MSG_OK", "0" },
|
||||||
{ "int", "MSG_ABORT", "1" },
|
{ "int", "MSG_ABORT", "1" },
|
||||||
@@ -4870,6 +4872,18 @@ static classVariableInfo_t idAASFileManager_typeInfo[] = {
|
|||||||
{ NULL, 0 }
|
{ NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static classVariableInfo_t recastPath_t_typeInfo[] = {
|
||||||
|
{ "idVec3", "moveGoal", (intptr_t)(&((recastPath_t *)0)->moveGoal), sizeof( ((recastPath_t *)0)->moveGoal ) },
|
||||||
|
{ "idVec3", "secondaryGoal", (intptr_t)(&((recastPath_t *)0)->secondaryGoal), sizeof( ((recastPath_t *)0)->secondaryGoal ) },
|
||||||
|
{ "int", "moveAreaNum", (intptr_t)(&((recastPath_t *)0)->moveAreaNum), sizeof( ((recastPath_t *)0)->moveAreaNum ) },
|
||||||
|
{ "int", "travelTime", (intptr_t)(&((recastPath_t *)0)->travelTime), sizeof( ((recastPath_t *)0)->travelTime ) },
|
||||||
|
{ NULL, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
static classVariableInfo_t idRecastNavigationManager_typeInfo[] = {
|
||||||
|
{ NULL, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
static classVariableInfo_t gameReturn_t_typeInfo[] = {
|
static classVariableInfo_t gameReturn_t_typeInfo[] = {
|
||||||
{ "char[1024]", "sessionCommand", (intptr_t)(&((gameReturn_t *)0)->sessionCommand), sizeof( ((gameReturn_t *)0)->sessionCommand ) },
|
{ "char[1024]", "sessionCommand", (intptr_t)(&((gameReturn_t *)0)->sessionCommand), sizeof( ((gameReturn_t *)0)->sessionCommand ) },
|
||||||
{ "int", "consistencyHash", (intptr_t)(&((gameReturn_t *)0)->consistencyHash), sizeof( ((gameReturn_t *)0)->consistencyHash ) },
|
{ "int", "consistencyHash", (intptr_t)(&((gameReturn_t *)0)->consistencyHash), sizeof( ((gameReturn_t *)0)->consistencyHash ) },
|
||||||
@@ -4914,6 +4928,7 @@ static classVariableInfo_t gameImport_t_typeInfo[] = {
|
|||||||
{ "idUserInterfaceManager *", "uiManager", (intptr_t)(&((gameImport_t *)0)->uiManager), sizeof( ((gameImport_t *)0)->uiManager ) },
|
{ "idUserInterfaceManager *", "uiManager", (intptr_t)(&((gameImport_t *)0)->uiManager), sizeof( ((gameImport_t *)0)->uiManager ) },
|
||||||
{ "idDeclManager *", "declManager", (intptr_t)(&((gameImport_t *)0)->declManager), sizeof( ((gameImport_t *)0)->declManager ) },
|
{ "idDeclManager *", "declManager", (intptr_t)(&((gameImport_t *)0)->declManager), sizeof( ((gameImport_t *)0)->declManager ) },
|
||||||
{ "idAASFileManager *", "AASFileManager", (intptr_t)(&((gameImport_t *)0)->AASFileManager), sizeof( ((gameImport_t *)0)->AASFileManager ) },
|
{ "idAASFileManager *", "AASFileManager", (intptr_t)(&((gameImport_t *)0)->AASFileManager), sizeof( ((gameImport_t *)0)->AASFileManager ) },
|
||||||
|
{ "idRecastNavigationManager *", "RecastNavigationManager", (intptr_t)(&((gameImport_t *)0)->RecastNavigationManager), sizeof( ((gameImport_t *)0)->RecastNavigationManager ) },
|
||||||
{ "idCollisionModelManager *", "collisionModelManager", (intptr_t)(&((gameImport_t *)0)->collisionModelManager), sizeof( ((gameImport_t *)0)->collisionModelManager ) },
|
{ "idCollisionModelManager *", "collisionModelManager", (intptr_t)(&((gameImport_t *)0)->collisionModelManager), sizeof( ((gameImport_t *)0)->collisionModelManager ) },
|
||||||
{ NULL, 0 }
|
{ NULL, 0 }
|
||||||
};
|
};
|
||||||
@@ -5201,11 +5216,11 @@ static classVariableInfo_t frameLookup_t_typeInfo[] = {
|
|||||||
{ NULL, 0 }
|
{ NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
static classVariableInfo_t class_285_class_285_typeInfo[] = {
|
static classVariableInfo_t class_287_class_287_typeInfo[] = {
|
||||||
// { "const idSoundShader *", "soundShader", (intptr_t)(&((class_285::class_285 *)0)->soundShader), sizeof( ((class_285::class_285 *)0)->soundShader ) },
|
// { "const idSoundShader *", "soundShader", (intptr_t)(&((class_287::class_287 *)0)->soundShader), sizeof( ((class_287::class_287 *)0)->soundShader ) },
|
||||||
// { "const function_t *", "function", (intptr_t)(&((class_285::class_285 *)0)->function), sizeof( ((class_285::class_285 *)0)->function ) },
|
// { "const function_t *", "function", (intptr_t)(&((class_287::class_287 *)0)->function), sizeof( ((class_287::class_287 *)0)->function ) },
|
||||||
// { "const idDeclSkin *", "skin", (intptr_t)(&((class_285::class_285 *)0)->skin), sizeof( ((class_285::class_285 *)0)->skin ) },
|
// { "const idDeclSkin *", "skin", (intptr_t)(&((class_287::class_287 *)0)->skin), sizeof( ((class_287::class_287 *)0)->skin ) },
|
||||||
// { "int", "index", (intptr_t)(&((class_285::class_285 *)0)->index), sizeof( ((class_285::class_285 *)0)->index ) },
|
// { "int", "index", (intptr_t)(&((class_287::class_287 *)0)->index), sizeof( ((class_287::class_287 *)0)->index ) },
|
||||||
{ NULL, 0 }
|
{ NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -8815,6 +8830,8 @@ static classTypeInfo_t classTypeInfo[] = {
|
|||||||
{ "idAASSettings", "", sizeof(idAASSettings), idAASSettings_typeInfo },
|
{ "idAASSettings", "", sizeof(idAASSettings), idAASSettings_typeInfo },
|
||||||
{ "idAASFile", "", sizeof(idAASFile), idAASFile_typeInfo },
|
{ "idAASFile", "", sizeof(idAASFile), idAASFile_typeInfo },
|
||||||
{ "idAASFileManager", "", sizeof(idAASFileManager), idAASFileManager_typeInfo },
|
{ "idAASFileManager", "", sizeof(idAASFileManager), idAASFileManager_typeInfo },
|
||||||
|
{ "recastPath_t", "", sizeof(recastPath_t), recastPath_t_typeInfo },
|
||||||
|
{ "idRecastNavigationManager", "", sizeof(idRecastNavigationManager), idRecastNavigationManager_typeInfo },
|
||||||
{ "gameReturn_t", "", sizeof(gameReturn_t), gameReturn_t_typeInfo },
|
{ "gameReturn_t", "", sizeof(gameReturn_t), gameReturn_t_typeInfo },
|
||||||
{ "idGame", "", sizeof(idGame), idGame_typeInfo },
|
{ "idGame", "", sizeof(idGame), idGame_typeInfo },
|
||||||
{ "refSound_t", "", sizeof(refSound_t), refSound_t_typeInfo },
|
{ "refSound_t", "", sizeof(refSound_t), refSound_t_typeInfo },
|
||||||
@@ -8851,7 +8868,7 @@ static classTypeInfo_t classTypeInfo[] = {
|
|||||||
{ "jointAnimInfo_t", "", sizeof(jointAnimInfo_t), jointAnimInfo_t_typeInfo },
|
{ "jointAnimInfo_t", "", sizeof(jointAnimInfo_t), jointAnimInfo_t_typeInfo },
|
||||||
{ "jointMod_t", "", sizeof(jointMod_t), jointMod_t_typeInfo },
|
{ "jointMod_t", "", sizeof(jointMod_t), jointMod_t_typeInfo },
|
||||||
{ "frameLookup_t", "", sizeof(frameLookup_t), frameLookup_t_typeInfo },
|
{ "frameLookup_t", "", sizeof(frameLookup_t), frameLookup_t_typeInfo },
|
||||||
// { "class_285::class_285", "", sizeof(class_285::class_285), class_285_class_285_typeInfo },
|
// { "class_287::class_287", "", sizeof(class_287::class_287), class_287_class_287_typeInfo },
|
||||||
{ "frameCommand_t", "", sizeof(frameCommand_t), frameCommand_t_typeInfo },
|
{ "frameCommand_t", "", sizeof(frameCommand_t), frameCommand_t_typeInfo },
|
||||||
{ "animFlags_t", "", sizeof(animFlags_t), animFlags_t_typeInfo },
|
{ "animFlags_t", "", sizeof(animFlags_t), animFlags_t_typeInfo },
|
||||||
{ "idModelExport", "", sizeof(idModelExport), idModelExport_typeInfo },
|
{ "idModelExport", "", sizeof(idModelExport), idModelExport_typeInfo },
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ If you have questions concerning this license or the applicable additional terms
|
|||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
|
|
||||||
#include "../Game_local.h"
|
#include "../Game_local.h"
|
||||||
|
#include "../ai/RecastNavMesh.h"
|
||||||
|
|
||||||
#include "TypeInfo.h"
|
#include "TypeInfo.h"
|
||||||
|
|
||||||
@@ -1476,6 +1477,51 @@ static void Cmd_AASStats_f( const idCmdArgs &args ) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
==================
|
||||||
|
Cmd_RecastNavBuild_f
|
||||||
|
==================
|
||||||
|
*/
|
||||||
|
static void Cmd_RecastNavBuild_f( const idCmdArgs &args ) {
|
||||||
|
if ( !gameLocal.CheatsOk( false ) ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( args.Argc() < 2 || args.Argc() > 3 ) {
|
||||||
|
gameLocal.Printf( "usage: recastNavBuild <mapfile> [aasType|all]\n" );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const idStr mapName = args.Argv( 1 );
|
||||||
|
const idStr requestedType = args.Argc() > 2 ? args.Argv( 2 ) : "all";
|
||||||
|
bool builtAny = false;
|
||||||
|
|
||||||
|
if ( requestedType.Icmp( "all" ) != 0 ) {
|
||||||
|
common->SetRefreshOnPrint(true);
|
||||||
|
builtAny = idRecastNavMesh::BuildMapFile( mapName, requestedType );
|
||||||
|
common->SetRefreshOnPrint(false);
|
||||||
|
} else {
|
||||||
|
const idDict *dict = gameLocal.FindEntityDefDict( "aas_types", false );
|
||||||
|
if ( !dict ) {
|
||||||
|
gameLocal.Warning( "Unable to find entityDef for 'aas_types'" );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
common->SetRefreshOnPrint(true);
|
||||||
|
for ( const idKeyValue *kv = dict->MatchPrefix( "type" ); kv != NULL; kv = dict->MatchPrefix( "type", kv ) ) {
|
||||||
|
if ( idRecastNavMesh::BuildMapFile( mapName, kv->GetValue() ) ) {
|
||||||
|
builtAny = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
common->SetRefreshOnPrint(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( builtAny ) {
|
||||||
|
gameLocal.Printf( "Recast navmesh build complete for %s\n", mapName.c_str() );
|
||||||
|
} else {
|
||||||
|
gameLocal.Warning( "Recast navmesh build failed for %s", mapName.c_str() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
==================
|
==================
|
||||||
Cmd_TestDamage_f
|
Cmd_TestDamage_f
|
||||||
@@ -2366,6 +2412,7 @@ void idGameLocal::InitConsoleCommands( void ) {
|
|||||||
cmdSystem->AddCommand( "reloadanims", Cmd_ReloadAnims_f, CMD_FL_GAME|CMD_FL_CHEAT, "reloads animations" );
|
cmdSystem->AddCommand( "reloadanims", Cmd_ReloadAnims_f, CMD_FL_GAME|CMD_FL_CHEAT, "reloads animations" );
|
||||||
cmdSystem->AddCommand( "listAnims", Cmd_ListAnims_f, CMD_FL_GAME, "lists all animations" );
|
cmdSystem->AddCommand( "listAnims", Cmd_ListAnims_f, CMD_FL_GAME, "lists all animations" );
|
||||||
cmdSystem->AddCommand( "aasStats", Cmd_AASStats_f, CMD_FL_GAME, "shows AAS stats" );
|
cmdSystem->AddCommand( "aasStats", Cmd_AASStats_f, CMD_FL_GAME, "shows AAS stats" );
|
||||||
|
cmdSystem->AddCommand( "recastNavBuild", Cmd_RecastNavBuild_f, CMD_FL_GAME|CMD_FL_CHEAT, "builds Recast navmesh data for a map" );
|
||||||
cmdSystem->AddCommand( "testDamage", Cmd_TestDamage_f, CMD_FL_GAME|CMD_FL_CHEAT, "tests a damage def", idCmdSystem::ArgCompletion_Decl<DECL_ENTITYDEF> );
|
cmdSystem->AddCommand( "testDamage", Cmd_TestDamage_f, CMD_FL_GAME|CMD_FL_CHEAT, "tests a damage def", idCmdSystem::ArgCompletion_Decl<DECL_ENTITYDEF> );
|
||||||
cmdSystem->AddCommand( "weaponSplat", Cmd_WeaponSplat_f, CMD_FL_GAME|CMD_FL_CHEAT, "projects a blood splat on the player weapon" );
|
cmdSystem->AddCommand( "weaponSplat", Cmd_WeaponSplat_f, CMD_FL_GAME|CMD_FL_CHEAT, "projects a blood splat on the player weapon" );
|
||||||
cmdSystem->AddCommand( "saveSelected", Cmd_SaveSelected_f, CMD_FL_GAME|CMD_FL_CHEAT, "saves the selected entity to the .map file" );
|
cmdSystem->AddCommand( "saveSelected", Cmd_SaveSelected_f, CMD_FL_GAME|CMD_FL_CHEAT, "saves the selected entity to the .map file" );
|
||||||
|
|||||||
@@ -296,6 +296,7 @@ idCVar g_flushSave( "g_flushSave", "0", CVAR_GAME | CVAR_BOOL, "1 = don
|
|||||||
|
|
||||||
idCVar aas_test( "aas_test", "0", CVAR_GAME | CVAR_INTEGER, "" );
|
idCVar aas_test( "aas_test", "0", CVAR_GAME | CVAR_INTEGER, "" );
|
||||||
idCVar aas_showAreas( "aas_showAreas", "0", CVAR_GAME | CVAR_BOOL, "" );
|
idCVar aas_showAreas( "aas_showAreas", "0", CVAR_GAME | CVAR_BOOL, "" );
|
||||||
|
idCVar aas_showRecastNavMesh( "aas_showRecastNavMesh", "0", CVAR_GAME | CVAR_INTEGER, "0 = off, 1 = draw Recast navmesh, 2 = also draw dynamic blockers" );
|
||||||
idCVar aas_showPath( "aas_showPath", "0", CVAR_GAME | CVAR_INTEGER, "" );
|
idCVar aas_showPath( "aas_showPath", "0", CVAR_GAME | CVAR_INTEGER, "" );
|
||||||
idCVar aas_showFlyPath( "aas_showFlyPath", "0", CVAR_GAME | CVAR_INTEGER, "" );
|
idCVar aas_showFlyPath( "aas_showFlyPath", "0", CVAR_GAME | CVAR_INTEGER, "" );
|
||||||
idCVar aas_showWallEdges( "aas_showWallEdges", "0", CVAR_GAME | CVAR_BOOL, "" );
|
idCVar aas_showWallEdges( "aas_showWallEdges", "0", CVAR_GAME | CVAR_BOOL, "" );
|
||||||
|
|||||||
@@ -224,6 +224,7 @@ extern idCVar g_flushSave;
|
|||||||
|
|
||||||
extern idCVar aas_test;
|
extern idCVar aas_test;
|
||||||
extern idCVar aas_showAreas;
|
extern idCVar aas_showAreas;
|
||||||
|
extern idCVar aas_showRecastNavMesh;
|
||||||
extern idCVar aas_showPath;
|
extern idCVar aas_showPath;
|
||||||
extern idCVar aas_showFlyPath;
|
extern idCVar aas_showFlyPath;
|
||||||
extern idCVar aas_showWallEdges;
|
extern idCVar aas_showWallEdges;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup>
|
<ItemDefinitionGroup>
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>sound/vorbis/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>sound/vorbis/include;..\external\recastnavigation\Recast\Include;..\external\recastnavigation\Detour\Include;..\external\recastnavigation\DetourCrowd\Include;..\external\recastnavigation\DetourTileCache\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>__DOOM__;__DOOM_DLL__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>__DOOM__;__DOOM_DLL__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<PrecompiledHeader>
|
<PrecompiledHeader>
|
||||||
</PrecompiledHeader>
|
</PrecompiledHeader>
|
||||||
|
|||||||
@@ -19,4 +19,4 @@
|
|||||||
<Command>..\build\Win32\"$(Configuration)"\TypeInfo.exe</Command>
|
<Command>..\build\Win32\"$(Configuration)"\TypeInfo.exe</Command>
|
||||||
</PreBuildEvent>
|
</PreBuildEvent>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -711,6 +711,7 @@
|
|||||||
<ClInclude Include="tools\compilers\aas\AASFile.h" />
|
<ClInclude Include="tools\compilers\aas\AASFile.h" />
|
||||||
<ClInclude Include="tools\compilers\aas\AASFile_local.h" />
|
<ClInclude Include="tools\compilers\aas\AASFile_local.h" />
|
||||||
<ClInclude Include="tools\compilers\aas\AASFileManager.h" />
|
<ClInclude Include="tools\compilers\aas\AASFileManager.h" />
|
||||||
|
<ClInclude Include="tools\compilers\recast\RecastNavigation.h" />
|
||||||
<ClInclude Include="tools\compilers\aas\AASReach.h" />
|
<ClInclude Include="tools\compilers\aas\AASReach.h" />
|
||||||
<ClInclude Include="tools\compilers\aas\Brush.h" />
|
<ClInclude Include="tools\compilers\aas\Brush.h" />
|
||||||
<ClInclude Include="tools\compilers\aas\BrushBSP.h" />
|
<ClInclude Include="tools\compilers\aas\BrushBSP.h" />
|
||||||
@@ -2144,6 +2145,79 @@
|
|||||||
<ClCompile Include="tools\compilers\aas\AASFile_optimize.cpp" />
|
<ClCompile Include="tools\compilers\aas\AASFile_optimize.cpp" />
|
||||||
<ClCompile Include="tools\compilers\aas\AASFile_sample.cpp" />
|
<ClCompile Include="tools\compilers\aas\AASFile_sample.cpp" />
|
||||||
<ClCompile Include="tools\compilers\aas\AASFileManager.cpp" />
|
<ClCompile Include="tools\compilers\aas\AASFileManager.cpp" />
|
||||||
|
<ClCompile Include="tools\compilers\recast\RecastNavigation.cpp" />
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Detour\Source\DetourAlloc.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Detour\Source\DetourAssert.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Detour\Source\DetourCommon.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Detour\Source\DetourNavMesh.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Detour\Source\DetourNavMeshBuilder.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Detour\Source\DetourNavMeshQuery.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Detour\Source\DetourNode.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\DetourCrowd\Source\DetourCrowd.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\DetourCrowd\Source\DetourLocalBoundary.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\DetourCrowd\Source\DetourObstacleAvoidance.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\DetourCrowd\Source\DetourPathCorridor.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\DetourCrowd\Source\DetourPathQueue.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\DetourCrowd\Source\DetourProximityGrid.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\Recast.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastAlloc.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastArea.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastAssert.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastContour.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastFilter.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastLayers.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastMesh.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastMeshDetail.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastRasterization.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastRegion.cpp">
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="tools\compilers\aas\AASReach.cpp" />
|
<ClCompile Include="tools\compilers\aas\AASReach.cpp" />
|
||||||
<ClCompile Include="tools\compilers\aas\Brush.cpp" />
|
<ClCompile Include="tools\compilers\aas\Brush.cpp" />
|
||||||
<ClCompile Include="tools\compilers\aas\BrushBSP.cpp" />
|
<ClCompile Include="tools\compilers\aas\BrushBSP.cpp" />
|
||||||
|
|||||||
@@ -67,6 +67,9 @@
|
|||||||
<Filter Include="Tools\Compilers\AAS">
|
<Filter Include="Tools\Compilers\AAS">
|
||||||
<UniqueIdentifier>{07d88fa0-f779-44b7-87b1-2c0d8214aa3f}</UniqueIdentifier>
|
<UniqueIdentifier>{07d88fa0-f779-44b7-87b1-2c0d8214aa3f}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter Include="Tools\Compilers\Recast">
|
||||||
|
<UniqueIdentifier>{f756f167-a1f5-4057-a88b-acaa61d7d746}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
<Filter Include="Tools\Compilers\DMap">
|
<Filter Include="Tools\Compilers\DMap">
|
||||||
<UniqueIdentifier>{6984ce76-c3bf-4003-97cf-64b50f951fe8}</UniqueIdentifier>
|
<UniqueIdentifier>{6984ce76-c3bf-4003-97cf-64b50f951fe8}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
@@ -118,6 +121,15 @@
|
|||||||
<Filter Include="Tools\Compilers\NN">
|
<Filter Include="Tools\Compilers\NN">
|
||||||
<UniqueIdentifier>{17e28816-27c1-473b-b124-b9c1bc9427aa}</UniqueIdentifier>
|
<UniqueIdentifier>{17e28816-27c1-473b-b124-b9c1bc9427aa}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter Include="External">
|
||||||
|
<UniqueIdentifier>{c9064943-6813-48eb-b813-009fd9e43815}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="External\Recast">
|
||||||
|
<UniqueIdentifier>{14f2f6c0-6253-4149-909f-107b4e69f1aa}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="External\Detour">
|
||||||
|
<UniqueIdentifier>{bc492f36-f168-4265-8299-e710f177d9fe}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="cm\CollisionModel.h">
|
<ClInclude Include="cm\CollisionModel.h">
|
||||||
@@ -471,6 +483,9 @@
|
|||||||
<ClInclude Include="tools\compilers\aas\AASFileManager.h">
|
<ClInclude Include="tools\compilers\aas\AASFileManager.h">
|
||||||
<Filter>Tools\Compilers\AAS</Filter>
|
<Filter>Tools\Compilers\AAS</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="tools\compilers\recast\RecastNavigation.h">
|
||||||
|
<Filter>Tools\Compilers\Recast</Filter>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="tools\compilers\aas\AASReach.h">
|
<ClInclude Include="tools\compilers\aas\AASReach.h">
|
||||||
<Filter>Tools\Compilers\AAS</Filter>
|
<Filter>Tools\Compilers\AAS</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
@@ -1115,6 +1130,9 @@
|
|||||||
<ClCompile Include="tools\compilers\aas\AASFileManager.cpp">
|
<ClCompile Include="tools\compilers\aas\AASFileManager.cpp">
|
||||||
<Filter>Tools\Compilers\AAS</Filter>
|
<Filter>Tools\Compilers\AAS</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="tools\compilers\recast\RecastNavigation.cpp">
|
||||||
|
<Filter>Tools\Compilers\Recast</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="tools\compilers\aas\AASReach.cpp">
|
<ClCompile Include="tools\compilers\aas\AASReach.cpp">
|
||||||
<Filter>Tools\Compilers\AAS</Filter>
|
<Filter>Tools\Compilers\AAS</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
@@ -1718,6 +1736,78 @@
|
|||||||
<ClCompile Include="tools\radiant\ModelViewDock.cpp">
|
<ClCompile Include="tools\radiant\ModelViewDock.cpp">
|
||||||
<Filter>Tools\Radiant</Filter>
|
<Filter>Tools\Radiant</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\Recast.cpp">
|
||||||
|
<Filter>External\Recast</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastAlloc.cpp">
|
||||||
|
<Filter>External\Recast</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastArea.cpp">
|
||||||
|
<Filter>External\Recast</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastAssert.cpp">
|
||||||
|
<Filter>External\Recast</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastContour.cpp">
|
||||||
|
<Filter>External\Recast</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastFilter.cpp">
|
||||||
|
<Filter>External\Recast</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastLayers.cpp">
|
||||||
|
<Filter>External\Recast</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastMesh.cpp">
|
||||||
|
<Filter>External\Recast</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastMeshDetail.cpp">
|
||||||
|
<Filter>External\Recast</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastRasterization.cpp">
|
||||||
|
<Filter>External\Recast</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Recast\Source\RecastRegion.cpp">
|
||||||
|
<Filter>External\Recast</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Detour\Source\DetourAlloc.cpp">
|
||||||
|
<Filter>External\Detour</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Detour\Source\DetourAssert.cpp">
|
||||||
|
<Filter>External\Detour</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Detour\Source\DetourCommon.cpp">
|
||||||
|
<Filter>External\Detour</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\DetourCrowd\Source\DetourCrowd.cpp">
|
||||||
|
<Filter>External\Detour</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\DetourCrowd\Source\DetourLocalBoundary.cpp">
|
||||||
|
<Filter>External\Detour</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Detour\Source\DetourNavMesh.cpp">
|
||||||
|
<Filter>External\Detour</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Detour\Source\DetourNavMeshBuilder.cpp">
|
||||||
|
<Filter>External\Detour</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Detour\Source\DetourNavMeshQuery.cpp">
|
||||||
|
<Filter>External\Detour</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\Detour\Source\DetourNode.cpp">
|
||||||
|
<Filter>External\Detour</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\DetourCrowd\Source\DetourObstacleAvoidance.cpp">
|
||||||
|
<Filter>External\Detour</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\DetourCrowd\Source\DetourPathCorridor.cpp">
|
||||||
|
<Filter>External\Detour</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\DetourCrowd\Source\DetourPathQueue.cpp">
|
||||||
|
<Filter>External\Detour</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\external\recastnavigation\DetourCrowd\Source\DetourProximityGrid.cpp">
|
||||||
|
<Filter>External\Detour</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="openal\idal.py">
|
<None Include="openal\idal.py">
|
||||||
@@ -2441,4 +2531,4 @@
|
|||||||
<Filter>Sys\RC\res</Filter>
|
<Filter>Sys\RC\res</Filter>
|
||||||
</Image>
|
</Image>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -15,9 +15,9 @@
|
|||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<LocalDebuggerCommand>D:\projects\Doom3\Doom3.exe</LocalDebuggerCommand>
|
<LocalDebuggerCommand>D:\projects\Doom3\Doom3.exe</LocalDebuggerCommand>
|
||||||
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
||||||
<LocalDebuggerCommandArguments>+set r_fullscreen 0 +set r_mode 9 +set sv_pure 0 </LocalDebuggerCommandArguments>
|
<LocalDebuggerCommandArguments>+set r_fullscreen 0 +set r_mode 9 +set sv_pure 0</LocalDebuggerCommandArguments>
|
||||||
<LocalDebuggerWorkingDirectory>D:\projects\Doom3</LocalDebuggerWorkingDirectory>
|
<LocalDebuggerWorkingDirectory>D:\projects\Doom3</LocalDebuggerWorkingDirectory>
|
||||||
<LocalDebuggerCommandArgumentsHistory>+set r_fullscreen 0 +set r_mode 9 +set sv_pure 0 +set fs_game e3|+set r_fullscreen 0 +set r_mode 11 +set sv_pure 0 +set fs_game e3|+set r_fullscreen 0 +set r_mode 11 +set sv_pure 0 +set fs_game e3|+set r_fullscreen 0 +set r_mode 11 +set sv_pure 0 |+set r_fullscreen 0 +set r_mode 9 +set sv_pure 0 |</LocalDebuggerCommandArgumentsHistory>
|
<LocalDebuggerCommandArgumentsHistory>+set r_fullscreen 0 +set r_mode 11 +set sv_pure 0 +set fs_game e3|+set r_fullscreen 0 +set r_mode 11 +set sv_pure 0 |+set r_fullscreen 0 +set r_mode 9 +set sv_pure 0 |+set r_fullscreen 0 +set r_mode 9 +set sv_pure 0 +set fs_game rage|+set r_fullscreen 0 +set r_mode 9 +set sv_pure 0|</LocalDebuggerCommandArgumentsHistory>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Q4 Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Q4 Debug|x64'">
|
||||||
<LocalDebuggerCommand>D:\projects\Doom3\Quake4.exe</LocalDebuggerCommand>
|
<LocalDebuggerCommand>D:\projects\Doom3\Quake4.exe</LocalDebuggerCommand>
|
||||||
|
|||||||
@@ -3566,6 +3566,7 @@ void idCommonLocal::LoadGameDLL( void ) {
|
|||||||
gameImport.uiManager = ::uiManager;
|
gameImport.uiManager = ::uiManager;
|
||||||
gameImport.declManager = ::declManager;
|
gameImport.declManager = ::declManager;
|
||||||
gameImport.AASFileManager = ::AASFileManager;
|
gameImport.AASFileManager = ::AASFileManager;
|
||||||
|
gameImport.RecastNavigationManager = ::RecastNavigationManager;
|
||||||
gameImport.collisionModelManager = ::collisionModelManager;
|
gameImport.collisionModelManager = ::collisionModelManager;
|
||||||
#ifdef QUAKE4
|
#ifdef QUAKE4
|
||||||
gameImport.session = ::session;
|
gameImport.session = ::session;
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ const int MAX_EXPRESSION_REGISTERS = 4096;
|
|||||||
// AAS files and manager
|
// AAS files and manager
|
||||||
#include "../tools/compilers/aas/AASFile.h"
|
#include "../tools/compilers/aas/AASFile.h"
|
||||||
#include "../tools/compilers/aas/AASFileManager.h"
|
#include "../tools/compilers/aas/AASFileManager.h"
|
||||||
|
#include "../tools/compilers/recast/RecastNavigation.h"
|
||||||
|
|
||||||
#if defined(QUAKE4)
|
#if defined(QUAKE4)
|
||||||
#include "../../quake4/bse/BSEInterface.h"
|
#include "../../quake4/bse/BSEInterface.h"
|
||||||
|
|||||||
@@ -5355,7 +5355,7 @@ void RayGen()
|
|||||||
}
|
}
|
||||||
|
|
||||||
float outputAo = isSkeletal ? lerp(ao, 1.0, 0.55) : ao;
|
float outputAo = isSkeletal ? lerp(ao, 1.0, 0.55) : ao;
|
||||||
finalColor *= clamp(outputAo + 0.6, 0.0, 1.0);
|
finalColor *= clamp(outputAo + 0.3, 0.0, 1.0);
|
||||||
|
|
||||||
// Volumetric light scattering is radiance in the camera ray, not surface
|
// Volumetric light scattering is radiance in the camera ray, not surface
|
||||||
// reflectance, so add it after surface albedo/specular composition. Because
|
// reflectance, so add it after surface albedo/specular composition. Because
|
||||||
|
|||||||
@@ -1507,7 +1507,7 @@ struct GLState
|
|||||||
uint32_t frameGenerationMultiplier = 0;
|
uint32_t frameGenerationMultiplier = 0;
|
||||||
uint32_t pathTracingSamplesPerPixel = 1;
|
uint32_t pathTracingSamplesPerPixel = 1;
|
||||||
uint32_t pathTracingFallbackSamplesPerPixel = 2;
|
uint32_t pathTracingFallbackSamplesPerPixel = 2;
|
||||||
uint32_t pathTracingMaxBounces = 2;
|
uint32_t pathTracingMaxBounces = 3;
|
||||||
glScreenSpaceDecal_t screenSpaceDecals[QD3D12_MaxScreenSpaceDecals] = {};
|
glScreenSpaceDecal_t screenSpaceDecals[QD3D12_MaxScreenSpaceDecals] = {};
|
||||||
uint32_t screenSpaceDecalCount = 0;
|
uint32_t screenSpaceDecalCount = 0;
|
||||||
ComPtr<ID3D12Resource> screenSpaceDecalBuffer;
|
ComPtr<ID3D12Resource> screenSpaceDecalBuffer;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,66 @@
|
|||||||
|
/*
|
||||||
|
===========================================================================
|
||||||
|
|
||||||
|
IceTech GPL Source Code
|
||||||
|
Copyright (C) 2026 Justin Marshall
|
||||||
|
|
||||||
|
===========================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __RECAST_NAVIGATION_H__
|
||||||
|
#define __RECAST_NAVIGATION_H__
|
||||||
|
|
||||||
|
typedef int recastNavHandle_t;
|
||||||
|
typedef int recastObstacleHandle_t;
|
||||||
|
|
||||||
|
static const recastNavHandle_t RECAST_NAV_HANDLE_INVALID = -1;
|
||||||
|
static const int MAX_RECAST_PATH_AREAS = 256;
|
||||||
|
|
||||||
|
typedef struct recastPath_s {
|
||||||
|
idVec3 moveGoal;
|
||||||
|
idVec3 secondaryGoal;
|
||||||
|
int moveAreaNum;
|
||||||
|
int travelTime;
|
||||||
|
} recastPath_t;
|
||||||
|
|
||||||
|
class idRecastNavigationManager {
|
||||||
|
public:
|
||||||
|
virtual ~idRecastNavigationManager( void ) {}
|
||||||
|
|
||||||
|
virtual recastNavHandle_t Alloc( void ) = 0;
|
||||||
|
virtual void Free( recastNavHandle_t handle ) = 0;
|
||||||
|
|
||||||
|
virtual bool Load( recastNavHandle_t handle, const char *aasName, const char *fileName, unsigned int mapFileCRC ) = 0;
|
||||||
|
virtual bool BuildMapFile( const char *mapName, const char *aasType ) = 0;
|
||||||
|
virtual void Stats( recastNavHandle_t handle ) const = 0;
|
||||||
|
virtual void DebugDraw( recastNavHandle_t handle, idRenderWorld *renderWorld, int drawMode, int lifetime ) const = 0;
|
||||||
|
|
||||||
|
virtual bool IsLoaded( recastNavHandle_t handle ) const = 0;
|
||||||
|
virtual const char * GetName( recastNavHandle_t handle ) const = 0;
|
||||||
|
virtual int NumPolys( recastNavHandle_t handle ) const = 0;
|
||||||
|
virtual const idAASSettings *GetSettings( recastNavHandle_t handle ) const = 0;
|
||||||
|
|
||||||
|
virtual int PointAreaNum( recastNavHandle_t handle, const idVec3 &origin ) const = 0;
|
||||||
|
virtual int PointReachableAreaNum( recastNavHandle_t handle, const idVec3 &origin, const idBounds &searchBounds, const int areaFlags ) const = 0;
|
||||||
|
virtual int BoundsReachableAreaNum( recastNavHandle_t handle, const idBounds &bounds, const int areaFlags ) const = 0;
|
||||||
|
virtual void PushPointIntoAreaNum( recastNavHandle_t handle, int areaNum, idVec3 &origin ) const = 0;
|
||||||
|
virtual idVec3 AreaCenter( recastNavHandle_t handle, int areaNum ) const = 0;
|
||||||
|
virtual int AreaFlags( recastNavHandle_t handle, int areaNum ) const = 0;
|
||||||
|
virtual int AreaTravelFlags( recastNavHandle_t handle, int areaNum ) const = 0;
|
||||||
|
virtual bool Trace( recastNavHandle_t handle, aasTrace_t &trace, const idVec3 &start, const idVec3 &end ) const = 0;
|
||||||
|
|
||||||
|
virtual bool SetAreaState( recastNavHandle_t handle, const idBounds &bounds, const int areaContents, bool disabled ) = 0;
|
||||||
|
virtual recastObstacleHandle_t AddObstacle( recastNavHandle_t handle, const idBounds &bounds ) = 0;
|
||||||
|
virtual void RemoveObstacle( recastNavHandle_t handle, const recastObstacleHandle_t obstacleHandle ) = 0;
|
||||||
|
virtual void RemoveAllObstacles( recastNavHandle_t handle ) = 0;
|
||||||
|
|
||||||
|
virtual int TravelTimeToGoalArea( recastNavHandle_t handle, int areaNum, const idVec3 &origin, int goalAreaNum, int travelFlags ) const = 0;
|
||||||
|
virtual bool RouteToGoalArea( recastNavHandle_t handle, int areaNum, const idVec3 origin, int goalAreaNum, int travelFlags, recastPath_t &route ) const = 0;
|
||||||
|
virtual bool PathToGoal( recastNavHandle_t handle, recastPath_t &path, int areaNum, const idVec3 &origin, int goalAreaNum, const idVec3 &goalOrigin, int travelFlags ) const = 0;
|
||||||
|
virtual bool PathValid( recastNavHandle_t handle, int areaNum, const idVec3 &origin, int goalAreaNum, const idVec3 &goalOrigin, int travelFlags, idVec3 &endPos, int &endAreaNum ) const = 0;
|
||||||
|
virtual bool PathAreaList( recastNavHandle_t handle, int areaNum, const idVec3 &origin, int goalAreaNum, const idVec3 &goalOrigin, int travelFlags, int *areas, int &numAreas, int maxAreas ) const = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern idRecastNavigationManager *RecastNavigationManager;
|
||||||
|
|
||||||
|
#endif /* !__RECAST_NAVIGATION_H__ */
|
||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user