basically chunk loading
This commit is contained in:
@@ -19,8 +19,6 @@
|
||||
#define TILE_WIDTH 16.0f
|
||||
#define TILE_HEIGHT 16.0f
|
||||
#define TILE_DEPTH 11.36f
|
||||
assetmap_t TEST_MAP;
|
||||
bool_t TEST_MAP_READY = false;
|
||||
|
||||
errorret_t sceneMapInit(scenedata_t *data) {
|
||||
// Init the camera.
|
||||
@@ -39,9 +37,6 @@ errorret_t sceneMapInit(scenedata_t *data) {
|
||||
);
|
||||
data->sceneMap.camera.lookatPixelPerfect.pixelsPerUnit = 1.0f;
|
||||
|
||||
|
||||
errorChain(assetLoad("map/map.dmf", &TEST_MAP));
|
||||
TEST_MAP_READY = true;
|
||||
errorOk();
|
||||
}
|
||||
|
||||
@@ -118,10 +113,7 @@ void sceneMapRender(scenedata_t *data) {
|
||||
cameraPushMatrix(&data->sceneMap.camera);
|
||||
|
||||
// Render map probably.
|
||||
// sceneMapRenderMap();
|
||||
|
||||
textureBind(NULL);
|
||||
meshDraw(&TEST_MAP.models[0].mesh, -1, -1);
|
||||
sceneMapRenderMap();
|
||||
|
||||
// Render ents
|
||||
entity_t *ent = ENTITIES;
|
||||
@@ -175,33 +167,38 @@ void sceneMapRenderMap() {
|
||||
for(uint32_t i = 0; i < MAP_CHUNK_COUNT; i++) {
|
||||
chunk_t *chunk = MAP.chunkOrder[i];
|
||||
|
||||
vec3 min, max;
|
||||
min[0] = chunk->position.x * CHUNK_WIDTH * TILE_WIDTH;
|
||||
min[1] = chunk->position.y * CHUNK_HEIGHT * TILE_HEIGHT;
|
||||
min[2] = chunk->position.z * CHUNK_DEPTH * TILE_DEPTH;
|
||||
|
||||
max[0] = min[0] + (CHUNK_WIDTH * TILE_WIDTH);
|
||||
max[1] = min[1] + (CHUNK_HEIGHT * TILE_HEIGHT);
|
||||
max[2] = min[2];
|
||||
|
||||
color_t color = COLOR_WHITE;
|
||||
if(chunk->position.x % 2 == 0) {
|
||||
color = (chunk->position.y % 2 == 0) ? COLOR_BLACK : COLOR_WHITE;
|
||||
} else {
|
||||
color = (chunk->position.y % 2 == 0) ? COLOR_WHITE : COLOR_BLACK;
|
||||
for(uint8_t j = 0; j < chunk->meshCount; j++) {
|
||||
mesh_t *mesh = &chunk->meshes[j];
|
||||
textureBind(NULL);
|
||||
meshDraw(mesh, -1, -1);
|
||||
}
|
||||
|
||||
spriteBatchPush3D(
|
||||
NULL,
|
||||
min,
|
||||
max,
|
||||
color,
|
||||
(vec2){ 0.0f, 0.0f },
|
||||
(vec2){ 1.0f, 1.0f }
|
||||
);
|
||||
// vec3 min, max;
|
||||
// min[0] = chunk->position.x * CHUNK_WIDTH * TILE_WIDTH;
|
||||
// min[1] = chunk->position.y * CHUNK_HEIGHT * TILE_HEIGHT;
|
||||
// min[2] = chunk->position.z * CHUNK_DEPTH * TILE_DEPTH;
|
||||
|
||||
// max[0] = min[0] + (CHUNK_WIDTH * TILE_WIDTH);
|
||||
// max[1] = min[1] + (CHUNK_HEIGHT * TILE_HEIGHT);
|
||||
// max[2] = min[2];
|
||||
|
||||
// color_t color = COLOR_WHITE;
|
||||
// if(chunk->position.x % 2 == 0) {
|
||||
// color = (chunk->position.y % 2 == 0) ? COLOR_BLACK : COLOR_WHITE;
|
||||
// } else {
|
||||
// color = (chunk->position.y % 2 == 0) ? COLOR_WHITE : COLOR_BLACK;
|
||||
// }
|
||||
|
||||
// spriteBatchPush3D(
|
||||
// NULL,
|
||||
// min,
|
||||
// max,
|
||||
// color,
|
||||
// (vec2){ 0.0f, 0.0f },
|
||||
// (vec2){ 1.0f, 1.0f }
|
||||
// );
|
||||
}
|
||||
}
|
||||
|
||||
void sceneMapDispose(scenedata_t *data) {
|
||||
meshDispose(&TEST_MAP.models[0].mesh);
|
||||
}
|
||||
|
||||
@@ -15,9 +15,6 @@ typedef struct {
|
||||
camera_t camera;
|
||||
} scenemap_t;
|
||||
|
||||
extern assetmap_t TEST_MAP;
|
||||
extern bool_t TEST_MAP_READY;
|
||||
|
||||
errorret_t sceneMapInit(scenedata_t *data);
|
||||
void sceneMapUpdate(scenedata_t *data);
|
||||
void sceneMapRender(scenedata_t *data);
|
||||
|
||||
Reference in New Issue
Block a user