Loading [MathJax]/extensions/ams.js
ALMaSS  1.2 (after EcoStack, March 2024)
The Animal, Landscape and Man Simulation System
All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
WinterRapeStrigling Class Reference

#include <WinterRapeStrigling.h>

Inheritance diagram for WinterRapeStrigling:
Crop

Public Member Functions

bool Do (Farm *a_farm, LE *a_field, FarmEvent *a_ev)
 
 WinterRapeStrigling (TTypesOfVegetation a_tov, TTypesOfCrops a_toc, Landscape *a_L)
 
void SetUpFarmCategoryInformation ()
 
- Public Member Functions inherited from Crop
virtual ~Crop ()
 
 Crop (TTypesOfVegetation a_tov, TTypesOfCrops a_toc, Landscape *a_L)
 
int GetFirstDate (void)
 
void ChooseNextCrop (int a_no_dates)
 Chooses the next crop to grow in a field. More...
 
int GetCropClassification ()
 
void SetCropClassification (int a_classification)
 
void GetCropType (TTypesOfCrops a_toc)
 
TTypesOfCrops GetCropType ()
 
FarmManagementCategory LookUpManagementCategory (int a_todo)
 
bool GetForceSpringOK ()
 

Additional Inherited Members

- Public Attributes inherited from Crop
TTypesOfVegetation m_tov
 
- 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...
 
bool StartUpCrop (int a_spring, std::vector< std::vector< int >> a_flexdates, int a_todo)
 
Holds the translation between the farm operation enum for each cropand the farm management category associated with it More...
 
bool AphidDamage (LE *a_field)
 Compares aphid numbers per m2 with a threshold to return true if threshold is exceeded. More...
 
- Protected Attributes inherited from Crop
Farmm_farm
 
LEm_field
 
FarmEventm_ev
 
int m_first_date
 
int m_count
 
int m_last_date
 
int m_ddegstoharvest
 
int m_base_elements_no
 
Landscapem_OurLandscape
 
bool m_forcespringpossible = false
 Used to signal that the crop can be forced to start in spring. More...
 
TTypesOfCrops m_toc
 The Crop type in terms of the TTypesOfCrops list (smaller list than tov, no country designation) More...
 
int m_CropClassification
 Contains information on whether this is a winter crop, spring crop, or catch crop that straddles the year boundary (0,1,2) More...
 
vector< FarmManagementCategorym_ManagementCategories
 Holds the translation between the farm operation enum for each crop and the farm management category associated with it. More...
 
- Static Protected Attributes inherited from Crop
static int m_date_modifier = 0
 Holds a value that shifts test pesticide use by this many days in crops modified to use it. More...
 

Constructor & Destructor Documentation

◆ WinterRapeStrigling()

WinterRapeStrigling::WinterRapeStrigling ( TTypesOfVegetation  a_tov,
TTypesOfCrops  a_toc,
Landscape a_L 
)
inline
52  : Crop(a_tov, a_toc, a_L)
53  {
56  }

References Calendar::DayInYear(), g_date, Crop::m_first_date, and SetUpFarmCategoryInformation().

Member Function Documentation

◆ Do()

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

Reimplemented from Crop.

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

References Farm::AutumnHarrow(), Farm::AutumnPlough(), Farm::AutumnSow(), cfg_fungi_app_prop1, cfg_ins_app_prop1, LE::ClearManagementActionSum(), Calendar::Date(), Calendar::DayInYear(), Farm::DeepPlough(), Farm::DoIt(), Farm::FA_Manure(), Farm::FP_NPKS(), Farm::FP_Slurry(), Farm::FungicideTreat(), g_date, g_msg, LE::GetMDates(), 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, Calendar::OldDays(), Farm::RowCultivation(), LE::SetMDates(), Crop::SimpleEvent(), Farm::StrawChopping(), Farm::Strigling(), Farm::StubbleHarrowing(), Farm::Swathing(), CfgFloat::value(), MapErrorMsg::Warn(), WARN_BUG, 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.

◆ SetUpFarmCategoryInformation()

void WinterRapeStrigling::SetUpFarmCategoryInformation ( )
inline
57  {
58  const int elements = 2 + (wrs_foobar - WINTERRAPESTRIGLING_BASE);
60 
61  FarmManagementCategory catlist[elements] =
62  {
63  fmc_Others, // zero element unused but must be here
64  fmc_Others,//wrs_start = 1, // Compulsory, start event must always be 1 (one).
65  fmc_Fertilizer,//wrs_ferti_zero = WINTERRAPESTRIGLING_BASE,
66  fmc_Cultivation,//wrs_autumn_plough,
67  fmc_Cultivation,//wrs_autumn_harrow,
68  fmc_Others,//wrs_autumn_sow,
69  fmc_Cultivation,//wrs_strigling_one,
70  fmc_Cultivation,//wrs_strigling_two,
71  fmc_Cultivation,//wrs_strigling_three,
72  fmc_Cultivation,//wrs_strigling_threeb,
73  fmc_Fertilizer,//wrs_ferti_p1,
74  fmc_Fertilizer,//wrs_ferti_p2,
75  fmc_Fertilizer,//wrs_ferti_s1,
76  fmc_Fertilizer,//wrs_ferti_s2,
77  fmc_Fungicide,//wrs_fungi_one,
78  fmc_Insecticide,//wrs_insect_one,
79  fmc_Insecticide,//wrs_insect_one_b,
80  fmc_Insecticide,//wrs_insect_one_c,
81  fmc_Cutting,//wrs_swarth,
82  fmc_Harvest,//wrs_harvest,
83  fmc_Others,//wrs_cuttostraw,
84  fmc_Others,//wrs_compress,
85  fmc_Cultivation,//wrs_stub_harrow,
86  fmc_Cultivation//wrs_grubbing
87 
88  // no foobar entry
89 
90  };
91  // Iterate over the catlist elements and copy them to vector
92  copy(begin(catlist), end(catlist), back_inserter(m_ManagementCategories));
93 
94  }

References fmc_Cultivation, fmc_Cutting, fmc_Fertilizer, fmc_Fungicide, fmc_Harvest, fmc_Insecticide, fmc_Others, Crop::m_base_elements_no, Crop::m_ManagementCategories, WINTERRAPESTRIGLING_BASE, and wrs_foobar.

Referenced by WinterRapeStrigling().


The documentation for this class was generated from the following files:
LE::GetMDates
int GetMDates(int a, int b)
Definition: Elements.h:405
wrs_autumn_plough
Definition: WinterRapeStrigling.h:22
wrs_insect_one
Definition: WinterRapeStrigling.h:34
fmc_Insecticide
Definition: LandscapeFarmingEnums.h:1005
WinterRapeStrigling::SetUpFarmCategoryInformation
void SetUpFarmCategoryInformation()
Definition: WinterRapeStrigling.h:57
LE::SetMDates
void SetMDates(int a, int b, int c)
Definition: Elements.h:406
Farm::IsStockFarmer
bool IsStockFarmer(void)
Definition: Farm.h:961
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:1206
Farm::Harvest
virtual bool Harvest(LE *a_field, double a_user, int a_days)
Carry out a harvest on a_field.
Definition: FarmFuncs.cpp:1364
wrs_autumn_harrow
Definition: WinterRapeStrigling.h:23
FarmEvent::m_lock
bool m_lock
Definition: Farm.h:384
LE::ClearManagementActionSum
void ClearManagementActionSum()
clears the management action counters
Definition: Elements.h:247
Farm::DoIt
bool DoIt(double a_probability)
Return chance out of 0 to 100.
Definition: Farm.cpp:856
FarmEvent::m_first_year
bool m_first_year
Definition: Farm.h:386
wrs_grubbing
Definition: WinterRapeStrigling.h:42
wrs_insect_one_b
Definition: WinterRapeStrigling.h:35
g_date
class Calendar * g_date
Definition: Calendar.cpp:37
wrs_cuttostraw
Definition: WinterRapeStrigling.h:39
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:1110
CfgFloat::value
double value() const
Definition: Configurator.h:142
Crop::m_base_elements_no
int m_base_elements_no
Definition: Farm.h:505
wrs_insect_one_c
Definition: WinterRapeStrigling.h:36
wrs_ferti_s2
Definition: WinterRapeStrigling.h:32
Crop::m_first_date
int m_first_date
Definition: Farm.h:501
FarmEvent::m_startday
int m_startday
Definition: Farm.h:385
Farm::FungicideTreat
virtual bool FungicideTreat(LE *a_field, double a_user, int a_days)
Apply fungicide to a_field.
Definition: FarmFuncs.cpp:2101
Crop::SimpleEvent
void SimpleEvent(long a_date, int a_todo, bool a_lock)
Adds an event to this crop management.
Definition: Farm.cpp:747
wrs_harvest
Definition: WinterRapeStrigling.h:38
wrs_strigling_two
Definition: WinterRapeStrigling.h:26
cfg_ins_app_prop1
CfgFloat cfg_ins_app_prop1
fmc_Cutting
Definition: LandscapeFarmingEnums.h:1009
wrs_swarth
Definition: WinterRapeStrigling.h:37
fmc_Fertilizer
Definition: LandscapeFarmingEnums.h:1004
wrs_autumn_sow
Definition: WinterRapeStrigling.h:24
Calendar::Date
long Date(void)
Definition: Calendar.h:57
wrs_strigling_one
Definition: WinterRapeStrigling.h:25
fmc_Cultivation
Definition: LandscapeFarmingEnums.h:1008
Farm::HayBailing
virtual bool HayBailing(LE *a_field, double a_user, int a_days)
Carry out hay bailing on a_field.
Definition: FarmFuncs.cpp:1507
WR_FUNGI_DATE
#define WR_FUNGI_DATE
Definition: WinterRape.h:48
fmc_Others
Definition: LandscapeFarmingEnums.h:1003
Farm::StrawChopping
virtual bool StrawChopping(LE *a_field, double a_user, int a_days)
Carry out straw chopping on a_field.
Definition: FarmFuncs.cpp:1475
wrs_ferti_p2
Definition: WinterRapeStrigling.h:30
Calendar::OldDays
long OldDays(void)
Definition: Calendar.h:60
WR_INSECT_DATE
#define WR_INSECT_DATE
Definition: WinterRape.h:47
WR_SWARTH_DATE
#define WR_SWARTH_DATE
Definition: WinterRape.h:49
wrs_ferti_s1
Definition: WinterRapeStrigling.h:31
MapErrorMsg::Warn
void Warn(MapErrorState a_level, std::string a_msg1, std::string a_msg2)
Definition: MapErrorMsg.cpp:69
WR_DID_HERBI_ZERO
#define WR_DID_HERBI_ZERO
Definition: WinterRape.h:46
Crop::m_farm
Farm * m_farm
Definition: Farm.h:498
Crop::m_field
LE * m_field
Definition: Farm.h:499
wrs_start
Definition: WinterRapeStrigling.h:20
Crop::m_ManagementCategories
vector< FarmManagementCategory > m_ManagementCategories
Holds the translation between the farm operation enum for each crop and the farm management category ...
Definition: Farm.h:530
FarmEvent::m_todo
int m_todo
Definition: Farm.h:388
Farm::InsecticideTreat
virtual bool InsecticideTreat(LE *a_field, double a_user, int a_days)
Apply insecticide to a_field.
Definition: FarmFuncs.cpp:2135
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:823
wrs_foobar
Definition: WinterRapeStrigling.h:43
wrs_ferti_p1
Definition: WinterRapeStrigling.h:29
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:1183
wrs_strigling_three
Definition: WinterRapeStrigling.h:27
Crop::m_last_date
int m_last_date
Definition: Farm.h:503
WR_DID_RC_CLEAN
#define WR_DID_RC_CLEAN
Definition: WinterRape.h:45
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:212
g_msg
MapErrorMsg * g_msg
Definition: MapErrorMsg.cpp:41
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:285
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:408
Farm::AutumnSow
virtual bool AutumnSow(LE *a_field, double a_user, int a_days, double a_seed_coating_amount=-1, PlantProtectionProducts a_ppp=ppp_foobar)
Carry out a sowing event in the autumn on a_field.
Definition: FarmFuncs.cpp:360
fmc_Harvest
Definition: LandscapeFarmingEnums.h:1012
wrs_strigling_threeb
Definition: WinterRapeStrigling.h:28
wrs_ferti_zero
Definition: WinterRapeStrigling.h:21
wrs_fungi_one
Definition: WinterRapeStrigling.h:33
Calendar::DayInYear
int DayInYear(void)
Definition: Calendar.h:58
wrs_compress
Definition: WinterRapeStrigling.h:40
Crop::Crop
Crop(TTypesOfVegetation a_tov, TTypesOfCrops a_toc, Landscape *a_L)
Definition: Farm.cpp:733
wrs_stub_harrow
Definition: WinterRapeStrigling.h:41
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:1350
Crop::m_ev
FarmEvent * m_ev
Definition: Farm.h:500
WARN_BUG
Definition: MapErrorMsg.h:34
cfg_fungi_app_prop1
CfgFloat cfg_fungi_app_prop1
fmc_Fungicide
Definition: LandscapeFarmingEnums.h:1007
WINTERRAPESTRIGLING_BASE
#define WINTERRAPESTRIGLING_BASE
Definition: WinterRapeStrigling.h:12
FarmManagementCategory
FarmManagementCategory
Definition: LandscapeFarmingEnums.h:1001
Farm::StubbleHarrowing
virtual bool StubbleHarrowing(LE *a_field, double a_user, int a_days)
Carry out stubble harrowing on a_field.
Definition: FarmFuncs.cpp:1523
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:630