Skip to content

Commit aa9c955

Browse files
committed
figures: moved wait_ticks for trader to js config
1 parent 82f0bc2 commit aa9c955

File tree

6 files changed

+23
-7
lines changed

6 files changed

+23
-7
lines changed

src/city/warning.h

+7
Original file line numberDiff line numberDiff line change
@@ -115,3 +115,10 @@ void city_warning_clear_all();
115115
void city_warning_clear_outdated();
116116

117117
void city_warning_show_console(pcstr warning_text);
118+
119+
template<typename ... Args>
120+
void city_warning_show_console_var(pcstr fmt, Args... args) {
121+
bstring1024 buffer;
122+
buffer.printf(fmt, args...);
123+
city_warning_show_console(buffer);
124+
}

src/figure/figure.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@ class figure_impl {
458458
uint16_t max_roam_length;
459459
uint8_t speed_mult;
460460

461-
void load(archive arch);
461+
virtual void load(archive arch);
462462
};
463463

464464
figure_impl(figure *f) : base(*f), wait_ticks(f->wait_ticks), destination_tile(f->destination_tile) {}

src/figuretype/figure_kingdome_trader.cpp

+5-6
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,11 @@
3131

3232
#include "js/js_game.h"
3333

34-
figures::model_t<figure_trade_caravan> trade_caravan_m;
34+
figure_trade_caravan::static_params trade_caravan_m;
3535

36-
ANK_REGISTER_CONFIG_ITERATOR(config_load_figure_trade_caravan);
37-
void config_load_figure_trade_caravan() {
38-
trade_caravan_m.load();
39-
}
36+
void figure_trade_caravan::static_params::load(archive arch) {
37+
int wait_ticks_after_create = arch.r_int("wait_ticks_after_create");
38+
};
4039

4140
int figure::trader_total_bought() {
4241
return trader_amount_bought;
@@ -50,7 +49,7 @@ int figure_create_trade_caravan(tile2i tile, int city_id) {
5049
figure* caravan = figure_create(FIGURE_TRADE_CARAVAN, tile, DIR_0_TOP_RIGHT);
5150
caravan->empire_city_id = city_id;
5251
caravan->action_state = FIGURE_ACTION_100_TRADE_CARAVAN_CREATED;
53-
caravan->wait_ticks = 10;
52+
caravan->wait_ticks = trade_caravan_m.wait_ticks_after_create;
5453
// donkey 1
5554
figure* donkey1 = figure_create(FIGURE_TRADE_CARAVAN_DONKEY, tile, DIR_0_TOP_RIGHT);
5655
donkey1->action_state = FIGURE_ACTION_100_TRADE_CARAVAN_CREATED;

src/figuretype/figure_kingdome_trader.h

+7
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ class figure_trade_caravan : public figure_trader {
99
FIGURE_METAINFO(FIGURE_TRADE_CARAVAN, figure_trade_caravan);
1010
figure_trade_caravan(figure *f) : figure_trader(f) {}
1111

12+
struct static_params : figures::model_t<figure_trade_caravan> {
13+
int wait_ticks_after_create;
14+
virtual void load(archive arch) override;
15+
};
16+
1217
virtual void on_create() override;
1318
virtual void figure_action() override;
1419
virtual void before_poof() override;
@@ -19,5 +24,7 @@ class figure_trade_caravan : public figure_trader {
1924
virtual const animations_t &anim() const override;
2025
virtual void update_animation() override;
2126

27+
const static_params &current_params() const { static_cast<const static_params &>(params()); }
28+
2229
void go_to_next_storageyard(tile2i src_tile, int distance_to_entry);
2330
};

src/io/gamestate/boilerplate.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,8 @@ static void post_load() {
205205
g_city.avg_coverage.update();
206206

207207
g_city.update_allowed_foods();
208+
g_city.religion.ra_no_traders_months_left = std::clamp<int>(g_city.religion.ra_no_traders_months_left, 0, 12);
209+
g_city.religion.ra_harshly_reduced_trading_months_left = std::clamp<int>(g_city.religion.ra_harshly_reduced_trading_months_left, 0, 12);
208210

209211
trade_prices_reset();
210212

src/scripts/figures.js

+1
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,7 @@ figure_trade_caravan = {
555555
walk : { pack:PACK_SPR_AMBIENT, id:20, max_frames:12 },
556556
death : { pack:PACK_SPR_AMBIENT, id:21, max_frames:8, loop:false },
557557
},
558+
wait_ticks_after_create : 10,
558559
terrain_usage : TERRAIN_USAGE_PREFER_ROADS,
559560
}
560561

0 commit comments

Comments
 (0)