28 #include "../../Landscape/ls.h"
29 #include "../../Landscape/cropprogs/OCloverGrassGrazed1.h"
47 switch ( m_ev->m_todo ) {
53 m_last_date = g_date->DayInYear(10, 10);
55 m_field->SetMDates(0, 0, g_date->DayInYear(7, 8));
57 m_field->SetMDates(1, 0, g_date->DayInYear(1, 10));
58 m_field->SetMDates(0, 1, g_date->DayInYear(10, 10));
59 m_field->SetMDates(1, 1, g_date->DayInYear(10, 10));
63 if (m_ev->m_startday > g_date->DayInYear(1, 7))
65 if (m_field->GetMDates(0, 0) >= m_ev->m_startday)
67 g_msg->Warn(WARN_BUG,
"OCloverGrassGrazed1::Do(): "
68 "Harvest too late for the next crop to start!!!",
"");
72 for (
int i = 0; i < noDates; i++)
74 if (m_field->GetMDates(0, i) >= m_ev->m_startday)
75 m_field->SetMDates(0, i, m_ev->m_startday - 1);
76 if (m_field->GetMDates(1, i) >= m_ev->m_startday)
77 m_field->SetMDates(1, i, m_ev->m_startday - 1);
82 if (!(m_ev->m_first_year)) {
84 d1 = g_date->OldDays() + g_date->DayInYear(1, 7);
85 if (g_date->Date() < d1) {
87 g_msg->Warn(WARN_BUG,
"OCloverGrassGrazed1::Do(): "
88 "Crop start attempt between 1st Jan & 1st July",
"");
92 d1 = g_date->OldDays() + m_first_date + 365;
93 if (g_date->Date() > d1) {
95 g_msg->Warn(WARN_BUG,
"OCloverGrassGrazed1::Do(): "
96 "Crop start attempt after last possible start date",
104 d1 = g_date->OldDays() + g_date->DayInYear(1, 4);
108 if (!m_ev->m_first_year) d1 += 365;
110 m_field->SetLastSownVeg(m_field->GetVegType());
118 if ( m_ev->m_lock || m_farm->DoIt( 50 ))
120 if (!m_farm->FA_Slurry( m_field, 0.0,
121 g_date->DayInYear( 30, 4 ) - g_date->DayInYear())) {
127 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 25, 5 ),
130 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 1, 6 ),
135 if ( m_ev->m_lock || m_farm->DoIt( (
int) (
cfg_silage_prop.value()*100 )))
137 if (!m_farm->CutToSilage( m_field, 0.0,
138 g_date->DayInYear( 15, 6 ) - g_date->DayInYear())) {
149 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 25, 5 ),
156 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 25, 5 ),
163 if ( m_ev->m_lock || m_farm->DoIt( 30 ))
165 if (!m_farm->Water( m_field, 0.0,
166 g_date->DayInYear( 15, 6 ) - g_date->DayInYear())) {
172 if ( (g_date->DayInYear()+7)<g_date->DayInYear( 25,6 ) )
173 SimpleEvent( g_date->OldDays() + (g_date->DayInYear()+7),
176 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 25,6 ),
184 if ( m_ev->m_lock || m_farm->DoIt( 67 ))
187 if (!m_farm->Water( m_field, 0.0,
188 g_date->DayInYear( 25, 7 ) - g_date->DayInYear())) {
198 if ( m_ev->m_lock || m_farm->DoIt( 50 ))
201 if (!m_farm->CattleOutLowGrazing( m_field, 0.0,
202 m_field->GetMDates(1,0) - g_date->DayInYear())) {
208 if (!m_farm->CattleOut( m_field, 0.0,
209 m_field->GetMDates(1,0) - g_date->DayInYear())) {
220 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 25,5 ),
227 if (!m_farm->CattleIsOutLow( m_field, 0.0,
228 m_field->GetMDates(0,1) - g_date->DayInYear(),m_field->GetMDates(0,1))) {
234 if (!m_farm->CattleIsOut( m_field, 0.0,
235 m_field->GetMDates(0,1) - g_date->DayInYear(),m_field->GetMDates(0,1))) {
245 if (!m_farm->FA_Slurry( m_field, 0.0,
255 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15,6 ),
260 if ( m_ev->m_lock || m_farm->DoIt((
int) (
cfg_silage_prop.value()* 60 )))
262 if (!m_farm->CutToSilage( m_field, 0.0,
263 g_date->DayInYear( 7,7 ) - g_date->DayInYear())) {
270 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 15, 6 ),
283 if ( m_ev->m_lock || m_farm->DoIt( 60 ))
285 if (!m_farm->FA_Slurry( m_field, 0.0,
294 long d2=g_date->DayInYear(1,7);
296 SimpleEvent( g_date->OldDays() + d1,
302 if ( m_ev->m_lock || m_farm->DoIt( (
int) (
cfg_silage_prop.value()*60) ))
304 if (!m_farm->CutToSilage( m_field, 0.0,
305 g_date->DayInYear( 30, 6 ) - g_date->DayInYear())) {
311 SimpleEvent( g_date->OldDays() + g_date->DayInYear( 5, 7 ),
324 if (!m_farm->FA_Slurry( m_field, 0.0,
325 m_field->GetMDates(0,0) - g_date->DayInYear())) {
333 g_msg->Warn( WARN_BUG,
"OCloverGrassGrazed1::Do(): "
334 "Unknown event type! ",
"" );