Skip to content

Commit 042ad8b

Browse files
authored
Merge pull request #82535 from ehughsbaird/generic-finalize
Call T::finalize from generic_factory<T>::finalize
2 parents 5b33b78 + e1418ff commit 042ad8b

File tree

109 files changed

+466
-137
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+466
-137
lines changed

data/mods/Xedra_Evolved/scenario.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@
103103
"flags": [ "LONE_START" ]
104104
},
105105
{
106-
"copy-from": "mine_bottom",
106+
"copy-from": "Mine_bottom",
107107
"type": "scenario",
108108
"extend": { "professions": [ "archaeologist" ] },
109109
"id": "Mine_bottom"

src/achievement.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -404,13 +404,16 @@ void achievement::load_achievement( const JsonObject &jo, const std::string &src
404404

405405
void achievement::finalize()
406406
{
407-
for( achievement &a : const_cast<std::vector<achievement>&>( achievement::get_all() ) ) {
408-
for( achievement_requirement &req : a.requirements_ ) {
409-
req.finalize();
410-
}
407+
for( achievement_requirement &req : requirements_ ) {
408+
req.finalize();
411409
}
412410
}
413411

412+
void achievement::finalize_all()
413+
{
414+
achievement_factory.finalize();
415+
}
416+
414417
void achievement::check_consistency()
415418
{
416419
achievement_factory.check();

src/achievement.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,10 @@ class achievement
5959
achievement() = default;
6060

6161
void load( const JsonObject &, std::string_view );
62+
void finalize();
6263
void check() const;
6364
static void load_achievement( const JsonObject &, const std::string & );
64-
static void finalize();
65+
static void finalize_all();
6566
static void check_consistency();
6667
static const std::vector<achievement> &get_all();
6768
static void reset();

src/addiction.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@ void add_type::load_add_types( const JsonObject &jo, const std::string &src )
5757
add_type_factory.load( jo, src );
5858
}
5959

60+
void add_type::finalize_all()
61+
{
62+
add_type_factory.finalize();
63+
}
64+
6065
void add_type::reset()
6166
{
6267
add_type_factory.reset();

src/addiction.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ struct add_type {
2828
static void load_add_types( const JsonObject &jo, const std::string &src );
2929
static void reset();
3030
static void check_add_types();
31+
static void finalize_all();
3132
void load( const JsonObject &jo, std::string_view src );
3233
static const std::vector<add_type> &get_all();
3334

src/ammo_effect.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,6 @@ void ammo_effects::load( const JsonObject &jo, const std::string &src )
162162
void ammo_effects::finalize_all()
163163
{
164164
get_all_ammo_effects().finalize();
165-
for( const ammo_effect &ae : get_all_ammo_effects().get_all() ) {
166-
const_cast<ammo_effect &>( ae ).finalize();
167-
}
168165
}
169166

170167
void ammo_effects::check_consistency()

src/anatomy.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,7 @@ void anatomy::reset()
6464

6565
void anatomy::finalize_all()
6666
{
67-
// For some weird reason, generic_factory::finalize doesn't call finalize
6867
anatomy_factory.finalize();
69-
for( const anatomy &an : anatomy_factory.get_all() ) {
70-
const_cast<anatomy &>( an ).finalize();
71-
}
7268
}
7369

7470
void anatomy::finalize()

src/ascii_art.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ void ascii_art::load_ascii_art( const JsonObject &jo, const std::string &src )
3131
ascii_art_factory.load( jo, src );
3232
}
3333

34+
void ascii_art::finalize_all()
35+
{
36+
ascii_art_factory.finalize();
37+
}
38+
3439
void ascii_art::load( const JsonObject &jo, std::string_view )
3540
{
3641
mandatory( jo, was_loaded, "picture", picture );

src/ascii_art.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class ascii_art
1515
{
1616
public:
1717
static void load_ascii_art( const JsonObject &jo, const std::string &src );
18+
static void finalize_all();
1819
static void reset();
1920

2021
void load( const JsonObject &jo, std::string_view );

src/behavior.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ void behavior::reset()
193193

194194
void behavior::finalize()
195195
{
196+
behavior_factory.finalize();
196197
for( const node_data &new_node : temp_node_data ) {
197198
for( const std::string &child : new_node.children ) {
198199
const_cast<node_t &>( new_node.id.obj() ).

0 commit comments

Comments
 (0)