Change rules to use cat in the actual underlying variables and by extension lua exports

This commit is contained in:
KimLS 2021-01-22 23:52:34 -08:00
parent a00ab6867c
commit 02518cdae1
3 changed files with 151 additions and 151 deletions

View File

@ -47,13 +47,13 @@ const char *RuleManager::s_categoryNames[_CatCount+1] = {
const RuleManager::RuleInfo RuleManager::s_RuleInfo[_IntRuleCount + _RealRuleCount + _BoolRuleCount + 1] = { const RuleManager::RuleInfo RuleManager::s_RuleInfo[_IntRuleCount + _RealRuleCount + _BoolRuleCount + 1] = {
/* this is done in three steps so we can reliably get to them by index*/ /* this is done in three steps so we can reliably get to them by index*/
#define RULE_INT(cat, rule, default_value, notes) \ #define RULE_INT(cat, rule, default_value, notes) \
{ #cat ":" #rule, Category__##cat, IntRule, Int__##rule, notes }, { #cat ":" #rule, Category__##cat, IntRule, Int__##cat__##rule, notes },
#include "ruletypes.h" #include "ruletypes.h"
#define RULE_REAL(cat, rule, default_value, notes) \ #define RULE_REAL(cat, rule, default_value, notes) \
{ #cat ":" #rule, Category__##cat, RealRule, Real__##rule, notes }, { #cat ":" #rule, Category__##cat, RealRule, Real__##cat__##rule, notes },
#include "ruletypes.h" #include "ruletypes.h"
#define RULE_BOOL(cat, rule, default_value, notes) \ #define RULE_BOOL(cat, rule, default_value, notes) \
{ #cat ":" #rule, Category__##cat, BoolRule, Bool__##rule, notes }, { #cat ":" #rule, Category__##cat, BoolRule, Bool__##cat__##rule, notes },
#include "ruletypes.h" #include "ruletypes.h"
{ "Invalid Rule", _CatCount, IntRule } { "Invalid Rule", _CatCount, IntRule }
}; };
@ -180,11 +180,11 @@ void RuleManager::ResetRules(bool reload) {
Log(Logs::Detail, Logs::Rules, "Resetting running rules to default values"); Log(Logs::Detail, Logs::Rules, "Resetting running rules to default values");
#define RULE_INT(cat, rule, default_value, notes) \ #define RULE_INT(cat, rule, default_value, notes) \
m_RuleIntValues[ Int__##rule ] = default_value; m_RuleIntValues[ Int__##cat__##rule ] = default_value;
#define RULE_REAL(cat, rule, default_value, notes) \ #define RULE_REAL(cat, rule, default_value, notes) \
m_RuleRealValues[ Real__##rule ] = default_value; m_RuleRealValues[ Real__##cat__##rule ] = default_value;
#define RULE_BOOL(cat, rule, default_value, notes) \ #define RULE_BOOL(cat, rule, default_value, notes) \
m_RuleBoolValues[ Bool__##rule ] = default_value; m_RuleBoolValues[ Bool__##cat__##rule ] = default_value;
#include "ruletypes.h" #include "ruletypes.h"
// restore these rules to their pre-reset values // restore these rules to their pre-reset values

View File

@ -30,11 +30,11 @@
//which makes it a global for now, but with instancing we will do exactly //which makes it a global for now, but with instancing we will do exactly
//what we do with the zone global and just make it a member of core classes //what we do with the zone global and just make it a member of core classes
#define RuleI(cat, rule) \ #define RuleI(cat, rule) \
RuleManager::Instance()->GetIntRule( RuleManager::Int__##rule ) RuleManager::Instance()->GetIntRule( RuleManager::Int__##cat__##rule )
#define RuleR(cat, rule) \ #define RuleR(cat, rule) \
RuleManager::Instance()->GetRealRule( RuleManager::Real__##rule ) RuleManager::Instance()->GetRealRule( RuleManager::Real__##cat__##rule )
#define RuleB(cat, rule) \ #define RuleB(cat, rule) \
RuleManager::Instance()->GetBoolRule( RuleManager::Bool__##rule ) RuleManager::Instance()->GetBoolRule( RuleManager::Bool__##cat__##rule )
#include <vector> #include <vector>
@ -50,21 +50,21 @@ public:
//generate our rule enums: //generate our rule enums:
typedef enum { typedef enum {
#define RULE_INT(cat, rule, default_value, notes) \ #define RULE_INT(cat, rule, default_value, notes) \
Int__##rule, Int__##cat__##rule,
#include "ruletypes.h" #include "ruletypes.h"
_IntRuleCount _IntRuleCount
} IntType; } IntType;
typedef enum { typedef enum {
#define RULE_REAL(cat, rule, default_value, notes) \ #define RULE_REAL(cat, rule, default_value, notes) \
Real__##rule, Real__##cat__##rule,
#include "ruletypes.h" #include "ruletypes.h"
_RealRuleCount _RealRuleCount
} RealType; } RealType;
typedef enum { typedef enum {
#define RULE_BOOL(cat, rule, default_value, notes) \ #define RULE_BOOL(cat, rule, default_value, notes) \
Bool__##rule, Bool__##cat__##rule,
#include "ruletypes.h" #include "ruletypes.h"
_BoolRuleCount _BoolRuleCount
} BoolType; } BoolType;

View File

@ -3520,17 +3520,17 @@ luabind::scope lua_register_rules_const() {
.enum_("constants") .enum_("constants")
[ [
#define RULE_INT(cat, rule, default_value, notes) \ #define RULE_INT(cat, rule, default_value, notes) \
luabind::value(#rule, RuleManager::Int__##rule), luabind::value(#cat #rule, RuleManager::Int__##cat__##rule),
#include "../common/ruletypes.h" #include "../common/ruletypes.h"
luabind::value("_IntRuleCount", RuleManager::_IntRuleCount), luabind::value("_IntRuleCount", RuleManager::_IntRuleCount),
#undef RULE_INT #undef RULE_INT
#define RULE_REAL(cat, rule, default_value, notes) \ #define RULE_REAL(cat, rule, default_value, notes) \
luabind::value(#rule, RuleManager::Real__##rule), luabind::value(#rule, RuleManager::Real__##cat__##rule),
#include "../common/ruletypes.h" #include "../common/ruletypes.h"
luabind::value("_RealRuleCount", RuleManager::_RealRuleCount), luabind::value("_RealRuleCount", RuleManager::_RealRuleCount),
#undef RULE_REAL #undef RULE_REAL
#define RULE_BOOL(cat, rule, default_value, notes) \ #define RULE_BOOL(cat, rule, default_value, notes) \
luabind::value(#rule, RuleManager::Bool__##rule), luabind::value(#rule, RuleManager::Bool__##cat__##rule),
#include "../common/ruletypes.h" #include "../common/ruletypes.h"
luabind::value("_BoolRuleCount", RuleManager::_BoolRuleCount) luabind::value("_BoolRuleCount", RuleManager::_BoolRuleCount)
]; ];