/** * This is the include file to deal with the nomic system for the * player council. * @author Pinkfish * @started Fri Jun 23 20:10:40 PDT 2000 */ #ifndef __NOMIC_SYSTEM__ /** @ignore yes */ #define __NOMIC_SYSTEM__ /** * This is the class to handle ammendments to the rule * @member ammender the person doing the ammendments * @member text the text of the ammendment * @member date_ammended when it was ammended */ class nomic_ammendment { string ammender; string text; int date_ammended; } /** * The information on nomic rules. * @member id the id of the rule (unique) * @member date_create when the rule was created * @member creator who created the rule * @member text the text of the rule * @member ammendments the ammendments to the rule */ class nomic_rule { int id; int date_created; string creator; string text; class nomic_ammendment* ammendments; } /** * The information needed for each nomic area. * @member new_type_num the next numbers to use in each type area * @member rules the rules for the area */ class nomic_area { int* new_type_num; class nomic_rule* rules; } /** * This method sets up a new nomic rule for someone to vote on. * @member type the type of the new rule * @member rule the new rule (or ammended rule) * @member new_rule_type if the rule typ eis to change types, this is the new * type * @member comments any comments associated with the rule * @member yes_votes the current set of yes votes * @member no_votes the current set of no votes * @member voted the current bunch of people that have voted * @member state the state of the current rule * @member date_added the date this new rule discussion was added * @member date_event the date of the last state change event */ class new_nomic_rule { int type; class nomic_rule rule; int new_rule_type; string* comments; int yes_votes; int no_votes; string* voted; int state; int date_added; int date_event; } /** * This is the default set of types for the nomic system. */ #define NOMIC_DEFAULT_TYPE_NUMS ({ 100, 300, 2000 }) /** * The immutable rule type. Effects everyone. */ #define NOMIC_TYPE_IMMUTABLE 0 /** * The general rule type. Effects everyone. */ #define NOMIC_TYPE_GENERAL 1 /** * The citizen rule type. Only effects citizens. */ #define NOMIC_TYPE_CITIZEN 2 /** * The error define for nomic functions. */ #define NOMIC_ERROR -1 /** * This sets up the type of the new rule to be a real new rule. */ #define NOMIC_TYPE_RULE_ADD 1 /** * This changes the text of the rule. Ammends it. */ #define NOMIC_TYPE_RULE_AMMEND 2 /** * This moves the rule type from one rule set to another. */ #define NOMIC_TYPE_RULE_MOVE 3 /** * This is the state for when it is being looked at by the council. */ #define NOMIC_STATE_COUNCIL_REVIEW 1 /** * This is the state for when it is being voted on by the council. */ #define NOMIC_STATE_COUNCIL_VOTE 2 /** * This is the state for when it is being voted on by the citizens. */ #define NOMIC_STATE_CITIZEN_VOTE 3 #endif