mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
Update (by anv):
- fix: data read from Data/AdditionalProperties, - new tag: <bTrapBonus> + updated data for tiles, trap level influenced by terrain, - new feature/option: COVER_SYSTEM_STATIC_SHADOWS_DECREASE_BRIGHTNESS. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7016 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -1486,6 +1486,8 @@ void LoadGameExternalOptions()
|
||||
|
||||
// anv: detailed tileset terrain types
|
||||
gGameExternalOptions.fAdditionalTileProperties = iniReader.ReadBoolean("Tactical Cover System Settings", "COVER_SYSTEM_ADDITIONAL_TILE_PROPERTIES", TRUE );
|
||||
// static shadows decrease brightness
|
||||
gGameExternalOptions.fStaticShadowsDecreaseBrightness = iniReader.ReadBoolean("Tactical Cover System Settings", "COVER_SYSTEM_STATIC_SHADOWS_DECREASE_BRIGHTNESS", FALSE );
|
||||
|
||||
//################# Tactical Suppression Fire Settings ##################
|
||||
// These settings control the behavior of Suppression Fire, its severity, and its side-effects.
|
||||
|
||||
@@ -846,6 +846,8 @@ typedef struct
|
||||
|
||||
// anv: additional tile properties
|
||||
BOOLEAN fAdditionalTileProperties;
|
||||
// static shadows decrease brightness
|
||||
BOOLEAN fStaticShadowsDecreaseBrightness;
|
||||
|
||||
// HEADROCK HAM B1: Global modifier for mine income (0 is automatically turned to 1 to avoid divide-by-zero.)
|
||||
INT16 usMineIncomePercentage;
|
||||
|
||||
@@ -1826,6 +1826,14 @@ void HandleSoldierDropBomb( SOLDIERTYPE *pSoldier, INT32 sGridNo )
|
||||
if ( pSoldier->HasBackgroundFlag( BACKGROUND_TRAPLEVEL ) )
|
||||
pSoldier->inv[ HANDPOS ][0]->data.bTrap++;
|
||||
|
||||
// anv: additional tile properties - modify trap level depending on its placement
|
||||
if(gGameExternalOptions.fAdditionalTileProperties && Item[ pSoldier->inv[ HANDPOS ].usItem ].tripwire != 1 )
|
||||
{
|
||||
ADDITIONAL_TILE_PROPERTIES_VALUES zAllTileValues = GetAllAdditonalTilePropertiesForGrid( sGridNo, pSoldier->pathing.bLevel );
|
||||
pSoldier->inv[ HANDPOS ][0]->data.bTrap += zAllTileValues.bTrapBonus;
|
||||
}
|
||||
pSoldier->inv[ HANDPOS ][0]->data.bTrap = __max( 0, pSoldier->inv[ HANDPOS ][0]->data.bTrap );
|
||||
|
||||
pSoldier->inv[ HANDPOS ][0]->data.misc.ubBombOwner = pSoldier->ubID + 2;
|
||||
|
||||
// Flugente: determine the direction we are looking at and apply that direction to our explosive
|
||||
@@ -5765,6 +5773,7 @@ BOOLEAN NearbyGroundSeemsWrong( SOLDIERTYPE * pSoldier, INT32 sGridNo, BOOLEAN f
|
||||
BOOLEAN fMining, fFoundMetal = FALSE;
|
||||
// ITEM_POOL * pItemPool;
|
||||
UINT8 ubMovementCost;
|
||||
INT8 bTrapBonus = 0;
|
||||
|
||||
ubDetectLevel = 0;
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@ additionalTilePropertyStartElementHandle(void *userData, const XML_Char *name, c
|
||||
strcmp(name, "bCamoStanceModifer") == 0 ||
|
||||
strcmp(name, "bSoundModifier") == 0 ||
|
||||
strcmp(name, "bStealthDifficultyModifer") == 0 ||
|
||||
strcmp(name, "bTrapBonus") == 0 ||
|
||||
strcmp(name, "fBlockedWindow") == 0
|
||||
))
|
||||
{
|
||||
@@ -122,6 +123,11 @@ additionalTilePropertyEndElementHandle(void *userData, const XML_Char *name)
|
||||
pData->curElement = ELEMENT;
|
||||
zAdditionalTileProperties.bStealthDifficultyModifer = (INT8) atol(pData->szCharData);
|
||||
}
|
||||
else if(strcmp(name, "bTrapBonus") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
zAdditionalTileProperties.bTrapBonus = (INT8) atol(pData->szCharData);
|
||||
}
|
||||
else if(strcmp(name, "fBlockedWindow") == 0)
|
||||
{
|
||||
pData->curElement = ELEMENT;
|
||||
|
||||
@@ -125,9 +125,9 @@ TILE_IMAGERY *LoadTileSurface( STR8 cFilename )
|
||||
}
|
||||
else
|
||||
{
|
||||
// and if not found, then in /Tilesets/
|
||||
// and if not found, then in /AdditionalProperties/
|
||||
cEndOfName = strrchr( cAdditionalPropertiesFilename, '\\' );
|
||||
sprintf( cCommonAdditionalPropertiesFilename, "TILESETS\\ADDITIONALPROPERTIES%s", cEndOfName );
|
||||
sprintf( cCommonAdditionalPropertiesFilename, "ADDITIONALPROPERTIES%s", cEndOfName );
|
||||
if (FileExists( cCommonAdditionalPropertiesFilename ))
|
||||
{
|
||||
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("LoadExternalGameplayData, fileName = %s", fileName));
|
||||
@@ -155,6 +155,8 @@ TILE_IMAGERY *LoadTileSurface( STR8 cFilename )
|
||||
pTileSurf->bCamoStanceModifer = zAdditionalTileProperties.bCamoStanceModifer;
|
||||
pTileSurf->bStealthDifficultyModifer = zAdditionalTileProperties.bStealthDifficultyModifer;
|
||||
|
||||
pTileSurf->bTrapBonus = zAdditionalTileProperties.bTrapBonus;
|
||||
|
||||
pTileSurf->uiAdditionalFlags = zAdditionalTileProperties.uiAdditionalFlags;
|
||||
|
||||
if (pStructureFileRef && pStructureFileRef->pAuxData != NULL)
|
||||
|
||||
@@ -960,6 +960,7 @@ void SetSpecificDatabaseValues( UINT16 usType, UINT16 uiDatabaseElem, TILE_ELEME
|
||||
TileElement->bSoundModifier = 0;
|
||||
TileElement->bCamoStanceModifer= 0;
|
||||
TileElement->bStealthDifficultyModifer = 0;
|
||||
TileElement->bTrapBonus = 0;
|
||||
TileElement->uiAdditionalFlags = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -754,6 +754,23 @@ UINT8 LightTrueLevel( INT32 sGridNo, INT16 bLevel )
|
||||
{
|
||||
iSum=pNode->ubNaturalShadeLevel - (pNode->ubSumLights - pNode->ubFakeShadeLevel );
|
||||
|
||||
if(gGameExternalOptions.fStaticShadowsDecreaseBrightness && ( gRenderFlags & RENDER_FLAG_SHADOWS ))
|
||||
{
|
||||
INT32 sNewGridNo = NewGridNo( sGridNo, (UINT16)DirectionInc( NORTH ) );
|
||||
STRUCTURE* pStructure = gpWorldLevelData[ sNewGridNo ].pStructureHead;
|
||||
if(pStructure != NULL)
|
||||
{
|
||||
LEVELNODE* pShadowNode = NULL;
|
||||
if(!(pStructure->fFlags & STRUCTURE_BASE_TILE))
|
||||
pShadowNode = gpWorldLevelData[ FindBaseStructure(pStructure)->sGridNo ].pShadowHead;
|
||||
else
|
||||
pShadowNode = gpWorldLevelData[ sNewGridNo ].pShadowHead;
|
||||
if(pShadowNode != NULL)
|
||||
{
|
||||
iSum += max( 0, (StructureHeight(pStructure) - 1 ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
iSum=__min(SHADE_MIN, iSum);
|
||||
iSum=__max(SHADE_MAX, iSum);
|
||||
return( (UINT8) iSum );
|
||||
|
||||
@@ -694,6 +694,8 @@ void CreateTileDatabase( INT32 iTilesetID )
|
||||
TileElement.bSoundModifier = TileSurf->bSoundModifier;
|
||||
TileElement.bStealthDifficultyModifer = TileSurf->bStealthDifficultyModifer;
|
||||
|
||||
TileElement.bTrapBonus = TileSurf->bTrapBonus;
|
||||
|
||||
TileElement.uiAdditionalFlags = TileSurf->uiAdditionalFlags;
|
||||
|
||||
// Check for multi-z stuff
|
||||
|
||||
@@ -92,6 +92,8 @@ typedef struct
|
||||
INT8 bSoundModifier;
|
||||
INT8 bStealthDifficultyModifer;
|
||||
|
||||
INT8 bTrapBonus;
|
||||
|
||||
UINT32 uiAdditionalFlags;
|
||||
|
||||
|
||||
@@ -151,6 +153,8 @@ typedef struct
|
||||
INT8 bSoundModifier;
|
||||
INT8 bStealthDifficultyModifer;
|
||||
|
||||
INT8 bTrapBonus;
|
||||
|
||||
UINT32 uiAdditionalFlags;
|
||||
|
||||
|
||||
@@ -196,10 +200,11 @@ typedef struct
|
||||
INT8 bSoundModifier;
|
||||
INT8 bStealthDifficultyModifer;
|
||||
|
||||
INT8 bTrapBonus;
|
||||
|
||||
UINT32 uiAdditionalFlags;
|
||||
|
||||
} ADDITIONAL_TILE_PROPERTIES_VALUES;
|
||||
|
||||
extern ADDITIONAL_TILE_PROPERTIES_VALUES zAdditionalTileProperties;
|
||||
|
||||
void CreateTileDatabase( INT32 iTilesetID );
|
||||
|
||||
Reference in New Issue
Block a user