ALMaSS Partridge ODdox
1.1
The partridge model description following ODdox protocol
|
Go to the documentation of this file.
43 #include "../Landscape/ls.h"
44 #include "../BatchALMaSS/PopulationManager.h"
45 #include "../Partridge/Partridge_Communication.h"
46 #include "../Partridge/Partridge_All.h"
47 #include "../Partridge/Partridge_Population_Manager.h"
48 #include "../Partridge/Partridge_Covey.h"
49 #include "../BatchALMaSS/BoostRandomGenerators.h"
50 #include "../BatchALMaSS/AOR_Probe.h"
52 #ifdef __NESTPOSITIONS_OUT
53 static CfgInt cfg_ParNestPosOutStart(
"PAR_NESPOSTOUTSTART",
CFG_CUSTOM, 20 );
73 0, 381, 1123, 2205, 3609, 5314, 7300, 9548, 12036, 14746, 17657, 20749, 24003, 27399, 30916, 3453, 38235, 41997, 45801,
74 49626, 53454, 57263, 61035, 64748, 68383, 71921, 75341, 78623, 81747, 84694, 87443, 89974, 92268, 94305, 96064, 97525,
75 98670, 99477, 99927, 100000
161 for (
int i = 0; i < 10; i++ )
165 for (
int i = 0; i < 4; i++ )
220 for (
int i = 0; i < num; i++ )
286 m_TheLandscape->
Warn(
"Partridge_Pop_Man::Init(): ""Problem opening output files",
"" );
289 #ifdef __NESTPOSITIONS_OUT
290 NestPositions=fopen(
"NestPositions.txt",
"w");
291 if ( !NestPositions )
293 g_msg->
Warn(
WARN_BUG,
"Partridge_Population_Manager::Init(): Cannot open NestPositions.txt file",
"" );
338 double alpha_max = 4.00000;
339 double alpha_min = 0.00000;
340 double alpha_medium = (alpha_max + alpha_min) / 2;
350 while (m_medium_tq < range_min || m_medium_tq > range_max)
352 if (m_medium_tq < range_min){
353 alpha_max = alpha_medium ;
354 alpha_medium = (alpha_min + alpha_max) / 2;}
356 alpha_min = alpha_medium;
357 alpha_medium = (alpha_min + alpha_max) / 2;}
361 for (
int i = 0; i < daydiff+1; i++){
385 for (
int i = 0; i < number; i++ )
390 cs = dynamic_cast < Clutch_struct * > ( data );
393 TheArray[ob_type].push_back( New_Clutch );
401 #ifdef __NESTPOSITIONS_OUT
403 if ((y>=cfg_ParNestPosOutStart.value()) &&(y<cfg_ParNestPosOutEnd.value())) {
406 fprintf(NestPositions,
"%d\t%d\t%d\t%d\t%d\n",y,cs->
x, cs->
y,veg,ele);
412 pcs = dynamic_cast < Chick_struct * > ( data );
415 if ( random( 211 ) > 100 ) sex =
true;
419 TheArray[ob_type].push_back( New_Chick );
424 pcs = dynamic_cast < Chick_struct * > ( data );
428 TheArray[ob_type].push_back( New_Chick2 );
434 as = dynamic_cast < AdultPartridge_struct * > ( data );
437 TheArray[ob_type].push_back( New_Male );
441 as = dynamic_cast < AdultPartridge_struct * > ( data );
444 TheArray[ob_type].push_back( New_Female );
448 covs = dynamic_cast < Covey_struct * > ( data );
450 TheArray[ob_type].push_back( New_Flock );
459 TheArray[ob_type].push_back( pTAo );
474 for (
int i = 0; i < number; i++ )
480 x = random( extentx );
481 y = random( extenty );
517 TheArray[ob_type].push_back( New_Male );
525 TheArray[ob_type].push_back( New_Female );
545 TheArray[ob_type].push_back( New_Male );
555 TheArray[ob_type].push_back( New_Female );
575 for (
int c = 0; c < sz; c++ )
579 && ( ( abs( (
int )( ap.
m_y - y ) ) %
m_halfwidth ) < radius ) )result++;
596 if (today==
March+22) {
602 for (
unsigned j = 0; j < size2; j++ ) {
607 for (
unsigned j = 0; j < size2; j++ ) {
642 for (
unsigned int c=0; c<sz; c++) {
643 if (random(10000) < testvalue) {
647 dynamic_cast < Partridge_Covey * > (
TheArray[
pob_Covey][c])->CoveyIndividualEmigrate();
661 for (
int i = 0; i < si; i++ )
664 if ( dynamic_cast < Partridge_Female * > (
TheArray[
pob_Female] [i] )->GetMate() ) nobs++;
665 if ( dynamic_cast < Partridge_Female * > (
TheArray[
pob_Female] [i] )->HaveTerritory() ) nts++;
679 if ( today ==
May+15 )
683 for (
int i = 0; i < num; i++ )
686 if ( dynamic_cast < Partridge_Female * > (
TheArray[
pob_Female] [i] )->HaveTerritory() ) nobs++;
688 difference = num - nobs;
712 for (
unsigned j = 0; j < sz; j++ )
715 if ( pf->
GetAge() > 244 ) oldbirds++;
717 nochicks += ( sz - oldbirds );
721 for (
unsigned j = 0; j < sz; j++ )
724 if ( pf->
GetAge() > 244 ) oldbirds++;
727 nochicks += ( sz - oldbirds );
791 for (
int i = 0; i < lx; i++ )
793 for (
int j = 0; j < ly; j++ )
817 for (
int i = 0; i <
m_maxx; i++ )
819 for (
int j = 0; j <
m_maxy; j++ )
823 for (
int ii = -50; ii < 50; ii++ )
825 for (
int jj = -50; jj < 50; jj++ )
937 g_msg->
Warn(
WARN_BUG,
"Partridge_Population_Manager::EvalTerrQual: Unknown Element type",
"" );
1092 for (
int i = 0; i < lx; i++ )
1094 for (
int j = 0; j < ly; j++ )
1119 for (
unsigned j = 0; j < size2; j++ )
1121 if ( random( 10000 ) < p_chance )
1131 for (
unsigned j = 0; j < size2; j++ )
1133 if ( random( 10000 ) < p_chance )
1142 for (
unsigned j = 0; j < size2; j++ )
1144 if ( random( 10000 ) < p_chance )
1163 unsigned Grids =
SimW/GridSize;
1164 unsigned* densities =
new unsigned[10000];
1165 for (
unsigned d=0; d<10000; d++) densities[d]=0;
1167 unsigned size2 = (unsigned)
TheArray[pob].size();
1168 for (
unsigned j = 0; j < size2; j++ ) {
1169 if (
TheArray[pob] [j]->GetCurrentStateNo() != -1) {
1171 unsigned sqx=AnPos.
m_x/GridSize;
1172 unsigned sqy=AnPos.
m_y/GridSize;
1173 densities[(sqy*Grids)+sqx]++;
1180 unsigned size2 = (unsigned)
TheArray[pob].size();
1181 for (
unsigned j = 0; j < size2; j++ ) {
1182 if ( random( 10000 ) < p_chance ) {
1183 if (
TheArray[pob] [j]->GetCurrentStateNo() != -1) {
1185 unsigned sqx=AnPos.
m_x/GridSize;
1186 unsigned sqy=AnPos.
m_y/GridSize;
1187 if (densities[(sqy*Grids)+sqx]>ParHuntingThreshold) {
1188 if ( random( 10000 ) < p_chance ) {
1210 double huntpercent_out, huntpercent_in;
1213 huntpercent_out = a_pct;
1218 huntpercent_in = a_pct;
1223 unsigned size2 = (unsigned)
TheArray[pob].size();
1224 for (
unsigned j = 0; j < size2; j++ )
1226 if (
TheArray[pob] [j]->GetCurrentStateNo() != -1)
1228 APoint AnPos=
TheArray[pob] [j]->SupplyPoint();
1229 if ((AnPos.m_x >= tx1) && (AnPos.m_y >= ty1) && (AnPos.m_x <= tx2) && (AnPos.m_y <= ty2))
1231 if ( random( 10000 ) < huntpercent_in )
1238 if ( random( 10000 ) < huntpercent_out )
1262 if (( today < 61 ) || (today>270))
1284 if ( res == 1 )
bad_guys[counter++] = pm;
1287 m_TheLandscape->
Warn(
"Partridge_Pop_Man::DoMaleSanityCheck(): ""Someone is not a member of their covey",
"" );
1342 for (
int i = 0; i < si; i++ )
1345 size = dynamic_cast < Partridge_Covey * > (
TheArray[
pob_Covey] [i] )->GetCoveySize();
1346 chi = dynamic_cast < Partridge_Covey * > (
TheArray[
pob_Covey] [i] )->GetOurChicks();
1356 for (
int i = 0; i < si; i++ )
1359 if ( !dynamic_cast < Partridge_Male * > (
TheArray[
pob_Male] [i] )->GetMate() ) upm++;
1369 for (
int i = 0; i < si; i++ )
1372 if ( dynamic_cast < Partridge_Female * > (
TheArray[
pob_Female] [i] )->GetMate() ) nobs++;
1393 for (
int i = 0; i < 200; i++ )
1410 for (
int i = 0; i < 200; i++ )
1412 if ( i > half_grown ) mult = half_grown;
1415 g_MaxWalk[i] = ( int )( 50 + ( ( ( 500 - 50 ) / half_grown ) * mult ) );
1445 for (
int i = 0; i < si; i++ )
1449 if ( today > 80 ) today = 80;
1450 dynamic_cast < Partridge_Covey * > (
TheArray[
pob_Covey] [i] )->OnDissolve( today );
1481 m_TheLandscape->
Warn(
"Partridge_Pop_Man::DissolveCovey(): someone not flocking",
"" );
1486 m_TheLandscape->
Warn(
"Partridge_Pop_Man::DissolveCovey(): someone still paired",
"" );
1530 while ( ( pf ) && ( remaining > 0 ) );
1542 }
while ( ( pm!=NULL ) && ( remaining > 0 ) && (a_covey->
GetCurrentStateNo() > -1));
1544 if ( remaining > 0 )
1549 for (
int bird = 0; bird < remaining; bird++ )
1555 m_TheLandscape->
Warn(
"Partridge_Pop_Man::DissolveCovey(): Male left in covey on dissolve",
"" );
1559 pf = dynamic_cast < Partridge_Female * > ( pb );
1580 for (
int j = 0; j < size2; j++ )
1584 int dx = abs( x - a_x );
1585 int dy = abs( y - a_y );
1614 ParAdMort = fopen(
"ParAdMort.txt",
"w" );
1618 ParNoB = fopen(
"ParNoB.txt",
"w" );
1619 if ( !
ParNoB )
return false;
1622 ParFlocks = fopen(
"ParFlocks.txt",
"w" );
1645 FILE * idb = fopen(
"k_facInfoBase.txt",
"a" );
1647 g_msg->
Warn(
"k_factors::DumpInfoDatabase",
"Cannot open k_facInfoBase.txt" );
1650 fprintf( idb,
"0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\t0\n");
1652 #ifdef __NESTPOSITIONS_OUT
1653 fclose(NestPositions);
1660 fprintf(
ParAdMort,
"%d %d %d %d\n", a_min, a_age, a_sex, a_cause );
1666 fprintf(
ParJuvMort,
"%d\t%d\t%d\t%d\n", a_yr, a_min, a_age, a_cause );
1672 fprintf(
ParNoB,
"%d %d\n", a_min, a_nob );
1684 fprintf(
ParClutches,
"%d\t%d\t%d\n", a_min, a_num1, a_num2 );
1690 fprintf(
ParFlocks,
"%d %d %d\n", a_min, a_size, a_young );
1719 fprintf(a_prb,
"%d %d %d %d %d\n", 0,w ,0, h, totalF);
1720 for (
unsigned j=0; j<totalF; j++)
1725 fprintf(a_prb,
"%d\t%d\n", x,y);
1739 if (today!=1)
return;
1751 for (
unsigned j = 0; j < size2; j++ ) {
1752 if (random(100) > esize) {
1758 for (
unsigned j = 0; j < size2; j++ ) {
1759 if (random(100) > esize) {
1764 }
else if (esize>100) {
1773 for (
unsigned j = 0; j < size2; j++ ) {
1774 if (random(100) < esize) {
1780 for (
unsigned j = 0; j < size2; j++ ) {
1781 if (random(100) < esize) {
1791 for (
unsigned j = 0; j < size2; j++ ) {
1792 for (
int e=0; e<esize; e++) {
1798 for (
unsigned j = 0; j < size2; j++ ) {
1799 for (
int e=0; e<esize; e++) {
1817 if (today!=212)
return;
1821 if (esize<1)
return;
1829 for (
unsigned j = 0; j < size2; j++ ) {
1830 if (random(100) < esize) {
For storing assessed habitat quality.
k_factors * m_Ourkfactors
Pointer to kfactors object.
population_attributes * m_ThisYear
void SetUncleStatus(bool a_Status)
Set uncle status.
int RemoveMember(Partridge_Base *a_former_member)
Remove a member from the covey.
CfgInt cfg_IndividualEmigration("PAR_INDIVIDUALEMIGRATION", CFG_CUSTOM, 3500)
Emigration rate of alone individuals (of 10000)
void incNoChicksSixWeeks()
CoverTempMap * m_nestingcovermap
Pointer to nesting cover map.
void SetPairsInApril(double pa)
The partridge male class.
virtual void KillThis()
Direct mortality message.
int m_catastrophestartyear
The partridge female class.
CfgInt cfg_BeetleBankMinY
bool PassMessage(PartridgeCommunicationData *pc_data, TypeOfPartridge_Communication pc)
Pass a message.
void AddQual(int a_x, int a_y, double a_qual)
CfgBool cfg_AOROutput_used
Partridge_Male * GetMaleInCovey()
Find a male in the covey.
virtual void DoAlmostLast()
Utility method called after EndStep.
virtual ~Partridge_Population_Manager(void)
unsigned int m_loop_index
Partridge_Base * GetMember(int a_member)
Returns pointer to a_member.
TTypesOfVegetation SupplyVegType(int a_x, int a_y)
void WriteNoHatchedPerYear(int a_min, int a_num)
Output method.
void SetMalesInApril(double fa)
TTypesOfLandscapeElement SupplyElementType(int a_polyref)
void incNoClutchesHatched()
TAnimal * ObjectLoopFetch(void)
FILE * ParFlocks
Covey size 1st oct, + no. chicks.
void MakeCovey()
Create our own covey.
vector< TListOfAnimals > TheArray
unsigned int m_Partridge_IDs
unsigned StateNamesLength
TTypesOfPopulation m_population_type
double GetTerrQual(int x, int y)
Class for calculating k-factors.
Struct to basic partridge information.
unsigned int m_loop_limit
CfgBool cfg_RipleysOutput_used
static CfgInt cfg_ParHuntingType("PAR_HUNTINGTYPE", CFG_CUSTOM, 1)
0 if global hunting, else threshold
FILE * ParJuvMort
Juvenile mortaltiy record.
static CfgInt cfg_MaleImmigration("PAR_MALEIMMIGRATION", CFG_CUSTOM, 0)
unused
FILE * ReallyBigOutputPrb
static CfgInt cfg_ParHuntingGridSize("PAR_HUNTINGGRIDSIZE", CFG_CUSTOM, 1000)
Size if hunting grid (m)
int ClutchDensity(int x, int y, int radius)
Returns clutch density at x,y with radius radius.
FILE * ParClutches
For each clutch, clutch no. & size.
void CreateInitialObjects(int ob_type, int number)
static CfgInt cfg_unpaireddata_date("PAR_UNPAIREDDATA_DATE", CFG_CUSTOM, 150)
Probe date.
CfgInt cfg_par_last_brood_date
Latest date for a reproduction attempt.
void SetState(Partridge_State a_pars)
Set state.
CfgInt cfg_par_mature_threshold
Age at maturing in days.
PartridgeCommunicationData * m_comms_data
Message data.
bool OpenTheRipleysOutputProbe(string a_NWordFilename)
static CfgInt cfg_FemalePopSizeMaxCutoff("PAR_FEMMAXPOPSIZECUTOFF", CFG_CUSTOM, 7000)
Point at which the simulation is terminated due to excessive population size.
The partridge clutch class.
FILE * NoHatchedPerYear
No. successful hatches per year.
bool AllFlocking2()
Debug method.
CfgInt cfg_BeetleBankMaxY
char m_SimulationName[255]
double GetQualIndexed(int a_x, int a_y)
Base class for all partridge classes.
virtual void KillThis()
General direct mortality handler.
Partridge_Male * bad_guys[500]
Debug.
static CfgInt cfg_springcensusdate("PAR_SPRINGCENSUSDATE", CFG_CUSTOM, March+21)
Probe date.
static CfgInt cfg_breedingpairs_date("PAR_BREEDINGPAIRS_DATE", CFG_CUSTOM, 90)
Probe date.
bool GetUncleStatus()
Supply uncle status.
CfgBool cfg_ReallyBigOutputMonthly_used
Partridge_Covey * m_covey
int Supply_m_Location_x()
CfgInt cfg_ParHuntingBeetleBankArea("PAR_HUNTING_BEETLEBANKAREA", CFG_CUSTOM, 500)
The hunting rate in beetle bank areas.
void setNoChicksSept(int n)
void setNoMalesDec(int n)
void SetTerritorialFemalesInMay(int nf)
void setNoMalesSept(int n)
bool OpenParOutputFiles()
Opens the partridge output files.
virtual void DoAfter()
Utility method called before EndStep.
static CfgInt cfg_ParShotMax("PAR_SHOTPERCENTAGE_MAX", CFG_CUSTOM, 1500)
Maximum% shot.
void WriteParJuvMort(int yr, int a_min, int a_age, int a_cause)
Output method.
static CfgInt cfg_StartingNumberFemalePartridges("PAR_STARTING_NO_FEMALES", CFG_CUSTOM, 10000)
Start no of female partridges.
FILE * ParNoB
No of breeding Pairs.
void setNoFemalesSept(int n)
void SetQualIndexed(int a_x, int a_y, double a_qual)
void SetBirdsInApril(double ba)
static CfgInt cfg_StartingNumberMalePartridges("PAR_STARTING_NO_MALES", CFG_CUSTOM, 10000)
Start no of male partridges.
class MapErrorMsg * g_msg
virtual void DoBefore()
Utility method called before Step.
void CreateObjects(int ob_type, Partridge_struct *data, int number)
Struct to pass chick information.
void HuntingDifferentiatedBeetleBankArea(int a_pct)
Differentiated hunting in beetlebank areas.
CoverTempMap * m_territoryqualmap
Pointer to territory quality map.
The landscape class containing all environmental and topographical data.
CfgInt cfg_nest_hedgebank0
Nesting quality for hedgebank type 0.
void Tick(void)
Do the covey management for the time-step.
static CfgInt cfg_ParShotMin("PAR_SHOTPERCENTAGE_MIN", CFG_CUSTOM, 1500)
Minimum% shot.
int m_HatchSuccess
No hatch success.
void WriteParClutches(int a_min, int a_num1, int a_num2)
Output method.
void HuntingGrid(int p_chance)
Density grid-based hunting.
Partridge_Female * m_female
static CfgFloat cfg_rainscaling("PAR_RAINSCALING", CFG_CUSTOM, 0.767)
Correction for using rainfall penalty.
virtual void DoLast()
Ultility method called at the end of the time-step.
int SupplySimAreaHeight(void)
CfgInt cfg_par_max_terr_qual
The minimum territory quality needed in early season.
unsigned int GetCoveySize()
Return the covey size.
int SupplySimAreaWidth(void)
int m_neighbourlist_size
Number of coveys close to this covey.
void DoSanityCheck()
Debug only.
void MaleImmigration(void)
If male immigration is needed - Unused.
Bool configurator entry class.
void WriteParUnpairedMale(int a_min, int a_num)
Output method.
The base class for all ALMaSS animal classes.
The collective for a family of partridges
int AmIaMember()
A debug function.
void CreateNestingCoverDensityMap()
Intitialises the nesting cover map.
Partridge_Male * GetOldMate(void)
Supply old mate pointer.
bool SupplyVegPatchy(int a_polyref)
void TestShouldFlock()
Should the birds start to flock?
A class defining an animals position.
static CfgInt cfg_Emigration("PAR_EMIGRATION", CFG_CUSTOM, 1)
Loss due to emmigration (out of 10000)
class CoveyManager * g_covey_manager
unsigned BeforeStepActions[12]
void setNoChick1sAug(int ch)
Partridge_Covey * m_covey
void SetTerritorialFemalesInApril(double fa)
double m_HabitatQuality[300]
Part of habitat quality map evaluation.
void Warn(MapErrorState a_level, std::string a_msg1, std::string a_msg2)
Base class for all population managers.
Struct to pass adult partridge information.
int SupplyDayInYear(void)
void SetBroodGeoMean(double gm)
double GetQual(int a_x, int a_y)
Partridge_Communication m_messagecentre
Message class pointer.
Partridge_Covey * GetCovey(void)
Supply covey pointer.
const int DissolveChance[40]
int SupplyYearNumber(void)
Struct to pass clutch information.
bool FillCoveyNeigbourList(Partridge_Covey *a_covey, int a_distance, int a_x, int a_y)
Get a list of neighbour covies.
CfgInt cfg_par_min_terr_qual
The minimum territory quality needed in late season.
virtual void CopyMyself(int a_Ptype)
Duplicate this object.
Partridge_Female * GetUnpairedFemale()
Finds the first unpaired female in the covey.
void incNoChicksHatched()
double BroodGeoMean()
Calculate the geometric mean of no of chicks.
void SanityCheck()
Debug method.
static CfgFloat cfg_par_rainfactor("PAR_RAINFACTOR", CFG_CUSTOM, 0.2)
Increase in energy requirement with rainfall.
void SetCovey(Partridge_Covey *a_covey)
Set covey pointer.
void Hunting(int p_chance)
Global hunting.
const char * StateNames[100]
virtual void Catastrophe()
Kill/clone a configuragle proportion of population.
CfgInt cfg_par_start_dissolve
The earliest covey dissolve date.
Partridge_Population_Manager(Landscape *a_map)
Landscape * m_TheLandscape
void setNoOldFemales(int nf)
bool OpenTheReallyBigProbe()
FILE * ParAdMort
Adult mortality record.
bool CloseParOutputFiles()
Closes the partridge output files.
static CfgInt cfg_flockdata_date("PAR_FLOCKDATA_DATE", CFG_CUSTOM, 270)
Date when birds start to flock.
int m_maxx
internal variables
Struct to pass covey information.
FILE * ParUnpairedMale
No unparied males 1st Jun.
Integer configurator entry class.
unsigned m_ListNameLength
Partridge_Object GetObjectType()
Supply object type.
int GetCurrentStateNo()
Returns the current state number.
void DissolveCovey(Partridge_Covey *a_covey)
int HabitatEvalPolyField(int a_field)
Part of habitat quality map evaluation.
Partridge_Base * first_member
CfgInt cfg_BeetleBankMaxX
CfgBool cfg_ReallyBigOutput_used
int Supply_m_Location_y()
void ObjectLoopInit(int ob_type)
Data structure of a message.
CfgInt cfg_nest_hedgebank2
Nesting quality for hedgebank type 2.
Double configurator entry class.
void FillInFoodArray()
Precalculated food values with age.
void CreateCloneObjects(int ob_type, AdultPartridge_struct *as)
static CfgInt cfg_ParShootStartYear("PAR_SHOOTSTARTYEAR", CFG_CUSTOM, 1)
First year with hunting.
void setNoMalesAug(int nm)
bool m_ShouldFlock
Flag for flocking or not.
void setNoOldMales(int nm)
Partridge_Clutch * m_clutch
void FloatToDouble(double &, float)
static CfgInt cfg_ParHuntingThreshold("PAR_HUNTINGTHRESHOLD", CFG_CUSTOM, 1)
Number of birds at which hunting starts.
void WriteParFlocks(int a_min, int a_size, int a_young)
Output method.
void setNoFemsAug(int nf)
void UpdateNestingCoverMap()
bool ArePaired()
Debug method.
virtual void TheAOROutputProbe()
Output method.
CfgInt cfg_nest_hedgebank1
Nesting quality for hedgebank type 1.
virtual void TheRipleysOutputProbe(FILE *a_prb)
Output method.
void AddToChicks6wks(int ch)
void CreateInfoDatabaseFile()
double GetNestingCoverDensity(int x, int y)
void StartBreedingBehaviour(void)
Message handler.
void WriteParAdMort(int a_min, int a_age, int a_sex, int a_cause)
Output method.
bool CoveyDissolveWeather()
void DoMaleSanityCheck()
Debug only.
virtual void DoFirst()
Utility method called before BeginStep.
void SetAge(int a_age)
Set age.
CfgBool cfg_BeetleBankInvert
The partridge Chick2 class.
void setNoFemalesDec(int n)
const char * m_ListNames[32]
double EvalHabitatQual(TTypesOfLandscapeElement a_cet, int a_poly)
Part of habitat quality map evaluation.
CfgInt cfg_par_male_gives_up
Latest date a male will mate search.
void Warn(std::string a_msg1, std::string a_msg2)
Partridge_Covey * m_neighbourlist[50]
List of coveys close to this covey.
void WriteParNoB(int a_min, int a_nob)
Output method.
void SetFemalesInApril(double fa)
int SupplyPolyRef(int a_x, int a_y)
int GetAge(void)
Supply age.
int m_Starved
No starvation events.
long SupplyGlobalDate(void)
void SetNonTerritorialFemalesInMay(int nf)
int SupplyElementSubType(int a_polyref)
CfgInt cfg_BeetleBankMinX
CfgInt cfg_pm_eventfrequency
static CfgInt cfg_kfactoroutput_date("PAR_KFACTOROUTPUT_DATE", CFG_CUSTOM, 90)
Probe date.
void setNoChick2sAug(int ch)
void AddObject(int ob_type, TAnimal *pTAo)
static CfgFloat cfg_HindranceScalingFactor("PAR_HINDRANCE_SCALING", CFG_CUSTOM, 1000)
Used to scale biomass hindrance.
static CfgFloat cfg_par_energyslope_perday("PAR_ENERGYSLOPE_PERDAY", CFG_CUSTOM, 1.06)
Slope of linear increase in energy needs of chicks.