Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
quietust committed Aug 15, 2014
2 parents aa3b1bd + 29fad1e commit 07750ad
Show file tree
Hide file tree
Showing 159 changed files with 951 additions and 896 deletions.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ ELSE(UNIX)
agui_allegro5.lib
$(NOINHERIT)
)
SET(PROJECT_SRCS ${PROJECT_SRCS} IsoWorld.rc)
include_directories (
${include_directories}
${CMAKE_CURRENT_SOURCE_DIR}/allegro/include
Expand Down
2 changes: 2 additions & 0 deletions DetailedTile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,8 @@ void DetailedTile::load_tile(const char * filename, int inx, int iny) {
}

void load_detailed_tiles(ALLEGRO_PATH * base_path, MapSection * section) {
if(!base_path || !section)
return;
ALLEGRO_PATH * tile_path = al_clone_path(base_path);
al_set_path_filename(tile_path, "");
al_append_path_component(tile_path, "data");
Expand Down
57 changes: 33 additions & 24 deletions MapSection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -228,14 +228,7 @@ bool MapSection::set_size(int x, int y)

num_tiles = total_needed;

for(unsigned int i = 0; i < num_tiles; i++)
{
block_array[i].color = al_map_rgb(255,255,255);
block_array[i].height = 0;
block_array[i].sprite = 0;
block_array[i].terrain = TERRAIN_NONE;
block_array[i].structure = STRUCTURE_NONE;
}
flood_fill(NULL, 0);

return true;
}
Expand All @@ -251,7 +244,10 @@ void MapSection::flood_fill(c_tile *tile, int height)
{
block_array[i].height = height;
block_array[i].sprite = tile;
block_array[i].color = al_map_rgb(255,255,255);
block_array[i].biome_color = al_map_rgb(255,255,255);
block_array[i].combined_color = al_map_rgb(255,255,255);
block_array[i].structure_color = al_map_rgb(255,255,255);
block_array[i].trade_color = al_map_rgb(255,255,255);
block_array[i].terrain = TERRAIN_NONE;
block_array[i].structure = STRUCTURE_NONE;
}
Expand Down Expand Up @@ -469,7 +465,7 @@ void MapSection::load_biome_tiles(s_maplist * maplist)
al_unmap_rgb(pixel_elw, &red, &green, &blue);
unsigned char cR, cG, cB;
float R,G,B;
al_unmap_rgb(block_array[index].color, &cR, &cG, &cB);
al_unmap_rgb(block_array[index].biome_color, &cR, &cG, &cB);
R=cR;
G=cG;
B=cB;
Expand Down Expand Up @@ -816,26 +812,32 @@ void MapSection::load_structure_tiles(ALLEGRO_BITMAP * structuremap)
}
}
}
void MapSection::load_colors(ALLEGRO_BITMAP * colormap)
{
for (unsigned int y = 0; y < board_width; y++)
{
for (unsigned int x = 0; x < board_height; x++)
{
unsigned int index = x + (board_width * y);
if(colormap)

ALLEGRO_COLOR get_color(ALLEGRO_BITMAP * input, int x, int y) {
if(input)
{
int tempx = x + user_config.map_x;
int tempy = y + user_config.map_y;

tempx = bind_to_range(tempx , al_get_bitmap_width(colormap));
tempy = bind_to_range(tempy , al_get_bitmap_height(colormap));

block_array[index].color = al_get_pixel(colormap, tempx, tempy);
tempx = bind_to_range(tempx , al_get_bitmap_width(input));
tempy = bind_to_range(tempy , al_get_bitmap_height(input));

return al_get_pixel(input, tempx, tempy);
}
else block_array[index].color = al_map_rgb(255,255,255);
else return al_map_rgb(255,255,255);
}

void MapSection::load_colors(s_maplist * map_list)
{
for (unsigned int y = 0; y < board_width; y++)
{
for (unsigned int x = 0; x < board_height; x++)
{
unsigned int index = x + (board_width * y);
block_array[index].biome_color = get_color(map_list->biome_map, x,y);
block_array[index].combined_color = get_color(map_list->combined_biome_map, x,y);
block_array[index].structure_color = get_color(map_list->structure_map, x,y);
block_array[index].trade_color = get_color(map_list->trade_map, x,y);
}
}
}
Expand All @@ -846,8 +848,15 @@ void MapSection::propogate_tiles(s_maplist * maplist)
{
clock_t start_time = clock();
load_heights(maplist->elevation_map);
load_colors(maplist->biome_map);
load_colors(maplist);
load_water_level(maplist->elevation_map_with_water);
load_level(maplist->temperature_map, SOURCE_TEMPERATURE);
load_level(maplist->rainfall_map, SOURCE_RAINFALL);
load_level(maplist->drainage_map, SOURCE_DRAINAGE);
load_level(maplist->savagery_map, SOURCE_SAVAGERY);
load_level(maplist->volcanism_map, SOURCE_VOLCANISM);
load_level(maplist->evil_map, SOURCE_EVIL);
load_level(maplist->salinity_map, SOURCE_SALINITY);
load_biome_tiles(maplist);
load_structure_tiles(maplist->structure_map);
generate_special_tile_borders();
Expand Down
2 changes: 1 addition & 1 deletion MapSection.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class MapSection
void pointToSprite(float *inx, float *iny, int inz);
void load_heights(ALLEGRO_BITMAP * heightmap);
void load_water_level(ALLEGRO_BITMAP * watermap);
void load_colors(ALLEGRO_BITMAP * colormap);
void MapSection::load_colors(s_maplist * map_list);
void load_level(ALLEGRO_BITMAP * levelmap, int level);
void load_biome_tiles(s_maplist * maplist);
void load_structure_tiles(ALLEGRO_BITMAP * structuremap);
Expand Down
4 changes: 2 additions & 2 deletions UserConfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ UserConfig::UserConfig(void)
res_y = 480;
map_x = 0;
map_y = 0;
map_width = 50;
map_height = 50;
map_width = 128;
map_height = 128;
map_shift = 100;
map_autoload = 1;
default_config = al_create_config();
Expand Down
52 changes: 51 additions & 1 deletion c_tile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,16 @@ void draw_sprite(TileSet * tileset, s_sprite sprite, s_map_block * block, float
color = mix_colors(sprite.color, block->light);
break;
case COLOR_BIOME:
color = mix_colors(block->color, block->light);
color = mix_colors(block->biome_color, block->light);
break;
case COLOR_COMBINED:
color = mix_colors(block->combined_color, block->light);
break;
case COLOR_STRUCTURE:
color = mix_colors(block->structure_color, block->light);
break;
case COLOR_TRADE:
color = mix_colors(block->trade_color, block->light);
break;
case COLOR_PALETTE:
switch(sprite.color_source)
Expand All @@ -172,6 +181,27 @@ void draw_sprite(TileSet * tileset, s_sprite sprite, s_map_block * block, float
case SOURCE_DEPTH:
color = mix_colors(tileset->get_palette_color(sprite.palette_number,block->water_height-block->height), block->light);
break;
case SOURCE_TEMPERATURE:
color = mix_colors(tileset->get_palette_color(sprite.palette_number,block->levels[SOURCE_TEMPERATURE]), block->light);
break;
case SOURCE_RAINFALL:
color = mix_colors(tileset->get_palette_color(sprite.palette_number,block->levels[SOURCE_RAINFALL]), block->light);
break;
case SOURCE_DRAINAGE:
color = mix_colors(tileset->get_palette_color(sprite.palette_number,block->levels[SOURCE_DRAINAGE]), block->light);
break;
case SOURCE_SAVAGERY:
color = mix_colors(tileset->get_palette_color(sprite.palette_number,block->levels[SOURCE_SAVAGERY]), block->light);
break;
case SOURCE_VOLCANISM:
color = mix_colors(tileset->get_palette_color(sprite.palette_number,block->levels[SOURCE_VOLCANISM]), block->light);
break;
case SOURCE_EVIL:
color = mix_colors(tileset->get_palette_color(sprite.palette_number,block->levels[SOURCE_EVIL]), block->light);
break;
case SOURCE_SALINITY:
color = mix_colors(tileset->get_palette_color(sprite.palette_number,block->levels[SOURCE_SALINITY]), block->light);
break;
default:
color = block->light;
}
Expand Down Expand Up @@ -200,6 +230,12 @@ e_color_by get_color_selector(const char * text)
return COLOR_INI;
if(strcmp(text, "biome_map") == 0)
return COLOR_BIOME;
if(strcmp(text, "combined_biome_map") == 0)
return COLOR_COMBINED;
if(strcmp(text, "trade_map") == 0)
return COLOR_TRADE;
if(strcmp(text, "structure_map") == 0)
return COLOR_STRUCTURE;
if(strcmp(text, "palette") == 0)
return COLOR_PALETTE;
return COLOR_NONE;
Expand All @@ -211,6 +247,20 @@ e_color_source get_color_source(const char * text)
return SOURCE_ELEV;
if(strcmp(text, "water_depth") == 0)
return SOURCE_DEPTH;
if(strcmp(text, "temperature") == 0)
return SOURCE_TEMPERATURE;
if(strcmp(text, "rainfall") == 0)
return SOURCE_RAINFALL;
if(strcmp(text, "drainage") == 0)
return SOURCE_DRAINAGE;
if(strcmp(text, "savagery") == 0)
return SOURCE_SAVAGERY;
if(strcmp(text, "volcanism") == 0)
return SOURCE_VOLCANISM;
if(strcmp(text, "evil") == 0)
return SOURCE_EVIL;
if(strcmp(text, "salinity") == 0)
return SOURCE_SALINITY;
return SOURCE_ELEV;
}

Expand Down
10 changes: 10 additions & 0 deletions c_tile.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,22 @@ enum e_color_by
COLOR_NONE,
COLOR_INI,
COLOR_BIOME,
COLOR_COMBINED,
COLOR_STRUCTURE,
COLOR_TRADE,
COLOR_PALETTE,
COLOR_DIRECT
};

enum e_color_source
{
SOURCE_TEMPERATURE,
SOURCE_RAINFALL,
SOURCE_DRAINAGE,
SOURCE_SAVAGERY,
SOURCE_VOLCANISM,
SOURCE_EVIL,
SOURCE_SALINITY,
SOURCE_ELEV,
SOURCE_DEPTH
};
Expand Down
36 changes: 20 additions & 16 deletions common.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,32 +17,36 @@ class DetailedMap;
struct s_pathlist
{
ALLEGRO_PATH * biome_map;
ALLEGRO_PATH * combined_biome_map;
ALLEGRO_PATH * elevation_map;
ALLEGRO_PATH * elevation_map_with_water;
ALLEGRO_PATH * structure_map;
//ALLEGRO_PATH * temperature_map;
//ALLEGRO_PATH * rainfall_map;
//ALLEGRO_PATH * drainage_map;
//ALLEGRO_PATH * savagery_map;
//ALLEGRO_PATH * volcanism_map;
//ALLEGRO_PATH * vegetation_map;
//ALLEGRO_PATH * evil_map;
//ALLEGRO_PATH * salinity_map;
ALLEGRO_PATH * trade_map;
ALLEGRO_PATH * temperature_map;
ALLEGRO_PATH * rainfall_map;
ALLEGRO_PATH * drainage_map;
ALLEGRO_PATH * savagery_map;
ALLEGRO_PATH * volcanism_map;
ALLEGRO_PATH * vegetation_map;
ALLEGRO_PATH * evil_map;
ALLEGRO_PATH * salinity_map;
};
struct s_maplist
{
ALLEGRO_BITMAP * biome_map;
ALLEGRO_BITMAP * combined_biome_map;
ALLEGRO_BITMAP * elevation_map;
ALLEGRO_BITMAP * elevation_map_with_water;
ALLEGRO_BITMAP * structure_map;
//ALLEGRO_BITMAP * temperature_map;
//ALLEGRO_BITMAP * rainfall_map;
//ALLEGRO_BITMAP * drainage_map;
//ALLEGRO_BITMAP * savagery_map;
//ALLEGRO_BITMAP * volcanism_map;
//ALLEGRO_BITMAP * vegetation_map;
//ALLEGRO_BITMAP * evil_map;
//ALLEGRO_BITMAP * salinity_map;
ALLEGRO_BITMAP * temperature_map;
ALLEGRO_BITMAP * rainfall_map;
ALLEGRO_BITMAP * drainage_map;
ALLEGRO_BITMAP * savagery_map;
ALLEGRO_BITMAP * volcanism_map;
ALLEGRO_BITMAP * vegetation_map;
ALLEGRO_BITMAP * evil_map;
ALLEGRO_BITMAP * salinity_map;
ALLEGRO_BITMAP * trade_map;
s_maplist(void);
};

Expand Down
Loading

0 comments on commit 07750ad

Please sign in to comment.