mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-16 08:10:32 +02:00
53 lines
1.9 KiB
C++
53 lines
1.9 KiB
C++
// Bot_weights.h
|
|
//
|
|
|
|
#define MAX_INVENTORYVALUE 999999
|
|
#define EVALUATERECURSIVELY
|
|
|
|
#define MAX_WEIGHT_FILES 128
|
|
#define MAX_FUZZY_OPERATORS 8192
|
|
|
|
class idBotFuzzyWeightManager
|
|
{
|
|
public:
|
|
// Init the fuzzy weight manager.
|
|
void Init( void );
|
|
|
|
// Parses a weight config file.
|
|
weightconfig_t* ReadWeightConfig( char* filename );
|
|
|
|
void BotShutdownWeights( void );
|
|
|
|
// Fuzzy Weight simulation functions.
|
|
int FindFuzzyWeight( weightconfig_t* wc, char* name );
|
|
float FuzzyWeight( int* inventory, weightconfig_t* wc, int weightnum );
|
|
float FuzzyWeightUndecided( int* inventory, weightconfig_t* wc, int weightnum );
|
|
void EvolveFuzzySeperator_r( fuzzyseperator_t* fs );
|
|
void EvolveWeightConfig( weightconfig_t* config );
|
|
void ScaleWeight( weightconfig_t* config, char* name, float scale );
|
|
void ScaleFuzzyBalanceRange( weightconfig_t* config, float scale );
|
|
void InterbreedWeightConfigs( weightconfig_t* config1, weightconfig_t* config2, weightconfig_t* configout );
|
|
void FreeWeightConfig( weightconfig_t* config );
|
|
private:
|
|
fuzzyseperator_t* AllocFuzzyWeight( void );
|
|
bool ReadValue( idParser& source, float* value );
|
|
int ReadFuzzyWeight( idParser& source, fuzzyseperator_t* fs );
|
|
|
|
int InterbreedFuzzySeperator_r( fuzzyseperator_t* fs1, fuzzyseperator_t* fs2, fuzzyseperator_t* fsout );
|
|
|
|
fuzzyseperator_t* ReadFuzzySeperators_r( idParser& source );
|
|
|
|
void FreeWeightConfig2( weightconfig_t* config );
|
|
void FreeFuzzySeperators_r( fuzzyseperator_t* fs );
|
|
|
|
void ScaleFuzzySeperatorBalanceRange_r( fuzzyseperator_t* fs, float scale );
|
|
|
|
void ScaleFuzzySeperator_r( fuzzyseperator_t* fs, float scale );
|
|
float FuzzyWeight_r( int* inventory, fuzzyseperator_t* fs );
|
|
float FuzzyWeightUndecided_r( int* inventory, fuzzyseperator_t* fs );
|
|
|
|
weightconfig_t weightFileList[MAX_WEIGHT_FILES];
|
|
fuzzyseperator_t fuzzyseperators[MAX_FUZZY_OPERATORS];
|
|
};
|
|
|
|
extern idBotFuzzyWeightManager botFuzzyWeightManager; |