本文整理汇总了C++中Sector::ceilingSurface方法的典型用法代码示例。如果您正苦于以下问题:C++ Sector::ceilingSurface方法的具体用法?C++ Sector::ceilingSurface怎么用?C++ Sector::ceilingSurface使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sector
的用法示例。
在下文中一共展示了Sector::ceilingSurface方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: biasForSector
/**
* Determines the Z-axis bias scale factor for the given @a sector.
*/
static int biasForSector(Sector const §or)
{
int const height = int(sector.ceiling().height() - sector.floor().height());
bool hasSkyFloor = sector.floorSurface().hasSkyMaskedMaterial();
bool hasSkyCeil = sector.ceilingSurface().hasSkyMaskedMaterial();
if(hasSkyFloor && !hasSkyCeil)
{
return -height / 6;
}
if(!hasSkyFloor && hasSkyCeil)
{
return height / 6;
}
if(height > 100)
{
return (height - 100) / 2;
}
return 0;
}
示例2: Cl_ReadSectorDelta
void Cl_ReadSectorDelta(int /*deltaType*/)
{
/// @todo Do not assume the CURRENT map.
Map &map = App_WorldSystem().map();
#define PLN_FLOOR 0
#define PLN_CEILING 1
float height[2] = { 0, 0 };
float target[2] = { 0, 0 };
float speed[2] = { 0, 0 };
// Sector index number.
Sector *sec = map.sectorPtr(Reader_ReadUInt16(msgReader));
DENG2_ASSERT(sec);
// Flags.
int df = Reader_ReadPackedUInt32(msgReader);
if(df & SDF_FLOOR_MATERIAL)
{
P_SetPtrp(sec, DMU_FLOOR_OF_SECTOR | DMU_MATERIAL,
Cl_LocalMaterial(Reader_ReadPackedUInt16(msgReader)));
}
if(df & SDF_CEILING_MATERIAL)
{
P_SetPtrp(sec, DMU_CEILING_OF_SECTOR | DMU_MATERIAL,
Cl_LocalMaterial(Reader_ReadPackedUInt16(msgReader)));
}
if(df & SDF_LIGHT)
P_SetFloatp(sec, DMU_LIGHT_LEVEL, Reader_ReadByte(msgReader) / 255.0f);
if(df & SDF_FLOOR_HEIGHT)
height[PLN_FLOOR] = FIX2FLT(Reader_ReadInt16(msgReader) << 16);
if(df & SDF_CEILING_HEIGHT)
height[PLN_CEILING] = FIX2FLT(Reader_ReadInt16(msgReader) << 16);
if(df & SDF_FLOOR_TARGET)
target[PLN_FLOOR] = FIX2FLT(Reader_ReadInt16(msgReader) << 16);
if(df & SDF_FLOOR_SPEED)
speed[PLN_FLOOR] = FIX2FLT(Reader_ReadByte(msgReader) << (df & SDF_FLOOR_SPEED_44 ? 12 : 15));
if(df & SDF_CEILING_TARGET)
target[PLN_CEILING] = FIX2FLT(Reader_ReadInt16(msgReader) << 16);
if(df & SDF_CEILING_SPEED)
speed[PLN_CEILING] = FIX2FLT(Reader_ReadByte(msgReader) << (df & SDF_CEILING_SPEED_44 ? 12 : 15));
if(df & (SDF_COLOR_RED | SDF_COLOR_GREEN | SDF_COLOR_BLUE))
{
Vector3f newColor = sec->lightColor();
if(df & SDF_COLOR_RED)
newColor.x = Reader_ReadByte(msgReader) / 255.f;
if(df & SDF_COLOR_GREEN)
newColor.y = Reader_ReadByte(msgReader) / 255.f;
if(df & SDF_COLOR_BLUE)
newColor.z = Reader_ReadByte(msgReader) / 255.f;
sec->setLightColor(newColor);
}
if(df & (SDF_FLOOR_COLOR_RED | SDF_FLOOR_COLOR_GREEN | SDF_FLOOR_COLOR_BLUE))
{
Vector3f newColor = sec->floorSurface().tintColor();
if(df & SDF_FLOOR_COLOR_RED)
newColor.x = Reader_ReadByte(msgReader) / 255.f;
if(df & SDF_FLOOR_COLOR_GREEN)
newColor.y = Reader_ReadByte(msgReader) / 255.f;
if(df & SDF_FLOOR_COLOR_BLUE)
newColor.z = Reader_ReadByte(msgReader) / 255.f;
sec->floorSurface().setTintColor(newColor);
}
if(df & (SDF_CEIL_COLOR_RED | SDF_CEIL_COLOR_GREEN | SDF_CEIL_COLOR_BLUE))
{
Vector3f newColor = sec->ceilingSurface().tintColor();
if(df & SDF_CEIL_COLOR_RED)
newColor.x = Reader_ReadByte(msgReader) / 255.f;
if(df & SDF_CEIL_COLOR_GREEN)
newColor.y = Reader_ReadByte(msgReader) / 255.f;
if(df & SDF_CEIL_COLOR_BLUE)
newColor.z = Reader_ReadByte(msgReader) / 255.f;
sec->ceilingSurface().setTintColor(newColor);
}
// The whole delta has now been read.
// Do we need to start any moving planes?
if(df & SDF_FLOOR_HEIGHT)
{
ClPlaneMover::newThinker(sec->floor(), height[PLN_FLOOR], 0);
}
else if(df & (SDF_FLOOR_TARGET | SDF_FLOOR_SPEED))
{
ClPlaneMover::newThinker(sec->floor(), target[PLN_FLOOR], speed[PLN_FLOOR]);
}
if(df & SDF_CEILING_HEIGHT)
{
ClPlaneMover::newThinker(sec->ceiling(), height[PLN_CEILING], 0);
}
else if(df & (SDF_CEILING_TARGET | SDF_CEILING_SPEED))
{
//.........这里部分代码省略.........