#ifndef _RULESET_H_ #define _RULESET_H_ #include #include #include #include typedef struct _TetringoRuleSet TetringoRuleSet; typedef struct _TetringoRuleSetIface TetringoRuleSetIface; struct _TetringoRuleSetIface { GTypeInterface base_iface; guint (*get_num_pieces)(const TetringoRuleSet *ruleset); void (*calculate_pieces)(const TetringoRuleSet *ruleset, Piece **pieces); guint (*get_score_penalty)(const TetringoRuleSet *ruleset); guint (*get_piece_time_total)(const TetringoRuleSet *ruleset); guint (*check_matches)(const TetringoRuleSet *ruleset, TetringoBoard *board, guint cur_score); }; #define TETRINGO_TYPE_RULESET (tetringo_ruleset_get_type()) #define TETRINGO_RULESET(obj) \ (G_TYPE_CHECK_INSTANCE_CAST((obj), TETRINGO_TYPE_RULESET, TetringoRuleSet)) #define TETRINGO_RULESET_IFACE(klass) \ (G_TYPE_CHECK_CLASS_CAST((klass), TETRINGO_TYPE_RULESET, TetringoRuleSetIface)) #define TETRINGO_IS_RULESET(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE((obj), TETRINGO_TYPE_RULESET)) #define TETRINGO_IS_RULESET_IFACE(klass) \ (G_TYPE_CHECK_IFACE_TYPE((klass), TETRINGO_TYPE_RULESET)) #define TETRINGO_RULESET_GET_IFACE(obj) \ (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TETRINGO_TYPE_RULESET, TetringoRuleSetIface)) GType tetringo_ruleset_get_type(void); guint tetringo_ruleset_get_num_pieces(const TetringoRuleSet *ruleset); void tetringo_ruleset_calculate_pieces(const TetringoRuleSet *ruleset, Piece **pieces); guint tetringo_ruleset_get_score_penalty(const TetringoRuleSet *ruleset); guint tetringo_ruleset_get_piece_time_total(const TetringoRuleSet *ruleset); guint tetringo_ruleset_check_matches(const TetringoRuleSet *ruleset, TetringoBoard *board, guint cur_score); #endif /* _RULESET_H_ */