Merged New Inventory Project into main branch

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@1871 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
lalien
2008-03-08 15:15:25 +00:00
parent e16d166277
commit 43ca24dda8
649 changed files with 93359 additions and 82507 deletions
+72 -214
View File
@@ -1,3 +1,4 @@
#include "Render Z.h"
#include "worlddef.h"
#include "renderworld.h"
#include "Isometric Utils.h"
@@ -5,239 +6,96 @@
INT16 gsRScreenCenterX, gsRScreenCenterY;
INT16 gsRDistToCenterY, gsRDistToCenterX;
#define GetMapXYWorldY( sWorldCellX, sWorldCellY, sWorldY )\
{\
\
gsRDistToCenterX = ( sWorldCellX * CELL_X_SIZE ) - gCenterWorldX;\
gsRDistToCenterY = ( sWorldCellY * CELL_Y_SIZE ) - gCenterWorldY;\
\
gsRScreenCenterY = gsRDistToCenterX + gsRDistToCenterY;\
\
sWorldY = gsRScreenCenterY + gsCY - gsTLY;\
INT16 GetMapXYWorldY( INT16 sWorldCellX, INT16 sWorldCellY )
{
gsRDistToCenterX = ( sWorldCellX * CELL_X_SIZE ) - gCenterWorldX;
gsRDistToCenterY = ( sWorldCellY * CELL_Y_SIZE ) - gCenterWorldY;
gsRScreenCenterY = gsRDistToCenterX + gsRDistToCenterY;
return (gsRScreenCenterY + gsCY - gsTLY);
}
#define GetMapXYWorldYFromCellCoords( sWorldCellX, sWorldCellY, sWorldY )\
{\
\
gsRDistToCenterX = sWorldCellX - gCenterWorldX;\
gsRDistToCenterY = sWorldCellY - gCenterWorldY;\
\
gsRScreenCenterY = gsRDistToCenterX + gsRDistToCenterY;\
\
sWorldY = gsRScreenCenterY + gsCY - gsTLY;\
INT16 GetMapXYWorldYFromCellCoords( INT16 sWorldCellX, INT16 sWorldCellY )
{
gsRDistToCenterX = sWorldCellX - gCenterWorldX;
gsRDistToCenterY = sWorldCellY - gCenterWorldY;
gsRScreenCenterY = gsRDistToCenterX + gsRDistToCenterY;
return gsRScreenCenterY + gsCY - gsTLY;
}
#define LandZLevel( sMapX, sMapY )\
{\
sZLevel = LAND_Z_LEVEL;\
INT16 LandZLevel( INT16 sMapX, INT16 sMapY )
{
return LAND_Z_LEVEL;
}
#define ObjectZLevel( TileElem, pNode, sMapX, sMapY )\
{\
GetMapXYWorldY( sMapX, sMapY, sWorldY );\
\
if ( uiTileElemFlags & CLIFFHANG_TILE )\
{\
sZLevel=LAND_Z_LEVEL;\
}\
else if ( uiTileElemFlags & OBJECTLAYER_USEZHEIGHT )\
{\
sZLevel=( ( sWorldY ) *Z_SUBLAYERS)+LAND_Z_LEVEL;\
}\
else\
{\
sZLevel=OBJECT_Z_LEVEL;\
}\
INT16 ObjectZLevel( TILE_ELEMENT* TileElem, LEVELNODE* pNode, UINT32 uiTileElemFlags, INT32 sMapX, INT32 sMapY, INT16& sWorldY )
{
sWorldY = GetMapXYWorldY( sMapX, sMapY );
if ( uiTileElemFlags & CLIFFHANG_TILE )
{
return LAND_Z_LEVEL;
}
else if ( uiTileElemFlags & OBJECTLAYER_USEZHEIGHT )
{
return ( ( sWorldY ) * Z_SUBLAYERS)+LAND_Z_LEVEL;
}
else
{
return OBJECT_Z_LEVEL;
}
}
#define StructZLevel( sMapX, sMapY )\
{\
\
GetMapXYWorldY( sMapX, sMapY, sWorldY );\
\
if ( ( uiLevelNodeFlags & LEVELNODE_ROTTINGCORPSE ) )\
{\
if ( pCorpse->def.usFlags & ROTTING_CORPSE_VEHICLE )\
{\
\
if ( pNode->pStructureData != NULL )\
{\
sZOffsetX = pNode->pStructureData->pDBStructureRef->pDBStructure->bZTileOffsetX;\
sZOffsetY = pNode->pStructureData->pDBStructureRef->pDBStructure->bZTileOffsetY;\
}\
\
GetMapXYWorldY( (sMapX + sZOffsetX), (sMapY + sZOffsetY), sWorldY );\
\
GetMapXYWorldY( (sMapX + sZOffsetX), (sMapY + sZOffsetY), sWorldY );\
\
sZLevel=( ( sWorldY ) * Z_SUBLAYERS)+STRUCT_Z_LEVEL;\
\
}\
else\
{\
sZOffsetX = -1;\
sZOffsetY = -1;\
GetMapXYWorldY( (sMapX + sZOffsetX), (sMapY + sZOffsetY), sWorldY );\
\
sWorldY += 20;\
\
sZLevel=( ( sWorldY ) * Z_SUBLAYERS)+LAND_Z_LEVEL;\
}\
}\
else if ( uiLevelNodeFlags & LEVELNODE_PHYSICSOBJECT )\
{\
sWorldY += pNode->sRelativeZ;\
\
sZLevel=(sWorldY*Z_SUBLAYERS)+ONROOF_Z_LEVEL;\
\
}\
else if ( uiLevelNodeFlags & LEVELNODE_ITEM )\
{\
if ( pNode->pItemPool->bRenderZHeightAboveLevel > 0 )\
{\
sZLevel=(sWorldY*Z_SUBLAYERS)+STRUCT_Z_LEVEL;\
sZLevel+=( pNode->pItemPool->bRenderZHeightAboveLevel );\
}\
else\
{\
sZLevel=(sWorldY*Z_SUBLAYERS)+OBJECT_Z_LEVEL;\
}\
}\
else if ( uiAniTileFlags & ANITILE_SMOKE_EFFECT )\
{\
sZLevel=(sWorldY*Z_SUBLAYERS)+OBJECT_Z_LEVEL;\
}\
else if ( ( uiLevelNodeFlags & LEVELNODE_USEZ ) )\
{\
\
if ( ( uiLevelNodeFlags & LEVELNODE_NOZBLITTER ) )\
{\
sWorldY += 40;\
}\
else\
{\
sWorldY += pNode->sRelativeZ;\
}\
\
sZLevel=(sWorldY*Z_SUBLAYERS)+ONROOF_Z_LEVEL;\
}\
else\
{\
sZLevel=(sWorldY*Z_SUBLAYERS)+STRUCT_Z_LEVEL;\
}\
\
INT16 RoofZLevel( INT16 sMapX, INT16 sMapY, INT16& sWorldY )
{
sWorldY = GetMapXYWorldY( sMapX, sMapY );
sWorldY += WALL_HEIGHT;
return (sWorldY*Z_SUBLAYERS)+ROOF_Z_LEVEL;
}
#define RoofZLevel( sMapX, sMapY )\
{\
\
GetMapXYWorldY( sMapX, sMapY, sWorldY );\
\
sWorldY += WALL_HEIGHT;\
\
sZLevel=(sWorldY*Z_SUBLAYERS)+ROOF_Z_LEVEL;\
\
INT16 OnRoofZLevel( INT16 sMapX, INT16 sMapY, INT16& sWorldY, UINT32 uiLevelNodeFlags )
{
sWorldY = GetMapXYWorldY( sMapX, sMapY );
if ( uiLevelNodeFlags & LEVELNODE_ROTTINGCORPSE )
{
sWorldY += ( WALL_HEIGHT + 40 );
}
if ( uiLevelNodeFlags & LEVELNODE_ROTTINGCORPSE )
{
sWorldY += ( WALL_HEIGHT + 40 );
}
else
{
sWorldY += WALL_HEIGHT;
}
return(sWorldY*Z_SUBLAYERS)+ONROOF_Z_LEVEL;
}
#define OnRoofZLevel( sMapX, sMapY )\
{\
\
GetMapXYWorldY( sMapX, sMapY, sWorldY );\
\
if ( uiLevelNodeFlags & LEVELNODE_ROTTINGCORPSE )\
{\
sWorldY += ( WALL_HEIGHT + 40 );\
}\
if ( uiLevelNodeFlags & LEVELNODE_ROTTINGCORPSE )\
{\
sWorldY += ( WALL_HEIGHT + 40 );\
}\
else\
{\
sWorldY += WALL_HEIGHT;\
}\
\
sZLevel=(sWorldY*Z_SUBLAYERS)+ONROOF_Z_LEVEL;\
\
INT16 TopmostZLevel( INT16 sMapX, INT16 sMapY, INT16& sWorldY )
{
sWorldY = GetMapXYWorldY( sMapX, sMapY );
return TOPMOST_Z_LEVEL;
}
#define TopmostZLevel( sMapX, sMapY )\
{\
\
GetMapXYWorldY( sMapX, sMapY, sWorldY );\
\
sZLevel=TOPMOST_Z_LEVEL;\
\
INT16 ShadowZLevel( INT16 sMapX, INT16 sMapY, INT16& sWorldY )
{
sWorldY = GetMapXYWorldY( sMapX, sMapY );
return __max( ( (sWorldY - 80 ) *Z_SUBLAYERS )+SHADOW_Z_LEVEL, 0 );
}
#define ShadowZLevel( sMapX, sMapY )\
{\
\
GetMapXYWorldY( sMapX, sMapY, sWorldY );\
\
sZLevel=__max( ( (sWorldY - 80 ) *Z_SUBLAYERS )+SHADOW_Z_LEVEL, 0 );\
\
}
#define SoldierZLevel( pSoldier, sMapX, sMapY )\
{\
\
if ( ( pSoldier->uiStatusFlags & SOLDIER_MULTITILE ) )\
{\
\
if ( pNode->pStructureData != NULL )\
{\
sZOffsetX = pNode->pStructureData->pDBStructureRef->pDBStructure->bZTileOffsetX;\
sZOffsetY = pNode->pStructureData->pDBStructureRef->pDBStructure->bZTileOffsetY;\
}\
\
GetMapXYWorldY( (sMapX + sZOffsetX), (sMapY + sZOffsetY), sWorldY );\
\
}\
else\
{\
GetMapXYWorldY( sMapX, sMapY, sWorldY );\
}\
\
if ( pSoldier->uiStatusFlags & SOLDIER_VEHICLE )\
{\
sZLevel=(sWorldY*Z_SUBLAYERS)+STRUCT_Z_LEVEL;\
}\
else\
{\
if ( pSoldier->dHeightAdjustment > 0 )\
{\
sWorldY += ( WALL_HEIGHT + 20 );\
\
sZLevel=(sWorldY*Z_SUBLAYERS)+ONROOF_Z_LEVEL;\
}\
else\
{\
if ( ( pSoldier->uiStatusFlags & SOLDIER_DEAD ) )\
{\
sZLevel=(sWorldY*Z_SUBLAYERS)+MERC_Z_LEVEL;\
}\
else\
{\
sZLevel=(sWorldY*Z_SUBLAYERS)+MERC_Z_LEVEL;\
}\
}\
\
if ( pSoldier->sZLevelOverride != -1 )\
{\
sZLevel = pSoldier->sZLevelOverride;\
}\
\
if ( gsForceSoldierZLevel != 0 )\
{\
sZLevel = gsForceSoldierZLevel;\
}\
}\
\
}
//#if 0