combostr
struct combostr *cbp = &frames[fi];
const struct combostr *fa = &frames[fia];
struct combostr *c_next; /* list of combos at the same level */
struct combostr *c_prev; /* list of combos at the same level */
struct combostr *c_link[2]; /* F: NULL,
struct combostr *e_combo; /* the whole combo */
extern struct combostr frames[FAREA]; /* storage for single frames */
extern struct combostr *sortframes[2]; /* sorted, non-empty frames */
void clearcombo(struct combostr *, int);
void markcombo(struct combostr *);
void printcombo(struct combostr *, char *, size_t);
struct combostr *cbp;
struct combostr frames[FAREA]; /* storage for all frames */
struct combostr *sortframes[2]; /* sorted list of non-empty frames */
struct combostr *cbp = &frames[fsp->s_frame[r]];
struct combostr *cbp1 = sortframes[us];
sortframes_remove(struct combostr *cbp)
appendcombo(struct combostr *cbp)
struct combostr *pcbp, *ncbp;
checkframes(struct combostr *cbp, struct combostr *fcbp, struct spotstr *osp,
struct combostr *tcbp, *lcbp;
sortcombo(struct combostr **scbpp, struct combostr **cbpp,
struct combostr *fcbp)
struct combostr **spp, **cpp;
struct combostr *cbp, *ecbp;
fcbp = (void *)((char *)scbpp - sizeof(struct combostr));
fcbp = (void *)((char *)scbpp - sizeof(struct combostr));
printcombo(struct combostr *cbp, char *buf, size_t max)
struct combostr *tcbp;
markcombo(struct combostr *ocbp)
struct combostr *cbp, **cbpp;
clearcombo(struct combostr *cbp, int open)
struct combostr *tcbp;
struct combostr *ecbp;
struct combostr *cbp = sortframes[color];
struct combostr *ncbp;
makecombo2(struct combostr *ocbp, struct spotstr *osp, u_char off, u_short cv)
struct combostr *ncbp;
struct combostr **scbpp, *fcbp;
ncbp = (struct combostr *)malloc(sizeof(struct combostr) +
2 * sizeof(struct combostr *));
struct combostr *cbp, *ecbp;
struct combostr **cbpp, *pcbp;
static struct combostr *hashcombos[FAREA];/* hash list for finding duplicates */
static struct combostr *sortcombos; /* combos at higher levels */
makecombo(struct combostr *ocbp, struct spotstr *osp, u_char off, u_short cv)
struct combostr *cbp;
struct combostr **scbpp;
struct combostr *ncbp = malloc(sizeof(struct combostr) +
(cbp->c_nframes + 1) * sizeof(struct combostr *));
static void makecombo2(struct combostr *, struct spotstr *, u_char, u_short);
static void makecombo(struct combostr *, struct spotstr *, u_char, u_short);
static void appendcombo(struct combostr *);
static void updatecombo(struct combostr *, player_color);
static void makeempty(struct combostr *);
static int checkframes(struct combostr *, struct combostr *, struct spotstr *,
static struct combostr *ecombo[MAXDEPTH]; /* separate from elist to save space */
makeempty(struct combostr *ocbp)
static bool sortcombo(struct combostr **, struct combostr **, struct combostr *);
struct combostr *cbp, **cbpp;
static void printcombo(struct combostr *, char *, size_t);
updatecombo(struct combostr *cbp, player_color color)
struct combostr *tcbp;