aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_FindNearestChunk/LevelRenderer_FindNearestChunk.h
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_FindNearestChunk/LevelRenderer_FindNearestChunk.h')
-rw-r--r--Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_FindNearestChunk/LevelRenderer_FindNearestChunk.h101
1 files changed, 101 insertions, 0 deletions
diff --git a/Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_FindNearestChunk/LevelRenderer_FindNearestChunk.h b/Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_FindNearestChunk/LevelRenderer_FindNearestChunk.h
new file mode 100644
index 00000000..55ffcabd
--- /dev/null
+++ b/Minecraft.Client/PS3/SPU_Tasks/LevelRenderer_FindNearestChunk/LevelRenderer_FindNearestChunk.h
@@ -0,0 +1,101 @@
+#pragma once
+
+
+
+class LevelRenderer_FindNearestChunk_DataIn
+{
+public:
+ class PlayerData
+ {
+ public:
+ bool bValid;
+ double x,y,z;
+ };
+
+ class Chunk;
+ class ClipChunk
+ {
+ public:
+ Chunk *chunk;
+ int globalIdx;
+ bool visible;
+ float aabb[6];
+ int xm, ym, zm;
+ };
+
+ class AABB
+ {
+ double x0, y0, z0;
+ double x1, y1, z1;
+ };
+ class MultiplayerChunkCache
+ {
+ public:
+ int XZSIZE;
+ int XZOFFSET;
+ void** cache;
+
+ bool getChunkEmpty(int lowerOffset, int upperOffset, int x, int y, int z);
+ };
+
+ class CompressedTileStorage
+ {
+ public:
+ unsigned char *indicesAndData;
+ int allocatedSize;
+
+ bool isRenderChunkEmpty(int y); // Determine if 16x16x16 render-sized chunk is actually empty
+ private:
+ static void getBlock(int *block, int x, int y, int z) { *block = ( ( x & 0x0c ) << 5 ) | ( ( z & 0x0c ) << 3 ) | ( y >> 2 ); }
+
+ };
+
+ class Chunk
+ {
+ public:
+ void *level;
+ int x, y, z;
+ int xRender, yRender, zRender;
+ int xRenderOffs, yRenderOffs, zRenderOffs;
+ int xm, ym, zm;
+ AABB *bb;
+ ClipChunk *clipChunk;
+
+ int id;
+ int padding[1];
+ //public:
+ // vector<shared_ptr<TileEntity> > renderableTileEntities; // 4J - removed
+
+ private:
+ void *globalRenderableTileEntities;
+ void *globalRenderableTileEntities_cs;
+ bool assigned;
+ };
+
+
+ static const int CHUNK_SIZE = 16;
+ static const int CHUNK_Y_COUNT = 256 / CHUNK_SIZE;
+
+ int numGlobalChunks;
+ unsigned char* pGlobalChunkFlags;
+
+ bool onlyRebuild;
+ LevelRenderer_FindNearestChunk_DataIn::ClipChunk* chunks[4];
+ int chunkLengths[4];
+ void* level[4];
+ MultiplayerChunkCache multiplayerChunkCache[4];
+
+ int lowerOffset; // offsets into the level class, we don't want to compile the entire class
+ int upperOffset;
+
+ int xChunks, yChunks, zChunks;
+
+ PlayerData playerData[4];
+ LevelRenderer_FindNearestChunk_DataIn::ClipChunk* nearChunk;
+ int veryNearCount;
+ int padding[2];
+
+#ifdef SN_TARGET_PS3_SPU
+ void findNearestChunk();
+#endif
+};