30 #include "../../Landscape/ls.h"
31 #include "../../Landscape/cropprogs/winterrape.h"
76 m_field->SetMDates(0,0,g_date->DayInYear(1,8));
78 m_field->SetMDates(1,0,g_date->DayInYear(1,8));
79 m_field->SetMDates(0,1,g_date->DayInYear(25,7));
80 m_field->SetMDates(1,1,g_date->DayInYear(15,8));
81 m_field->SetMDates(0,2,g_date->DayInYear(1,8));
82 m_field->SetMDates(1,2,g_date->DayInYear(15,10));
94 g_msg->Warn( WARN_BUG,
"WinterRape::Do(): "
95 "Harvest too late for the next crop to start!!!",
"" );
99 for (
int i=0; i<noDates; i++) {
113 d1 = g_date->OldDays() + g_date->DayInYear( 1,7 );
114 if (g_date->Date() < d1) {
116 g_msg->Warn( WARN_BUG,
"WinterRape::Do(): "
117 "Crop start attempt between 1st Jan & 1st July",
"" );
123 if (g_date->Date() > d1) {
125 g_msg->Warn( WARN_BUG,
"WinterRape::Do(): "
126 "Crop start attempt after last possible start date",
"" );
134 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 5,7 )
142 d1 = g_date->OldDays() + g_date->DayInYear( 21,8 );
143 if ( g_date->Date() > d1 ) {
155 if (g_date->Date() >= d1) d1 += 365;
180 g_date->DayInYear( 24, 8 ) - g_date->DayInYear())) {
186 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 8 ),
193 g_date->DayInYear( 25, 8 ) - g_date->DayInYear())) {
202 g_date->DayInYear( 25, 8 ) - g_date->DayInYear()))
208 long newdate1 = g_date->OldDays() + g_date->DayInYear( 10, 8 );
209 long newdate2 = g_date->Date();
210 if ( newdate2 > newdate1 ) newdate1 = newdate2;
216 g_date->DayInYear( 25, 8 ) - g_date->DayInYear())) {
220 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 9 ),
226 g_date->DayInYear( 30, 9 ) - g_date->DayInYear()))
233 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15, 9 ),
243 g_date->DayInYear( 15, 4 ) - g_date->DayInYear())) {
247 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 20, 4 ),
254 g_date->DayInYear( 1, 5 ) - g_date->DayInYear())) {
262 g_date->DayInYear( 30, 4 ) - g_date->DayInYear())) {
266 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,4 ),
272 g_date->DayInYear( 30,4 ) - g_date->DayInYear())) {
281 g_date->DayInYear( 5, 4 ) - g_date->DayInYear())) {
293 Field * pf = dynamic_cast<Field*>(
m_field);
294 pf->Add_missed_fi_app();
295 if (
m_farm->
DoIt(30)) pf->Add_missed_fi_app();
296 if (
m_farm->
DoIt(12)) pf->Add_missed_fi_app();
312 long newdate1 = g_date->OldDays() + g_date->DayInYear(1, 5);
313 long newdate2 = g_date->Date() + 7;
314 if (newdate2 > newdate1)
345 g_date->DayInYear(30, 5) - g_date->DayInYear())) {
352 long newdate1 = g_date->OldDays() + g_date->DayInYear(20, 6);
353 long newdate2 = g_date->Date() + 7;
354 if (newdate2 > newdate1) newdate1 = newdate2;
382 g_date->DayInYear(1, 7) - g_date->DayInYear())) {
411 Field * pf = dynamic_cast<Field*>(
m_field);
412 pf->Add_missed_fi_app();
417 g_date->DayInYear( 1, 6 ) - g_date->DayInYear())) {
434 g_date->DayInYear( 1, 5 ) - g_date->DayInYear())) {
445 g_date->DayInYear( 25, 7 ) - g_date->DayInYear())) {
452 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 10, 7 ),
458 if (
m_field->GetMConstants(1)==0) {
460 g_msg->Warn( WARN_BUG,
"WinterRape::Do(): failure in 'Harvest' execution",
"" );
469 if (EndDate>
m_field->GetMDates(0,1)) EndDate=
m_field->GetMDates(0,1);
471 else EndDate=g_date->DayInYear( 1, 8 );
473 EndDate - g_date->DayInYear()))
489 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 10, 7 ),
492 else SimpleEvent( g_date->OldDays() + g_date->DayInYear( 25, 7 ),
499 g_date->DayInYear( 1, 8 ) - g_date->DayInYear())) {
503 if (g_date->DayInYear()<g_date->DayInYear(15,7))
504 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15, 7 ),
511 g_date->DayInYear( 1, 8 ) - g_date->DayInYear())) {
515 if (g_date->DayInYear()<g_date->DayInYear(15,7))
516 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15, 7 ),
524 if (
m_field->GetMConstants(1)==0) {
526 g_msg->Warn( WARN_BUG,
"WinterRape::Do(): failure in 'StubbleHarrowing' execution",
"" );
542 if (
m_field->GetMConstants(2)==0) {
544 g_msg->Warn( WARN_BUG,
"WinterRape::Do(): failure in 'DeepPlough' execution",
"" );
570 g_msg->Warn( WARN_BUG,
"WinterRape::Do(): "
571 "Unknown event type! ",
"" );
587 g_date->DayInYear( 25, 4 ) - g_date->DayInYear())) {
593 long newdate1 = g_date->OldDays() + g_date->DayInYear( 25, 4 );
594 long newdate2 = g_date->Date() + 5;
595 if ( newdate2 > newdate1 )
614 Field * pf = dynamic_cast<Field*>(
m_field);
615 pf->Add_missed_herb_app();
616 if(
m_farm->
DoIt(45)) pf->Add_missed_herb_app();
622 g_date->DayInYear( 5, 10 ) - g_date->DayInYear())) {
633 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,3 )+365,
635 else SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1,4 )+365,
638 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15,3 )+365,
640 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15,4 )+365,
642 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 20,5 )+365,
644 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15,4 )+365,
648 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 5,7 )+365,