diff --git a/src/dusk/display/screen/screen.c b/src/dusk/display/screen/screen.c index 1690ea4a..5b2e233e 100644 --- a/src/dusk/display/screen/screen.c +++ b/src/dusk/display/screen/screen.c @@ -57,9 +57,9 @@ errorret_t screenBind() { switch(SCREEN.mode) { case SCREEN_MODE_BACKBUFFER: { #if defined(DUSK_DISPLAY_WIDTH) && defined(DUSK_DISPLAY_HEIGHT) - SCREEN.width = DUSK_DISPLAY_WIDTH; SCREEN.height = DUSK_DISPLAY_HEIGHT; - SCREEN.aspect = (float_t)DUSK_DISPLAY_WIDTH / (float_t)DUSK_DISPLAY_HEIGHT; + SCREEN.aspect = frameBufferGetAspect(FRAMEBUFFER_BOUND); + SCREEN.width = SCREEN.height * SCREEN.aspect; #else SCREEN.width = frameBufferGetWidth(FRAMEBUFFER_BOUND); SCREEN.height = frameBufferGetHeight(FRAMEBUFFER_BOUND); @@ -415,14 +415,13 @@ void screenUpdateScan(void) { #ifdef DUSK_DISPLAY_OVERSCAN SCREEN.scanX = DUSK_DISPLAY_OVERSCAN; SCREEN.scanY = DUSK_DISPLAY_OVERSCAN; - SCREEN.scanWidth = SCREEN.width - DUSK_DISPLAY_OVERSCAN * 2; - SCREEN.scanHeight = SCREEN.height - DUSK_DISPLAY_OVERSCAN * 2; #else SCREEN.scanX = 0; SCREEN.scanY = 0; - SCREEN.scanWidth = SCREEN.width; - SCREEN.scanHeight = SCREEN.height; #endif + + SCREEN.scanWidth = SCREEN.width - (SCREEN.scanX * 2); + SCREEN.scanHeight = SCREEN.height - (SCREEN.scanY * 2); #ifdef DUSK_DISPLAY_SIZE_DYNAMIC // Find the smallest standard ratio >= the screen aspect. diff --git a/src/dusk/rpg/overworld/worldpos.h b/src/dusk/rpg/overworld/worldpos.h index 8008312e..bb6be2fe 100644 --- a/src/dusk/rpg/overworld/worldpos.h +++ b/src/dusk/rpg/overworld/worldpos.h @@ -10,13 +10,13 @@ #define TILE_SIZE_PIXELS 24 -#define CHUNK_WIDTH 12 +#define CHUNK_WIDTH 16 #define CHUNK_HEIGHT 16 #define CHUNK_DEPTH 8 #define CHUNK_TILE_COUNT (CHUNK_WIDTH * CHUNK_HEIGHT * CHUNK_DEPTH) -#define MAP_CHUNK_WIDTH 5 +#define MAP_CHUNK_WIDTH 4 #define MAP_CHUNK_HEIGHT 4 #define MAP_CHUNK_DEPTH 3 #define MAP_CHUNK_COUNT (MAP_CHUNK_WIDTH * MAP_CHUNK_HEIGHT * MAP_CHUNK_DEPTH) diff --git a/src/dusk/scene/overworld/sceneoverworld.c b/src/dusk/scene/overworld/sceneoverworld.c index e2e83570..e75e8def 100644 --- a/src/dusk/scene/overworld/sceneoverworld.c +++ b/src/dusk/scene/overworld/sceneoverworld.c @@ -50,7 +50,7 @@ errorret_t sceneOverworldRender(scenedata_t *sceneData) { float_t fov = glm_rad(45.0f); glm_perspective( fov, - (float_t)SCREEN.width / (float_t)SCREEN.height, + SCREEN.aspect, 0.1f, 100.0f, proj @@ -63,17 +63,7 @@ errorret_t sceneOverworldRender(scenedata_t *sceneData) { float_t z = (worldH * 0.5f) / tanf(fov * 0.5f); vec3 worldPosVec; rpgCameraGetPosition(worldPosVec); - float_t offset = -32.0f * (worldH / TILE_SIZE_PIXELS); - - // consolePrint( - // "FOV: %f, Aspect: %f, WorldH: %f, Z: %f, Offset: %f, ScreenH: %d", - // fov, - // (float_t)SCREEN.width / (float_t)SCREEN.height, - // worldH, - // z, - // offset, - // SCREEN.height - // ); + float_t offset = -24.0f * (worldH / TILE_SIZE_PIXELS); glm_vec3_add(worldPosVec, (vec3){ 0.5f, 0.5f, 0.5f }, worldPosVec);