mirror of
https://gitlab.com/drummyfish/anarch.git
synced 2025-02-07 02:30:15 -05:00
Update
This commit is contained in:
parent
1e38f4d552
commit
3bf6e1a077
32
assets.h
32
assets.h
@ -121,6 +121,38 @@ const uint8_t SFG_texturesWall[][SFG_TEXTURE_SIZE * SFG_TEXTURE_SIZE] =
|
||||
12,83,61,12,12,84,84,20,84,13,20,13,83,61,85,85,13,83,61,85,14,85,13,83,12,84,
|
||||
11,11,83,61,84,11,20,83,61,20,12,84,12,84,13,20,13,20,83,61,85,13,85,83,61,85,
|
||||
85,12,85
|
||||
},
|
||||
{
|
||||
4,4,4,4,4,4,4,4,3,4,4,5,4,4,4,4,4,4,5,4,4,5,4,4,4,4,4,4,4,4,4,4,5,4,5,4,5,5,4,5,
|
||||
36,5,4,5,20,5,5,4,5,5,5,4,5,20,5,5,5,20,5,5,5,5,5,4,4,5,4,5,4,4,4,4,4,4,5,4,5,5,
|
||||
4,5,4,5,13,5,5,5,5,20,5,5,5,13,5,5,13,5,4,4,4,4,4,4,4,4,4,4,20,4,4,4,5,4,4,4,5,
|
||||
77,4,5,77,4,4,5,4,5,4,4,5,4,4,76,4,3,4,3,4,35,3,4,4,4,76,76,76,4,76,76,76,4,76,
|
||||
4,4,76,4,76,76,4,4,76,4,76,4,4,4,4,37,5,36,5,4,4,37,5,4,5,4,5,4,5,4,5,20,5,20,5,
|
||||
36,5,5,5,4,4,4,4,37,5,4,36,36,4,37,4,36,5,4,5,20,5,4,4,5,4,5,5,5,4,5,5,4,4,13,4,
|
||||
5,4,4,4,4,4,4,4,4,4,4,4,4,5,20,4,5,4,4,4,4,20,5,20,5,4,4,13,5,5,4,4,77,4,4,4,5,
|
||||
4,4,4,4,4,37,4,4,4,5,4,4,4,4,4,4,5,4,4,4,4,5,4,4,4,77,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
||||
4,4,4,4,4,77,4,3,4,4,4,4,76,4,77,76,4,76,4,4,4,4,4,4,4,3,4,3,3,4,4,3,3,4,76,4,4,
|
||||
4,76,76,4,4,76,4,4,4,4,4,4,76,4,4,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
||||
4,4,4,4,4,20,5,20,4,37,4,4,4,4,36,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,77,4,4,4,5,
|
||||
4,5,36,4,4,4,36,20,4,4,4,4,4,4,4,4,4,4,4,12,4,4,4,4,76,4,4,5,13,4,4,4,4,4,20,5,
|
||||
20,4,4,4,4,3,19,4,3,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,3,11,
|
||||
11,11,11,76,3,3,11,11,11,3,12,11,76,3,11,76,76,11,11,11,11,11,11,11,11,3,11,3,3,
|
||||
35,4,12,4,4,12,4,4,19,4,37,4,4,4,20,4,36,4,4,36,4,20,4,4,36,4,37,4,4,20,4,37,4,
|
||||
37,36,36,4,36,20,36,20,37,37,20,36,37,20,37,36,4,20,5,37,20,4,37,4,37,37,20,37,
|
||||
4,37,20,36,5,36,36,4,20,4,37,4,20,4,4,5,37,5,37,4,36,5,36,5,36,4,20,36,20,5,4,
|
||||
37,20,37,37,20,37,4,4,4,3,4,4,36,4,36,20,4,20,4,4,4,4,20,4,4,5,4,4,4,4,20,4,37,
|
||||
20,4,37,20,4,20,36,4,12,4,3,4,12,4,4,36,4,20,36,4,4,4,4,20,4,4,20,4,4,36,4,20,5,
|
||||
4,4,4,3,3,3,3,3,4,36,3,3,3,36,3,3,4,3,3,36,36,3,3,3,4,4,3,4,4,3,4,35,4,4,4,20,
|
||||
36,36,20,37,20,4,36,36,20,36,4,36,4,36,4,4,4,37,20,4,36,5,37,4,20,4,35,4,37,36,
|
||||
4,4,37,4,36,37,36,36,4,36,36,20,36,36,37,4,36,36,4,36,4,4,4,36,37,4,36,20,36,20,
|
||||
37,4,37,4,36,36,4,20,36,37,36,4,37,37,36,20,4,36,36,36,36,20,36,4,4,4,4,4,4,4,4,
|
||||
36,4,20,36,20,4,36,4,36,4,36,36,36,20,36,36,36,36,36,36,4,36,36,4,36,4,4,4,20,
|
||||
37,4,20,4,36,4,4,3,3,3,3,3,3,3,3,36,4,3,12,12,36,12,3,35,4,19,3,3,3,11,3,4,4,4,
|
||||
36,4,3,19,3,19,4,36,12,4,36,4,4,3,36,4,12,4,3,4,130,4,4,4,12,4,12,12,3,4,3,4,4,
|
||||
4,4,4,4,3,12,4,3,4,19,4,3,4,12,3,36,4,4,4,4,3,3,4,4,12,4,4,4,12,4,12,4,3,4,3,4,
|
||||
36,3,3,36,4,3,19,3,3,4,3,3,4,4,3,4,11,4,4,3,4,12,4,4,4,4,4,4,12,4,19,4,19,4,3,3,
|
||||
3,3,4,3,4,3,4,12,3,4,3,3,4,3,4,4,4,3,4,36,4,4,12,4,3,4,3,3,3,130,3,3,3,3,3,3,
|
||||
130,3,3,3,2,2,130,130,3,3,11,3,3,3,3,3,3,130,3,3,130,3,3,3
|
||||
}
|
||||
};
|
||||
|
||||
|
51
levels.h
51
levels.h
@ -10,12 +10,16 @@ typedef uint16_t SFG_TileDefinition;
|
||||
|
||||
MSB aaabbbbb cccddddd LSB
|
||||
|
||||
aaa: ceiling texture index (from texture available on the map)
|
||||
aaa: ceiling texture index (from texture available on the map), 111
|
||||
means completely transparent texture
|
||||
bbbb: ceiling height (1111 meaning no ceiling) ABOVE the floor
|
||||
ccc: floor texture index
|
||||
ccc: floor texture index, 111 means completely transparent texture
|
||||
dddd: floor height
|
||||
*/
|
||||
|
||||
#define SFG_TILE_CEILING_MAX_HEIGHT 31
|
||||
#define SFG_TILE_TEXTURE_TRANSPARENT 7
|
||||
|
||||
typedef SFG_TileDefinition SFG_TileDictionary[SFG_TILE_DICTIONARY_SIZE];
|
||||
|
||||
/// helper macros for SFG_TileDefinition
|
||||
@ -27,8 +31,9 @@ typedef SFG_TileDefinition SFG_TileDictionary[SFG_TILE_DICTIONARY_SIZE];
|
||||
|
||||
#define SFG_TILE_FLOOR_HEIGHT(tile) (tile & 0x1f)
|
||||
#define SFG_TILE_FLOOR_TEXTURE(tile) ((tile & 0xe0) >> 5)
|
||||
#define SFG_TILE_CEILING_HEIGHT(tile) ((tile & 0x1f00) >> 8)
|
||||
|
||||
#define SFG_OUTSIDE_TILE SFG_TD(63,10,0,0)
|
||||
#define SFG_OUTSIDE_TILE SFG_TD(63,0,7,7)
|
||||
|
||||
typedef uint8_t SFG_MapArray[SFG_MAP_SIZE * SFG_MAP_SIZE];
|
||||
/**<
|
||||
@ -77,31 +82,31 @@ static const SFG_Level SFG_level0 =
|
||||
{
|
||||
.tileDictionary =
|
||||
{
|
||||
SFG_TD(0 ,0 ,0,0),SFG_TD(5 ,0 ,0,0),SFG_TD(1 ,0 ,1,0),SFG_TD(2 ,0 ,1,0), // 0
|
||||
SFG_TD(3 ,0 ,1,0),SFG_TD(4 ,0 ,1,0),SFG_TD(5 ,0 ,1,0),SFG_TD(0 ,0 ,0,0), // 4
|
||||
SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0), // 8
|
||||
SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0), // 12
|
||||
SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0), // 16
|
||||
SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0), // 20
|
||||
SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0), // 24
|
||||
SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0), // 28
|
||||
SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0), // 32
|
||||
SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0), // 36
|
||||
SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0), // 40
|
||||
SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0), // 44
|
||||
SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0), // 48
|
||||
SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0), // 52
|
||||
SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0), // 56
|
||||
SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0),SFG_TD(0 ,0 ,0,0), // 60
|
||||
SFG_TD(0 ,31,0,0),SFG_TD(5 ,63,0,0),SFG_TD(1 ,63,3,0),SFG_TD(2 ,63,3,0), // 0
|
||||
SFG_TD(3 ,31,3,0),SFG_TD(4 ,63,3,0),SFG_TD(5 ,63,3,0),SFG_TD(1 ,10,0,0), // 4
|
||||
SFG_TD(0 ,31,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0), // 8
|
||||
SFG_TD(0 ,31,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0), // 12
|
||||
SFG_TD(0 ,31,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0), // 16
|
||||
SFG_TD(0 ,31,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0), // 20
|
||||
SFG_TD(0 ,31,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0), // 24
|
||||
SFG_TD(0 ,31,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0), // 28
|
||||
SFG_TD(0 ,31,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0), // 32
|
||||
SFG_TD(0 ,31,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0), // 36
|
||||
SFG_TD(0 ,31,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0), // 40
|
||||
SFG_TD(0 ,31,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0), // 44
|
||||
SFG_TD(0 ,31,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0), // 48
|
||||
SFG_TD(0 ,31,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0), // 52
|
||||
SFG_TD(0 ,31,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0), // 56
|
||||
SFG_TD(0 ,31,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0),SFG_TD(0 ,63,0,0), // 60
|
||||
},
|
||||
|
||||
.mapArray =
|
||||
{
|
||||
#define o 0
|
||||
o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,
|
||||
o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,
|
||||
o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,1 ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,
|
||||
o ,o ,o ,o ,o ,o ,o ,o ,2 ,o ,o ,o ,o ,o ,o ,o ,o ,o ,1 ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,
|
||||
o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,7 ,7 ,7 ,7 ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,
|
||||
o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,7 ,7 ,7 ,7 ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,
|
||||
o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,7 ,7 ,7 ,7 ,o ,o ,o ,o ,1 ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,
|
||||
o ,o ,o ,o ,o ,o ,o ,o ,2 ,o ,7 ,7 ,7 ,7 ,o ,o ,o ,o ,1 ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,
|
||||
o ,o ,o ,o ,o ,o ,o ,o ,3 ,o ,o ,o ,o ,o ,o ,o ,o ,o ,1 ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,
|
||||
o ,o ,o ,o ,o ,o ,o ,o ,4 ,o ,o ,o ,o ,o ,o ,o ,o ,o ,1 ,1 ,1 ,1 ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,
|
||||
o ,o ,o ,o ,o ,6 ,6 ,6 ,5 ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,o ,
|
||||
|
17
main.c
17
main.c
@ -71,7 +71,7 @@ void SFG_pixelFunc(RCL_PixelInfo *pixel)
|
||||
if (pixel->isWall)
|
||||
{
|
||||
color =
|
||||
pixel->hit.type != SFG_TRANSPARENT_TEXTURE ?
|
||||
pixel->hit.type != SFG_TILE_TEXTURE_TRANSPARENT ?
|
||||
(SFG_getTexel(SFG_texturesWall[pixel->hit.type],pixel->texCoords.x / 32,pixel->texCoords.y / 32)) :
|
||||
SFG_TRANSPARENT_COLOR;
|
||||
|
||||
@ -100,11 +100,6 @@ void SFG_pixelFunc(RCL_PixelInfo *pixel)
|
||||
RCL_Unit SFG_textureAt(int16_t x, int16_t y)
|
||||
{
|
||||
SFG_TileDefinition tile = SFG_getMapTile(&SFG_level0,x,y);
|
||||
|
||||
if (tile == SFG_OUTSIDE_TILE &&
|
||||
(x < 0 || x >= SFG_MAP_SIZE || y < 0 || y >= SFG_MAP_SIZE))
|
||||
return SFG_TRANSPARENT_TEXTURE;
|
||||
|
||||
return SFG_TILE_FLOOR_TEXTURE(tile);
|
||||
}
|
||||
|
||||
@ -117,7 +112,13 @@ RCL_Unit SFG_floorHeightAt(int16_t x, int16_t y)
|
||||
|
||||
RCL_Unit SFG_ceilingHeightAt(int16_t x, int16_t y)
|
||||
{
|
||||
return RCL_UNITS_PER_SQUARE * 8;
|
||||
SFG_TileDefinition tile = SFG_getMapTile(&SFG_level0,x,y);
|
||||
|
||||
uint8_t height = SFG_TILE_CEILING_HEIGHT(tile);
|
||||
|
||||
return height != SFG_TILE_CEILING_MAX_HEIGHT ?
|
||||
((SFG_TILE_FLOOR_HEIGHT(tile) + height) * (RCL_UNITS_PER_SQUARE / 4)) :
|
||||
(RCL_UNITS_PER_SQUARE * 32);
|
||||
}
|
||||
|
||||
uint32_t SFG_frame;
|
||||
@ -137,7 +138,7 @@ void SFG_init()
|
||||
SFG_camera.position.x = RCL_UNITS_PER_SQUARE * 5;
|
||||
SFG_camera.position.y = RCL_UNITS_PER_SQUARE * 5;
|
||||
|
||||
SFG_rayConstraints.maxHits = 6;
|
||||
SFG_rayConstraints.maxHits = 10;
|
||||
SFG_rayConstraints.maxSteps = 32;
|
||||
|
||||
for (uint16_t i = 0; i < SFG_RESOLUTION_Y; ++i)
|
||||
|
Loading…
Reference in New Issue
Block a user