mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-18 21:26:12 +00:00
Merge
This commit is contained in:
commit
5578338fab
9 changed files with 55 additions and 20 deletions
|
@ -153,8 +153,12 @@ bool UseEscapeDuringLoading = USE_ESCAPE_DURING_LOADING;
|
||||||
#define ENTITY_TEXTURE_NORMAL_LEVEL 1
|
#define ENTITY_TEXTURE_NORMAL_LEVEL 1
|
||||||
#define ENTITY_TEXTURE_HIGH_LEVEL 0
|
#define ENTITY_TEXTURE_HIGH_LEVEL 0
|
||||||
// Size in MB of the cache for entity texturing.
|
// Size in MB of the cache for entity texturing.
|
||||||
#define ENTITY_TEXTURE_NORMAL_MEMORY 10
|
#define ENTITY_TEXTURE_NORMAL_MEMORY 40
|
||||||
#define ENTITY_TEXTURE_HIGH_MEMORY 40
|
#define ENTITY_TEXTURE_HIGH_MEMORY 160
|
||||||
|
// Size in KB of max upload per frame
|
||||||
|
#define ENTITY_TEXTURE_LOW_MAXUP 64
|
||||||
|
#define ENTITY_TEXTURE_NORMAL_MAXUP 128
|
||||||
|
#define ENTITY_TEXTURE_HIGH_MAXUP 256
|
||||||
|
|
||||||
// Don't Modify, set true for debug purpose only
|
// Don't Modify, set true for debug purpose only
|
||||||
const bool DBG_DisablePreloadShape= false;
|
const bool DBG_DisablePreloadShape= false;
|
||||||
|
@ -885,8 +889,10 @@ void initMainLoop()
|
||||||
{
|
{
|
||||||
// setup "v2 texture" (or 512*512)
|
// setup "v2 texture" (or 512*512)
|
||||||
Driver->setupAsyncTextureLod(ENTITY_TEXTURE_COARSE_LEVEL, ENTITY_TEXTURE_HIGH_LEVEL);
|
Driver->setupAsyncTextureLod(ENTITY_TEXTURE_COARSE_LEVEL, ENTITY_TEXTURE_HIGH_LEVEL);
|
||||||
// Allow a big cache for them (should be on 128 Mo card only)
|
// Allow a big cache for them (should be on 512 Mo card only)
|
||||||
Driver->setupMaxTotalAsyncTextureSize(ENTITY_TEXTURE_HIGH_MEMORY*1024*1024);
|
Driver->setupMaxTotalAsyncTextureSize(ENTITY_TEXTURE_HIGH_MEMORY*1024*1024);
|
||||||
|
// Allow high upload
|
||||||
|
Driver->setupAsyncTextureMaxUploadPerFrame(ENTITY_TEXTURE_HIGH_MAXUP*1024);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -894,6 +900,8 @@ void initMainLoop()
|
||||||
Driver->setupAsyncTextureLod(ENTITY_TEXTURE_COARSE_LEVEL, ENTITY_TEXTURE_NORMAL_LEVEL);
|
Driver->setupAsyncTextureLod(ENTITY_TEXTURE_COARSE_LEVEL, ENTITY_TEXTURE_NORMAL_LEVEL);
|
||||||
// Allow a big cache for them
|
// Allow a big cache for them
|
||||||
Driver->setupMaxTotalAsyncTextureSize(ENTITY_TEXTURE_NORMAL_MEMORY*1024*1024);
|
Driver->setupMaxTotalAsyncTextureSize(ENTITY_TEXTURE_NORMAL_MEMORY*1024*1024);
|
||||||
|
// Allow normal upload
|
||||||
|
Driver->setupAsyncTextureMaxUploadPerFrame(ENTITY_TEXTURE_NORMAL_MAXUP*1024);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -904,6 +912,8 @@ void initMainLoop()
|
||||||
Driver->setupAsyncTextureLod(ENTITY_TEXTURE_COARSE_LEVEL-1, ENTITY_TEXTURE_NORMAL_LEVEL-1);
|
Driver->setupAsyncTextureLod(ENTITY_TEXTURE_COARSE_LEVEL-1, ENTITY_TEXTURE_NORMAL_LEVEL-1);
|
||||||
// Allow a big cache for them
|
// Allow a big cache for them
|
||||||
Driver->setupMaxTotalAsyncTextureSize(ENTITY_TEXTURE_NORMAL_MEMORY*1024*1024);
|
Driver->setupMaxTotalAsyncTextureSize(ENTITY_TEXTURE_NORMAL_MEMORY*1024*1024);
|
||||||
|
// Allow low upload
|
||||||
|
Driver->setupAsyncTextureMaxUploadPerFrame(ENTITY_TEXTURE_LOW_MAXUP*1024);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -188,7 +188,7 @@ protected:
|
||||||
/// the harvestable Mps (4 per entity)
|
/// the harvestable Mps (4 per entity)
|
||||||
std::vector< CCreatureRawMaterial> _Mps;
|
std::vector< CCreatureRawMaterial> _Mps;
|
||||||
|
|
||||||
/// pointer on the harverting character
|
/// pointer on the harvesting character
|
||||||
TDataSetRow _HarvesterRowId;
|
TDataSetRow _HarvesterRowId;
|
||||||
|
|
||||||
/// skill used to harvest this creature
|
/// skill used to harvest this creature
|
||||||
|
|
|
@ -1509,7 +1509,7 @@ NLMISC_DYNVARIABLE( uint32, RyzomSeason, "Get season number (0=Spring)" )
|
||||||
|
|
||||||
#ifdef DEPOSIT_MAP_GENERATION
|
#ifdef DEPOSIT_MAP_GENERATION
|
||||||
|
|
||||||
#include "server_share/bmp4image.h"
|
#include "game_share/bmp4image.h"
|
||||||
#include <nel/misc/words_dictionary.h>
|
#include <nel/misc/words_dictionary.h>
|
||||||
|
|
||||||
typedef std::map< std::string, pair< pair< float, float >, uint > > CSUMap;
|
typedef std::map< std::string, pair< pair< float, float >, uint > > CSUMap;
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
#include "egs_mirror.h"
|
#include "egs_mirror.h"
|
||||||
#include "area_geometry.h"
|
#include "area_geometry.h"
|
||||||
#include "server_share/bmp4image.h"
|
#include "game_share/bmp4image.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -14167,7 +14167,7 @@ void CCharacter::sendCloseTempInventoryImpulsion()
|
||||||
BOMB_IF(isRecursing,"CCharacter::sendCloseTempInventoryImpulsion is recursing!",return); // **** Temp Fix 2/4 **** //
|
BOMB_IF(isRecursing,"CCharacter::sendCloseTempInventoryImpulsion is recursing!",return); // **** Temp Fix 2/4 **** //
|
||||||
isRecursing= true; // **** Temp Fix 3/4 **** //
|
isRecursing= true; // **** Temp Fix 3/4 **** //
|
||||||
|
|
||||||
getAllTempInventoryItems();
|
getAllTempInventoryItems(false);
|
||||||
|
|
||||||
CMessage msgout( "IMPULSION_ID" );
|
CMessage msgout( "IMPULSION_ID" );
|
||||||
msgout.serial( _Id );
|
msgout.serial( _Id );
|
||||||
|
|
|
@ -2623,13 +2623,13 @@ public:
|
||||||
CGameItemPtr createItemInInventoryFreeSlot(INVENTORIES::TInventory invId, uint16 obtainedQuality, uint32 quantity, const NLMISC::CSheetId & obtainedItem, const NLMISC::CEntityId & creatorId = NLMISC::CEntityId::Unknown, const std::string * phraseId = NULL);
|
CGameItemPtr createItemInInventoryFreeSlot(INVENTORIES::TInventory invId, uint16 obtainedQuality, uint32 quantity, const NLMISC::CSheetId & obtainedItem, const NLMISC::CEntityId & creatorId = NLMISC::CEntityId::Unknown, const std::string * phraseId = NULL);
|
||||||
|
|
||||||
/// action on an item in the temp inventory (move it to bag)
|
/// action on an item in the temp inventory (move it to bag)
|
||||||
void itemTempInventoryToBag(uint32 scrSlot);
|
void itemTempInventoryToBag(uint32 scrSlot, bool sendCloseTempImpulsion = true);
|
||||||
|
|
||||||
/// clear temp inventory
|
/// clear temp inventory
|
||||||
void clearTempInventory();
|
void clearTempInventory();
|
||||||
|
|
||||||
/// get all items in temp inventory
|
/// get all items in temp inventory
|
||||||
void getAllTempInventoryItems();
|
void getAllTempInventoryItems(bool sendCloseTempImpulsion = true);
|
||||||
|
|
||||||
/// return true if temp inventory is empty
|
/// return true if temp inventory is empty
|
||||||
bool tempInventoryEmpty();
|
bool tempInventoryEmpty();
|
||||||
|
|
|
@ -1841,7 +1841,7 @@ CGameItemPtr CCharacter::createItemInInventoryFreeSlot(INVENTORIES::TInventory i
|
||||||
}
|
}
|
||||||
|
|
||||||
// ****************************************************************************
|
// ****************************************************************************
|
||||||
void CCharacter::itemTempInventoryToBag(uint32 srcSlot)
|
void CCharacter::itemTempInventoryToBag(uint32 srcSlot, bool sendCloseTempImpulsion)
|
||||||
{
|
{
|
||||||
H_AUTO(CCharacter_itemTempInventoryToBag);
|
H_AUTO(CCharacter_itemTempInventoryToBag);
|
||||||
|
|
||||||
|
@ -2015,7 +2015,7 @@ void CCharacter::itemTempInventoryToBag(uint32 srcSlot)
|
||||||
CWorldInstances::instance().msgToAIInstance(getInstanceNumber(), msg);
|
CWorldInstances::instance().msgToAIInstance(getInstanceNumber(), msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
endHarvest();
|
endHarvest(sendCloseTempImpulsion);
|
||||||
|
|
||||||
leaveTempInventoryMode();
|
leaveTempInventoryMode();
|
||||||
}
|
}
|
||||||
|
@ -2108,12 +2108,12 @@ void CCharacter::itemTempInventoryToBag(uint32 srcSlot)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ****************************************************************************
|
// ****************************************************************************
|
||||||
void CCharacter::getAllTempInventoryItems()
|
void CCharacter::getAllTempInventoryItems(bool sendCloseTempImpulsion)
|
||||||
{
|
{
|
||||||
H_AUTO(CCharacter_getAllTempInventoryItems);
|
H_AUTO(CCharacter_getAllTempInventoryItems);
|
||||||
|
|
||||||
for (uint i = 0 ; i < INVENTORIES::NbTempInvSlots; ++i)
|
for (uint i = 0 ; i < INVENTORIES::NbTempInvSlots; ++i)
|
||||||
itemTempInventoryToBag(i);
|
itemTempInventoryToBag(i, sendCloseTempImpulsion);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ****************************************************************************
|
// ****************************************************************************
|
||||||
|
|
|
@ -85,7 +85,7 @@ CScreenshotIslands::CScreenshotIslands()
|
||||||
void CScreenshotIslands::init()
|
void CScreenshotIslands::init()
|
||||||
{
|
{
|
||||||
// Create a driver
|
// Create a driver
|
||||||
driver = UDriver::createDriver();
|
driver = UDriver::createDriver(0, true);
|
||||||
nlassert(driver);
|
nlassert(driver);
|
||||||
|
|
||||||
sceneMaterial = driver->createMaterial();
|
sceneMaterial = driver->createMaterial();
|
||||||
|
@ -99,8 +99,6 @@ void CScreenshotIslands::init()
|
||||||
CConfigFile cf;
|
CConfigFile cf;
|
||||||
cf.load("island_screenshots.cfg");
|
cf.load("island_screenshots.cfg");
|
||||||
|
|
||||||
CPath::remapExtension("dds", "tga", true);
|
|
||||||
|
|
||||||
// get the value of searchPaths
|
// get the value of searchPaths
|
||||||
CConfigFile::CVar * searchPaths = cf.getVarPtr("SearchPaths");
|
CConfigFile::CVar * searchPaths = cf.getVarPtr("SearchPaths");
|
||||||
if(searchPaths)
|
if(searchPaths)
|
||||||
|
@ -110,6 +108,8 @@ void CScreenshotIslands::init()
|
||||||
CPath::addSearchPath(searchPaths->asString(i).c_str(), true, false);
|
CPath::addSearchPath(searchPaths->asString(i).c_str(), true, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
CPath::remapExtension("dds", "tga", true);
|
||||||
|
CPath::remapExtension("dds", "png", true);
|
||||||
|
|
||||||
// get the scenario entry points file
|
// get the scenario entry points file
|
||||||
CConfigFile::CVar * epFile = cf.getVarPtr("CompleteIslandsFile");
|
CConfigFile::CVar * epFile = cf.getVarPtr("CompleteIslandsFile");
|
||||||
|
@ -590,7 +590,7 @@ void CScreenshotIslands::buildScreenshots()
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
void CScreenshotIslands::writeProximityBufferToTgaFile(const std::string& fileName,const TBuffer& buffer,uint32 scanWidth,uint32 scanHeight)
|
void CScreenshotIslands::writeProximityBufferToTgaFile(const std::string& fileName,const TBuffer& buffer,uint32 scanWidth,uint32 scanHeight)
|
||||||
{
|
{
|
||||||
uint imageWidth = (scanWidth+15)&~15;
|
uint imageWidth = (scanWidth); // (scanWidth+15)&~15;
|
||||||
uint imageHeight = (scanHeight);
|
uint imageHeight = (scanHeight);
|
||||||
|
|
||||||
CTGAImageGrey tgaImage;
|
CTGAImageGrey tgaImage;
|
||||||
|
@ -1348,11 +1348,13 @@ void CScreenshotIslands::buildIslandsTextures()
|
||||||
int maxLoop = 6;
|
int maxLoop = 6;
|
||||||
|
|
||||||
// Create the window with config file values
|
// Create the window with config file values
|
||||||
driver->setDisplay(UDriver::CMode(1024, 768, 32, false));
|
driver->setDisplay(UDriver::CMode(512, 512, 32, true));
|
||||||
|
|
||||||
// Create a scene
|
// Create a scene
|
||||||
UScene * scene = driver->createScene(true);
|
UScene * scene = driver->createScene(true);
|
||||||
scene->animate(CTime::ticksToSecond(CTime::getPerformanceTime()));
|
scene->animate(CTime::ticksToSecond(CTime::getPerformanceTime()));
|
||||||
|
scene->setMaxSkeletonsInNotCLodForm(1000000);
|
||||||
|
scene->setPolygonBalancingMode(UScene::PolygonBalancingOff);
|
||||||
|
|
||||||
// Create a camera
|
// Create a camera
|
||||||
UCamera camera = scene->getCam();
|
UCamera camera = scene->getCam();
|
||||||
|
@ -1360,6 +1362,7 @@ void CScreenshotIslands::buildIslandsTextures()
|
||||||
|
|
||||||
// Create and load landscape
|
// Create and load landscape
|
||||||
ULandscape * landscape = scene->createLandscape();
|
ULandscape * landscape = scene->createLandscape();
|
||||||
|
landscape->setThreshold(0.0005);
|
||||||
if(_InverseZTest)
|
if(_InverseZTest)
|
||||||
{
|
{
|
||||||
landscape->setZFunc(UMaterial::greaterequal);
|
landscape->setZFunc(UMaterial::greaterequal);
|
||||||
|
@ -1394,6 +1397,7 @@ void CScreenshotIslands::buildIslandsTextures()
|
||||||
string coarseMeshWithoutExt = CFile::getFilenameWithoutExtension(coarseMeshFile);
|
string coarseMeshWithoutExt = CFile::getFilenameWithoutExtension(coarseMeshFile);
|
||||||
string coarseMeshExt = CFile::getExtension(coarseMeshFile);
|
string coarseMeshExt = CFile::getExtension(coarseMeshFile);
|
||||||
coarseMeshFile = coarseMeshWithoutExt + seasonSuffix + "." + coarseMeshExt;
|
coarseMeshFile = coarseMeshWithoutExt + seasonSuffix + "." + coarseMeshExt;
|
||||||
|
nldebug("Coarse mesh texture: '%s'", coarseMeshFile.c_str());
|
||||||
scene->setCoarseMeshManagerTexture(coarseMeshFile.c_str());
|
scene->setCoarseMeshManagerTexture(coarseMeshFile.c_str());
|
||||||
|
|
||||||
// Load the landscape
|
// Load the landscape
|
||||||
|
@ -1468,6 +1472,7 @@ void CScreenshotIslands::buildIslandsTextures()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
scene->animate(CTime::ticksToSecond(CTime::getPerformanceTime()));
|
||||||
|
|
||||||
// Clear all buffers
|
// Clear all buffers
|
||||||
driver->clearBuffers(_BackColor);
|
driver->clearBuffers(_BackColor);
|
||||||
|
@ -1535,18 +1540,37 @@ void CScreenshotIslands::buildIslandsTextures()
|
||||||
CIFile proxFS(proxFileName.c_str());
|
CIFile proxFS(proxFileName.c_str());
|
||||||
proxBitmap.load(proxFS);
|
proxBitmap.load(proxFS);
|
||||||
|
|
||||||
|
|
||||||
// resize proximity bitmap
|
// resize proximity bitmap
|
||||||
CBitmap tempBitmap;
|
CBitmap tempBitmap;
|
||||||
int newWidth = islandBitmap.getWidth();
|
int newWidth = islandBitmap.getWidth();
|
||||||
int newHeight = islandBitmap.getHeight();
|
int newHeight = islandBitmap.getHeight();
|
||||||
tempBitmap.resize(newWidth, newHeight, islandBitmap.PixelFormat);
|
tempBitmap.resize(newWidth, newHeight, islandBitmap.PixelFormat);
|
||||||
// blit src bitmap
|
// blit src bitmap
|
||||||
tempBitmap.blit(proxBitmap, 0, 0, newWidth, newHeight, 0, 0);
|
//tempBitmap.blit(proxBitmap, 0, 0, newWidth, newHeight, 0, 0);
|
||||||
|
{
|
||||||
|
const uint8 *prox = &(proxBitmap.getPixels(0)[0]);
|
||||||
|
uint8 *temp = &(tempBitmap.getPixels(0)[0]);
|
||||||
|
for (uint y = 0; y < newHeight; ++y)
|
||||||
|
for (uint x = 0; x < newWidth; ++x)
|
||||||
|
{
|
||||||
|
uint ys = (y * proxBitmap.getHeight()) / newHeight;
|
||||||
|
uint xs = (x * proxBitmap.getWidth()) / newWidth;
|
||||||
|
uint addr = ((y * newWidth) + x) * 4;
|
||||||
|
uint addrs = ((ys * proxBitmap.getWidth()) + xs) * 4;
|
||||||
|
temp[addr] = prox[addrs];
|
||||||
|
temp[addr+1] = prox[addrs+1];
|
||||||
|
temp[addr+2] = prox[addrs+2];
|
||||||
|
temp[addr+3] = prox[addrs+3];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// swap them
|
// swap them
|
||||||
proxBitmap.resize(newWidth, newHeight, proxBitmap.PixelFormat);
|
proxBitmap.resize(newWidth, newHeight, proxBitmap.PixelFormat);
|
||||||
proxBitmap.swap(tempBitmap);
|
proxBitmap.swap(tempBitmap);
|
||||||
|
|
||||||
|
//proxBitmap.resample(newWidth, newHeight);
|
||||||
|
|
||||||
|
|
||||||
// create final bitmap
|
// create final bitmap
|
||||||
CBitmap bitmapDest;
|
CBitmap bitmapDest;
|
||||||
|
@ -2081,7 +2105,7 @@ void CProximityMapBuffer::_prepareBufferForZoneProximityMap(const CProximityZone
|
||||||
{
|
{
|
||||||
zoneBuffer[offset]= InteriorValue;
|
zoneBuffer[offset]= InteriorValue;
|
||||||
|
|
||||||
if(offset-zoneWidth>0 && zoneBuffer[offset-zoneWidth]==(TBufferEntry)~0u)
|
if(offset>zoneWidth && zoneBuffer[offset-zoneWidth]==(TBufferEntry)~0u)
|
||||||
{
|
{
|
||||||
zoneBuffer[offset-zoneWidth] = ValueBorder;
|
zoneBuffer[offset-zoneWidth] = ValueBorder;
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,6 +111,7 @@ int main(int argc, char* argv[])
|
||||||
CPath::addSearchPath(builderConfig.SearchPaths[k], true, false);
|
CPath::addSearchPath(builderConfig.SearchPaths[k], true, false);
|
||||||
}
|
}
|
||||||
CPath::remapExtension("dds", "tga", true);
|
CPath::remapExtension("dds", "tga", true);
|
||||||
|
CPath::remapExtension("dds", "png", true);
|
||||||
//
|
//
|
||||||
R2::CScenarioEntryPoints &sep = R2::CScenarioEntryPoints::getInstance();
|
R2::CScenarioEntryPoints &sep = R2::CScenarioEntryPoints::getInstance();
|
||||||
try
|
try
|
||||||
|
|
Loading…
Reference in a new issue