Getting tile data from overworld

This commit is contained in:
2025-03-03 00:57:36 -06:00
parent d81775054d
commit d53b5eab49
10 changed files with 176 additions and 23 deletions

View File

@ -25,8 +25,8 @@ void mapInit() {
void mapUpdate() {
// Copy tile ids.
memoryCopyRangeSafe(
&MAP_DATA.tileIds,
&OVERWORLD.tileIds[0],
MAP_DATA.tileIds,
OVERWORLD.tileIds,
&OVERWORLD.tileIds[
OVERWORLD.mapWidth * OVERWORLD.mapHeight * OVERWORLD.mapLayerCount
],

View File

@ -7,8 +7,10 @@
#include "../fragments/packed.glsl"
#include "../fragments/quad.glsl"
#define MAP_TILE_PACKED_SIZE 16
layout(std140) uniform b_Map {
uvec4 mapTileIds[OVERWORLD_TILE_COUNT_MAX / PACKED_U8_PER_UVEC4];
uvec4 mapTileIds[OVERWORLD_TILE_COUNT_MAX / MAP_TILE_PACKED_SIZE];
uint mapSize;
uvec3 _padding0;
};
@ -42,5 +44,6 @@ uint mapGetLayer(uint instanceIndex) {
}
uint mapGetTileId(uint instanceIndex) {
uvec4 v4 = mapTileIds[packedArrayGetU8IndexFromUVEC4Array(instanceIndex)];
return packedArrayGetU8FromUVEC4ArrayValue(instanceIndex, v4);
}