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

#include <winterrapestrigling.h>

Public Member Functions

bool Do (Farm *a_farm, LE *a_field, FarmEvent *a_ev)
 
 WinterRapeStrigling ()
 
- 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 47 of file winterrapestrigling.h.

Constructor & Destructor Documentation

◆ WinterRapeStrigling()

WinterRapeStrigling::WinterRapeStrigling ( )
inline

Definition at line 51 of file winterrapestrigling.h.

52  {
53  m_first_date=g_date->DayInYear(24,8);
54  }

References Crop::m_first_date.

Member Function Documentation

◆ Do()

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

Reimplemented from Crop.

Definition at line 35 of file WinterRapeStrigling.cpp.

36 {
37  m_farm = a_farm;
38  m_field = a_field;
39  m_ev = a_ev;
40  int noDates=3;
41  int d1=0;
42 
43  bool done = false;
44 
45  switch ( m_ev->m_todo ) {
46  case wrs_start:
47  {
48  WR_DID_RC_CLEAN=false;
49  WR_DID_HERBI_ZERO=false;
51  WR_SWARTH_DATE=-1;
52  // Start single block date checking code to be cut-'n-pasted...
53  // Set up the date management stuff
54  m_last_date=g_date->DayInYear(15,10);
55  // Start and stop dates for all events after harvest
56  m_field->SetMDates(0,0,g_date->DayInYear(1,8));
57  // Determined by harvest date - used to see if at all possible
58  m_field->SetMDates(1,0,g_date->DayInYear(1,8));
59  m_field->SetMDates(0,1,g_date->DayInYear(25,7));
60  m_field->SetMDates(1,1,g_date->DayInYear(15,8));
61  m_field->SetMDates(0,2,g_date->DayInYear(1,8));
62  m_field->SetMDates(1,2,g_date->DayInYear(15,10));
63  // Check the next crop for early start, unless it is a spring crop
64  // in which case we ASSUME that no checking is necessary!!!!
65  // So DO NOT implement a crop that runs over the year boundary
66  if (m_ev->m_startday>g_date->DayInYear(1,7))
67  {
68  if (m_field->GetMDates(0,0) >=m_ev->m_startday)
69  {
70  g_msg->Warn( WARN_BUG, "WinterRapeStrigling::Do(): "
71  "Harvest too late for the next crop to start!!!", "" );
72  exit( 1 );
73  }
74  // Now fix any late finishing problems
75  for (int i=0; i<noDates; i++) {
76  if (m_field->GetMDates(0,i)>=m_ev->m_startday)
77  m_field->SetMDates(0,i,m_ev->m_startday-1);
78  if (m_field->GetMDates(1,i)>=m_ev->m_startday)
79  m_field->SetMDates(1,i,m_ev->m_startday-1);
80  }
81  }
82  // Now no operations can be timed after the start of the next crop.
83  // Start single block date checking code to be cut-'n-pasted...
84  if ( ! m_ev->m_first_year )
85  {
86  // Are we before July 1st?
87  d1 = g_date->OldDays() + g_date->DayInYear( 1,7 );
88  if (g_date->Date() < d1)
89  {
90  // Yes, too early. We assumme this is because the last crop was late
91  g_msg->Warn( WARN_BUG, "WinterRapeStrigling::Do(): "
92  "Crop start attempt between 1st Jan & 1st July", "" );
93  exit( 1 );
94  }
95  else
96  {
97  d1 = g_date->OldDays() + m_first_date; // Add 365 for spring crop
98  if (g_date->Date() > d1)
99  {
100  // Yes too late - should not happen - raise an error
101  g_msg->Warn( WARN_BUG, "WinterRapeStrigling::Do(): "
102  "Crop start attempt after last possible start date", "" );
103  exit( 1 );
104  }
105  }
106  }
107  else
108  {
109  // Is the first year so must start in spring like nothing was unusual
110  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 5,7 )
111  ,wrs_swarth, false );
112  break;
113  }
114  // End single block date checking code. Please see next line
115  // comment as well.
116  // Reinit d1 to first possible starting date.
117  d1 = g_date->OldDays() + g_date->DayInYear( 21,8 );
118  if ( g_date->Date() > d1 ) {
119  d1 = g_date->Date();
120  }
121  // OK, let's go.
122  SimpleEvent( d1, wrs_ferti_zero, false );
123  }
124  break;
125 
126  // NB this is only stock farmers
127  case wrs_ferti_zero:
128  if (( m_ev->m_lock || m_farm->DoIt( 10 ))&& (m_farm->IsStockFarmer()))
129  {
130  if (!m_farm->FA_Manure( m_field, 0.0,
131  g_date->DayInYear( 24, 8 ) - g_date->DayInYear())) {
132  // We didn't do it today, try again tomorrow.
133  SimpleEvent( g_date->Date() + 1, wrs_ferti_zero, true );
134  break;
135  }
136  }
137  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 8 ),
138  wrs_autumn_plough, false );
139  break;
140  case wrs_autumn_plough:
141  if ( m_ev->m_lock || m_farm->DoIt( 95 ))
142  {
143  if (!m_farm->AutumnPlough( m_field, 0.0,
144  g_date->DayInYear( 25, 8 ) - g_date->DayInYear())) {
145  SimpleEvent( g_date->Date() + 1, wrs_autumn_plough, true );
146  break;
147  }
148  }
149  SimpleEvent( g_date->Date() + 1, wrs_autumn_harrow, false );
150  break;
151  case wrs_autumn_harrow:
152  if (!m_farm->AutumnHarrow( m_field, 0.0,
153  g_date->DayInYear( 25, 8 ) - g_date->DayInYear()))
154  {
155  SimpleEvent( g_date->Date() + 1, wrs_autumn_harrow, false );
156  break;
157  }
158  {
159  long newdate1 = g_date->OldDays() + g_date->DayInYear( 10, 8 );
160  long newdate2 = g_date->Date();
161  if ( newdate2 > newdate1 ) newdate1 = newdate2;
162  SimpleEvent( newdate1, wrs_autumn_sow, false );
163  }
164  break;
165 
166  case wrs_autumn_sow:
167  if (!m_farm->AutumnSow( m_field, 0.0,
168  g_date->DayInYear( 25, 8 ) - g_date->DayInYear())) {
169  SimpleEvent( g_date->Date() + 1, wrs_autumn_sow, false );
170  break;
171  }
172  d1 = g_date->Date() + 10;
173  if ( d1 < g_date->OldDays() + g_date->DayInYear( 20, 8 ))
174  d1 = g_date->OldDays() + g_date->DayInYear( 20, 8 );
175  SimpleEvent( d1, wrs_strigling_one, false );
176  break;
177 
178 case wrs_strigling_one:
179  if (!m_farm->Strigling( m_field, 0.0,
180  g_date->DayInYear( 20, 9 ) -
181  g_date->DayInYear())) {
182  SimpleEvent( g_date->Date() + 1, wrs_strigling_one, true );
183  break;
184  }
185  {
186  d1 = g_date->Date() + 7;
187  if ( d1 < g_date->OldDays() + g_date->DayInYear( 28, 8 ))
188  d1 = g_date->OldDays() + g_date->DayInYear( 28, 8 );
189  SimpleEvent( d1, wrs_strigling_two, false );
190  }
191  break;
192 
193 case wrs_strigling_two:
194  if (!m_farm->RowCultivation( m_field, 0.0,
195  g_date->DayInYear( 30, 9 ) -
196  g_date->DayInYear())) {
197  SimpleEvent( g_date->Date() + 1, wrs_strigling_two, true );
198  break;
199  }
200  {
201  if (m_farm->IsStockFarmer())
202  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,3 )+365,
203  wrs_ferti_s1, false );
204  else SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,4 )+365,
205  wrs_ferti_p1, false );
206  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15,4 )+365,
207  wrs_insect_one, false );
208  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 20,5 )+365,
209  wrs_fungi_one, false );
210  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,4 )+365,
211  wrs_strigling_three, false );
212 
213  // This is the main thread, that will lead to the end (eventually)...
214  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 5,7 )+365,
215  wrs_swarth, false );
216  }
217  break;
218 
219  case wrs_ferti_p1:
220  if (!m_farm->FP_NPKS( m_field, 0.0,
221  g_date->DayInYear( 15, 4 ) - g_date->DayInYear())) {
222  SimpleEvent( g_date->Date() + 1, wrs_ferti_p1, false );
223  break;
224  }
225  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 20, 4 ),
226  wrs_ferti_p2, false );
227  break;
228 
229  case wrs_ferti_p2:
230  if ( m_ev->m_lock || m_farm->DoIt( 20 )) {
231  if ( !m_farm->FP_NPKS( m_field, 0.0,
232  g_date->DayInYear( 1, 5 ) - g_date->DayInYear())) {
233  SimpleEvent( g_date->Date() + 1, wrs_ferti_p2, true );
234  }
235  }
236  // Execution in this thread stops here. No new events are queued up.
237  break;
238 case wrs_ferti_s1:
239  if (!m_farm->FP_NPKS( m_field, 0.0,
240  g_date->DayInYear( 30, 4 ) - g_date->DayInYear())) {
241  SimpleEvent( g_date->Date() + 1, wrs_ferti_s1, false );
242  break;
243  }
244  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,4 ),
245  wrs_ferti_p2, false );
246  break;
247 
248  case wrs_ferti_s2:
249  if ( !m_farm->FP_Slurry( m_field, 0.0,
250  g_date->DayInYear( 30,4 ) - g_date->DayInYear())) {
251  SimpleEvent( g_date->Date() + 1, wrs_ferti_s2, true );
252  }
253  // Execution in this thread stops here. No new events are queued up.
254  break;
255 
256  case wrs_insect_one:
257  if ( m_ev->m_lock || m_farm->DoIt( (int)(60*cfg_ins_app_prop1.value()) ))
258  {
259  if ( !m_farm->InsecticideTreat( m_field, 0.0,
260  g_date->DayInYear( 30, 4 ) - g_date->DayInYear()))
261  {
262  SimpleEvent( g_date->Date() + 1, wrs_insect_one, true );
263  break;
264  }
265  else
266  {
267  WR_INSECT_DATE = g_date->Date();
268  long newdate1 = g_date->OldDays() + g_date->DayInYear( 1, 5 );
269  long newdate2 = g_date->Date() + 7;
270  if ( newdate2 > newdate1 )
271  {
272  newdate1 = newdate2;
273  }
274  SimpleEvent( newdate1, wrs_insect_one_b, false );
275  break;
276  }
277  }
278  break; // End of thread if gets here
279 
280  case wrs_insect_one_b:
281  if ( g_date->Date() == WR_FUNGI_DATE )
282  {
283  // try again tomorrow.
284  SimpleEvent( g_date->Date() + 1, wrs_insect_one_b, false );
285  break;
286  }
287  if ( m_ev->m_lock || m_farm->DoIt( (int)(83*cfg_ins_app_prop1.value()) )) {
288  if ( !m_farm->InsecticideTreat( m_field, 0.0,
289  g_date->DayInYear( 30, 5 ) - g_date->DayInYear())) {
290  SimpleEvent( g_date->Date() + 1, wrs_insect_one_b, true );
291  break;
292  }
293  else
294  {
295  WR_INSECT_DATE = g_date->Date();
296  long newdate1 = g_date->OldDays() + g_date->DayInYear( 20, 6 );
297  long newdate2 = g_date->Date() + 7;
298  if ( newdate2 > newdate1 ) newdate1 = newdate2;
299  SimpleEvent( newdate1, wrs_insect_one_c, false );
300  break;
301  }
302  }
303  break; // End of thread if gets to here
304 
305  case wrs_insect_one_c:
306  if ( m_ev->m_lock || m_farm->DoIt((int)(40*cfg_ins_app_prop1.value() )))
307  {
308  if ( g_date->Date() == WR_FUNGI_DATE )
309  {
310  // try again tomorrow.
311  SimpleEvent( g_date->Date() + 1, wrs_insect_one_c, false );
312  break;
313  }
314  if ( !m_farm->InsecticideTreat( m_field, 0.0,
315  g_date->DayInYear( 1, 7 ) - g_date->DayInYear())) {
316  SimpleEvent( g_date->Date() + 1, wrs_insect_one_c, true );
317  }
318  WR_INSECT_DATE = g_date->Date();
319  }
320  // END_OF_ThREAD
321  break;
322 
323  case wrs_fungi_one:
324  if (m_farm->DoIt((int)(100*cfg_fungi_app_prop1.value()) ))
325  {
326  if ( g_date->Date() == WR_INSECT_DATE )
327  {
328  // try again tomorrow.
329  SimpleEvent( g_date->Date() + 1, wrs_fungi_one, false );
330  break;
331  }
332  if ( m_ev->m_lock || m_farm->DoIt( 10 )) {
333  if ( !m_farm->FungicideTreat( m_field, 0.0,
334  g_date->DayInYear( 1, 6 ) - g_date->DayInYear())) {
335  SimpleEvent( g_date->Date() + 1, wrs_insect_one_c, true );
336  }
337  WR_FUNGI_DATE = g_date->Date();
338  }
339  // END_OF_ThREAD
340  }
341  break;
342 
343  case wrs_strigling_three:
344  if ( g_date->Date() == WR_INSECT_DATE )
345  {
346  SimpleEvent( g_date->Date() + 1, wrs_strigling_three, m_ev->m_lock );
347  break;
348  }
349  if ( m_ev->m_lock || m_farm->DoIt( 25 )) {
350  if ( !m_farm->Strigling( m_field, 0.0,
351  g_date->DayInYear( 25, 4 ) - g_date->DayInYear())) {
352  SimpleEvent( g_date->Date() + 1, wrs_strigling_three, true );
353  break;
354  }
355  else
356  {
357  long newdate1 = g_date->OldDays() + g_date->DayInYear( 25, 4 );
358  long newdate2 = g_date->Date() + 5;
359  if ( newdate2 > newdate1 )
360  newdate1 = newdate2;
361  SimpleEvent( newdate1, wrs_strigling_threeb, false );
362  }
363  }
364  break;
365 
367  if ( m_ev->m_lock || m_farm->DoIt( 20 ))
368  {
369  if ( !m_farm->Strigling( m_field, 0.0,
370  g_date->DayInYear( 1, 5 ) - g_date->DayInYear())) {
371  SimpleEvent( g_date->Date() + 1, wrs_strigling_threeb, true );
372  }
373  }
374  // END_OF_ThREAD
375  break;
376 
377  case wrs_swarth:
378  if (m_ev->m_lock || m_farm->DoIt( 75 ))
379  {
380  if ( !m_farm->Swathing( m_field, 0.0,
381  g_date->DayInYear( 25, 7 ) - g_date->DayInYear())) {
382  SimpleEvent( g_date->Date() + 1, wrs_swarth, true );
383  break;
384  }
385  else WR_SWARTH_DATE=g_date->DayInYear();
386  }
387  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 10, 7 ),
388  wrs_harvest, false );
389  break;
390 
391  case wrs_harvest:
392  {
393  long EndDate;
394  if (WR_SWARTH_DATE!=-1)
395  {
396  EndDate=WR_SWARTH_DATE+14;
397  }
398  else EndDate=g_date->DayInYear( 1, 8 );
399  if ( !m_farm->Harvest( m_field, 0.0,
400  EndDate - g_date->DayInYear()))
401  {
402  SimpleEvent( g_date->Date() + 1, wrs_harvest, false );
403  break;
404  }
405  if ( m_farm->DoIt( 95 ))
406  {
407  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 10, 7 ),
408  wrs_cuttostraw, false );
409  }
410  else SimpleEvent( g_date->OldDays() + g_date->DayInYear( 25, 7 ),
411  wrs_compress, false);
412  break;
413  }
414 
415  case wrs_cuttostraw:
416  if ( !m_farm->StrawChopping( m_field, 0.0,
417  g_date->DayInYear( 1, 8 ) - g_date->DayInYear())) {
418  SimpleEvent( g_date->Date() + 1, wrs_cuttostraw, false );
419  break;
420  }
421  if (g_date->DayInYear()<g_date->DayInYear(15,7))
422  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15, 7 ),
423  wrs_stub_harrow, false );
424  else SimpleEvent( g_date->Date() + 1,wrs_stub_harrow, false );
425  break;
426 
427  case wrs_compress:
428  if ( !m_farm->HayBailing( m_field, 0.0,
429  g_date->DayInYear( 1, 8 ) - g_date->DayInYear())) {
430  SimpleEvent( g_date->Date() + 1, wrs_compress, false );
431  break;
432  }
433  if (g_date->DayInYear()<g_date->DayInYear(15,7))
434  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15, 7 ),
435  wrs_stub_harrow, false );
436  else
437  SimpleEvent( g_date->Date(), wrs_stub_harrow, false );
438  break;
439 
440  case wrs_stub_harrow:
441  if ( m_ev->m_lock || m_farm->DoIt( 75 )) {
442  if ( !m_farm->StubbleHarrowing( m_field, 0.0,
443  m_field->GetMDates(1,1) - g_date->DayInYear())) {
444  SimpleEvent( g_date->Date() + 1, wrs_stub_harrow, true );
445  break;
446  }
447  }
448  SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 8 ),
449  wrs_grubbing, false );
450  break;
451 
452  case wrs_grubbing:
453  if ( m_ev->m_lock || m_farm->DoIt( 10 )) {
454  if ( !m_farm->DeepPlough( m_field, 0.0,
455  m_field->GetMDates(1,2) - g_date->DayInYear())) {
456  SimpleEvent( g_date->Date() + 1, wrs_grubbing, true );
457  }
458  }
459  //
460  // End of execution tree for this management plan.
461  //
462  done = true;
463  break;
464 
465  default:
466  g_msg->Warn( WARN_BUG, "WinterRapeStrigling::Do(): "
467  "Unknown event type! ", "" );
468  exit( 1 );
469  }
470  return done;
471 }

References Farm::AutumnHarrow(), Farm::AutumnPlough(), Farm::AutumnSow(), cfg_fungi_app_prop1, cfg_ins_app_prop1, Farm::DeepPlough(), Farm::DoIt(), Farm::FA_Manure(), Farm::FP_NPKS(), Farm::FP_Slurry(), Farm::FungicideTreat(), Farm::Harvest(), Farm::HayBailing(), 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, Farm::RowCultivation(), Crop::SimpleEvent(), Farm::StrawChopping(), Farm::Strigling(), Farm::StubbleHarrowing(), Farm::Swathing(), WR_DID_HERBI_ZERO, WR_DID_RC_CLEAN, WR_FUNGI_DATE, WR_INSECT_DATE, WR_SWARTH_DATE, wrs_autumn_harrow, wrs_autumn_plough, wrs_autumn_sow, wrs_compress, wrs_cuttostraw, wrs_ferti_p1, wrs_ferti_p2, wrs_ferti_s1, wrs_ferti_s2, wrs_ferti_zero, wrs_fungi_one, wrs_grubbing, wrs_harvest, wrs_insect_one, wrs_insect_one_b, wrs_insect_one_c, wrs_start, wrs_strigling_one, wrs_strigling_three, wrs_strigling_threeb, wrs_strigling_two, wrs_stub_harrow, and wrs_swarth.


The documentation for this class was generated from the following files:
wrs_stub_harrow
Definition: winterrapestrigling.h:41
wrs_grubbing
Definition: winterrapestrigling.h:42
wrs_ferti_s2
Definition: winterrapestrigling.h:32
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
wrs_compress
Definition: winterrapestrigling.h:40
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
WR_DID_HERBI_ZERO
#define WR_DID_HERBI_ZERO
Definition: winterrape.h:46
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
wrs_insect_one_c
Definition: winterrapestrigling.h:36
wrs_insect_one_b
Definition: winterrapestrigling.h:35
wrs_autumn_sow
Definition: winterrapestrigling.h:24
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
wrs_ferti_s1
Definition: winterrapestrigling.h:31
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
wrs_autumn_plough
Definition: winterrapestrigling.h:22
Crop::SimpleEvent
void SimpleEvent(long a_date, int a_todo, bool a_lock)
Adds an event to this crop management.
Definition: farm.cpp:307
wrs_start
Definition: winterrapestrigling.h:20
cfg_ins_app_prop1
CfgFloat cfg_ins_app_prop1
Farm::AutumnSow
virtual bool AutumnSow(LE *a_field, double a_user, int a_days)
Carry out a sowing event in the autumn on a_field.
Definition: farmfuncs.cpp:364
Farm::HayBailing
virtual bool HayBailing(LE *a_field, double a_user, int a_days)
Carry out hay bailing on a_field.
Definition: farmfuncs.cpp:2184
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
wrs_strigling_one
Definition: winterrapestrigling.h:25
WR_FUNGI_DATE
#define WR_FUNGI_DATE
Definition: winterrape.h:48
wrs_cuttostraw
Definition: winterrapestrigling.h:39
wrs_strigling_three
Definition: winterrapestrigling.h:27
Crop::m_farm
Farm * m_farm
Definition: farm.h:537
Crop::m_field
LE * m_field
Definition: farm.h:538
FarmEvent::m_todo
int m_todo
Definition: farm.h:469
wrs_ferti_zero
Definition: winterrapestrigling.h:21
Farm::InsecticideTreat
virtual bool InsecticideTreat(LE *a_field, double a_user, int a_days)
Apply insecticide to a_field.
Definition: farmfuncs.cpp:1348
Farm::FP_Slurry
virtual bool FP_Slurry(LE *a_field, double a_user, int a_days)
Apply slurry to a_field owned by an arable farmer.
Definition: farmfuncs.cpp:701
WR_DID_RC_CLEAN
#define WR_DID_RC_CLEAN
Definition: winterrape.h:45
Farm::RowCultivation
virtual bool RowCultivation(LE *a_field, double a_user, int a_days)
Carry out a harrowing between crop rows on a_field.
Definition: farmfuncs.cpp:1510
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
wrs_insect_one
Definition: winterrapestrigling.h:34
wrs_strigling_threeb
Definition: winterrapestrigling.h:28
Farm::AutumnHarrow
virtual bool AutumnHarrow(LE *a_field, double a_user, int a_days)
Carry out a harrow event in the autumn on a_field.
Definition: farmfuncs.cpp:261
WR_SWARTH_DATE
#define WR_SWARTH_DATE
Definition: winterrape.h:49
wrs_swarth
Definition: winterrapestrigling.h:37
Farm::DeepPlough
virtual bool DeepPlough(LE *a_field, double a_user, int a_days)
Carry out a deep ploughing event on a_field.
Definition: farmfuncs.cpp:417
WR_INSECT_DATE
#define WR_INSECT_DATE
Definition: winterrape.h:47
wrs_ferti_p2
Definition: winterrapestrigling.h:30
wrs_harvest
Definition: winterrapestrigling.h:38
wrs_ferti_p1
Definition: winterrapestrigling.h:29
wrs_strigling_two
Definition: winterrapestrigling.h:26
wrs_fungi_one
Definition: winterrapestrigling.h:33
Farm::Swathing
virtual bool Swathing(LE *a_field, double a_user, int a_days)
Cut the crop on a_field and leave it lying (probably rape)
Definition: farmfuncs.cpp:1744
wrs_autumn_harrow
Definition: winterrapestrigling.h:23
Crop::m_ev
FarmEvent * m_ev
Definition: farm.h:539
cfg_fungi_app_prop1
CfgFloat cfg_fungi_app_prop1
Farm::StubbleHarrowing
virtual bool StubbleHarrowing(LE *a_field, double a_user, int a_days)
Carry out stubble harrowing on a_field.
Definition: farmfuncs.cpp:2209
Farm::FP_NPKS
virtual bool FP_NPKS(LE *a_field, double a_user, int a_days)
Apply NPKS fertilizer, on a_field owned by an arable farmer.
Definition: farmfuncs.cpp:602