ALMaSS Hare ODDox  1.1
The hare model description following ODdox protocol
FieldPeasStrigling Class Reference

#include <FieldPeasStrigling.h>

Public Member Functions

bool Do (Farm *a_farm, LE *a_field, FarmEvent *a_ev)
 
 FieldPeasStrigling ()
 
- Public Member Functions inherited from Crop
void ChooseNextCrop (int a_no_dates)
 Chooses the next crop to grow in a field. More...
 
 Crop ()
 
int GetCropClassification ()
 
int GetFirstDate (void)
 
void SetCropClassification (int a_classification)
 
virtual ~Crop ()
 

Additional Inherited Members

- Protected Member Functions inherited from Crop
void SimpleEvent (long a_date, int a_todo, bool a_lock)
 Adds an event to this crop management. More...
 
void SimpleEvent_ (long a_date, int a_todo, bool a_lock, Farm *a_farm, LE *a_field)
 Adds an event to this crop management without relying on member variables. More...
 
- Protected Attributes inherited from Crop
int m_count
 
int m_CropClassification
 
int m_ddegstoharvest
 
FarmEventm_ev
 
Farmm_farm
 
LE * m_field
 
int m_first_date
 
int m_last_date
 

Detailed Description

Definition at line 61 of file FieldPeasStrigling.h.

Constructor & Destructor Documentation

◆ FieldPeasStrigling()

FieldPeasStrigling::FieldPeasStrigling ( )
inline

Definition at line 65 of file FieldPeasStrigling.h.

66  {
67  m_first_date=g_date->DayInYear(1,10);
68  }

References Crop::m_first_date.

Member Function Documentation

◆ Do()

bool FieldPeasStrigling::Do ( Farm a_farm,
LE *  a_field,
FarmEvent a_ev 
)
virtual

Reimplemented from Crop.

Definition at line 38 of file FieldPeasStrigling.cpp.

39 {
40  m_farm = a_farm;
41  m_field = a_field;
42  m_ev = a_ev;
43 
44  bool done = false;
45 
46  switch ( m_ev->m_todo )
47  {
48  case fpst_start:
49  {
53  // Set up the date management stuff
54  // Could save the start day in case it is needed later
55  // m_field->m_startday = m_ev->m_startday;
56  m_last_date=g_date->DayInYear(15,10);
57  // Start and stop dates for all events after harvest
58  int noDates=1;
59  m_field->SetMDates(0,0,g_date->DayInYear(30,8));
60  // 0,0 determined by harvest date - used to see if at all possible
61  m_field->SetMDates(1,0,g_date->DayInYear(30,8));
62  // Check the next crop for early start, unless it is a spring crop
63  // in which case we ASSUME that no checking is necessary!!!!
64  // So DO NOT implement a crop that runs over the year boundary
65  if (m_ev->m_startday>g_date->DayInYear(1,7))
66  {
67  if (m_field->GetMDates(0,0) >=m_ev->m_startday)
68  {
69  g_msg->Warn( WARN_BUG, "FieldPeas::Do(): "
70  "Harvest too late for the next crop to start!!!", "" );
71  exit( 1 );
72  }
73  // Now fix any late finishing problems
74  for (int i=0; i<noDates; i++) {
75  if (m_field->GetMDates(0,i)>=m_ev->m_startday)
76  m_field->SetMDates(0,i,m_ev->m_startday-1);
77  if (m_field->GetMDates(1,i)>=m_ev->m_startday)
78  m_field->SetMDates(1,i,m_ev->m_startday-1);
79  }
80  }
81  // Now no operations can be timed after the start of the next crop.
82 
83  // CJT note:
84  // Start single block date checking code to be cut-'n-pasted...
85  int d1;
86  if ( ! m_ev->m_first_year )
87  {
88  // Are we before July 1st?
89  d1 = g_date->OldDays() + g_date->DayInYear( 1,7 );
90  if (g_date->Date() < d1)
91  {
92  // Yes, too early. We assumme this is because the last crop was late
93  g_msg->Warn( WARN_BUG, "FieldPeas::Do(): "
94  "Crop start attempt between 1st Jan & 1st July", "" );
95  exit( 1 );
96  }
97  else
98  {
99  d1 = g_date->OldDays() + m_first_date; // Add 365 for spring crop
100  if (g_date->Date() > d1)
101  {
102  // Yes too late - should not happen - raise an error
103  g_msg->Warn( WARN_BUG, "FieldPeas::Do(): "
104  "Crop start attempt after last possible start date", "" );
105  exit( 1 );
106  }
107  }
108  }
109  else
110  {
111  // If this is the first year of running then it is possible to start
112  // on day 0, so need this to tell us what to do:
113  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,3 ),
114  fpst_spring_plough, false );
115  break;
116  }
117  // End single block date checking code. Please see next line
118  // comment as well.
119  // Reinit d1 to first possible starting date.
120  d1 = g_date->OldDays() + g_date->DayInYear( 1,10 );
121  if ( g_date->Date() > d1 ) {
122  d1 = g_date->Date();
123  }
124  // OK, let's go.
125  SimpleEvent( d1, fpst_autumn_plough, false );
126  }
127  break;
128 
129  case fpst_autumn_plough:
130  if ( m_ev->m_lock || m_farm->DoIt( 90 )) {
131  if (!m_farm->AutumnPlough( m_field, 0.0,
132  g_date->DayInYear( 1, 12 ) -
133  g_date->DayInYear())) {
134  SimpleEvent( g_date->Date() + 1, fpst_autumn_plough, true );
135  break;
136  }
137  }
138  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,3 ) + 365,
139  fpst_spring_plough, false );
140  break;
141 
142  case fpst_spring_plough:
143  if ( m_ev->m_lock || m_farm->DoIt( 100 )) {
144  if (!m_farm->SpringPlough( m_field, 0.0,
145  g_date->DayInYear( 1,4 ) -
146  g_date->DayInYear())) {
147  SimpleEvent( g_date->Date() + 1, fpst_spring_plough, true );
148  break;
149  }
150  }
151  {
152  int d1 = g_date->Date()+1;
153  int d2 = g_date->OldDays() + g_date->DayInYear( 5,3 );
154  if ( d1 < d2 ) {
155  d1 = d2;
156  }
157  SimpleEvent( d1, fpst_spring_harrow, false );
158  }
159  break;
160 
161  case fpst_spring_harrow:
162  if (!m_farm->SpringHarrow( m_field, 0.0,
163  g_date->DayInYear( 5,4 ) - g_date->DayInYear())) {
164  SimpleEvent( g_date->Date() + 1, fpst_spring_harrow, true );
165  break;
166  }
167  {
169  if ( m_farm->IsStockFarmer()) {
170  dothis = fpst_fertmanure_stock;
171  }
172 
173  int d1 = g_date->Date();
174  int d2 = g_date->OldDays() + g_date->DayInYear( 20,3 );
175  if ( d1 < d2 ) {
176  d1 = d2;
177  }
178  SimpleEvent( d1, dothis, false );
179  }
180  break;
181 
183  if (!m_farm->FP_Manure( m_field, 0.0,
184  g_date->DayInYear( 15,4 ) -
185  g_date->DayInYear())) {
186  SimpleEvent( g_date->Date() + 1, fpst_fertmanure_plant, true );
187  break;
188  }
189  {
190  int d1 = g_date->Date();
191  int d2 = g_date->OldDays() + g_date->DayInYear( 25,3 );
192  if ( d1 < d2 ) {
193  d1 = d2;
194  }
195  SimpleEvent( d1, fpst_spring_sow, false );
196  }
197  break;
198 
200  if ( m_ev->m_lock || m_farm->DoIt( 75 )) {
201  if (!m_farm->FA_Manure( m_field, 0.0,
202  g_date->DayInYear( 15,4 ) -
203  g_date->DayInYear())) {
204  SimpleEvent( g_date->Date() + 1, fpst_fertmanure_stock, true );
205  break;
206  }
207  }
208  {
209  int d1 = g_date->Date();
210  int d2 = g_date->OldDays() + g_date->DayInYear( 25,3 );
211  if ( d1 < d2 ) {
212  d1 = d2;
213  }
214  SimpleEvent( d1, fpst_spring_sow, false );
215  }
216  break;
217 
218  case fpst_spring_sow:
219  if (!m_farm->SpringSow( m_field, 0.0,
220  g_date->DayInYear( 15,4 ) -
221  g_date->DayInYear())) {
222  SimpleEvent( g_date->Date() + 1, fpst_spring_sow, true );
223  break;
224  }
225  SimpleEvent( g_date->Date(), fpst_spring_roll, false );
226  break;
227 
228  case fpst_spring_roll:
229  if (!m_farm->SpringRoll( m_field, 0.0,
230  g_date->DayInYear( 15,4 ) -
231  g_date->DayInYear())) {
232  SimpleEvent( g_date->Date() + 1, fpst_spring_roll, true );
233  break;
234  }
235  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 20,4 ),
236  fpst_strigling1, false );
237  break;
238 
239  case fpst_strigling1:
240  if ( m_ev->m_lock || (cfg_strigling_prop.value()*m_farm->DoIt( 100 )))
241  {
242  if (!m_farm->Strigling( m_field, 0.0,
243  g_date->DayInYear( 30,4 ) - g_date->DayInYear())) {
244  SimpleEvent( g_date->Date() + 1, fpst_strigling1, true );
245  break;
246  }
247  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,5 ),
248  fpst_strigling2, false );
249  break;
250  }
251  else {
252  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,6 ),
253  fpst_insecticide, false );
254  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,6 ),
255  fpst_fungicide, false );
256 
257  // Water carries the main thread.
258  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,6 ),
259  fpst_water_one, false );
260  break;
261  }
262 
263  case fpst_strigling2:
264  if ( m_ev->m_lock || (cfg_strigling_prop.value()*m_farm->DoIt( 100 )))
265  {
266  if (!m_farm->Strigling( m_field, 0.0,
267  g_date->DayInYear( 10,5 ) - g_date->DayInYear())) {
268  SimpleEvent( g_date->Date() + 1, fpst_strigling2, true );
269  break;
270  }
271  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 11,5 ),
272  fpst_strigling3, false );
273  break;
274  }
275  else {
276  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,6 ),
277  fpst_insecticide, false );
278  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,6 ),
279  fpst_fungicide, false );
280 
281  // Water carries the main thread.
282  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,6 ),
283  fpst_water_one, false );
284  break;
285  }
286 
287  case fpst_strigling3:
288  if ( m_ev->m_lock || (cfg_strigling_prop.value()*m_farm->DoIt( 100 )))
289  {
290  if (!m_farm->Strigling( m_field, 0.0,
291  g_date->DayInYear( 15,5 ) - g_date->DayInYear())) {
292  SimpleEvent( g_date->Date() + 1, fpst_strigling3, true );
293  break;
294  }
295  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 16,5 ),
296  fpst_strigling4, false );
297  break;
298  }
299  else {
300  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,6 ),
301  fpst_insecticide, false );
302  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,6 ),
303  fpst_fungicide, false );
304 
305  // Water carries the main thread.
306  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,6 ),
307  fpst_water_one, false );
308  break;
309  }
310 
311 
312  case fpst_strigling4:
313  if ( m_ev->m_lock || (cfg_strigling_prop.value()*m_farm->DoIt( 50 )))
314  {
315  if (!m_farm->Strigling( m_field, 0.0,
316  g_date->DayInYear( 26,5 ) - g_date->DayInYear())) {
317  SimpleEvent( g_date->Date() + 1, fpst_strigling4, true );
318  break;
319  }
320  }
321  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,6 ),
322  fpst_insecticide, false );
323  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,6 ),
324  fpst_fungicide, false );
325 
326  // Water carries the main thread.
327  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,6 ),
328  fpst_water_one, false );
329  break;
330 
331  case fpst_fungicide:
332  if ( m_ev->m_lock || m_farm->DoIt( (int) (10*cfg_fungi_app_prop1.value() ))) {
333 
334  //new - for decision making
335  TTypesOfVegetation tov = m_field->GetVegType();
336  if(!m_ev->m_lock && !m_farm->Spraying_fungins(tov)){
337  Field * pf = dynamic_cast<Field*>(m_field);
338  pf->Add_missed_fi_app();
339  break;
340  } //end of the part for dec. making
341 
342  // Check for proximity of watering.
343  {
344  int d1 = g_date->Date();
345  if ( d1 < FPEASS_WATER_DATE + 2 ) {
346  // Too close, try tomorrow.
347  SimpleEvent( g_date->Date() + 1, fpst_fungicide, true );
348  break;
349  }
350  }
351  if (!m_farm->FungicideTreat( m_field, 0.0,
352  g_date->DayInYear( 15,6 ) -
353  g_date->DayInYear())) {
354  SimpleEvent( g_date->Date() + 1, fpst_fungicide, true );
355  break;
356  }
357  FPEASS_FUNGI_DATE = g_date->Date();
358  }
359  // End of thread.
360  break;
361 
362  case fpst_insecticide:
363  if ( m_ev->m_lock || m_farm->DoIt( (int) (90*cfg_ins_app_prop1.value() ))) {
364 
365  //new - for decision making
366  TTypesOfVegetation tov = m_field->GetVegType();
367  if(!m_ev->m_lock && !m_farm->Spraying_fungins(tov)){
368  Field * pf = dynamic_cast<Field*>(m_field);
369  pf->Add_missed_fi_app();
370  break;
371  } //end of the part for dec. making
372 
373  {
374  int d1 = g_date->Date();
375  if ( d1 < FPEASS_WATER_DATE + 2 ) {
376  // Too close, try tomorrow.
377  SimpleEvent( g_date->Date() + 1, fpst_insecticide, true );
378  break;
379  }
380  }
381  if (!m_farm->InsecticideTreat( m_field, 0.0,
382  g_date->DayInYear( 15,6 ) -
383  g_date->DayInYear())) {
384  SimpleEvent( g_date->Date() + 1, fpst_insecticide, true );
385  break;
386  }
387  FPEASS_INSECT_DATE = g_date->Date();
388  }
389  // End of thread.
390  break;
391 
392  case fpst_water_one:
393  if ( m_ev->m_lock || m_farm->DoIt( 30 ))
394  {
395  {
396  int d1 = g_date->Date();
397  if ( d1 < FPEASS_INSECT_DATE + 2 ||
398  d1 < FPEASS_FUNGI_DATE + 2 ) {
399  // Too close, try tomorrow.
400  SimpleEvent( g_date->Date() + 1, fpst_water_one, true );
401  break;
402  }
403  }
404  if (!m_farm->Water( m_field, 0.0,
405  g_date->DayInYear( 15,6 ) - g_date->DayInYear())) {
406  SimpleEvent( g_date->Date() + 1, fpst_water_one, true );
407  break;
408  }
409  FPEASS_WATER_DATE = g_date->Date();
410  // Did first water, so do the second one too.
411  {
412  int d1 = g_date->OldDays() + g_date->DayInYear( 16,6 );
413  if ( d1 < g_date->Date() + 7 ) {
414  d1 = g_date->Date() + 7;
415  }
416  SimpleEvent( d1, fpst_water_two, false );
417  }
418  }
419  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 10,8 ),
420  fpst_growth_reg, false );
421  break;
422 
423  case fpst_water_two:
424  {
425  int d1 = g_date->Date();
426  if ( d1 < FPEASS_INSECT_DATE + 2 ||
427  d1 < FPEASS_FUNGI_DATE + 2 ) {
428  // Too close, try tomorrow.
429  SimpleEvent( g_date->Date() + 1, fpst_water_two, true );
430  break;
431  }
432  }
433  if (!m_farm->Water( m_field, 0.0,
434  g_date->DayInYear( 1,7 ) -
435  g_date->DayInYear())) {
436  SimpleEvent( g_date->Date() + 1, fpst_water_two, true );
437  break;
438  }
439  FPEASS_WATER_DATE = g_date->Date();
440  // End of thread.
441  break;
442 
443  case fpst_growth_reg:
444  if ( m_ev->m_lock || m_farm->DoIt( (int) (20*cfg_greg_app_prop.value() )))
445  {
446  if (!m_farm->GrowthRegulator( m_field, 0.0,
447  g_date->DayInYear( 20,8 ) -
448  g_date->DayInYear())) {
449  SimpleEvent( g_date->Date() + 1, fpst_growth_reg, true );
450  break;
451  }
452  // Did apply growth regulator, so wait seven days before
453  // harvesting.
454  SimpleEvent( g_date->Date()+7, fpst_harvest, false );
455  break;
456  }
457  // No growth regulator, try harvesting today.
458  SimpleEvent( g_date->Date(), fpst_harvest, false );
459  break;
460 
461  case fpst_harvest:
462  if (!m_farm->Harvest( m_field, 0.0,
463  g_date->DayInYear( 30,8 ) -
464  g_date->DayInYear())) {
465  SimpleEvent( g_date->Date() + 1, fpst_harvest, true );
466  break;
467  }
468  SimpleEvent( g_date->Date(), fpst_straw_chopping, false );
469  break;
470 
471  case fpst_straw_chopping:
472  if (!m_farm->StrawChopping( m_field, 0.0,
473  m_field->GetMDates(1,0) -
474  g_date->DayInYear())) {
475  SimpleEvent( g_date->Date()+1, fpst_straw_chopping, true );
476  break;
477  }
478  // End Main Thread
479  done=true;
480  break;
481 
482  default:
483  g_msg->Warn( WARN_BUG, "FieldPeas::Do(): "
484  "Unknown event type! ", "" );
485  exit( 1 );
486  }
487 
488  return done;
489 }

References Farm::AutumnPlough(), cfg_fungi_app_prop1, cfg_greg_app_prop, cfg_ins_app_prop1, cfg_strigling_prop, Farm::DoIt(), Farm::FA_Manure(), Farm::FP_Manure(), FPEASS_FUNGI_DATE, FPEASS_INSECT_DATE, FPEASS_WATER_DATE, fpst_autumn_plough, fpst_fertmanure_plant, fpst_fertmanure_stock, fpst_fungicide, fpst_growth_reg, fpst_harvest, fpst_insecticide, fpst_spring_harrow, fpst_spring_plough, fpst_spring_roll, fpst_spring_sow, fpst_start, fpst_straw_chopping, fpst_strigling1, fpst_strigling2, fpst_strigling3, fpst_strigling4, fpst_water_one, fpst_water_two, Farm::FungicideTreat(), Farm::GrowthRegulator(), Farm::Harvest(), Farm::InsecticideTreat(), Farm::IsStockFarmer(), Crop::m_ev, Crop::m_farm, Crop::m_field, Crop::m_first_date, FarmEvent::m_first_year, Crop::m_last_date, FarmEvent::m_lock, FarmEvent::m_startday, FarmEvent::m_todo, Crop::SimpleEvent(), Farm::Spraying_fungins(), Farm::SpringHarrow(), Farm::SpringPlough(), Farm::SpringRoll(), Farm::SpringSow(), Farm::StrawChopping(), Farm::Strigling(), and Farm::Water().


The documentation for this class was generated from the following files:
Farm::SpringRoll
virtual bool SpringRoll(LE *a_field, double a_user, int a_days)
Carry out a roll event in the spring on a_field.
Definition: farmfuncs.cpp:525
fpst_straw_chopping
Definition: FieldPeasStrigling.h:56
fpst_autumn_plough
Definition: FieldPeasStrigling.h:40
fpst_strigling2
Definition: FieldPeasStrigling.h:48
Farm::SpringPlough
virtual bool SpringPlough(LE *a_field, double a_user, int a_days)
Carry out a ploughing event in the spring on a_field.
Definition: farmfuncs.cpp:444
Farm::IsStockFarmer
bool IsStockFarmer(void)
Definition: farm.h:905
Farm::Strigling
virtual bool Strigling(LE *a_field, double a_user, int a_days)
Carry out a mechanical weeding on a_field.
Definition: farmfuncs.cpp:1545
Farm::Harvest
virtual bool Harvest(LE *a_field, double a_user, int a_days)
Carry out a harvest on a_field.
Definition: farmfuncs.cpp:1769
FarmEvent::m_lock
bool m_lock
Definition: farm.h:465
fpst_strigling1
Definition: FieldPeasStrigling.h:47
fpst_strigling4
Definition: FieldPeasStrigling.h:50
Farm::DoIt
bool DoIt(double a_probability)
Return chance out of 0 to 100.
Definition: farm.cpp:800
FarmEvent::m_first_year
bool m_first_year
Definition: farm.h:467
Farm::FA_Manure
virtual bool FA_Manure(LE *a_field, double a_user, int a_days)
Spread manure on a_field owned by an stock farmer.
Definition: farmfuncs.cpp:1036
fpst_spring_plough
Definition: FieldPeasStrigling.h:41
cfg_ins_app_prop1
CfgFloat cfg_ins_app_prop1
Crop::m_first_date
int m_first_date
Definition: farm.h:540
FarmEvent::m_startday
int m_startday
Definition: farm.h:466
Farm::FungicideTreat
virtual bool FungicideTreat(LE *a_field, double a_user, int a_days)
Apply fungicide to a_field.
Definition: farmfuncs.cpp:1279
Crop::SimpleEvent
void SimpleEvent(long a_date, int a_todo, bool a_lock)
Adds an event to this crop management.
Definition: farm.cpp:307
cfg_strigling_prop
CfgFloat cfg_strigling_prop
Farm::FP_Manure
virtual bool FP_Manure(LE *a_field, double a_user, int a_days)
Spread manure on a_field owned by an arable farmer.
Definition: farmfuncs.cpp:773
cfg_fungi_app_prop1
CfgFloat cfg_fungi_app_prop1
fpst_spring_sow
Definition: FieldPeasStrigling.h:45
cfg_greg_app_prop
CfgFloat cfg_greg_app_prop
fpst_start
Definition: FieldPeasStrigling.h:38
TTypesOfVegetation
TTypesOfVegetation
Definition: tov_declaration.h:30
fpst_water_one
Definition: FieldPeasStrigling.h:53
Farm::StrawChopping
virtual bool StrawChopping(LE *a_field, double a_user, int a_days)
Carry out straw chopping on a_field.
Definition: farmfuncs.cpp:2132
fpst_fungicide
Definition: FieldPeasStrigling.h:52
fpst_harvest
Definition: FieldPeasStrigling.h:39
FieldPeasSToDo
FieldPeasSToDo
Definition: FieldPeasStrigling.h:37
FPEASS_FUNGI_DATE
#define FPEASS_FUNGI_DATE
Definition: FieldPeasStrigling.h:34
Crop::m_farm
Farm * m_farm
Definition: farm.h:537
Crop::m_field
LE * m_field
Definition: farm.h:538
fpst_fertmanure_stock
Definition: FieldPeasStrigling.h:44
FarmEvent::m_todo
int m_todo
Definition: farm.h:469
Farm::InsecticideTreat
virtual bool InsecticideTreat(LE *a_field, double a_user, int a_days)
Apply insecticide to a_field.
Definition: farmfuncs.cpp:1348
FPEASS_INSECT_DATE
#define FPEASS_INSECT_DATE
Definition: FieldPeasStrigling.h:33
fpst_insecticide
Definition: FieldPeasStrigling.h:51
Farm::Water
virtual bool Water(LE *a_field, double a_user, int a_days)
Carry out a watering on a_field.
Definition: farmfuncs.cpp:1717
Crop::m_last_date
int m_last_date
Definition: farm.h:542
Farm::AutumnPlough
virtual bool AutumnPlough(LE *a_field, double a_user, int a_days)
Carry out a ploughing event in the autumn on a_field.
Definition: farmfuncs.cpp:132
Farm::SpringSow
virtual bool SpringSow(LE *a_field, double a_user, int a_days)
Carry out a sowing event in the spring on a_field.
Definition: farmfuncs.cpp:546
fpst_spring_roll
Definition: FieldPeasStrigling.h:46
fpst_fertmanure_plant
Definition: FieldPeasStrigling.h:43
fpst_growth_reg
Definition: FieldPeasStrigling.h:55
Farm::GrowthRegulator
virtual bool GrowthRegulator(LE *a_field, double a_user, int a_days)
Apply growth regulator to a_field.
Definition: farmfuncs.cpp:1250
fpst_strigling3
Definition: FieldPeasStrigling.h:49
fpst_spring_harrow
Definition: FieldPeasStrigling.h:42
FPEASS_WATER_DATE
#define FPEASS_WATER_DATE
Definition: FieldPeasStrigling.h:35
fpst_water_two
Definition: FieldPeasStrigling.h:54
Crop::m_ev
FarmEvent * m_ev
Definition: farm.h:539
Farm::Spraying_fungins
virtual bool Spraying_fungins(TTypesOfVegetation)
Definition: farm.h:785
Farm::SpringHarrow
virtual bool SpringHarrow(LE *a_field, double a_user, int a_days)
Carry out a harrow event in the spring on a_field.
Definition: farmfuncs.cpp:471