diff --git a/assets/chunks/1_0_0.dcf b/assets/chunks/1_0_0.dcf index 5762f2b5..182214ca 100644 Binary files a/assets/chunks/1_0_0.dcf and b/assets/chunks/1_0_0.dcf differ diff --git a/assets/meshes/chunks/chunk_1_0_0_0.dmf b/assets/meshes/chunks/chunk_1_0_0_0.dmf index 50b1d59d..6f5d1be2 100644 Binary files a/assets/meshes/chunks/chunk_1_0_0_0.dmf and b/assets/meshes/chunks/chunk_1_0_0_0.dmf differ diff --git a/assetsraw/chunks/chunk_1_0_0.json b/assetsraw/chunks/chunk_1_0_0.json index 9f0ba81f..5d69f9b8 100644 --- a/assetsraw/chunks/chunk_1_0_0.json +++ b/assetsraw/chunks/chunk_1_0_0.json @@ -31,6 +31,14 @@ 10, 0 ] + }, + { + "file": "house_5_2.dmf", + "pos": [ + 13, + 6, + 0 + ] } ], "tiles": [ @@ -907,33 +915,6 @@ "type": 1, "tile": 0 }, - { - "pos": [ - 13, - 6, - 0 - ], - "type": 1, - "tile": 0 - }, - { - "pos": [ - 14, - 6, - 0 - ], - "type": 1, - "tile": 0 - }, - { - "pos": [ - 15, - 6, - 0 - ], - "type": 1, - "tile": 0 - }, { "pos": [ 0, @@ -1051,33 +1032,6 @@ "type": 1, "tile": 0 }, - { - "pos": [ - 13, - 7, - 0 - ], - "type": 1, - "tile": 0 - }, - { - "pos": [ - 14, - 7, - 0 - ], - "type": 1, - "tile": 0 - }, - { - "pos": [ - 15, - 7, - 0 - ], - "type": 1, - "tile": 0 - }, { "pos": [ 0, diff --git a/src/dusk/display/display.h b/src/dusk/display/display.h index 41cae5cc..e5bfde9a 100644 --- a/src/dusk/display/display.h +++ b/src/dusk/display/display.h @@ -33,6 +33,10 @@ #endif #endif +#ifndef DUSK_DISPLAY_SCALE + #define DUSK_DISPLAY_SCALE 1 +#endif + // Main Display Struct, platform-speicifc typedef displayplatform_t display_t; diff --git a/src/dusk/display/screen/screen.c b/src/dusk/display/screen/screen.c index 5b2e233e..2bdf1082 100644 --- a/src/dusk/display/screen/screen.c +++ b/src/dusk/display/screen/screen.c @@ -23,6 +23,7 @@ const screencropaspectinfo_t SCREEN_CROP_ASPECTS[SCREEN_CROP_ASPECT_COUNT] = { errorret_t screenInit() { memoryZero(&SCREEN, sizeof(screen_t)); + SCREEN.scale = DUSK_DISPLAY_SCALE; SCREEN.background = COLOR_CORNFLOWER_BLUE; #ifdef DUSK_DISPLAY_SIZE_DYNAMIC diff --git a/src/dusk/display/screen/screen.h b/src/dusk/display/screen/screen.h index 1213354f..09e6bab3 100644 --- a/src/dusk/display/screen/screen.h +++ b/src/dusk/display/screen/screen.h @@ -7,6 +7,7 @@ #pragma once #include "dusk.h" +#include "display/display.h" #include "display/framebuffer/framebuffer.h" #include "display/mesh/quad.h" #include "display/color.h" @@ -58,6 +59,7 @@ typedef enum { // } screenscalemode_t; typedef struct { + int32_t scale; screenmode_t mode; // screenscalemode_t scaleMode; diff --git a/src/dusk/scene/overworld/sceneoverworld.c b/src/dusk/scene/overworld/sceneoverworld.c index a10b58bb..540c4010 100644 --- a/src/dusk/scene/overworld/sceneoverworld.c +++ b/src/dusk/scene/overworld/sceneoverworld.c @@ -85,7 +85,7 @@ errorret_t sceneOverworldRender(scenedata_t *sceneData) { // Camera Eye float_t pixelsPerUnit = TILE_SIZE_PIXELS; - float_t worldH = (float_t)SCREEN.height / pixelsPerUnit; + float_t worldH = (float_t)(SCREEN.height / SCREEN.scale) / pixelsPerUnit; float_t z = (worldH * 0.5f) / tanf(fov * 0.5f); vec3 worldPosVec; rpgCameraGetPosition(worldPosVec); diff --git a/src/dusk/scene/scene.c b/src/dusk/scene/scene.c index 6d934f09..e7d17d44 100644 --- a/src/dusk/scene/scene.c +++ b/src/dusk/scene/scene.c @@ -73,8 +73,8 @@ errorret_t sceneRender(void) { errorChain(shaderSetMatrix(&SHADER_UNLIT, SHADER_UNLIT_MODEL, ident)); glm_ortho( - 0.0f, SCREEN.width, - SCREEN.height, 0.0f, + 0.0f, (float_t)(SCREEN.width / SCREEN.scale), + (float_t)(SCREEN.height / SCREEN.scale), 0.0f, 0.1f, 100.0f, proj ); diff --git a/src/duskdolphin/display/displayplatform.h b/src/duskdolphin/display/displayplatform.h index ed9b61a9..d1db4e67 100644 --- a/src/duskdolphin/display/displayplatform.h +++ b/src/duskdolphin/display/displayplatform.h @@ -6,6 +6,7 @@ */ #pragma once +#define DUSK_DISPLAY_SCALE 2 #include "displaydolphin.h" #define displayPlatformInit displayInitDolphin diff --git a/src/duskpsp/display/displayplatform.h b/src/duskpsp/display/displayplatform.h index 57dbf17e..c13ba140 100644 --- a/src/duskpsp/display/displayplatform.h +++ b/src/duskpsp/display/displayplatform.h @@ -6,6 +6,7 @@ */ #pragma once +#define DUSK_DISPLAY_SCALE 2 #include "display/displaysdl2.h" typedef displaysdl2_t displayplatform_t;