43 #include "../../Landscape/ls.h"
44 #include "../../Landscape/cropprogs/PLWinterRye.h"
84 a_field->SetMDates(0, 0, g_date->DayInYear(10, 8));
85 a_field->SetMDates(1, 0, g_date->DayInYear(15, 8));
86 a_field->SetMDates(0, 1, 0);
87 a_field->SetMDates(1, 1, g_date->DayInYear(20, 8));
88 a_field->SetMDates(0, 2, 0);
89 a_field->SetMDates(1, 2, g_date->DayInYear(25, 8));
90 a_field->SetMDates(0, 3, 0);
91 a_field->SetMDates(1, 3, g_date->DayInYear(25, 8));
95 a_field->SetMConstants(0, 1);
105 if (a_ev->
m_startday > g_date->DayInYear(1, 7)) {
106 if (a_field->GetMDates(0, 0) >= a_ev->
m_startday)
108 g_msg->Warn(WARN_BUG,
"PLWinterRye::Do(): ",
"Harvest too late for the next crop to start!!!");
110 g_msg->Warn(
"Next Crop ", (
double)almassnum);
113 for (
int i = 0; i < noDates; i++) {
114 if (a_field->GetMDates(0, i) >= a_ev->
m_startday) {
115 a_field->SetMDates(0, i, a_ev->
m_startday - 1);
117 if (a_field->GetMDates(1, i) >= a_ev->
m_startday) {
118 a_field->SetMConstants(i, 0);
119 a_field->SetMDates(1, i, a_ev->
m_startday - 1);
127 d1 = g_date->OldDays() + g_date->DayInYear(1, 7);
128 if (g_date->Date() < d1) {
130 printf(
"Poly: %d\n", a_field->GetPoly());
131 g_msg->Warn(WARN_BUG,
"PLWinterRye::Do(): ",
"Crop start attempt between 1st Jan & 1st July");
133 g_msg->Warn(WARN_BUG,
"Previous Crop ", prev);
135 g_msg->Warn(
"Next Crop ", (
double)almassnum);
139 if (g_date->Date() > d1) {
141 g_msg->Warn(WARN_BUG,
"PLWinterRye::Do(): ",
"Crop start attempt after last possible start date");
142 g_msg->Warn(WARN_BUG,
"Previous Crop ",
"");
143 a_field->GetOwner()->GetPreviousCrop(a_field->GetRotIndex());
145 g_msg->Warn(
"Next Crop ", (
double)almassnum);
164 d1 = g_date->OldDays() + g_date->DayInYear(20, 7);
181 if (!a_farm->
FP_Slurry(a_field, 0.0, g_date->DayInYear(15, 9) - g_date->DayInYear())) {
198 if (a_ev->
m_lock || a_farm->DoIt(40))
200 if (!a_farm->FA_Slurry(a_field, 0.0, g_date->DayInYear(15, 9) - g_date->DayInYear())) {
215 if (a_ev->
m_lock || a_farm->DoIt(50))
217 if (!a_farm->StubblePlough(a_field, 0.0, g_date->DayInYear(15, 9) - g_date->DayInYear())) {
233 if (!a_farm->AutumnHarrow(a_field, 0.0, g_date->DayInYear(15, 9) - g_date->DayInYear())) {
240 if (a_ev->
m_lock || a_farm->DoIt(40))
242 if (!a_farm->AutumnHarrow(a_field, 0.0, g_date->Date() + 7 - g_date->DayInYear())) {
247 d1 = g_date->Date() + 1;
248 if (d1 < g_date->OldDays() + g_date->DayInYear(10, 8)) {
249 d1 = g_date->OldDays() + g_date->DayInYear(10, 8);
251 if (a_farm->IsStockFarmer())
258 if (!a_farm->StubbleHarrowing(a_field, 0.0, g_date->DayInYear(20, 9) - g_date->DayInYear())) {
262 d1 = g_date->Date() + 1;
263 if (d1 < g_date->OldDays() + g_date->DayInYear(10, 8)) {
264 d1 = g_date->OldDays() + g_date->DayInYear(10, 8);
266 if (a_farm->IsStockFarmer())
277 if (!a_farm->FP_Slurry(a_field, 0.0, g_date->DayInYear(25, 9) - g_date->DayInYear())) {
289 if (!a_farm->FA_Slurry(a_field, 0.0, g_date->DayInYear(25, 9) - g_date->DayInYear())) {
297 if (a_ev->
m_lock || a_farm->DoIt(80))
299 if (!a_farm->AutumnPlough(a_field, 0.0, g_date->DayInYear(25, 9) - g_date->DayInYear())) {
306 d1 = g_date->OldDays() + g_date->DayInYear(5, 9);
307 if (g_date->Date() > d1)
314 if (a_farm->IsStockFarmer())
326 if (!a_farm->AutumnRoll(a_field, 0.0, g_date->DayInYear(25, 9) - g_date->DayInYear())) {
330 if (a_farm->IsStockFarmer())
338 if (!a_farm->StubbleCultivatorHeavy(a_field, 0.0, g_date->DayInYear(25, 9) - g_date->DayInYear())) {
342 if (a_farm->IsStockFarmer())
349 if (a_ev->
m_lock || a_farm->DoIt(45))
351 if (!a_farm->FP_NPKS(a_field, 0.0, g_date->DayInYear(28, 9) - g_date->DayInYear())) {
359 if (a_ev->
m_lock || a_farm->DoIt(45))
361 if (!a_farm->FA_NPKS(a_field, 0.0, g_date->DayInYear(28, 9) - g_date->DayInYear())) {
370 if (a_ev->
m_lock || a_farm->DoIt(30))
372 if (!a_farm->PreseedingCultivator(a_field, 0.0, g_date->DayInYear(29, 9) - g_date->DayInYear())) {
382 if (!a_farm->AutumnSow(a_field, 0.0, g_date->DayInYear(30, 9) - g_date->DayInYear())) {
390 if (a_farm->IsStockFarmer())
395 if (a_farm->IsStockFarmer())
400 if (a_farm->IsStockFarmer())
408 if (!a_farm->PreseedingCultivatorSow(a_field, 0.0, g_date->DayInYear(30, 9) - g_date->DayInYear())) {
416 if (a_farm->IsStockFarmer())
421 if (a_farm->IsStockFarmer())
426 if (a_farm->IsStockFarmer())
434 if (a_ev->
m_lock || a_farm->DoIt(50))
436 if (!a_farm->HerbicideTreat(a_field, 0.0, g_date->DayInYear(15, 11) - g_date->DayInYear())) {
444 if (a_ev->
m_lock || a_farm->DoIt(53))
446 if (!a_farm->HerbicideTreat(a_field, 0.0, g_date->DayInYear(10, 4) - g_date->DayInYear())) {
455 if (a_ev->
m_lock || a_farm->DoIt(5))
457 if (!a_farm->FungicideTreat(a_field, 0.0, g_date->DayInYear(15, 11) - g_date->DayInYear())) {
465 if (a_ev->
m_lock || a_farm->DoIt(78))
467 if (!a_farm->FungicideTreat(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
476 if (a_ev->
m_lock || a_farm->DoIt(70))
478 if (!a_farm->GrowthRegulator(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
487 if (a_ev->
m_lock || a_farm->DoIt(58))
489 if (!a_farm->FP_PK(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
498 if (a_ev->
m_lock || a_farm->DoIt(58))
500 if (!a_farm->FA_PK(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
509 if (!a_farm->FP_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
513 d1 = g_date->Date() + 10;
514 if (d1 < g_date->OldDays() + g_date->DayInYear(1, 4)) {
515 d1 = g_date->OldDays() + g_date->DayInYear(1, 4);
520 if (!a_farm->FA_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
524 d1 = g_date->Date() + 10;
525 if (d1 < g_date->OldDays() + g_date->DayInYear(1, 4)) {
526 d1 = g_date->OldDays() + g_date->DayInYear(1, 4);
531 if (a_ev->
m_lock || a_farm->DoIt(85))
533 if (!a_farm->FP_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
541 if (a_ev->
m_lock || a_farm->DoIt(85))
543 if (!a_farm->FA_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
551 if (a_ev->
m_lock || a_farm->DoIt(15))
553 if (!a_farm->FP_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(10, 6) - g_date->DayInYear())) {
561 if (a_ev->
m_lock || a_farm->DoIt(15))
563 if (!a_farm->FA_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(10, 6) - g_date->DayInYear())) {
572 if (a_ev->
m_lock || a_farm->DoIt(24))
574 if (!a_farm->FP_ManganeseSulphate(a_field, 0.0, g_date->DayInYear(20, 4) - g_date->DayInYear())) {
582 if (a_ev->
m_lock || a_farm->DoIt(24))
584 if (!a_farm->FA_ManganeseSulphate(a_field, 0.0, g_date->DayInYear(20, 4) - g_date->DayInYear())) {
592 if (a_ev->
m_lock || a_farm->DoIt(3))
594 if (!a_farm->FP_ManganeseSulphate(a_field, 0.0, g_date->DayInYear(20, 5) - g_date->DayInYear())) {
602 if (a_ev->
m_lock || a_farm->DoIt(3))
604 if (!a_farm->FA_ManganeseSulphate(a_field, 0.0, g_date->DayInYear(20, 5) - g_date->DayInYear())) {
614 if (!a_farm->Harvest(a_field, 0.0, a_field->GetMDates(0, 0) - g_date->DayInYear())) {
623 if (a_farm->IsStockFarmer())
626 if (a_ev->
m_lock || a_farm->DoIt(10))
628 if (a_field->GetMConstants(0) == 0) {
629 if (!a_farm->StrawChopping(a_field, 0.0, -1)) {
630 g_msg->Warn(WARN_BUG,
"PLWinterRye::Do(): failure in 'StrawChopping' execution",
"");
635 if (!a_farm->StrawChopping(a_field, 0.0, a_field->GetMDates(1, 0) - g_date->DayInYear())) {
654 if (a_ev->
m_lock || a_farm->DoIt(90))
656 if (a_field->GetMConstants(0) == 0) {
657 if (!a_farm->StrawChopping(a_field, 0.0, -1)) {
658 g_msg->Warn(WARN_BUG,
"PLWinterRye::Do(): failure in 'StrawChopping' execution",
"");
663 if (!a_farm->StrawChopping(a_field, 0.0, a_field->GetMDates(1, 0) - g_date->DayInYear())) {
680 if (a_field->GetMConstants(1) == 0) {
681 if (!a_farm->HayBailing(a_field, 0.0, -1)) {
682 g_msg->Warn(WARN_BUG,
"PLWinterRye::Do(): failure in 'HayBailing' execution",
"");
687 if (!a_farm->HayBailing(a_field, 0.0, a_field->GetMDates(1, 1) - g_date->DayInYear())) {
692 if (a_farm->IsStockFarmer())
699 if (a_ev->
m_lock || a_farm->DoIt(8))
701 if (a_field->GetMConstants(2) == 0) {
702 if (!a_farm->FP_RSM(a_field, 0.0, -1)) {
703 g_msg->Warn(WARN_BUG,
"PLWinterRye::Do(): failure in 'FP_RSM' execution",
"");
708 if (!a_farm->FP_RSM(a_field, 0.0, a_field->GetMDates(1, 2) - g_date->DayInYear())) {
714 if (a_farm->IsStockFarmer())
721 if (a_ev->
m_lock || a_farm->DoIt(8))
723 if (a_field->GetMConstants(2) == 0) {
724 if (!a_farm->FA_RSM(a_field, 0.0, -1)) {
725 g_msg->Warn(WARN_BUG,
"PLWinterRye::Do(): failure in 'FA_RSM' execution",
"");
730 if (!a_farm->FA_RSM(a_field, 0.0, a_field->GetMDates(1, 2) - g_date->DayInYear())) {
736 if (a_farm->IsStockFarmer())
743 if (a_ev->
m_lock || a_farm->DoIt(21))
745 if (a_field->GetMConstants(3) == 0) {
746 if (!a_farm->FP_Calcium(a_field, 0.0, -1)) {
747 g_msg->Warn(WARN_BUG,
"PLWinterRye::Do(): failure in 'FP_Calcium' execution",
"");
752 if (!a_farm->FP_Calcium(a_field, 0.0, a_field->GetMDates(1, 3) - g_date->DayInYear())) {
763 if (a_ev->
m_lock || a_farm->DoIt(21))
765 if (a_field->GetMConstants(3) == 0) {
766 if (!a_farm->FA_Calcium(a_field, 0.0, -1)) {
767 g_msg->Warn(WARN_BUG,
"PLWinterRye::Do(): failure in 'FA_Calcium' execution",
"");
772 if (!a_farm->FA_Calcium(a_field, 0.0, a_field->GetMDates(1, 3) - g_date->DayInYear())) {
783 g_msg->Warn(WARN_BUG,
"PLWinterRye::Do(): "
784 "Unknown event type! ",
"");