medfall

A super great game engine
Log | Files | Refs

commit 704e0d934ced7a39f4e8f23f20654fa48a6174c5
parent 4c0e3666cae59eab0f982550338f6a19e785a9eb
Author: Michael Savage <mikejsavage@gmail.com>
Date:   Sun, 19 Nov 2017 15:41:19 +0200

Add a few named constants to help clean things up a bit

Diffstat:
clipmap.cc | 34++++++++++++++++++----------------
1 file changed, 18 insertions(+), 16 deletions(-)

diff --git a/clipmap.cc b/clipmap.cc @@ -72,8 +72,10 @@ static VB trees_instance_data; static u32 num_trees; static Mesh tree_mesh; -// PATCH_RESOLUTION is the number of squares per dimension, PATCH_RESOLUTION + 1 is the number of verts per dimension static constexpr u32 PATCH_RESOLUTION = 48; +static constexpr u32 PATCH_VERT_RESOLUTION = PATCH_RESOLUTION + 1; +static constexpr u32 CLIPMAP_RESOLUTION = PATCH_RESOLUTION * 4 + 1; +static constexpr u32 CLIPMAP_VERT_RESOLUTION = CLIPMAP_RESOLUTION + 1; static constexpr u32 NUM_LODS = 7; static void load_trees( MemoryArena * arena ) { @@ -103,7 +105,7 @@ static void load_trees( MemoryArena * arena ) { } static size_t patch2d( size_t x, size_t y ) { - return y * ( PATCH_RESOLUTION + 1 ) + x; + return y * PATCH_VERT_RESOLUTION + x; } static void file_get_contents_and_decompress( const char * path, u8 * decompressed, size_t decompressed_size ) { @@ -196,11 +198,11 @@ GAME_INIT( game_init ) { { MEMARENA_SCOPED_CHECKPOINT( &mem->persistent_arena ); - array< v3 > vertices = alloc_array< v3 >( &mem->persistent_arena, ( PATCH_RESOLUTION + 1 ) * ( PATCH_RESOLUTION + 1 ) ); + array< v3 > vertices = alloc_array< v3 >( &mem->persistent_arena, PATCH_VERT_RESOLUTION * PATCH_VERT_RESOLUTION ); size_t n = 0; - for( u32 y = 0; y < PATCH_RESOLUTION + 1; y++ ) { - for( u32 x = 0; x < PATCH_RESOLUTION + 1; x++ ) { + for( u32 y = 0; y < PATCH_VERT_RESOLUTION; y++ ) { + for( u32 x = 0; x < PATCH_VERT_RESOLUTION; x++ ) { vertices[ n++ ] = v3( x, y, 0 ); } } @@ -265,10 +267,10 @@ GAME_INIT( game_init ) { { MEMARENA_SCOPED_CHECKPOINT( &mem->persistent_arena ); - array< v3 > horizontal_vertices = alloc_array< v3 >( &mem->persistent_arena, ( PATCH_RESOLUTION + 1 ) * 2 ); - array< v3 > vertical_vertices = alloc_array< v3 >( &mem->persistent_arena, ( PATCH_RESOLUTION + 1 ) * 2 ); + array< v3 > horizontal_vertices = alloc_array< v3 >( &mem->persistent_arena, PATCH_VERT_RESOLUTION * 2 ); + array< v3 > vertical_vertices = alloc_array< v3 >( &mem->persistent_arena, PATCH_VERT_RESOLUTION * 2 ); - for( u32 i = 0; i < PATCH_RESOLUTION + 1; i++ ) { + for( u32 i = 0; i < PATCH_VERT_RESOLUTION; i++ ) { horizontal_vertices[ i * 2 + 0 ] = v3( i, 0, 0 ); horizontal_vertices[ i * 2 + 1 ] = v3( i, 1, 0 ); @@ -317,28 +319,28 @@ GAME_INIT( game_init ) { { MEMARENA_SCOPED_CHECKPOINT( &mem->persistent_arena ); - array< v3 > vertices = alloc_array< v3 >( &mem->persistent_arena, ( PATCH_RESOLUTION * 4 + 2 ) * 4 ); + array< v3 > vertices = alloc_array< v3 >( &mem->persistent_arena, ( PATCH_RESOLUTION * 4 + 2 ) * 4 - 2 ); size_t n = 0; - for( u32 i = 0; i < PATCH_RESOLUTION * 4 + 2; i++ ) { + for( u32 i = 0; i < CLIPMAP_VERT_RESOLUTION; i++ ) { vertices[ n++ ] = v3( 0, PATCH_RESOLUTION * 4 + 1 - i, 0 ); vertices[ n++ ] = v3( 1, PATCH_RESOLUTION * 4 + 1 - i, 0 ); } size_t start_of_second_set = n; - for( u32 i = 0; i < PATCH_RESOLUTION * 4 + 2; i++ ) { + for( u32 i = 0; i < CLIPMAP_VERT_RESOLUTION - 1; i++ ) { vertices[ n++ ] = v3( i + 1, 0, 0 ); vertices[ n++ ] = v3( i + 1, 1, 0 ); } for( v3 & v : vertices ) { - v -= v3( 0.5f * v2( PATCH_RESOLUTION * 4.0f + 3.0f ), 0 ); + v -= v3( 0.5f * v2( CLIPMAP_VERT_RESOLUTION + 1 ), 0 ); } - array< u32 > indices = alloc_array< u32 >( &mem->persistent_arena, ( PATCH_RESOLUTION * 8 + 3 ) * 6 ); + array< u32 > indices = alloc_array< u32 >( &mem->persistent_arena, ( CLIPMAP_VERT_RESOLUTION * 2 - 1 ) * 6 ); n = 0; - for( u32 i = 0; i < PATCH_RESOLUTION * 4 + 2; i++ ) { + for( u32 i = 0; i < CLIPMAP_VERT_RESOLUTION; i++ ) { indices[ n++ ] = ( i + 0 ) * 2 + 1; indices[ n++ ] = ( i + 0 ) * 2 + 0; indices[ n++ ] = ( i + 1 ) * 2 + 0; @@ -348,7 +350,7 @@ GAME_INIT( game_init ) { indices[ n++ ] = ( i + 1 ) * 2 + 0; } - for( u32 i = 0; i < PATCH_RESOLUTION * 4 + 1; i++ ) { + for( u32 i = 0; i < CLIPMAP_VERT_RESOLUTION - 1; i++ ) { indices[ n++ ] = start_of_second_set + ( i + 0 ) * 2 + 1; indices[ n++ ] = start_of_second_set + ( i + 0 ) * 2 + 0; indices[ n++ ] = start_of_second_set + ( i + 1 ) * 2 + 0; @@ -371,7 +373,7 @@ GAME_INIT( game_init ) { v2 base = -v2( checked_cast< float >( PATCH_RESOLUTION << NUM_LODS ) ); v2 clipmap_tl = base; - v2 clipmap_br = clipmap_tl + v2( ( 4.0f * PATCH_RESOLUTION + 1.0f ) * scale ); + v2 clipmap_br = clipmap_tl + v2( CLIPMAP_RESOLUTION * scale ); StaticArray< v3, 8 > vertices; float big = 10000000.0;