You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
		
		
		
		
		
			
		
			
				
					
					
						
							41 lines
						
					
					
						
							973 B
						
					
					
				
			
		
		
	
	
							41 lines
						
					
					
						
							973 B
						
					
					
				| #ifndef INCLUDE_CAVE_PARSE_H | |
| #define INCLUDE_CAVE_PARSE_H | |
|  | |
| typedef struct | |
| { | |
|    unsigned char block; | |
|    unsigned char data; | |
|    unsigned char light:4; | |
|    unsigned char skylight:4; | |
| } raw_block; | |
| 
 | |
| // this is the old fully-decoded chunk | |
| typedef struct | |
| { | |
|    int xpos, zpos, max_y; | |
|    int height[16][16]; | |
|    raw_block rb[16][16][256]; // [z][x][y] which becomes [y][x][z] in stb | |
| } chunk; | |
| 
 | |
| chunk *get_decoded_chunk(int chunk_x, int chunk_z); | |
| 
 | |
| #define NUM_SEGMENTS  16 | |
| typedef struct | |
| { | |
|    int max_y, xpos, zpos; | |
| 
 | |
|    unsigned char *blockdata[NUM_SEGMENTS]; | |
|    unsigned char *data[NUM_SEGMENTS]; | |
|    unsigned char *skylight[NUM_SEGMENTS]; | |
|    unsigned char *light[NUM_SEGMENTS]; | |
|     | |
|    void *pointer_to_free;    | |
| 
 | |
|    int refcount; // this allows multi-threaded building without wrapping in ANOTHER struct | |
| } fast_chunk; | |
| 
 | |
| fast_chunk *get_decoded_fastchunk(int chunk_x, int chunk_z); // cache, never call free() | |
|  | |
| fast_chunk *get_decoded_fastchunk_uncached(int chunk_x, int chunk_z); | |
| 
 | |
| #endif
 | |
| 
 |