Skip to content

Commit

Permalink
Add second construction phase to Large temples, Nymphaea and Small ma…
Browse files Browse the repository at this point in the history
…usolea
  • Loading branch information
Areldir committed Jun 18, 2024
1 parent ea8a247 commit 54d06d5
Show file tree
Hide file tree
Showing 5 changed files with 83 additions and 31 deletions.
19 changes: 16 additions & 3 deletions src/building/image.c
Original file line number Diff line number Diff line change
Expand Up @@ -353,34 +353,44 @@ int building_image_get(const building *b)
switch (b->monument.phase) {
case MONUMENT_START:
return assets_get_image_id("Monuments", "Ceres_LT_0");
case 2:
return assets_get_image_id("Monuments", "Ceres_LT_50");
default:
return image_group(GROUP_BUILDING_TEMPLE_CERES) + 1;
}
case BUILDING_LARGE_TEMPLE_NEPTUNE:
switch (b->monument.phase) {
case MONUMENT_START:
return assets_get_image_id("Monuments", "Neptune_LT_0");
case 2:
return assets_get_image_id("Monuments", "Neptune_LT_50");
default:
return image_group(GROUP_BUILDING_TEMPLE_NEPTUNE) + 1;
}
case BUILDING_LARGE_TEMPLE_MERCURY:
switch (b->monument.phase) {
case MONUMENT_START:
return assets_get_image_id("Monuments", "Mercury_LT_0");
case 2:
return assets_get_image_id("Monuments", "Mercury_LT_50");
default:
return image_group(GROUP_BUILDING_TEMPLE_MERCURY) + 1;
}
case BUILDING_LARGE_TEMPLE_MARS:
switch (b->monument.phase) {
case MONUMENT_START:
return assets_get_image_id("Monuments", "Mars_LT_0");
case 2:
return assets_get_image_id("Monuments", "Mars_LT_50");
default:
return image_group(GROUP_BUILDING_TEMPLE_MARS) + 1;
}
case BUILDING_LARGE_TEMPLE_VENUS:
switch (b->monument.phase) {
case MONUMENT_START:
return assets_get_image_id("Monuments", "Venus_LT_0");
case 2:
return assets_get_image_id("Monuments", "Venus_LT_0");
default:
return image_group(GROUP_BUILDING_TEMPLE_VENUS) + 1;
}
Expand Down Expand Up @@ -769,13 +779,14 @@ int building_image_get(const building *b)
int offset = building_variant_get_offset_with_rotation(b->type, b->variant);
return image_id + offset;
}
case BUILDING_SMALL_MAUSOLEUM:
case BUILDING_SMALL_MAUSOLEUM: {
int orientation = building_rotation_get_building_orientation(b->subtype.orientation) / 2;
switch (b->monument.phase) {
case MONUMENT_START:
return assets_get_image_id("Monuments", "Mausoleum_Small_Construction_01");
case 2:
return assets_get_image_id("Monuments", "Mausoleum_Small_Construction_02") + orientation % 2;
default:
{
int orientation = building_rotation_get_building_orientation(b->subtype.orientation) / 2;
return assets_get_image_id("Monuments", "Mausoleum S") + orientation % 2;
}
}
Expand All @@ -794,6 +805,8 @@ int building_image_get(const building *b)
switch (b->monument.phase) {
case MONUMENT_START:
return assets_get_image_id("Monuments", "Pantheon_Const_00");
case 2:
return assets_get_image_id("Monuments", "Nymphaeum_Construction_02");
default:
return assets_get_image_id("Monuments", "Nymphaeum ON");
}
Expand Down
15 changes: 9 additions & 6 deletions src/building/monument.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,25 +102,28 @@ static const monument_type oracle = {
};

static const monument_type small_mausoleum = {
.phases = 2,
.phases = 3,
.resources = {
{ [ARCHITECTS] = 1, [RESOURCE_STONE] = 2, [RESOURCE_CONCRETE] = 4, [RESOURCE_MARBLE] = 2 },
{ [ARCHITECTS] = 1, [RESOURCE_STONE] = 2, [RESOURCE_CONCRETE] = 4 },
{ [ARCHITECTS] = 1, [RESOURCE_MARBLE] = 2 },
{ NOTHING }
}
};

static const monument_type large_temple = {
.phases = 2,
.phases = 3,
.resources = {
{ [ARCHITECTS] = 1, [RESOURCE_STONE] = 4, [RESOURCE_CONCRETE] = 4, [RESOURCE_MARBLE] = 2 },
{ [ARCHITECTS] = 1, [RESOURCE_STONE] = 4, [RESOURCE_CONCRETE] = 4 },
{ [ARCHITECTS] = 1, [RESOURCE_MARBLE] = 2 },
{ NOTHING }
}
};

static const monument_type nymphaeum = {
.phases = 2,
.phases = 3,
.resources = {
{ [ARCHITECTS] = 1, [RESOURCE_STONE] = 12, [RESOURCE_CONCRETE] = 4, [RESOURCE_MARBLE] = 2 },
{ [ARCHITECTS] = 1, [RESOURCE_STONE] = 12, [RESOURCE_CONCRETE] = 4 },
{ [ARCHITECTS] = 1, [RESOURCE_MARBLE] = 2 },
{ NOTHING }
}
};
Expand Down
22 changes: 17 additions & 5 deletions src/translation/english.c
Original file line number Diff line number Diff line change
Expand Up @@ -573,9 +573,6 @@ static translation_string all_strings[] = {
{TR_WINDOW_GAMES_NOT_ENOUGH_FUNDS, "Not enough personal funds." },
{TR_WINDOW_GAMES_NOT_ENOUGH_RESOURCES, "Not enough resources stored." },
{TR_WINDOW_GAMES_NO_VENUE, "Venue is not built, or has no workers." },
{TR_BUILDING_SMALL_TEMPLE_PHASE_1, "(Construction)" },
{TR_BUILDING_SMALL_TEMPLE_PHASE_1_TEXT, "Masons and engineers are constructing this sacred structure from gleaming marble." },
{TR_BUILDING_SMALL_TEMPLE_CONSTRUCTION_DESC, "Constructing this temple will require material stored in a warehouse, laborers from a work camp, and architects from an architects' guild." },
{TR_CITY_MESSAGE_TEXT_NAVAL_GAMES_PLANNING, "Water from your city's reservoirs is slowly filling the Colosseum. Carpenters begin to assemble lifelike miniature ships of war as gladiators train in waterborne combat. Soon the Naval Games will begin!" },
{TR_CITY_MESSAGE_TEXT_NAVAL_GAMES_STARTING, "The Colosseum has become a man-made lake, as gladiators re-enact great Roman victories at sea. Blood and water mix as the crowd roars its approval. The Naumachia - the Naval Games - have begun!" },
{TR_CITY_MESSAGE_TEXT_NAVAL_GAMES_ENDING, "A long cleanup process begins for the Colosseum as it is drained and made ready for normal use. Your people will be talking about this great watery spectacle for years to come." },
Expand Down Expand Up @@ -636,19 +633,34 @@ static translation_string all_strings[] = {
{TR_SAVEGAME_NOT_ABLE_TO_SAVE_MESSAGE, "It was not possible to save the game.\nIt may be because the folder where Caesar 3 keeps the savegames requires administrator access.\nPlease either change the Caesar 3 folder to a place which doesn't require administrator access or run Augustus as administrator (not recommended)." },
{TR_BUILDING_COLONNADE, "Colonnade" },
{TR_BUILDING_LARARIUM, "Lararium" },
{TR_WINDOW_BUILDING_LARARIUM_DESC, "This small shrine is dedicated to the Lares - the ancestral spirits of the Roman people. Small sacrifices and prayers may be made here."},
{TR_WINDOW_BUILDING_LARARIUM_DESC, "This small shrine is dedicated to the Lares, the ancestral spirits of the Roman people. Small sacrifices and prayers may be made here."},
{TR_BUILDING_WATCHTOWER, "Watchtower"},
{TR_BUILDING_WATCHTOWER_DESC, "Archers on the battlements of this tower keep a vigilant watch for invaders, while watchmen patrol the streets below." },
{TR_BUILDING_WATCHTOWER_DESC_NO_SOLDIERS, "This tower needs a sentry from the barracks before it can protect our city."},
{TR_BUILDING_LARGE_TEMPLE_PHASE_1, "(Cella)" },
{TR_BUILDING_LARGE_TEMPLE_PHASE_2, "(Facade)" },
{TR_BUILDING_LARGE_TEMPLE_PHASE_1_TEXT, "Masons are crafting the walls and pillars of the cella, the interior of this temple that will house the sacred image." },
{TR_BUILDING_LARGE_TEMPLE_PHASE_2_TEXT, "Skilled artisans are preparing the facade of this temple, carving gleaming marble statues in the image of the deity to be worshiped here." },
{TR_BUILDING_LARGE_TEMPLE_CONSTRUCTION_DESC, "Constructing this temple will require material stored in a warehouse, laborers from a work camp, and architects from an architects' guild." },
{TR_BUILDING_ORACLE_PHASE_1, "(Cella)" },
{TR_BUILDING_ORACLE_PHASE_2, "(Facade)" },
{TR_BUILDING_ORACLE_PHASE_1_TEXT, "Masons are crafting the walls and pillars of the cella, the interior of this oracle that will house the sacred images." },
{TR_BUILDING_ORACLE_PHASE_2_TEXT, "Skilled artisans are preparing the facade of this oracle, carving gleaming marble statues in the images of the many gods to be worshiped here." },
{TR_BUILDING_ORACLE_CONSTRUCTION_DESC, "Constructing this oracle will require material stored in a warehouse, laborers from a work camp, and architects from an architects' guild." },
{TR_BUILDING_NYMPHAEUM, "Nymphaeum"},
{TR_BUILDING_NYMPHAEUM_DESC, "This great temple is dedicated to the water nymphs - minor deities of springs, rivers and seas. It promises beauty and plenty to the surrounding land and divine favor to the city." },
{TR_BUILDING_NYMPHAEUM_DESC, "This great temple is dedicated to the water nymphs, minor deities of springs, rivers and seas. It promises beauty and plenty to the surrounding land and divine favor to the city." },
{TR_BUILDING_NYMPHAEUM_PHASE_1, "(Cella)" },
{TR_BUILDING_NYMPHAEUM_PHASE_2, "(Facade)" },
{TR_BUILDING_NYMPHAEUM_PHASE_1_TEXT, "Masons are crafting the walls and pillars of the cella, the interior of this temple that will house the icons of the nymphs and their sacred waters." },
{TR_BUILDING_NYMPHAEUM_PHASE_2_TEXT, "Skilled artisans are preparing the facade of this temple, carving gleaming marble statues in the images of the water nymphs and adorning the walls with seashells and mosaics of the water." },
{TR_BUILDING_NYMPHAEUM_CONSTRUCTION_DESC, "Constructing this nymphaeum will require material stored in a warehouse, laborers from a work camp, and architects from an architects' guild." },
{TR_BUILDING_SMALL_MAUSOLEUM, "Small Mausoleum"},
{TR_BUILDING_SMALL_MAUSOLEUM_DESC, "This building is the final resting place of past generations of your city's proud families, and the envy of many among the living." },
{TR_BUILDING_SMALL_MAUSOLEUM_PHASE_1, "(Vault)" },
{TR_BUILDING_SMALL_MAUSOLEUM_PHASE_2, "(Facade)" },
{TR_BUILDING_SMALL_MAUSOLEUM_PHASE_1_TEXT, "Masons are laying courses of precisely carved stones to form the central vault of this mausoleum." },
{TR_BUILDING_SMALL_MAUSOLEUM_PHASE_2_TEXT, "Skilled artisans are preparing the facade of this mausoleum, carving gleaming marble statues to memorialize those who will rest here." },
{TR_BUILDING_SMALL_MAUSOLEUM_CONSTRUCTION_DESC, "Constructing this mausoleum will require material stored in a warehouse, laborers from a work camp, and architects from an architects' guild." },
{TR_BUILDING_LARGE_MAUSOLEUM, "Large Mausoleum"},
{TR_BUILDING_LARGE_MAUSOLEUM_DESC, "The polished marble walls and statues of this magnificent structure reflect the great deeds of the patricians who earned the privilege of resting here." },
{TR_BUILDING_LARGE_MAUSOLEUM_PHASE_1, "(Vault)" },
Expand Down
28 changes: 20 additions & 8 deletions src/translation/translation.h
Original file line number Diff line number Diff line change
Expand Up @@ -568,9 +568,6 @@ typedef enum {
TR_WINDOW_GAMES_NOT_ENOUGH_RESOURCES,
TR_WINDOW_GAMES_NO_WATER_ACCESS,
TR_WINDOW_GAMES_NO_VENUE,
TR_BUILDING_SMALL_TEMPLE_PHASE_1,
TR_BUILDING_SMALL_TEMPLE_PHASE_1_TEXT,
TR_BUILDING_SMALL_TEMPLE_CONSTRUCTION_DESC,
TR_CITY_MESSAGE_TEXT_NAVAL_GAMES_PLANNING,
TR_CITY_MESSAGE_TEXT_NAVAL_GAMES_STARTING,
TR_CITY_MESSAGE_TEXT_NAVAL_GAMES_ENDING,
Expand Down Expand Up @@ -637,15 +634,30 @@ typedef enum {
TR_BUILDING_WATCHTOWER,
TR_BUILDING_WATCHTOWER_DESC,
TR_BUILDING_WATCHTOWER_DESC_NO_SOLDIERS,
TR_BUILDING_ORACLE_PHASE_1,
TR_BUILDING_ORACLE_PHASE_2,
TR_BUILDING_ORACLE_PHASE_1_TEXT,
TR_BUILDING_ORACLE_PHASE_2_TEXT,
TR_BUILDING_ORACLE_CONSTRUCTION_DESC,
TR_BUILDING_LARGE_TEMPLE_PHASE_1,
TR_BUILDING_LARGE_TEMPLE_PHASE_2,
TR_BUILDING_LARGE_TEMPLE_PHASE_1_TEXT,
TR_BUILDING_LARGE_TEMPLE_PHASE_2_TEXT,
TR_BUILDING_LARGE_TEMPLE_CONSTRUCTION_DESC,
TR_BUILDING_ORACLE_PHASE_1,
TR_BUILDING_ORACLE_PHASE_2,
TR_BUILDING_ORACLE_PHASE_1_TEXT,
TR_BUILDING_ORACLE_PHASE_2_TEXT,
TR_BUILDING_ORACLE_CONSTRUCTION_DESC,
TR_BUILDING_NYMPHAEUM,
TR_BUILDING_NYMPHAEUM_DESC,
TR_BUILDING_NYMPHAEUM_PHASE_1,
TR_BUILDING_NYMPHAEUM_PHASE_2,
TR_BUILDING_NYMPHAEUM_PHASE_1_TEXT,
TR_BUILDING_NYMPHAEUM_PHASE_2_TEXT,
TR_BUILDING_NYMPHAEUM_CONSTRUCTION_DESC,
TR_BUILDING_SMALL_MAUSOLEUM,
TR_BUILDING_SMALL_MAUSOLEUM_DESC,
TR_BUILDING_SMALL_MAUSOLEUM_PHASE_1,
TR_BUILDING_SMALL_MAUSOLEUM_PHASE_2,
TR_BUILDING_SMALL_MAUSOLEUM_PHASE_1_TEXT,
TR_BUILDING_SMALL_MAUSOLEUM_PHASE_2_TEXT,
TR_BUILDING_SMALL_MAUSOLEUM_CONSTRUCTION_DESC,
TR_BUILDING_LARGE_MAUSOLEUM,
TR_BUILDING_LARGE_MAUSOLEUM_DESC,
TR_BUILDING_LARGE_MAUSOLEUM_PHASE_1,
Expand Down
30 changes: 21 additions & 9 deletions src/window/building/culture.c
Original file line number Diff line number Diff line change
Expand Up @@ -534,10 +534,10 @@ void window_building_draw_chariot_maker(building_info_context *c)
draw_entertainment_school(c, "wavs/char_pit.wav", 78);
}

static void window_building_draw_monument_small_temple_construction_process(building_info_context *c)
static void window_building_draw_monument_large_temple_construction_process(building_info_context *c)
{
window_building_draw_monument_construction_process(c, TR_BUILDING_SMALL_TEMPLE_PHASE_1,
TR_BUILDING_SMALL_TEMPLE_PHASE_1_TEXT, TR_BUILDING_SMALL_TEMPLE_CONSTRUCTION_DESC);
window_building_draw_monument_construction_process(c, TR_BUILDING_LARGE_TEMPLE_PHASE_1,
TR_BUILDING_LARGE_TEMPLE_PHASE_1_TEXT, TR_BUILDING_LARGE_TEMPLE_CONSTRUCTION_DESC);
}

static void window_building_draw_monument_oracle_construction_process(building_info_context *c)
Expand All @@ -546,6 +546,18 @@ static void window_building_draw_monument_oracle_construction_process(building_i
TR_BUILDING_ORACLE_PHASE_1_TEXT, TR_BUILDING_ORACLE_CONSTRUCTION_DESC);
}

static void window_building_draw_monument_nymphaeum_construction_process(building_info_context *c)
{
window_building_draw_monument_construction_process(c, TR_BUILDING_NYMPHAEUM_PHASE_1,
TR_BUILDING_NYMPHAEUM_PHASE_1_TEXT, TR_BUILDING_NYMPHAEUM_CONSTRUCTION_DESC);
}

static void window_building_draw_monument_small_mausoleum_construction_process(building_info_context *c)
{
window_building_draw_monument_construction_process(c, TR_BUILDING_SMALL_MAUSOLEUM_PHASE_1,
TR_BUILDING_SMALL_MAUSOLEUM_PHASE_1_TEXT, TR_BUILDING_SMALL_MAUSOLEUM_CONSTRUCTION_DESC);
}

static void window_building_draw_monument_large_mausoleum_construction_process(building_info_context *c)
{
window_building_draw_monument_construction_process(c, TR_BUILDING_LARGE_MAUSOLEUM_PHASE_1,
Expand Down Expand Up @@ -615,7 +627,7 @@ static void draw_temple(building_info_context *c, const char *sound_file, int gr
{
c->help_id = 67;
building *b = building_get(c->building_id);
if (b->monument.phase <= 0) {
if (b->monument.phase == MONUMENT_FINISHED) {
window_building_play_sound(c, sound_file);
outer_panel_draw(c->x_offset, c->y_offset, c->width_blocks, c->height_blocks);
lang_text_draw_centered(group_id, 0, c->x_offset, c->y_offset + 12, BLOCK_SIZE * c->width_blocks, FONT_LARGE_BLACK);
Expand All @@ -625,7 +637,7 @@ static void draw_temple(building_info_context *c, const char *sound_file, int gr
} else {
outer_panel_draw(c->x_offset, c->y_offset, c->width_blocks, c->height_blocks);
lang_text_draw_centered(group_id, 0, c->x_offset, c->y_offset + 12, BLOCK_SIZE * c->width_blocks, FONT_LARGE_BLACK);
window_building_draw_monument_small_temple_construction_process(c);
window_building_draw_monument_large_temple_construction_process(c);
}
}

Expand Down Expand Up @@ -1292,7 +1304,7 @@ void window_building_draw_nymphaeum(building_info_context *c)
{
c->help_id = 67;
building *b = building_get(c->building_id);
if (b->monument.phase <= 0) {
if (b->monument.phase == MONUMENT_FINISHED) {
window_building_play_sound(c, "wavs/oracle.wav");
outer_panel_draw(c->x_offset, c->y_offset, c->width_blocks, c->height_blocks);
text_draw_centered(translation_for(TR_BUILDING_NYMPHAEUM),
Expand All @@ -1306,15 +1318,15 @@ void window_building_draw_nymphaeum(building_info_context *c)
outer_panel_draw(c->x_offset, c->y_offset, c->width_blocks, c->height_blocks);
text_draw_centered(translation_for(TR_BUILDING_NYMPHAEUM),
c->x_offset, c->y_offset + 12, BLOCK_SIZE * c->width_blocks, FONT_LARGE_BLACK, 0);
window_building_draw_monument_small_temple_construction_process(c);
window_building_draw_monument_nymphaeum_construction_process(c);
}
}

void window_building_draw_small_mausoleum(building_info_context *c)
{
c->help_id = 67;
building *b = building_get(c->building_id);
if (b->monument.phase <= 0) {
if (b->monument.phase == MONUMENT_FINISHED) {
window_building_play_sound(c, "wavs/oracle.wav");
outer_panel_draw(c->x_offset, c->y_offset, c->width_blocks, c->height_blocks);
text_draw_centered(translation_for(TR_BUILDING_SMALL_MAUSOLEUM),
Expand All @@ -1328,7 +1340,7 @@ void window_building_draw_small_mausoleum(building_info_context *c)
outer_panel_draw(c->x_offset, c->y_offset, c->width_blocks, c->height_blocks);
text_draw_centered(translation_for(TR_BUILDING_SMALL_MAUSOLEUM),
c->x_offset, c->y_offset + 12, BLOCK_SIZE * c->width_blocks, FONT_LARGE_BLACK, 0);
window_building_draw_monument_small_temple_construction_process(c);
window_building_draw_monument_small_mausoleum_construction_process(c);
}
}

Expand Down

0 comments on commit 54d06d5

Please sign in to comment.