46 lines
1.0 KiB
C
46 lines
1.0 KiB
C
/**
|
|
* Copyright (c) 2021 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#pragma once
|
|
#include "../../libs.h"
|
|
#include "tile.h"
|
|
#include "chunk.h"
|
|
#include "../../display/texture.h"
|
|
#include "../../display/tileset.h"
|
|
|
|
/** Width of map (in chunks) */
|
|
#define MAP_WIDTH 3
|
|
/** Height of map (in chunks) */
|
|
#define MAP_HEIGHT MAP_WIDTH
|
|
/** Depth of map (in chunks) */
|
|
#define MAP_DEPTH 2
|
|
/** Count of chunks in the world */
|
|
#define MAP_CHUNK_COUNT MAP_WIDTH * MAP_HEIGHT * MAP_DEPTH
|
|
|
|
#define MAP_ASSET_TEXTURE "world/tileset.png"
|
|
|
|
typedef struct {
|
|
/** Tile definitions */
|
|
tiledef_t *tileDefinitions;
|
|
|
|
/** Tileset predivided */
|
|
tileset_t *tileset;
|
|
|
|
/** Texture of the tileset */
|
|
texture_t *texture;
|
|
|
|
/** Current (chunk) coordinates of the first chunk in the chunk list */
|
|
int32_t x, y, z;
|
|
|
|
/** Current chunk list, ordered */
|
|
chunk_t *chunkList[MAP_CHUNK_COUNT];
|
|
|
|
/** Chunk array, unordered */
|
|
chunk_t chunks[MAP_CHUNK_COUNT];
|
|
} map_t;
|
|
|
|
extern map_t MAP_STATE; |