diff --git a/server/cravings.cpp b/server/cravings.cpp index 4a9a076e..b2d7ecd3 100644 --- a/server/cravings.cpp +++ b/server/cravings.cpp @@ -11,6 +11,8 @@ Craving noCraving = { -1, -1, 0 }; +int eatEverythingModeEnabled = 0; + @@ -48,6 +50,11 @@ static Craving getRandomFood( int inLineageMaxFoodDepth, SimpleVector *allFoods = getAllPossibleFoodIDs(); + if( eatEverythingModeEnabled ) { + // everything can be eaten + allFoods = getAllPossibleNonPermanentIDs(); + } + SimpleVector possibleFoods; if( inLineageMaxFoodDepth > 0 ) { diff --git a/server/cravings.h b/server/cravings.h index f03136e5..6ff3ed02 100644 --- a/server/cravings.h +++ b/server/cravings.h @@ -9,6 +9,8 @@ typedef struct Craving { extern Craving noCraving; +extern int eatEverythingModeEnabled; + Craving getCravedFood( int inLineageEveID, int inPlayerGenerationNumber, diff --git a/server/server.cpp b/server/server.cpp index d0a2eb09..f184e162 100644 --- a/server/server.cpp +++ b/server/server.cpp @@ -7022,6 +7022,9 @@ int processLoggedInPlayer( char inAllowReconnect, eatEverythingMode = SettingsManager::getIntSetting( "eatEverythingMode", 0 ); + // change the setting from cravings + eatEverythingModeEnabled = eatEverythingMode; + numConnections ++;