43 #include "../../Landscape/ls.h"
44 #include "../../Landscape/cropprogs/PLCarrots.h"
84 a_field->SetMDates(0, 0, g_date->DayInYear(30, 10));
85 a_field->SetMDates(1, 0, g_date->DayInYear(30, 10));
86 a_field->SetMDates(0, 1, 0);
87 a_field->SetMDates(1, 1, g_date->DayInYear(30, 10));
91 a_field->SetMConstants(0, 1);
101 if (a_ev->
m_startday > g_date->DayInYear(1, 7)) {
102 if (a_field->GetMDates(0, 0) >= a_ev->
m_startday)
104 g_msg->Warn(WARN_BUG,
"PLCarrots::Do(): ",
"Harvest too late for the next crop to start!!!");
106 g_msg->Warn(
"Next Crop ", (
double)almassnum);
109 for (
int i = 0; i < noDates; i++) {
110 if (a_field->GetMDates(0, i) >= a_ev->
m_startday) {
111 a_field->SetMDates(0, i, a_ev->
m_startday - 1);
113 if (a_field->GetMDates(1, i) >= a_ev->
m_startday) {
114 a_field->SetMConstants(i, 0);
115 a_field->SetMDates(1, i, a_ev->
m_startday - 1);
123 d1 = g_date->OldDays() + g_date->DayInYear(1, 7);
124 if (g_date->Date() < d1) {
126 printf(
"Poly: %d\n", a_field->GetPoly());
127 g_msg->Warn(WARN_BUG,
"PLCarrots::Do(): ",
"Crop start attempt between 1st Jan & 1st July");
129 g_msg->Warn(WARN_BUG,
"Previous Crop ", prev);
131 g_msg->Warn(
"Next Crop ", (
double)almassnum);
135 if (g_date->Date() > d1) {
137 g_msg->Warn(WARN_BUG,
"PLCarrots::Do(): ",
"Crop start attempt after last possible start date");
138 g_msg->Warn(WARN_BUG,
"Previous Crop ",
"");
139 a_field->GetOwner()->GetPreviousCrop(a_field->GetRotIndex());
141 g_msg->Warn(
"Next Crop ", (
double)almassnum);
160 d1 = g_date->OldDays() + g_date->DayInYear(20, 7);
172 if (!a_farm->
StubblePlough(a_field, 0.0, g_date->DayInYear(5, 11) - g_date->DayInYear())) {
188 if (!a_farm->AutumnHarrow(a_field, 0.0, g_date->DayInYear(5, 11) - g_date->DayInYear())) {
195 if (a_ev->
m_lock || a_farm->DoIt(40))
197 if (!a_farm->AutumnHarrow(a_field, 0.0, g_date->Date() + 7 - g_date->DayInYear())) {
202 d1 = g_date->Date() + 1;
203 if (d1 < g_date->OldDays() + g_date->DayInYear(10, 9)) {
204 d1 = g_date->OldDays() + g_date->DayInYear(10, 9);
206 if (a_farm->IsStockFarmer())
213 if (!a_farm->StubbleHarrowing(a_field, 0.0, g_date->DayInYear(10, 11) - g_date->DayInYear())) {
217 d1 = g_date->Date() + 1;
218 if (d1 < g_date->OldDays() + g_date->DayInYear(10, 9)) {
219 d1 = g_date->OldDays() + g_date->DayInYear(10, 9);
221 if (a_farm->IsStockFarmer())
228 if (a_ev->
m_lock || a_farm->DoIt(80))
230 if (!a_farm->FP_PK(a_field, 0.0, g_date->DayInYear(15, 11) - g_date->DayInYear())) {
238 if (a_ev->
m_lock || a_farm->DoIt(80))
240 if (!a_farm->FA_PK(a_field, 0.0, g_date->DayInYear(15, 11) - g_date->DayInYear())) {
248 if (!a_farm->WinterPlough(a_field, 0.0, g_date->DayInYear(15, 11) - g_date->DayInYear())) {
252 if (a_farm->IsStockFarmer())
259 if (a_ev->
m_lock || a_farm->DoIt(90))
261 if (!a_farm->FP_NPK(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
269 if (a_ev->
m_lock || a_farm->DoIt(90))
271 if (!a_farm->FA_NPK(a_field, 0.0, g_date->DayInYear(30, 4) - g_date->DayInYear())) {
279 if (!a_farm->SpringHarrow(a_field, 0.0, g_date->DayInYear(10, 5) - g_date->DayInYear())) {
283 d1 = g_date->Date() + 1;
284 if (d1 < g_date->OldDays() + g_date->DayInYear(1, 4)) {
285 d1 = g_date->OldDays() + g_date->DayInYear(1, 4);
291 if (a_ev->
m_lock || a_farm->DoIt(20))
293 if (!a_farm->PreseedingCultivator(a_field, 0.0, g_date->DayInYear(14, 5) - g_date->DayInYear())) {
303 if (!a_farm->BedForming(a_field, 0.0, g_date->DayInYear(14, 5) - g_date->DayInYear())) {
310 if (!a_farm->SpringSow(a_field, 0.0, g_date->DayInYear(15, 5) - g_date->DayInYear())) {
318 if (a_farm->IsStockFarmer())
325 if (a_field->GetGreenBiomass() <= 0)
329 if (!a_farm->Strigling(a_field, 0.0, g_date->DayInYear(25, 5) - g_date->DayInYear())) {
339 if (a_field->GetGreenBiomass() <= 0)
343 if (!a_farm->HerbicideTreat(a_field, 0.0, g_date->Date() + 10 - g_date->DayInYear())) {
355 if (a_field->GetGreenBiomass() <= 0) {
360 if (!a_farm->HerbicideTreat(a_field, 0.0, g_date->Date() + 14 - g_date->DayInYear())) {
369 if (a_ev->
m_lock || a_farm->DoIt(50))
371 if (!a_farm->HerbicideTreat(a_field, 0.0, g_date->DayInYear(5, 6) - g_date->DayInYear())) {
380 if (a_ev->
m_lock || a_farm->DoIt(80))
382 if (!a_farm->FungicideTreat(a_field, 0.0, g_date->DayInYear(1, 8) - g_date->DayInYear())) {
390 if (a_ev->
m_lock || a_farm->DoIt(40))
392 if (!a_farm->FungicideTreat(a_field, 0.0, g_date->DayInYear(15, 8) - g_date->DayInYear())) {
400 if (a_ev->
m_lock || a_farm->DoIt(60))
402 if (a_field->GetGreenBiomass() <= 0) {
407 if (!a_farm->FP_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(31, 7) - g_date->DayInYear())) {
416 if (a_ev->
m_lock || a_farm->DoIt(60))
418 if (a_field->GetGreenBiomass() <= 0) {
423 if (!a_farm->FA_AmmoniumSulphate(a_field, 0.0, g_date->DayInYear(31, 7) - g_date->DayInYear())) {
434 if (!a_farm->Harvest(a_field, 0.0, a_field->GetMDates(0, 0) - g_date->DayInYear())) {
438 if (a_farm->IsStockFarmer())
447 if (a_ev->
m_lock || a_farm->DoIt(23))
449 if (a_field->GetMConstants(1) == 0) {
450 if (!a_farm->FP_Calcium(a_field, 0.0, -1)) {
451 g_msg->Warn(WARN_BUG,
"PLCarrots::Do(): failure in 'FP_Calcium' execution",
"");
456 if (!a_farm->FP_Calcium(a_field, 0.0, a_field->GetMDates(1, 1) - g_date->DayInYear())) {
467 if (a_ev->
m_lock || a_farm->DoIt(23))
469 if (a_field->GetMConstants(1) == 0) {
470 if (!a_farm->FA_Calcium(a_field, 0.0, -1)) {
471 g_msg->Warn(WARN_BUG,
"PLCarrots::Do(): failure in 'FA_Calcium' execution",
"");
476 if (!a_farm->FA_Calcium(a_field, 0.0, a_field->GetMDates(1, 1) - g_date->DayInYear())) {
487 g_msg->Warn(WARN_BUG,
"PLCarrots::Do(): "
488 "Unknown event type! ",
"");