ALMaSS Hare ODDox
1.1
The hare model description following ODdox protocol
|
Go to the documentation of this file.
39 #include "../Landscape/ls.h"
40 #include "../BatchALMaSS/PopulationManager.h"
41 #include "../BatchALMaSS/AOR_Probe.h"
42 #include "../Hare/hare_all.h"
74 #include "../BatchALMaSS/BoostRandomGenerators.h"
75 extern boost::variate_generator<base_generator_type&, boost::uniform_real<> >
g_rand_uni;
117 CfgInt
cfg_hare_i_cut(
"HARE_CUTTING_MORT_INFANT", CFG_CUSTOM, 50);
121 CfgInt
cfg_hare_y_cut(
"HARE_CUTTING_MORT_YOUNG", CFG_CUSTOM, 10 );
153 static CfgInt
cfg_MRR1(
"HARE_MMRONE",CFG_CUSTOM,999);
154 static CfgInt
cfg_MRR2(
"HARE_MMRTWO",CFG_CUSTOM,999);
155 static CfgInt
cfg_MRR3(
"HARE_MMRTHREE",CFG_CUSTOM,999);
156 static CfgInt
cfg_MRR4(
"HARE_MMRFOUR",CFG_CUSTOM,999);
157 static CfgInt
cfg_MRR5(
"HARE_MMRFIVE",CFG_CUSTOM,270);
172 static CfgFloat
cfg_AdultMaxFat(
"HARE_ADULT_MAXFAT",CFG_CUSTOM, 0.04/(0.33*0.88));
290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0114, 0.0229, 0.0343,
291 0.0457, 0.0571, 0.0686, 0.0800, 0.0929, 0.1057, 0.1186, 0.1314,
292 0.1443, 0.1571, 0.1700, 0.1986, 0.2271, 0.2557, 0.2843, 0.3129,
293 0.3414, 0.3700, 0.5800, 0.7900, 1.0000
301 0,15.5,24.6,33.8,43.0,52.1,61.3,70.5,79.6,88.8,98.0,107.1,116.3,125.4,134.6,143.8,152.9,162.1,171.3,180.4,189.6,198.8,207.9,217.1,226.2,
302 235.4,244.6,253.7,262.9,272.1,281.2,290.4,299.5,308.7,317.9,327.0
351 1.714019512,1.671169024,1.628318537,1.585468049,1.542617561,1.499767073,1.456916585,1.414066098,1.37121561,1.328365122,1.285514634,1.242664146,
352 1.199813659,1.156963171,1.114112683,1.071262195,1.028411707,0.98556122,0.942710732,0.899860244,0.857009756,0.814159268,0.77130878,0.728458293,
353 0.685607805,0.642757317,0.599906829,0.557056341,0.514205854,0.471355366,0.428504878,0.38565439,0.342803902,0.299953415,0.257102927,0.214252439,
354 0.171401951,0.128551463,0.085700976,0.042850488,0.001
386 for (
int i=0; i<5; i++)
422 g_msg->Warn(WARN_FILE,
"Population_Manager::OpenBodyBurdenProbe(): ""Unable to open probe file",
"HareBodyBurden.txt");
479 sp->
x = random(
SimW);
480 sp->
y = random(
SimH);
516 sp->
x = random(
SimW);
517 sp->
y = random(
SimH);
555 double weightDM, rmr, f0, f1,f2,protcost,fatcost, totalgrowthcost;
556 ifstream* HareDataFile =
new ifstream(
"Hare_GrowthALMaSS_Input.txt", ios::in);
557 if (!HareDataFile->is_open()) {
559 m_TheLandscape->
Warn(
"THare_Population_Manager::Init - Hare_GrowthALMaSS_Input.txt is missing or in use",
"");
565 for (
int i = 0; i<5000; i++) {
566 (*HareDataFile) >> f0 >> weightDM >> f1 >> f2 >> protcost >> fatcost >> totalgrowthcost >> rmr;
580 HareDataFile->close();
593 for (
int i=1; i<=37; i++) {
594 m_RMR[0][i]=(-1.5658*i + 58.487);
595 m_RMR[1][i]=1525.4*pow(i,-0.3997);
600 for (
int i=1; i<7001; i++) {
602 double fi=3.75*i/1000.0;
656 for (
int i=1; i<2500; i++) {
664 for (
int i=0; i<200; i++) {
665 for (
int j=0; j<200; j++) {
678 g_msg->Warn( WARN_FILE,
"HarePopulationManager::Init: Out of memory!",
"" );
685 fp=fopen(
"LitterProduction.txt",
"w");
687 fp=fopen(
"EnergyCheck.txt",
"w");
689 fp=fopen(
"POM_Hare.txt",
"w");
690 fprintf(fp,
"1) Timestep,\n");
691 fprintf(fp,
"2-6) Population Size of add stages,\n");
692 fprintf(fp,
"7) Females < 365 days old,\n");
693 fprintf(fp,
"8) Females >=1 & < 2 yrs old,\n");
694 fprintf(fp,
"9) Females >=2 & < 3 yrs old,\n");
695 fprintf(fp,
"10) Females >=3 & < 4 yrs old,\n");
696 fprintf(fp,
"11) Females >=4 & < 5 yrs old,\n");
697 fprintf(fp,
"12) Females >=4 yrs old,\n");
698 fprintf(fp,
"13) Mean bodyweight of females (dw),\n");
699 fprintf(fp,
"14) variance in bodyweight,\n");
701 fp=fopen(
"POM_FemaleHareWeights.txt",
"w");
715 double Distribution[7];
719 for (
int i=0; i<7; i++) {
724 for (
int i=0; i<7; i++) {
725 P=(1.0/SD*sqrt(2*3.14159265) );
726 P*=exp(-1*(((i-mean)*(i-mean))/(2*SD*SD)));
731 for (
int i=0; i<7; i++) {
732 m_LitterSize[index][i]=(int)(floor(0.5+((Distribution[i]/total)*10000)+last));
747 for (
int i=0; i<7; i++) {
751 m_TheLandscape->
Warn(
"THare_Population_Manager::GetLitterSize - litter size error",NULL);
769 for (
int i=0; i<100; i++) {
770 for (
int j=0; j<100; j++) {
819 #ifdef __EXTRAPOPMORT
827 #ifdef __YEARLYVARIABLEFOODQUALITY
830 #ifdef __MORTSTOCHASTICITY
831 double MortStochasticity = ((random(200)/100.0)-1.0)*
m_MortStochast;
843 for (
unsigned listindex=0; listindex<2;listindex++) {
845 for (
unsigned j=0; j<size; j++)
848 HP=
TheArray[listindex][j]->SupplyPosition();
852 for (
unsigned listindex=2; listindex<
TheArray.size();listindex++) {
854 for (
unsigned j=0; j<size; j++)
856 HP=
TheArray[listindex][j]->SupplyPosition();
857 int x=HP.
m_x>>__DENSITYSHIFT;
858 int y=HP.
m_y>>__DENSITYSHIFT;
865 for (
int i=0; i<100; i++) {
866 for (
int j=0; j<100; j++) {
878 for (
unsigned j = 0; j<size; j++) {
937 for (
int i = 0; i < number; i++)
944 new_Infant->
ReInit((*data));
945 Mum = dynamic_cast<Hare_Female*>(pvo);
946 if (Mum) new_Infant->
SetMum(Mum);
953 new_Young->
ReInit((*data));
963 new_Juvenile->
ReInit((*data));
964 new_Juvenile->
SetMum(NULL);
969 new_Male->
ReInit((*data));
974 new_Female->
ReInit((*data));
982 TheArray[ob_type].push_back(new_Infant);
983 Mum = dynamic_cast<Hare_Female*>(pvo);
984 if (Mum) new_Infant->
SetMum(Mum);
999 TheArray[ob_type].push_back(new_Young);
1005 new_Juvenile->
SetMum(NULL);
1009 TheArray[ob_type].push_back(new_Juvenile);
1015 TheArray[ob_type].push_back(new_Male);
1021 TheArray[ob_type].push_back(new_Female);
1036 if (a_temp>20.0) a_temp=20.0;
1037 double tempdiff=18.0-a_temp;
1042 if (rainfall>5.0) rainfall=5.0;
1046 #ifdef __BOUNDSCHECK
1055 RMR=((tempdiff*
m_RMR[0][a_age])+
m_RMR[1][a_age])*(a_size);
1059 RMR=(69.1*4.1868)*pow(a_size,0.808);
1060 RMR=RMR+(tempdiff*
m_RMR[0][a_age]*a_size);
1097 double totweight = 0.0;
1098 double totweight2 = 0.0;
1099 double yearlingstotweight = 0.0;
1100 double yearlingstotweight2 = 0.0;
1101 FILE* POMOut = fopen(
"POM_Hare.txt",
"a");
1102 FILE* POMOut2 = fopen(
"POM_FemaleHareWeights.txt",
"a");
1105 m_TheLandscape->
Warn(
"THare_Population_Manager::POMOutputs - POM_Output.txt can't be opened", NULL);
1109 int yearlingssize = 0;
1111 for (
unsigned j = 0; j<size; j += 2) {
1116 yearlingstotweight += bw;
1117 yearlingstotweight2 += (bw*bw);
1119 fprintf(POMOut2,
"0\t%g\n", (
float)bw);
1123 for (
unsigned j = 0; j < size; j++) {
1127 if (HF->
GetAge() < 365) {
1130 yearlingstotweight += bw;
1131 yearlingstotweight2 += (bw*bw);
1134 fprintf(POMOut2,
"0\t%g\n", (
float)bw);
1138 totweight2 += (bw*bw);
1139 if (HF->
GetAge() < 730) {
1141 fprintf(POMOut2,
"1\t%g\n", (
float)bw);
1143 else if (HF->
GetAge() < 1095) {
1145 fprintf(POMOut2,
"2\t%g\n", (
float)bw);
1147 else if (HF->
GetAge() < 1460) {
1149 fprintf(POMOut2,
"3\t%g\n", (
float)bw);
1151 else if (HF->
GetAge() < 1825) {
1153 fprintf(POMOut2,
"4\t%g\n", (
float)bw);
1155 else if (HF->
GetAge() < 2190) {
1157 fprintf(POMOut2,
"5\t%g\n", (
float)bw);
1159 else if (HF->
GetAge() < 2555) {
1161 fprintf(POMOut2,
"6\t%g\n", (
float)bw);
1165 fprintf(POMOut2,
"7\t%g\n", (
float)bw);
1170 double yearlingsvar = (yearlingstotweight2 - ((yearlingstotweight*yearlingstotweight) /
double(yearlingssize))) / double(yearlingssize);
1171 double yearlingsmean = yearlingstotweight / double(yearlingssize);
1172 double var = (totweight2 - ((totweight*totweight) /
double(size))) / double(size);
1173 double mean = totweight / double(size);
1174 float meanf = (float)mean;
1175 float varf = (float)var;
1176 float meany = (float)yearlingsmean;
1177 float vary = (float)yearlingsvar;
1188 fprintf(POMOut,
"%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%g\t%g\t%g\t%g\t%d\n", (
int)
m_TheLandscape->
SupplyDayInYear(),
GetLiveArraySize(
hob_Infant),
GetLiveArraySize(
hob_Young),
GetLiveArraySize(
hob_Juvenile),
GetLiveArraySize(
hob_Male),
GetLiveArraySize(
hob_Female), age0, age1, age2, age3, age4, age5, age6, age7, meanf, varf, meany, vary,
m_shot);
1205 fprintf(a_prb,
"%d %d %d %d %d\n", 0,w ,0, h, totalF);
1206 for (
unsigned j=0; j<totalF; j++)
1211 fprintf(a_prb,
"%d\t%d\n", x,y);
1241 for (
unsigned j=0; j<size; j++) {
1247 for (
unsigned j=0; j<size; j++) {
1253 for (
unsigned j=0; j<size; j++) {
1272 :
THare(p_x,p_y,p_L,p_PPM)
1320 #ifdef __THRESHOLD_DD
1321 if (dens<m_OurPopulationManager->m_HareThresholdDD) dens=0;
1633 #ifdef __MINGROWTHATTAIN
1635 if (m_weight< m_OurPopulationManager->m_DMWeight[
m_Age])
return tohs_Dying;
1770 #ifdef __THRESHOLD_DD
1771 if (dens<m_OurPopulationManager->m_HareThresholdDD) dens=0;
1889 int a_time = (int) time;
1890 double ForageEnergy;
1893 ForageEnergy =
ForageP(a_time);
1897 ForageEnergy =
Forage(a_time);
1905 if (ForageEnergy>Target) ForageEnergy=Target;
1907 ForageEnergy=Target;
1958 #ifdef __MINGROWTHATTAIN
1961 if (m_weight< m_OurPopulationManager->m_DMWeight[
m_Age])
return tohs_Dying;
2001 bool result =
false;
2221 :
THare(p_x,p_y,p_L,p_PPM)
2272 #ifdef __THRESHOLD_DD
2273 if (dens<m_OurPopulationManager->m_HareThresholdDD) dens=0;
2293 #ifdef __DISEASEDDM3
2328 #ifdef __DISPERSALDDM
2397 #ifdef __THRESHOLD_AD_DD
2398 if (hares<m_OurPopulationManager->m_HareThresholdDD) {
2404 #ifdef __THRESHOLD_DDJ
2406 if (hares<6) hares=0;
2410 #ifdef __SCALINGYOUNGDDM
2422 if ((inter<0.5) && (atime > 300)){
2430 int a_time = (int) atime;
2451 #ifdef __DISPMORTALITY
2461 double oldfv = -99999999.0;
2462 int dstart=random(8);
2464 for (
int j=0; j<100; j++) {
2466 for (
int d=dstart; d<8+dstart; d++) {
2529 #ifdef __MINGROWTHATTAIN
2532 if (m_weight< m_OurPopulationManager->m_DMWeight[
m_Age]) {
2576 #ifndef __NOJUVSTARVE
2578 #ifdef __ADULT_WT_STARVE_CHANCE
2636 if (++
m_Age<180)
return false;
2640 if (
m_Age>364)
return true;
2670 double p_weight,
int a_age,
int a_Ref)
2673 Init(p_weight, a_age, a_Ref);
2722 #ifdef __SIZERELATEDDEATH
2733 #ifdef __DISEASEDDMORTALITY
2767 #ifdef __DISEASEDDM2
2774 #ifdef __DISEASEDDM3
2811 #ifdef __DISPERSALDDM
2886 #ifdef __THRESHOLD_AD_DD
2887 if (hares<m_OurPopulationManager->m_HareThresholdDD) hares=0;
2892 #ifdef __DISEASEDDM2
2895 #ifdef __DISEASEDDM3
2901 #ifndef __DISEASEDDM
2909 if ((inter<0.5) && (time > 300))
2920 int a_time = (int) time;
2977 double addedtoday=Target*gf;
3004 #ifdef __ADULT_WT_STARVE_CHANCE
3013 if (random(10000)> testval) {
3117 Hare_Female::Hare_Female(
int p_x,
int p_y,
Landscape * p_L,
THare_Population_Manager* p_PPM,
double p_weight,
int a_age,
int a_Ref) :
Hare_Juvenile(p_x, p_y, p_L, p_PPM, p_weight)
3119 Init(p_weight,a_age,a_Ref);
3165 #ifdef __SIZERELATEDDEATH
3176 #ifdef __DISEASEDDMORTALITY
3213 #ifdef __DISEASEDDM2
3220 #ifdef __DISEASEDDM3
3248 #ifdef __DISPERSALDDM
3331 double addedtoday=Target*gf;
3361 #ifdef __ADULT_WT_STARVE_CHANCE
3370 if (random(10000)> testval) {
3374 #ifdef __NOKNOCKONENERGYEFFECT
3420 #ifdef __THRESHOLD_AD_DD
3421 if (hares<m_OurPopulationManager->m_HareThresholdDD) hares=0;
3424 #ifdef __DISEASEDDM2
3427 #ifdef __DISEASEDDM3
3433 #ifndef __DISEASEDDM
3441 if ((inter<0.5) && (time > 300))
3453 int a_time = (int) time;
3466 #ifdef __saveEnergyInfo
3473 FILE* fp=fopen(
"EnergyCheck.txt",
"a");
3491 vector<THare*>::iterator current =
m_MyYoung.begin();
3493 (*current)->ON_MumDead(
this);
3536 #ifdef __REPROMORTCHANCE
3552 #ifdef __REPROMORTCHANCE
3587 #ifdef __MINREPWEIGHT
3658 double leveret_size;
3684 if (NoLeverets==0) {
3739 #ifdef __saveLitterInfo
3741 FILE* fp=fopen(
"LitterProduction.txt",
"a");
3743 fprintf(fp,
"%i\t%i\t%f\t%d\n",month, NoLeverets, leveret_size,
m_litter_no);
3759 while (loop++ < 500)
3813 vector<THare*>::iterator current =
m_MyYoung.begin();
3816 dynamic_cast<Hare_Infant*>(*current)->ON_BeingFed(en);
3828 vector<THare*>::iterator current =
m_MyYoung.begin();
3831 if (*current == a_old)
3856 vector<THare*>::iterator current =
m_MyYoung.begin();
3859 if (*current == a_young)
3909 vector<THare*>::iterator current =
m_MyYoung.begin();
3912 if (*current == a_young)
3959 vector<THare*>::iterator current =
m_MyYoung.begin();
3962 (*current)->ON_MumDead(
this);
3977 vector<THare*>::iterator current =
m_MyYoung.begin();
3980 if (*current == a_young)
3995 unsigned int current=0;
4049 if (today!=1)
return;
4060 for (
unsigned j = 0; j < size2; j++ ) {
4061 if (random(100) > esize) {
4067 for (
unsigned j = 0; j < size2; j++ ) {
4068 if (random(100) > esize) {
4074 for (
unsigned j = 0; j < size2; j++ ) {
4075 if (random(100) > esize) {
4081 else if (esize>100) {
4096 int esize= random(50);
4099 if (today!=1)
return;
4103 if (year%1!=0)
return;
4106 for (
unsigned j = 0; j < size2; j++ ) {
4107 if (random(100) < esize) {
4113 for (
unsigned j = 0; j < size2; j++ ) {
4114 if (random(100) < esize) {
4120 for (
unsigned j = 0; j < size2; j++ ) {
4121 if (random(100) < esize) {
4137 for (
unsigned j = 0; j < size2; j++ ) {
4150 for (
unsigned j = 0; j < size2; j++ ) {
4162 for (
unsigned j = 0; j < size2; j++ ) {
4184 double huntpercent_out, huntpercent_in;
4200 for (
unsigned j = 0; j < size2; j++ )
4202 AH = dynamic_cast < THare * > (
TheArray[ ind ] [ j ] );
4204 if ((xy.m_x >= tx1) && (xy.m_y >= ty1) && (xy.m_x <= tx2) && (xy.m_y <= ty2))
4230 for (
int x=500; x<
SimW; x+=1000) {
4231 for (
int y=500; y<
SimH; y+=1000) {
4234 for (
int xx=x-(256+128); xx<=x+(256+128); xx+=256) {
4235 for (
int yy=y-(256+128); yy<=y+(256+128); yy+=256) {
4244 for (
unsigned j = 0; j < size2; j++ ) {
4257 for (
unsigned j = 0; j < size2; j++ ) {
4270 for (
unsigned j = 0; j < size2; j++ ) {
4300 vector<MRR_Entry>::iterator current =
m_Entries.begin();
4301 vector<MRR_Entry>::iterator found =
m_Entries.end();
4303 while (current != found)
4305 if ( (*current).m_HareRefNum==a_RefNum ) {
4316 (*found).m_trappings1 += mask;
4319 (*found).m_trappings2 += mask;
4341 FILE* MRROut = fopen(
"MRR_Hare.txt",
"w");
4344 g_land->
Warn(
"THare_Population_Manager::MRROutputs - MRR_Hare.txt can't be opened",NULL);
4347 vector<MRR_Entry>::iterator current =
m_Entries.begin();
4351 unsigned int mask= 0x01;
4352 for (
int j=0; j<32; j++) {
4354 fprintf(MRROut,
"%d\t",1);
4355 }
else fprintf(MRROut,
"%d\t",0);
4359 for (
int j=0; j<32; j++) {
4361 fprintf(MRROut,
"%d\t",1);
4362 }
else fprintf(MRROut,
"%d\t",0);
static CfgFloat cfg_littersize_SD12("HARE_LITTERSIZE_SD_L", CFG_CUSTOM, 0.0)
TTypeOfHareState st_Developing()
Female Developing.
void ReInit(struct_Hare a_data)
Male object reinitiation.
static CfgFloat cfg_hare_female_predation("HARE_FEMALE_PREDATION", CFG_CUSTOM, 0.0023)
void CreateObjects(int ob_type, TAnimal *pvo, void *null, struct_Hare *data, int number)
Method used to create new hares.
TTypeOfHareState st_Foraging()
Female Foraging.
bool OnFarmEvent(FarmToDo event)
Response to farm actions.
static double * m_vegPalatability
Will hold and array of palatability for hare for each tov type. Most are 1, but unpalatable vegetatio...
double m_MaxDailyGrowthEnergyF[5001]
Precalculated max growth energy requirement with size for fat
bool UpdateYoung(THare *a_old, THare *a_new)
Swap a young list pointer.
The class that handles all the population lists for hares.
void GiveBirth()
Produce a litter.
virtual ~Hare_Juvenile()
Destructor for the juvenile hare object.
virtual void Catastrophe()
Annual global change in population numbers.
int m_DensityMap[8][200][200]
Array storing densities measured in different ways
int m_catastrophestartyear
double * m_PolyFood
Temporary storage
CfgInt cfg_HareHuntingType("HARE_HUNTING_TYPE", CFG_CUSTOM, 0)
TTypeOfHareState st_Dispersal()
Not used.
CfgFloat cfg_hare_adult_predation("HARE_ADULT_PREDATION", CFG_CUSTOM, 0.0023)
int GetLitterSize(int noLitters)
Returns the litter size.
TTypesOfVegetation SupplyVegType(int a_x, int a_y)
TTypeOfHareState st_Foraging()
Young foraging.
TTypesOfLandscapeElement SupplyElementType(int a_polyref)
static CfgFloat cfg_littersize_mean6("HARE_LITTERSIZE_MEAN_F", CFG_CUSTOM, 1.72)
CfgInt cfg_hare_minimum_breeding_weight("HARE_MIN_BREEDING_WT", CFG_CUSTOM, 780)
virtual void ON_Dead()
The female is dead.
static CfgFloat cfg_hare_young_predation("HARE_YOUNG_PREDATION", CFG_CUSTOM, 0.002)
THare_Population_Manager(Landscape *L)
This is the constructor for the hare population manager.
double m_DMWeight[5001]
Array for storing minimum acceptable size with age.
CfgInt cfg_hare_escape_dist("HARE_ESCAPE_DIST", CFG_CUSTOM, 100)
CfgFloat cfg_HareFemaleDensityDepValue("HARE_FEMALEDENDEPVALUE", CFG_CUSTOM, 0.1)
CfgInt cfg_hare_max_age_var("HARE_MAX_AGE_VAR", CFG_CUSTOM, 180)
vector< TListOfAnimals > TheArray
static CfgInt cfg_hare_max_dispersal("HARE_MAX_DISPERSAL", CFG_CUSTOM, 1000)
double m_pesticidedegradationrate
State variable used to hold the daily degredation rate of the pesticide in the body.
static CfgInt cfg_hare_DaysToGestation("HARE_GESTATIONDAYS", CFG_CUSTOM, 41)
TTypesOfPopulation m_population_type
CfgFloat cfg_HarePesticideAccumulationThreshold("HARE_PESTICIDEACCUMULATIONTHRESHOLD", CFG_CUSTOM, 0.0)
This is the value that triggers pesticide response, which may be a threshold, or if simply set to 0....
virtual void BeginStep(void)
Female BeginStep.
bool SanityCheckYoungList()
Debug function.
CfgInt cfg_HareThresholdDD("HARE_THRESHOLDDD", CFG_CUSTOM, 5)
static CfgFloat cfg_littersize_SD2("HARE_LITTERSIZE_SD_B", CFG_CUSTOM, 0.957)
void st_NextStage()
'mature' to become a young
CfgBool cfg_RipleysOutput_used
CfgInt cfg_BeetleBankMaxX
const double g_PropSolidFood[36]
int GetRefNum()
Get the refnum for this hare.
double GetKJperM(int a_size)
Get the cost of moving 1m in KJ dependent upon mass (.
double m_EnergyMax
State variable - the amount of energy it is possible to eat as a multiplyer or RMR.
double m_GrowthEfficiencyF[5001]
Precalculated growth efficiency for fat with size
static CfgInt cfg_MRR3("HARE_MMRTHREE", CFG_CUSTOM, 999)
CfgFloat cfg_VegHeightForageReduction("HARE_VEGHEIGHTFORAGEREDUCTION", CFG_CUSTOM, 0.0003)
static CfgInt cfg_hare_StartingNo("HARE_START_NO", CFG_CUSTOM, 50)
double m_MaxDailyGrowthEnergyP[5001]
Precalculated max growth energy requirement with size for protein
static CfgFloat cfg_hare_proximity_alert("HARE_PROXIMITY_ALERT", CFG_CUSTOM, 0.05)
CfgBool cfg_BeetleBankInvert
int m_Lifespan
Physiolocal lifespan, assuming nothing else kills the hare (unlikely to reach this age)
virtual bool WasPredated()
Test for mortality.
static CfgFloat cfg_littersize_mean3("HARE_LITTERSIZE_MEAN_C", CFG_CUSTOM, 2.514)
FILE * ReallyBigOutputPrb
CfgFloat cfg_hare_foetusenergyproportion("HARE_FOETUSENERGYPROPORTION", CFG_CUSTOM, 0.024)
CfgFloat cfg_AgeRelatedInterferenceScaling("HARE_AGERELATEDINTERFERENCESCALING", CFG_CUSTOM, 1.0)
void Init(double p_weight)
Object initiation.
double m_AdultMortRate
Input variable - Adult mortality rate.
TTypeOfHareState st_Dispersal()
Female Dispersal.
Landscape * m_OurLandscape
static CfgFloat cfg_littersize_SD5("HARE_LITTERSIZE_SD_E", CFG_CUSTOM, 0.6415)
CfgBool cfg_AOROutput_used
void ReInit(struct_Hare a_data)
Young object reinitiation.
virtual ~THare_Population_Manager(void)
THare_Population_Manager destructor.
int m_variableDD
Used to vary the density dependence each year
CfgFloat cfg_JuvDDScale("HARE_JUVSCALEDD", CFG_CUSTOM, 0.5)
static CfgFloat cfg_littersize_SD1("HARE_LITTERSIZE_SD_A", CFG_CUSTOM, 0.685)
static CfgInt cfg_MRR1("HARE_MMRONE", CFG_CUSTOM, 999)
CfgInt cfg_hare_max_age("HARE_MAX_AGE", CFG_CUSTOM,(int)(365 *12.5))
TTypeOfHareState st_Developing()
Male Development.
double g_FarmIntensivenessH
static CfgFloat cfg_littersize_mean11("HARE_LITTERSIZE_MEAN_K", CFG_CUSTOM, 1.72)
virtual void InternalPesticideHandlingAndResponse()
Handles internal effects of pesticide exposure. If any effects are needed this method must be re-impl...
bool OpenTheRipleysOutputProbe(string a_NWordFilename)
int m_ActivityTime
Minutes of potential activity time per day.
virtual ~Hare_Male()
Destructor.
CfgInt cfg_adult_starve("HARE_ADULT_STARVE", CFG_CUSTOM, 5000)
int m_LitterSize[12][7]
Storage for litter size distributions (not used in default config)
void AddHareDensity(int x, int y, Hare_Object a_type)
Density function - adds one to the density in the square containing by x,y. Each square is 256x256m i...
void ON_YoungKilled(THare *a_young)
A leveret has been killed.
virtual void InternalPesticideHandlingAndResponse()
Handles internal effects of pesticide exposure. If any effects are needed this method must be re-impl...
char m_SimulationName[255]
static CfgInt cfg_hare_femalesterility("HARE_FEMALESTERILITY", CFG_CUSTOM, 1401)
static CfgFloat cfg_HareStartWeight("HARE_STARTWEIGHT", CFG_CUSTOM, 121.0 *0.88 *0.33)
THare_Population_Manager * m_OurPopulationManager
Pointer to the hare population manager.
THare_Population_Manager * HM
unsigned GetLiveArraySize(int a_listindex)
Gets the number of 'live' objects for a list index in the TheArray.
int Supply_m_Location_x()
void Init()
Object initiation.
virtual void Step(void)
Step for Hare_Juvenile.
double m_GrowthEfficiencyP[5001]
Precalculated growth efficiency for protein with size
static CfgInt cfg_hare_firstyearsterility("HARE_FIRSTYEARSTERILITY", CFG_CUSTOM, 769)
void loadVegPalatability(void)
Loads static member m_vegPalatability with data.
Hare_Female * GetMum()
Get the mother pointer.
CfgInt cfg_HareFemaleSicknessDensityDepValue("HARE_FEMALESICKNESSDENDEPVALUE", CFG_CUSTOM, 40)
virtual void BeginStep(void)
BeginStep for Hare_Young.
double GetMaxDailyGrowthEnergyF(int a_age)
Get the maximum daily energy needed for growth for this a_age for use in fat construction.
double m_KJForaging
KJ/m cost of foraging per kg hare.
static CfgInt cfg_juvenile_starvation_threshold("HARE_JUVENILE_STARVE_THRESHOLD", CFG_CUSTOM, 16)
double g_hare_peg_inertia
bool ShouldMature()
Test for maturation.
int m_HareThresholdDD
Input variable - Threshold density dependence level.
bool OnFarmEvent(FarmToDo event)
Do we require a response to a farm event.
double GetRMR()
Get todays RMR.
virtual void DoFirst()
The first method called of the new time-step.
virtual void EndStep(void)
Female EndStep.
double m_KJperM[7001]
Precalculated cost of locomotion - KJ per m per kg
float m_GoodYearBadYear
Variable for adding stochasticity.
void HuntingDifferentiatedBeetleBankArea(void)
double Forage(int &time)
Foraging.
void THareInit(int p_x, int p_y, THare_Population_Manager *p_PPM)
Object Initiation.
static CfgInt cfg_infant_starvation_threshold("HARE_INFANT_STARVE_THRESHOLD", CFG_CUSTOM, 4)
CfgFloat cfg_HareHunting("HARE_HUNTING", CFG_CUSTOM, 0.15)
virtual void EndStep(void)
EndStep code for Hare_Male.
CfgInt cfg_pm_eventfrequency
virtual void GeneralOrganoPhosphate(double)
Handles internal effects of organophosphate pesticide exposure. If any effects are needed this method...
double m_MortStochast
Stochasticity around mortality parameters
CfgInt cfg_hare_i_cut("HARE_CUTTING_MORT_INFANT", CFG_CUSTOM, 50)
void Init()
Sets up data structures and calculations prior to starting simulation.
CfgFloat cfg_HareMaleDensityDepValue("HARE_MALEDENDEPVALUE", CFG_CUSTOM, 0.1)
CfgInt cfg_BeetleBankMinY
int m_OestrousCounter
State variable - Days in oestrous.
static CfgInt cfg_young_starvation_threshold("HARE_YOUNG_STARVE_THRESHOLD", CFG_CUSTOM, 4)
static CfgFloat cfg_hare_adult_breed_threshold("HARE_ADULT_BREED_THESHOLD", CFG_CUSTOM, 1600 *0.03)
static CfgInt cfg_hare_sex_ratio("HARE_SEX_RATIO", CFG_CUSTOM, 50)
CfgInt cfg_Hare_Recovery_Time("HARE_RECOVERY_TIME", CFG_CUSTOM, 10)
virtual void BeginStep(void)
BeginStep for Hare_Juvenile.
CfgFloat cfg_HareMortStochasticity("HARE_MORTSTOCHASTICITY", CFG_CUSTOM, 1.0)
const double g_MaxLeveretGrowthEnergy[36]
The landscape class containing all environmental and topographical data.
CfgFloat cfg_min_growth_attain("HARE_MINGROWTHATTAIN", CFG_CUSTOM, 0.475)
virtual void TheRipleysOutputProbe(FILE *a_prb)
Standard spatial output.
The base class for all hare classes.
double m_KJWalking
KJ/m cost of walking per kg hare.
Hare_Young(int p_x, int p_y, Landscape *p_L, THare_Population_Manager *p_PPM, double p_weight)
Constructor for Hare_Young.
double m_fatReserve
State variable - the energy reserve of the hare.
CfgInt cfg_BeetleBankMinX
void st_NextStage()
Maturation to Hare_Male or Hare_Female.
CfgInt cfg_young_ddepmort("HARE_YOUNGDDEPMORT", CFG_CUSTOM, 16)
int m_lastYearsDensity
State variable used in alternative density-dependent configurations.
static CfgFloat cfg_hare_adult_dispersal_threshold("HARE_ADULT_DISP_THESHOLD", CFG_CUSTOM, 1600 *0.02)
void ExtraPopMort(void)
An extra global mortality
void SetMum(Hare_Female *)
Set the mother pointer. Reimplemented in Hare_Infant.
double GetMaxDailyGrowthEnergy(int a_age)
int m_experiencedDensity
State variable used in alternative density-dependent configurations.
double m_KJRunning
KJ/m cost of running per kg hare.
static CfgFloat cfg_maxLeveretBirthWeight("HARE_MAXLEVERETBIRTHWEIGHT", CFG_CUSTOM, 125 *0.88 *0.33)
virtual void Step(void)
Female Step.
virtual void BeginStep(void)
BeginStep for Hare_Male.
int SupplySimAreaHeight(void)
int SupplySimAreaWidth(void)
static CfgFloat cfg_hare_juvenile_predation("HARE_JUVENILE_PREDATION", CFG_CUSTOM, 0.0016)
static CfgFloat cfg_littersize_mean7("HARE_LITTERSIZE_MEAN_G", CFG_CUSTOM, 2.17)
CfgFloat cfg_ForageRestingRatio("HARE_FORAGERESTRATIO", CFG_CUSTOM, 0.67)
int m_RefNum
Unique hare reference number, also functions as sex flag.
void ON_BeingFed(double a_someMilk)
Get energy from milk given.
CfgFloat cfg_Hare_StdSpeedWalking("HARE_STD_SPEEDWALKING", CFG_CUSTOM, 0.65 *60)
APoint CorrectCoordsPt(int x, int y)
Function to prevent wrap around errors with co-ordinates using x/y pair.
bool m_pesticideInfluenced1
Flag to indicate pesticide effects (e.g. can be used for endocrine distruptors with delayed effects u...
virtual void DoAlmostLast()
Called before clean-up of dead objects.
TTypeOfHareState st_Resting()
Resting.
APoint PlaceYoung()
Find somewhere nice for the babies to hide.
virtual void EndStep(void)
BeginStep for Hare_Juvenile.
static CfgFloat cfg_littersize_SD7("HARE_LITTERSIZE_SD_G", CFG_CUSTOM, 0.955)
TTypeOfHareState st_ReproBehaviour()
Currently Unused.
void Walking(int a_dist, int a_direction)
Walking.
virtual void GeneralEndocrineDisruptor(double a_pesticide_dose)
Handles internal effects of endocrine distrupter pesticide exposure for female.
int m_NoYoung
State variable - current litter size.
double g_VegHeightForageReduction
Used to scale access to crops for modern day farm intensiveness.
void SetWeight(double w)
Set the weight.
The base class for all ALMaSS animal classes.
TTypeOfHareState st_ReproBehaviour()
Reproductive behaviour control.
CfgInt cfg_HareHuntingThreshold("HARE_HUNTING_THRESHOLD", CFG_CUSTOM, 0)
CfgInt cfg_fixadult_starve("HARE_FIXADULT_STARVE", CFG_CUSTOM, 360)
static CfgInt cfg_MRR_FirstYear("HARE_MRRFIRSTYEAR", CFG_CUSTOM, 10000)
static CfgFloat cfg_littersize_SD3("HARE_LITTERSIZE_SD_C", CFG_CUSTOM, 0.955)
void SetSterile()
Female is sterile.
virtual void ON_Dead()
This hare has been killed.
void Init(double p_weight, int a_age, int a_Ref)
Object initiation.
A class defining an animals position.
void AllYoungMatured()
No more young to look after.
double GetMaxDailyGrowthEnergyP(int a_age)
Get the maximum daily energy needed for growth for this a_age for use in protein construction.
void MovePeg()
Move the peg according to attraction forces.
static CfgFloat cfg_hare_juvenile_dispersal_threshold("HARE_JUVENILE_DISP_THESHOLD", CFG_CUSTOM, 99999)
CfgFloat cfg_HareHuntingBeetleBankArea("HARE_HUNTING_BEETLEBANKAREA", CFG_CUSTOM, 0.95)
vector< MRR_Entry > m_Entries
void FloatToDouble(double &d, float f)
double GetRMR(int a_age, double a_size)
Returns the RMR given a specific age and mass.
static CfgFloat cfg_littersize_SD11("HARE_LITTERSIZE_SD_K", CFG_CUSTOM, 0.6415)
unsigned BeforeStepActions[12]
Class for infant hares (stationary, only milk inputs)
TTypeOfHareState st_Resting()
Juvenile Resting.
CfgFloat cfg_HareWalkingPowerConst("HARE_WALKINGPOWERCONST", CFG_CUSTOM, -0.316)
bool m_sterile
State variable - is/not sterile.
double GetGrowthEfficiencyF(int a_age)
Get the growth efficiency for this a_age for creating fat.
void POMOutputs()
This method is called to dump the information needed for POM approaches.
virtual void ON_Dead(void)
Mortality - overridden in descendent classes.
static CfgInt cfg_MRR_LastYear("HARE_MRRLASTYEAR", CFG_CUSTOM, 0)
double m_old_weight
State variale - last hare weight.
int m_ddindex
State variable used in alternative density-dependent configurations.
Base class for all population managers.
CfgInt cfg_hare_y_cut("HARE_CUTTING_MORT_YOUNG", CFG_CUSTOM, 10)
double m_TodaysEnergy
State variable - the amount of energy available today, can be in deficit.
int SupplyDayInYear(void)
void st_NextStage()
Maturation to Hare_Juvenile.
static CfgInt cfg_DaysToOestrous("HARE_DAYSTOOESTROUS", CFG_CUSTOM, 20)
bool m_StepDone
Indicates whether the iterative step code is done for this timestep.
TTypesOfPesticide SupplyPesticideType(void)
TListOfHares m_MyYoung
Pointer to litter.
static CfgFloat cfg_littersize_SD6("HARE_LITTERSIZE_SD_F", CFG_CUSTOM, 0.6415)
static CfgFloat cfg_littersize_mean1("HARE_LITTERSIZE_MEAN_A", CFG_CUSTOM, 1.535)
static CfgInt cfg_MRR2("HARE_MMRTWO", CFG_CUSTOM, 999)
void EnergyBalance(TTypeOfActivity a_activity, int dist)
Adjust energy balance for an activity.
static CfgFloat cfg_littersize_SD9("HARE_LITTERSIZE_SD_I", CFG_CUSTOM, 0.6415)
int SupplyYearNumber(void)
double m_LeveretMaterial
State variable - Mass of foetal material.
virtual ~Hare_Infant()
Hare infant destructor.
virtual void BeginStep(void)
BeginStep for the Hare_Infant.
double m_foragingenergy
Energy obtained from foraging/feeding.
static CfgFloat cfg_littersize_mean8("HARE_LITTERSIZE_MEAN_H", CFG_CUSTOM, 1.72)
TTypeOfHareState st_Resting()
Male Resting.
void ON_RemoveYoung(THare *a_young)
A leveret has matured.
Class for running mark-release-recapture experiments.
void ReInit(struct_Hare a_data)
Juvenile object reinitiation.
void ReInit(struct_Hare a_data)
Female object reinitiation.
double m_YoungMortRate
Input variable - Young mortality rate.
static CfgFloat cfg_MaxEnergyIntakeScaler("HARE_MAXENERGYINTAKESCALER", CFG_CUSTOM, 3.0)
double m_RMR[2][366]
Precalculated RMR with age
CfgFloat cfg_HareInterferenceConstant("HARE_INTERFERENCECONSTANT", CFG_CUSTOM,-0.03)
void dumpEnergy()
Used to record energetic status.
void AllYoungKilled()
Last leveret predated.
int m_litter_no
State variable - current litter number.
TTypeOfHareState st_Dispersal()
Juvenile Dispersal.
virtual void TheAOROutputProbe()
Output method.
void st_Dying()
Tidy up before removing the object on death.
double m_JuvMortRate
Input variable - Juvenile mortality rate.
int GetAdultDensity(int x, int y)
Density function - returns the density of adults in the square containing by x,y. Each square is 256x...
CfgFloat cfg_RMRrainFactor("HARE_RMRRAINFACTOR", CFG_CUSTOM, 0.47)
CfgInt cfg_HareFemaleReproMortValue("HARE_FEMALEREPROMORT", CFG_CUSTOM, 0)
Class for young hares (low mobility, milk and solid food inputs)
std::string EventtypeToString(int a_event)
static CfgInt cfg_adult_starvation_threshold("HARE_ADULT_STARVE_THRESHOLD", CFG_CUSTOM, 16)
int m_expDensity[365]
State variable used in alternative density-dependent configurations.
int m_DensitySum
State variable used in alternative density-dependent configurations.
const char * StateNames[100]
static CfgFloat cfg_littersize_mean5("HARE_LITTERSIZE_MEAN_E", CFG_CUSTOM, 1.72)
double m_pesticide_burden
State variable used to hold the current body-burden of pesticide.
void MRROutputs()
Special probe for data to be used in mark-release-recapture simulations.
static CfgInt cfg_ReproStartDay("HARE_REPROSTARTDAY", CFG_CUSTOM, 18)
static CfgInt cfg_MRR5("HARE_MMRFIVE", CFG_CUSTOM, 270)
void ReInit(struct_Hare a_data)
Infant object reinitiation.
int m_Age
State variale - hare age.
CfgFloat cfg_FarmIntensiveness("HARE_FARMINTENSIVENESS", CFG_CUSTOM, 0.01)
double ForageP(int &time)
Foraging but also incorporating pesticide exposure.
Landscape * m_TheLandscape
static CfgFloat cfg_littersize_mean9("HARE_LITTERSIZE_MEAN_I", CFG_CUSTOM, 1.72)
bool OpenTheReallyBigProbe()
CfgBool cfg_ReallyBigOutput_used
double SupplyVegHeight(int a_polyref)
virtual void EndStep(void)
EndStep for the Hare_Infant.
TTypeOfHareState m_CurrentHState
Defines the current activity.
virtual void GeneralOrganoPhosphate(double a_pesticide_dose)
Handles internal effects of organophosphate pesticide exposure for female.
bool m_IamSick
flag for sickness - used in conjunction with disease configurations
CfgInt cfg_HareHuntingDate("HARE_HUNTING_DATE", CFG_CUSTOM, 312)
Class used to pass hare information to CreateObjects.
double GetInterference(int h)
Return the proportion of time used in communicating with con-specifics.
bool ON_AreYouMyMum(THare *a_young)
Debug function.
Hare_Male(int p_x, int p_y, Landscape *p_L, THare_Population_Manager *p_PPM, double p_weight, int a_age, int a_Ref)
Constructor.
unsigned m_ListNameLength
void CalcLitterSize(double mean, double SD, int litter)
int GetCurrentStateNo()
Returns the current state number.
virtual void Step(void)
Step for Hare_Male.
int m_StarvationDays
State variable - the number of consecutive days in negative energy balance.
void DoLactation()
Lactation.
void CheckManagement(void)
int Supply_m_Location_y()
virtual void InternalPesticideHandlingAndResponse()
Handles internal effects of pesticide exposure. If any effects are needed this method must be re-impl...
virtual void DoLast()
The last method called before the new time-step starts.
double g_FarmIntensiveness
MRR_Data * m_OurMRRData
Data structure for MarkReleaseRecapture expts
static CfgFloat cfg_littersize_SD10("HARE_LITTERSIZE_SD_J", CFG_CUSTOM, 0.6415)
double m_MaxDailyGrowthEnergy[5001]
Precalculated max growth energy requirement with size
virtual void Step(void)
Step for the Hare_Infant.
static CfgFloat cfg_littersize_mean12("HARE_LITTERSIZE_MEAN_L", CFG_CUSTOM, 0.0)
TTypeOfHareState st_Developing()
Developmental behaviour for the infant hare.
static CfgInt cfg_ReproEndDay("HARE_REPROENDDAY", CFG_CUSTOM, 240)
static CfgFloat cfg_littersize_mean2("HARE_LITTERSIZE_MEAN_B", CFG_CUSTOM, 2.508)
double GetTotalWeight()
Provide the wet weight of the hare.
Hare_Infant(int p_x, int p_y, Landscape *p_L, THare_Population_Manager *p_PPM)
Hare infant constructor.
Data entry for mark release recapture data MRR_Data.
virtual void Running(int a_max_dist)
Run.
Hare_Female * m_MyMum
Pointer to the hare's mum.
CfgFloat cfg_Hare_StdSpeedRunning("HARE_STD_SPEEDRUNNING", CFG_CUSTOM, 13 *60)
void AddEntry(int a_RefNum)
CfgFloat l_pest_daily_mort
CfgFloat cfg_hare_ExtEff("HARE_EXTEFF", CFG_CUSTOM, 3.25)
static CfgInt cfg_MRR4("HARE_MMRFOUR", CFG_CUSTOM, 999)
void UpdateGestation()
Update gestation counter.
TTypeOfActivity m_reproActivity
State variable - current reproductive state.
int m_peg_y
peg y-coordinate
static CfgFloat cfg_littersize_mean10("HARE_LITTERSIZE_MEAN_J", CFG_CUSTOM, 1.72)
double m_weight
State variale - hare weight g.
void SetMum(Hare_Female *a_af)
Set the mother pointer.
TTypeOfHareState st_Foraging()
Juvenile foraging.
CfgBool cfg_hare_pesticideresponse_on("HARE_PESTICIDERESPONSE_ON", CFG_CUSTOM, false)
If set to true then hares will collect and respond to pesticide information. This will slow the simul...
double GetGrowthEfficiencyP(int a_age)
Get the growth efficiency for this a_age for creating protein.
Hare_Object m_Type
State variale - the type of hare.
boost::variate_generator< base_generator_type &, boost::uniform_real<> > g_rand_uni
static CfgFloat cfg_hare_male_predation("HARE_MALE_PREDATION", CFG_CUSTOM, 0.0023)
int m_CurrentStateNo
The basic state number for all objects - '-1' indicates death.
void SubtractHareDensity(int x, int y, Hare_Object a_type)
Density function - subtracts one from the density in the square containing by x,y....
TTypeOfHareState st_Foraging()
Male Foraging.
double GetGrowthEfficiency(int a_age)
Get the growth efficiency for this a_age.
void Init(double p_weight, int a_age, int a_Ref)
Object initiation.
TTypeOfHareState st_Developing()
Developmental code for the young hare.
static CfgFloat cfg_AdultMaxFat("HARE_ADULT_MAXFAT", CFG_CUSTOM, 0.04/(0.33 *0.88))
virtual ~Hare_Young()
Destructor for Hare_Young.
Hare_Juvenile(int p_x, int p_y, Landscape *p_L, THare_Population_Manager *p_PPM, double p_weight)
Constructor for the juvenile hare object.
int SupplyLargestPolyNumUsed()
double m_GrowthEfficiency[5001]
Precalculated growth efficiency with size
CfgInt cfg_FarmIntensivenessH("HARE_FARMINTENSIVENESSH", CFG_CUSTOM, 10)
static CfgFloat cfg_minLeveretBirthWeight("HARE_MINLEVERETBIRTHWEIGHT", CFG_CUSTOM, 95 *0.88 *0.33)
virtual ~Hare_Female()
Female Destructor.
const char * m_ListNames[32]
static CfgFloat cfg_littersize_SD8("HARE_LITTERSIZE_SD_H", CFG_CUSTOM, 0.6415)
TTypeOfHareState st_Developing()
The development code for Hare_Juvenile.
void TimeBudget(TTypeOfActivity a_activity, int dist)
Adjust time budger for an activity.
void Warn(std::string a_msg1, std::string a_msg2)
virtual void EndStep(void)
EndStep code for Hare_Young.
int GetTotalDensity(int x, int y)
Density function - returns the density of all hares in the square containing by x,...
TTypeOfHareState st_Resting()
Resting.
Hare_Female(int p_x, int p_y, Landscape *p_L, THare_Population_Manager *p_PPM, double p_weight, int a_age, int a_Ref)
Female Constructor.
const double g_hare_maxFoetalKJ[41]
TTypeOfHareState
Enumerator for hare behavioural states.
void AddYoung(THare *a_new)
Add a leveret to the list of kids.
static CfgFloat cfg_littersize_mean4("HARE_LITTERSIZE_MEAN_D", CFG_CUSTOM, 1.72)
virtual void ON_Dead()
This hare has been killed.
virtual void GeneralEndocrineDisruptor(double)
Handles internal effects of endocrine distrupter pesticide exposure. If any effects are needed this m...
double m_Interference[2500]
Array storing density-dependence effect with density
int SupplyPolyRef(int a_x, int a_y)
void BodyBurdenOut(int a_year, int a_day, double a_bb, double a_mgkg)
BodyBurden output.
Class for juvenile hares (after 5 weeks old, fully mobile)
int GetDelayedAdultDensity(int x, int y)
Density function - returns the density of adults in the square containing by x,y, but for last year a...
int m_peg_x
peg x-coordinate
int m_RefNums
The last hare ID used
void UpdateOestrous()
Update oestrous counter.
static CfgFloat cfg_hare_peg_inertia("HARE_PEG_INERTIA", CFG_CUSTOM, 0.20)
double GetHareFoodQuality(int a_polygon)
virtual void Step(void)
Step code for Hare_Young.
static CfgFloat cfg_littersize_SD4("HARE_LITTERSIZE_SD_D", CFG_CUSTOM, 0.6415)
CfgInt cfg_juv_starve("HARE_JUV_STARVE", CFG_CUSTOM, 2500)
int m_GestationCounter
State variable - Days in gestation.
void IncLiveArraySize(int a_listindex)
Increments the number of 'live' objects for a list index in the TheArray.
CfgInt cfg_BeetleBankMaxY