wip_feat(PS3): Implement SPU variants for a portion of TU19's blocks
crashes at a stack overflow, cant be assed to fix it atm
This commit is contained in:
@@ -39,7 +39,7 @@ static const int Level_MAX_BRIGHTNESS = 15;
|
||||
#include "TileRenderer_SPU.h"
|
||||
#include "Tile_SPU.h"
|
||||
#include "ChunkRebuildData.h"
|
||||
TileData_SPU g_tileSPUData;
|
||||
//TileData_SPU g_tileSPUData;
|
||||
|
||||
static const int MAX_LEVEL_SIZE = 30000000;
|
||||
static const int MAX_BRIGHTNESS = 15;
|
||||
@@ -89,30 +89,30 @@ void ChunkRebuildData::disableUnseenTiles()
|
||||
|
||||
// Establish whether this tile and its neighbours are all made of rock, dirt, unbreakable tiles, or have already
|
||||
// been determined to meet this criteria themselves and have a tile of 255 set.
|
||||
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
tileID = getTile(iX-1, iY, iZ);
|
||||
flags = getFlags(iX-1, iY, iZ);
|
||||
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
tileID = getTile(iX+1, iY, iZ);
|
||||
flags = getFlags(iX+1, iY, iZ);
|
||||
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
tileID = getTile(iX, iY, iZ-1);
|
||||
flags = getFlags(iX, iY, iZ-1);
|
||||
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
tileID = getTile(iX, iY, iZ+1);
|
||||
flags = getFlags(iX, iY, iZ+1);
|
||||
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
// Treat the bottom of the world differently - we shouldn't ever be able to look up at this, so consider tiles as invisible
|
||||
// if they are surrounded on sides other than the bottom
|
||||
if( iY > 0 )
|
||||
{
|
||||
tileID = getTile(iX, iY-1, iZ);
|
||||
flags = getFlags(iX, iY-1, iZ);
|
||||
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
}
|
||||
tileID = getTile(iX, iY+1, iZ);
|
||||
flags = getFlags(iX, iY+1, iZ);
|
||||
if( !( ( tileID == Tile_SPU::rock_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
if( !( ( tileID == Tile_SPU::stone_Id ) || ( tileID == Tile_SPU::dirt_Id ) || ( tileID == Tile_SPU::unbreakable_Id ) || ( flags & e_flag_NoRender) ) ) continue;
|
||||
|
||||
// This tile is surrounded. Flag it as not requiring to be rendered by setting its id to 255.
|
||||
setFlag(iX, iY, iZ, e_flag_NoRender);
|
||||
@@ -157,7 +157,7 @@ void ChunkRebuildData::buildMaterials()
|
||||
buildMaterial(Material_SPU::plant_Id, Material::plant);
|
||||
buildMaterial(Material_SPU::replaceable_plant_Id, Material::replaceable_plant);
|
||||
buildMaterial(Material_SPU::sponge_Id, Material::sponge);
|
||||
buildMaterial(Material_SPU::cloth_Id, Material::cloth);
|
||||
buildMaterial(Material_SPU::wool_Id, Material::cloth);
|
||||
buildMaterial(Material_SPU::fire_Id, Material::fire);
|
||||
buildMaterial(Material_SPU::sand_Id, Material::sand);
|
||||
buildMaterial(Material_SPU::decoration_Id, Material::decoration);
|
||||
@@ -195,7 +195,7 @@ int ChunkRebuildData::getMaterialID(Tile* pTile)
|
||||
if(m == Material::plant) return Material_SPU::plant_Id;
|
||||
if(m == Material::replaceable_plant)return Material_SPU::replaceable_plant_Id;
|
||||
if(m == Material::sponge) return Material_SPU::sponge_Id;
|
||||
if(m == Material::cloth) return Material_SPU::cloth_Id;
|
||||
if(m == Material::cloth) return Material_SPU::wool_Id;
|
||||
if(m == Material::fire) return Material_SPU::fire_Id;
|
||||
if(m == Material::sand) return Material_SPU::sand_Id;
|
||||
if(m == Material::decoration) return Material_SPU::decoration_Id;
|
||||
@@ -341,9 +341,17 @@ void ChunkRebuildData::createTileData()
|
||||
setIconSPUFromIcon(&m_tileData.dispenserTile_iconFront, ((DispenserTile*)Tile::dispenser)->iconFront);
|
||||
setIconSPUFromIcon(&m_tileData.dispenserTile_iconFrontVertical, ((DispenserTile*)Tile::dispenser)->iconFrontVertical);
|
||||
|
||||
setIconSPUFromIcon(&m_tileData.dropperTile_iconFront, ((DropperTile*)Tile::dropper)->iconFront);
|
||||
setIconSPUFromIcon(&m_tileData.dropperTile_iconFrontVertical, ((DropperTile*)Tile::dropper)->iconFrontVertical);
|
||||
|
||||
// RailTile
|
||||
setIconSPUFromIcon(&m_tileData.railTile_iconTurn, ((RailTile*)Tile::rail)->iconTurn);
|
||||
setIconSPUFromIcon(&m_tileData.railTile_iconTurnGolden, ((RailTile*)Tile::goldenRail)->iconTurn);
|
||||
|
||||
setIconSPUFromIcon(&m_tileData.poweredRailTile_icon, ((PoweredRailTile*)Tile::goldenRail)->icon);
|
||||
setIconSPUFromIcon(&m_tileData.poweredRailTile_iconPowered, ((PoweredRailTile*)Tile::goldenRail)->iconPowered);
|
||||
|
||||
setIconSPUFromIcon(&m_tileData.activatorRailTile_icon, ((PoweredRailTile*)Tile::activatorRail)->icon);
|
||||
setIconSPUFromIcon(&m_tileData.activatorRailTile_iconPowered, ((PoweredRailTile*)Tile::activatorRail)->iconPowered);
|
||||
|
||||
for(int i=0;i<2;i++)
|
||||
setIconSPUFromIcon(&m_tileData.detectorRailTile_icons[i], ((DetectorRailTile*)Tile::detectorRail)->icons[i]);
|
||||
@@ -413,8 +421,12 @@ void ChunkRebuildData::createTileData()
|
||||
|
||||
setIconSPUFromIcon(&m_tileData.stoneSlab_iconSide, ((StoneSlabTile*)(Tile::stoneSlab))->iconSide);
|
||||
|
||||
//ColoredTile
|
||||
for(int i=0;i<16;i++)
|
||||
setIconSPUFromIcon(&m_tileData.clothTile_icons[i], ((ColoredTile*)Tile::wool)->icons[i]);
|
||||
setIconSPUFromIcon(&m_tileData.woolTile_icons[i], ((ColoredTile*)Tile::wool)->icons[i]);
|
||||
|
||||
for(int i=0;i<16;i++)
|
||||
setIconSPUFromIcon(&m_tileData.clayHardened_colored_icons[i], ((ColoredTile*)Tile::clayHardened_colored)->icons[i]);
|
||||
|
||||
// CarrotTile
|
||||
for(int i=0;i<4;i++)
|
||||
@@ -438,6 +450,13 @@ void ChunkRebuildData::createTileData()
|
||||
setIconSPUFromIcon(&m_tileData.quartzBlock_iconTop, ((QuartzBlockTile*)Tile::quartzBlock)->iconTop);
|
||||
setIconSPUFromIcon(&m_tileData.quartzBlock_iconBottom, ((QuartzBlockTile*)Tile::quartzBlock)->iconBottom);
|
||||
|
||||
// HayBlockTile
|
||||
setIconSPUFromIcon(&m_tileData.hayBlockTile_iconTop, ((HayBlockTile*)Tile::hayBlock)->iconTop);
|
||||
setIconSPUFromIcon(&m_tileData.hayBlockTile_icon, ((HayBlockTile*)Tile::hayBlock)->icon);
|
||||
|
||||
// DaylightDetectorTile
|
||||
for(int i=0;i<1;i++)
|
||||
setIconSPUFromIcon(&m_tileData.daylightDetector_icons[i], ((DaylightDetectorTile*)Tile::daylightDetector)->icons[i]);
|
||||
}
|
||||
|
||||
// extern int g_lastHitBlockX;
|
||||
|
||||
Reference in New Issue
Block a user