ALMaSS Rabbit ODdox
1.1
The rabbit model description following ODdox protocol
|
Go to the documentation of this file.
54 #include "../BatchALMaSS/ALMaSS_Setup.h"
55 #include "../ALMaSSDefines.h"
56 #include "../Landscape/ls.h"
57 #include "../BatchALMaSS/PopulationManager.h"
58 #include "../BatchALMaSS/AOR_Probe.h"
59 #include "../Rabbit/Rabbit.h"
60 #include "../Rabbit/Rabbit_Population_Manager.h"
61 #include "../BatchALMaSS/BoostRandomGenerators.h"
64 extern boost::variate_generator<base_generator_type&, boost::uniform_real<> >
g_rand_uni;
140 sp->
m_age = 100+random(265);
192 for (
int i = 1; i < 300; i++) {
196 for (
int i = 300; i < 3350; i++) {
210 sp->
m_age = 100 + random(265);
241 for (
unsigned i = 0; i <
TheArray.size(); i++) {
242 for (
unsigned j = 0; j <
TheArray[ i ].size(); j++ ) {
265 for (
int i=0; i<a_number; i++)
268 TheArray[ob_type].push_back(new_RabbitY);
269 dynamic_cast<Rabbit_Female*>(pvo)->AddYoung(new_RabbitY);
274 for (
int i=0; i<a_number; i++)
277 TheArray[ob_type].push_back(new_RabbitJ);
282 for (
int i=0; i<a_number; i++)
285 TheArray[ob_type].push_back(new_RabbitM);
290 for (
int i=0; i<a_number; i++)
293 TheArray[ob_type].push_back(new_RabbitF);
298 for (
int i=0; i<a_number; i++)
305 else delete new_RabbitW;
314 #ifdef __RABBITDEBUG2
324 sp->
m_age = 100 + random( 265 );
330 for (
int i = 0; i< 500; i++) {
335 for (
int i = 0; i< 500; i++) {
388 cout <<
"Preprocessing Warren Locations" << endl;
422 if (static_cast<unsigned>(
TheArray.size()) % 1000 == 0) cout <<
TheArray.size() <<
'\t';
444 for (
int i=0; i< sz; i++)
466 static char error_num[ 20 ];
544 sprintf( error_num,
"%d", a_tole );
585 return (
double) total/warrenarea;
595 if ( !ofile.is_open() )
602 for (
int i=0; i< sz; i++)
617 if ( !ifile.is_open() )
624 for (
int i=0; i< sz; i++)
627 ifile >> x >> y >> s;
647 for (
int i=0; i< sz; i++)
654 for (
int j=0; j< sz; j++)
660 dist = (int) sqrt( (
double)(((theirX-ourX)*(theirX-ourX)) + ((theirY-ourY)*(theirY - ourY))) );
685 for (
int i=0; i< sz; i++)
706 for (
int r = 0; r < 10; r++) {
711 for (
int i=0; i< sz; i++)
715 dist = (int)sqrt( ((
double( X - a_x )*
double( X - a_x )) + (
double( Y - a_y )*
double( Y - a_y ))) );
716 for (
int r=0; r<10; r++)
718 if (dist<=results[r])
720 for (
int t=r+1; t<10; t++)
722 results[t]=results[t-1];
731 Rabbit_Warren* rw = dynamic_cast<Rabbit_Warren*>(ptrs[ a_rank ]);
749 #ifdef __RABBITBREEDINGSEASONCHECK
760 #ifdef __RABBITBREEDINGSEASONCHECK
779 ofstream warrenrecord(
"WarrenOccupancyRecord.txt", ios::app );
780 double occupancy = 0;
781 double var_occupancy = 0;
783 double totalrabbits = 0;
786 int warrensoccupied = 0;
790 int breedingfemales = 0;
791 double breedingfemalesAv = 0;
792 int oneyroldfemales = 0;
793 int nonbreedingfemales = 0;
819 double littersperfemale = 0;
821 if ((occupancy > 0) && (ads > 0)) {
822 var_occupancy = (sumsqr - (occupancy*occupancy) / n) / (n - 1);
823 if (var_occupancy < 0) var_occupancy = 0.0;
831 CV_occ = sqrt( var_occupancy ) / occupancy;
832 if (breedingfemales > 0) littersperfemale = litters / double( breedingfemales );
848 warrenrecord <<
'\t' << breedingfemales <<
'\t' << breedingfemalesAv <<
'\t' << oneyroldfemales <<
'\t' << nonbreedingfemales <<
'\t' << littersperfemale <<
'\t' << lrc <<
'\t' << litters << endl;
875 m_WarrenOccupancyFile <<
"Year" <<
'\t' <<
"Day" <<
'\t' <<
"No. Warrens" <<
'\t' <<
"No.Occ.Warrens" <<
'\t' <<
"Mean Burrows" <<
'\t' <<
"Mean Rabbits" <<
'\t' <<
"Mean Disease"
876 <<
'\t' <<
"Mean Occupancy" <<
'\t' <<
"CV Occupancy" <<
'\t' <<
"Mean Kits" <<
'\t' <<
"Mean Juvs" <<
'\t' <<
"Mean Ads" <<
'\t' <<
"TotalYoung" <<
'\t' <<
"TotalJuvs"
877 <<
'\t' <<
"TotalMales" <<
'\t' <<
"TotalFemales" <<
'\t' <<
"BreedingFemales" <<
'\t' <<
"BreedingDensityAv" <<
'\t' <<
"1yr old females" <<
'\t' <<
"NonBreedingFems.>1yr"
878 <<
'\t' <<
"Littersperfemale" <<
'\t' <<
"lrc" <<
'\t' <<
"litters" << endl;
902 m_ReproOutputFile <<
'\t' <<
"Age" <<
'\t' <<
"Offpring" <<
'\t' <<
"Litters" << endl;
927 m_NatalDispersalFile <<
"Born_X" <<
'\t' <<
"Born_Y" <<
'\t' <<
"New_X" <<
'\t' <<
"New_Y" <<
'\t' <<
"Rabbit_Type" << endl;
944 double Year, Day, NoWarrens, NoOccWarrens, MeanBurrows, MeanRabbits, MeanDisease, MeanOccupancy, CVOccupancy, MeanKits, MeanJuvs, MeanAds, TotalYoung, TotalJuvs, TotalMales,
945 TotalFemales, BreedingFemales, yroldfemales, NonBreedingFems;
946 vector<double> totalfemales;
947 vector<double> totalbrfemalesdensity;
948 vector<double> nonbreedingdensity;
949 vector<double> yrolddensity;
950 vector<double> breedingdensity;
951 vector<double> yearlingpct;
952 vector<double> kitsperfemale;
954 double meantotalbrpop;
955 double maxbreedingpop = -1;
956 double minbreedingpop = 100000;
957 double maxyroldspct = -1;
958 double minyroldspct = 100000;
960 double correlation_b;
961 double littersperfemale;
963 double BreedingDensityAv;
967 ifstream WarrenOccupancyFile(
"WarrenOccupancyRecord.txt", ios::in );
970 WarrenOccupancyFile.getline( st, 2000 );
971 while (!WarrenOccupancyFile.eof()) {
972 WarrenOccupancyFile >> Year >> Day >> NoWarrens >> NoOccWarrens >> MeanBurrows >> MeanRabbits >> MeanDisease
973 >> MeanOccupancy >> CVOccupancy >> MeanKits >> MeanJuvs >> MeanAds >> TotalYoung >> TotalJuvs
974 >> TotalMales >> TotalFemales >> BreedingFemales >> BreedingDensityAv >> yroldfemales >> NonBreedingFems >> littersperfemale >> lrc >> litters;
982 if ((yroldfemales + BreedingFemales + NonBreedingFems) > 0) {
983 yearlingpct.push_back( yroldfemales / (yroldfemales + BreedingFemales + NonBreedingFems) );
984 totalbrfemalesdensity.push_back( (yroldfemales + BreedingFemales + NonBreedingFems) / 2.0 );
985 totalfemales.push_back( (BreedingFemales + NonBreedingFems) / 2.0 );
986 breedingdensity.push_back( BreedingFemales / 2.0 );
987 nonbreedingdensity.push_back( NonBreedingFems / 2.0 );
988 yrolddensity.push_back( yroldfemales / 2.0 );
989 kitsperfemale.push_back( littersperfemale );
993 ofstream ofile(
"RabbitPOMSummary.txt", ios::app );
1000 <<
'\t' << 0 << endl;
1005 WarrenOccupancyFile.close();
1009 int sz = static_cast<int>(yearlingpct.size());
1020 double n = sz - 1 - 10;
1022 for (
int i = 10; i < sz - 1; i++) {
1023 if (totalbrfemalesdensity[ i ]>maxbreedingpop)maxbreedingpop = totalbrfemalesdensity[ i ];
1024 if (totalbrfemalesdensity[ i ] < minbreedingpop)minbreedingpop = totalbrfemalesdensity[ i ];
1025 if (yearlingpct[ i ] > maxyroldspct) maxyroldspct = yearlingpct[ i ];
1026 if (yearlingpct[ i ] < minyroldspct) minyroldspct = yearlingpct[ i ];
1027 sumx += totalbrfemalesdensity[ i ];
1028 sumx2 += totalbrfemalesdensity[ i ] * totalbrfemalesdensity[ i ];
1029 sumy += yearlingpct[ i ];
1030 sumy2 += yearlingpct[ i ] * yearlingpct[ i ];
1031 sumxy += totalbrfemalesdensity[ i ] * yearlingpct[ i ];
1033 meantotalbrpop = sumx / n;
1034 double intermediate = (n*sumxy) - (sumx*sumy);
1035 correlation = intermediate / sqrt( ((n*sumx2) - (sumx*sumx))*((n*sumy2) - (sumy*sumy)) );
1038 for (
int i = 10; i < sz - 2; i++) {
1040 sumx_b += totalfemales[ i ];
1041 sumx2_b += totalfemales[ i ] * totalfemales[ i ];
1042 sumy_b += kitsperfemale[ i+1 ];
1043 sumy2_b += kitsperfemale[ i+1 ] * kitsperfemale[ i+1 ];
1044 sumxy_b += totalfemales[ i ] * kitsperfemale[ i+1 ];
1046 intermediate = (n*sumxy_b) - (sumx_b*sumy_b);
1047 correlation_b = intermediate / sqrt( ((n*sumx2_b) - (sumx_b*sumx_b))*((n*sumy2_b) - (sumy_b*sumy_b)) );
1049 ofstream ofile(
"RabbitPOMSummary.txt", ios::app );
1050 ofile << meantotalbrpop
1051 <<
'\t' << maxbreedingpop
1052 <<
'\t' << minbreedingpop
1053 <<
'\t' << maxyroldspct
1054 <<
'\t' << minyroldspct
1055 <<
'\t' << correlation
1056 <<
'\t' << correlation_b << endl;
1069 int Year, Day, Age, Offspring, Litter;
1070 double NoSuccessfulReproducers = 0;
1071 double NoOffspring = 0;
1072 double TotalAdults = 0;
1073 double ZeroLitters = 0;
1074 double TotalLitters = 0;
1075 double AvNoYoungLitter = 0;
1076 double AvLittersPerFemale = 0;
1077 double AvTotalOffspring = 0;
1078 double pctSuccess = 0;
1079 double MeanReproAge = 0;
1080 double SumReproAge = 0;
1081 double MaxReproAge = 0;
1082 double sumunderage = 0;
1083 double sumunderageoffspring = 0;
1085 ifstream ReproFile(
"RabbitLifetimeReproRecord.txt", ios::in );
1088 ReproFile.getline( st, 2000 );
1089 ReproFile >> Year >> Day >> Age >> Offspring >> Litter;
1090 while (!ReproFile.eof()) {
1094 SumReproAge += Age - 304;
1096 TotalLitters += Litter;
1097 NoSuccessfulReproducers++;
1098 if (MaxReproAge < Age - 304) MaxReproAge = Age - 304;
1101 NoOffspring += Offspring;
1103 else if (Litter > 0) {
1105 sumunderageoffspring += Offspring;
1108 ReproFile >> Year >> Day >> Age >> Offspring >> Litter;
1110 if (TotalLitters > 0) AvNoYoungLitter = NoOffspring / TotalLitters;
1111 if (TotalAdults > 0) {
1112 MeanReproAge = SumReproAge / TotalAdults;
1113 pctSuccess = NoSuccessfulReproducers / TotalAdults;
1114 AvLittersPerFemale = TotalLitters / NoSuccessfulReproducers;
1116 AvTotalOffspring = AvLittersPerFemale * AvNoYoungLitter;
1117 ofstream ofile(
"RabbitPOMSummary.txt", ios::app );
1118 ofile << NoSuccessfulReproducers
1119 <<
'\t' << TotalLitters
1120 <<
'\t' << NoOffspring
1121 <<
'\t' << pctSuccess
1122 <<
'\t' << AvTotalOffspring
1123 <<
'\t' << AvNoYoungLitter
1124 <<
'\t' << AvLittersPerFemale
1125 <<
'\t' << MeanReproAge
1126 <<
'\t' << MaxReproAge
1127 <<
'\t' << sumunderage
1128 <<
'\t' << sumunderageoffspring <<
'\t';
1134 int year, day, bornx, borny, newx, newy, sex;
1138 int dispfemales = 0;
1139 double malenataldisp = 0;
1140 double femalenataldisp = 0;
1141 ifstream DispFile(
"RabbitNatalDispersalRecord.txt", ios::in );
1144 DispFile.getline( st, 2000 );
1145 DispFile >> year >> day >> bornx >> borny >> newx >> newy >> sex;
1146 while (!DispFile.eof()) {
1148 if ((bornx != newx) || (borny != newy)) {
1149 if (sex == 2) dispmales++;
else dispfemales++;
1151 else if (sex == 2) sedmales++;
else sedfemales++;
1153 DispFile >> year >> day >> bornx >> borny >> newx >> newy >> sex;
1155 if ((dispmales + sedmales)>0) malenataldisp = dispmales /
double( dispmales + sedmales );
1156 if ((dispfemales + sedfemales)>0) femalenataldisp = dispfemales /
double( dispfemales + sedfemales );
1157 ofstream ofile(
"RabbitPOMSummary.txt", ios::app );
1158 ofile << malenataldisp <<
'\t' << femalenataldisp <<
'\t';
The rabbit juvenile class. All special juvenile behaviour is described here.
void LoadWarrenLocations(void)
Load warren locations.
CfgBool cfg_RipleysOutput_used
void UpdateThisYearsBreeders()
Calculates and stores the number of breeders and non-breeders.
void PesticideDeathRecordOutputClose()
Closes the pesticide death output file.
CfgFloat cfg_rabbitmaxkits
The maximum number of kits in a litter.
static CfgBool cfg_rabbit_use_fixed_soiltype("RABBIT_USE_FIXED_SOIL_TYPE", CFG_CUSTOM, true)
Input variable. Assume fixed soil type or use landscape info?
TTypesOfLandscapeElement SupplyElementType(int a_polyref)
int GetThisYearsNonBreeders()
Returns the number of females not breeding this year but older than 1 year.
void PesticideDeathRecord(RabbitObjectTypes ob_type)
Records pesticide poisoning incidents.
vector< TListOfAnimals > TheArray
virtual void DoLast()
Things to do after the EndStep.
CfgFloat cfg_rabbit_pesticidedegradationrate
Holds 1-proportion of decay of body burden of pesticide per day. Default of 0.0 will remove all body ...
Rabbit_Warren * FindClosestWarren(int a_x, int a_y, int a_rank)
Finds the closest warren as the crow flies.
virtual ~Rabbit_Population_Manager(void)
Rabbit_Population_Manager Destructor.
static CfgFloat cfg_rabbitminbreedingtemp("RABBIT_MINBREEDINGTEMP", CFG_CUSTOM, 300.0)
Input variable. The minimum 60 day average temperature for rabbit breeding.
APoint GetBornLocation()
Get location of birth.
bool m_forageday
Flag to record whether today is a possible forage day.
The rabbit female class. All special female behaviour is described here.
static CfgInt cfg_maxWarrenNetworkDist("RABBIT_MAXWARRENNETWORKDIST", CFG_CUSTOM, 1500)
Input variable. The maximum distance between directly connected warrens.
CfgBool cfg_AOROutput_used
CfgFloat cfg_rabbitminkits
The minimum number of kits in a litter.
String configurator entry class.
int GetSoilType(void)
Gets the warren soil type.
static CfgFloat cfg_rabbitminimumforagetemp("RABBIT_MINFORAGETEMP", CFG_CUSTOM, -0.83)
Input variable. The minimum forage temperature for rabbits.
void ReproOutputRecordOutputOpen()
Opens the reproductive output file.
void PreProcessWarrenLocations()
This pre-scans the landscape and determines all potential warren locations on start-up.
int GetRabbitProductionRecord(RabbitObjectTypes YoungType)
Get data about production of rabbits throughout year.
void WarrenOccupancyRecordOutput()
Print warren occupancy record to file.
void CheckForRabbitBreedingConditions(void)
Determines whether it is breeding season.
bool OpenTheRipleysOutputProbe(string a_NWordFilename)
int SupplySoilTypeR(int a_x, int a_y)
Returns the soil type in rabbit warren reference numbers.
ofstream m_NatalDispersalFile
For recording the natal dispersal of adults from birth to death.
CfgBool cfg_RabbitUseReproOutput("RABBIT_USEREPROOUTPUT", CFG_CUSTOM, false)
Flag to denote using lifetime repro output file or not.
char m_SimulationName[255]
int m_warrenfixedsizediv2
Half max warren size in m - for speed
int GetThisYears1yrOldFemales()
Returns the number of 1yr old females.
void CreateLocalWarrenNetworkLists(void)
Forms the local warren network list for this warren.
int Supply_m_Location_x()
Rabbit_Warren * m_aWarren
Used for creation of a new Rabbit object.
void NatalDispersalRecordOutput(Rabbit_Base *a_rabbit)
Records the natal dispersal.
bool m_rabbitBreedingSeason
The breeding season flag.
CfgFloat cfg_minForageDigestability
Input variable. Input variable. The minimum digestability desirable for forage vegetation.
void WarrenOccupancyRecordOutputOpen()
Opens the warren occupancy output file.
ofstream m_ReproOutputFile
For recording the lifetime reproductive success.
static double m_maxForageHeight
The maximum vegetation height assumed for forage potential.
static CfgInt cfg_warrenoccupancyrecordday("RABBIT_WARRENOCCUPANCYRECORDDAY", CFG_CUSTOM, 60)
Output control - the day in year for recording warren and population data.
class MapErrorMsg * g_msg
CfgFloat cfg_maxForageHeight
Input variable. The maximum height desirable for forage vegetation.
CfgInt cfg_RabbitUseNatalDispersalRecordAge("RABBIT_USENATALDISPERSALRECORDAGE", CFG_CUSTOM, 30 *6)
Flag to denote using lifetime repro output file or not.
static double m_pesticidedegradationrate
State variable used to hold the daily degredation rate of the pesticide in the body.
static CfgFloat cfg_rabbitmaxforagerainfall("RABBIT_MAXFORAGERAINFALL", CFG_CUSTOM, 3.6)
Input variable. The maximum rainfall before rabbits are assumed not to forage.
int GetCarryingCapacity()
Returns the carrying capacity in burrows.
The landscape class containing all environmental and topographical data.
double GetThisYearsBreedersAv()
Returns the number of females breeding this year.
TTypesOfRabbitHabitat ClassifyHabitat(TTypesOfLandscapeElement a_tole)
Classify a landscape element type according to the rabbit habitat classification.
Rabbit_Population_Manager * m_NPM
Rabbit_Population_Manager pointer.
void NatalDispersalRecordOutputClose()
Closes the reproductive output file.
static double m_dispersalmortperm
The extra dispersal mortality per m travelled.
double m_RabbitGrowth[3650]
Holds daily growth potential of rabbits for each day
TTypesOfRabbitHabitat
A classification of rabbit habitat types. All landscape elements will be classified into one of the c...
void CreateObjects(RabbitObjectTypes ob_type, TAnimal *pvo, struct_Rabbit *a_data, int a_number)
Method for creating a new individual Rabbit.
void WarrenOutputAnalysis()
Does analysis on the warren output file and saves the results to RabbitPOMSummary....
int SupplySimAreaWidth(void)
void SaveWarrenLocations(void)
Save warren locations.
Bool configurator entry class.
Landscape * m_L
Landscape pointer.
bool WarrenLegalPos(int &a_x, int a_y)
Tests the warrens list to see if this position is legal.
The base class for all ALMaSS animal classes.
CfgInt cfg_rabbitdiseasedensitydependencedelay("RABBITDISEASEDENDEPPERIOD", CFG_CUSTOM, 90)
Input variable. The period between recalculation of rabbit disease probability.
CfgFloat cfg_dispersalmortperm
Input variable. The additional mortality rate with distance for between warren dispersal.
double GetDiseaseConstant(void)
Returns the warrens current disease constant.
Rabbit_Warren * m_Warren
A pointer to the current warren.
int m_warrenfixedsize
Holds an input variable for max warren size in m
static double m_minForageDigestability
The minimum vegetation digestability allowed for foraging.
static CfgStr cfg_warrenlocationsfile("RABBIT_WARRENLOCATIONSFILE", CFG_CUSTOM, "RabbitWarrenLocations.txt")
Input variable. The warren locations file.
void Warn(MapErrorState a_level, std::string a_msg1, std::string a_msg2)
Base class for all population managers.
int SupplyDayInYear(void)
static CfgFloat cfg_rabbitdailygrowthparam3("RABBIT_DAILYGROWTHPARAM_THREE", CFG_CUSTOM, 0.0)
Input variable. Parameter three of the rabbit growth curve.
static CfgInt cfg_rabbit_fix_soiltype("RABBIT_FIX_SOIL_TYPE", CFG_CUSTOM, 0)
Input variable. The soil type applied to all warrens.
double GetCarryingCapacityRatio()
Checks whether all possible burrows are filled with rabbits. This is updated daily by Rabbit_Warren::...
void SetMinKits(double a_num)
virtual void DoFirst()
Things to do before anything else at the start of a timestep
Rabbit_Population_Manager(Landscape *L)
Rabbit_Population_Manager Constructor.
int m_weightage
The rabbit age in terms of weight.
int SupplyYearNumber(void)
void NatalDispersalRecordOutputOpen()
Opens the reproductive output file.
int GetPopulationSize()
Gets the total warren population of rabbits.
void PesticideDeathRecordOutput()
Print pesticide death record to file.
static CfgFloat cfg_rabbitdailygrowthparam1("RABBIT_DAILYGROWTHPARAM_ONE", CFG_CUSTOM, 1127.616084)
Input variable. Parameter one of the rabbit growth curve.
double AssessPctForage(int a_x, int a_y)
Assesses the percentage of forage for a location assuming max warren size.
int GetThisYearsBreeders()
Returns the number of females breeding this year.
RabbitObjectTypes GetRabbitType(void)
Get rabbit type.
void LifetimeReproAnalysis()
Does analysis on the lifetime reproductive output file and saves the results to RabbitPOMSummary....
int m_soil
The current warren soil type.
Landscape * m_TheLandscape
boost::variate_generator< base_generator_type &, boost::uniform_real<> > g_rand_uni
void ReproOutputRecordOutput(Rabbit_Female *a_female)
Print reproductive record to file.
double GetLitterReabsortionConst(void)
Returns litter reabsorption chance.
Integer configurator entry class.
unsigned m_ListNameLength
ofstream m_PesticideDeathOFile
The pesticide death output file.
void SetMaxKits(double a_num)
CfgBool cfg_RabbitUseNatalDispersalRecord("RABBIT_USENATALDISPERSALRECORD", CFG_CUSTOM, false)
Flag to denote using lifetime repro output file or not.
int m_PesticideDeaths[rob_foobar]
Holds the number of rabbits killed each day by pesticides.
An entry in the local warren network - a helper list of accessibly local warren locations.
int Supply_m_Location_y()
void WarrenOccupancyRecordOutputClose()
Closes the warren occupancy output file.
Double configurator entry class.
A class to describe the rabbits warren system.
void ResetAllRabbitProductionRecord(void)
Reset data about production of rabbits throughout year.
static CfgBool cfg_warrenreadlocations("RABBIT_WARRENREADLOCATIONS", CFG_CUSTOM, true)
Input variable. Should warren locations be calculated or read from a file?
static CfgFloat cfg_rabbitdailygrowthparam2("RABBIT_DAILYGROWTHPARAM_TWO", CFG_CUSTOM, -0.013143202)
Input variable. Parameter two of the rabbit growth curve.
The rabbit male class. All special male behaviour is described here.
void PesticideDeathRecordOutputOpen()
Opens pesticide death output file.
void NatalDispersalAnalysis()
Does analysis on the natal dispersal output file and saves the results to RabbitPOMSummary....
void ReproOutputRecordOutputClose()
Closes the reproductive output file.
double SupplyTempPeriod(long a_date, int a_period)
CfgInt cfg_rabbitdensitydependencedelay("RABBIT_DENDEPPERIOD", CFG_CUSTOM, 53)
Input variable. The period between recalculation of rabbit disease probability.
const char * m_ListNames[32]
void Warn(std::string a_msg1, std::string a_msg2)
static CfgInt cfg_RabbitStartNos("RABBIT_STARTNOS", CFG_CUSTOM, 25000)
The starting number of rabbits.
int GetLittersThisYear()
Returns the number litters produced in the last 12 months.
int SupplyPolyRef(int a_x, int a_y)
void AssignStaticVariables()
Assigns any static variables needing config variable assignment.
CfgInt cfg_warrenfixedsize("RABBIT_WARRENFIXEDSIZE", CFG_CUSTOM, 45)
Input variable. The maximum size for a warren (length m). Value is 45 for light soil 55 for heavy soi...
The rabbit young class. All special young behaviour is described here.
int GetAge(void)
Get age method.
int m_reproswitchbuffer
Prevents continuous breeding season switching.
ofstream m_WarrenOccupancyFile
The warren occupancy output file.