static int _decode_effect_sequence(BITBUFFER *bb, BD_IG_EFFECT_SEQUENCE *p) { unsigned ii; p->num_windows = bb_read(bb, 8); p->window = calloc(p->num_windows, sizeof(BD_PG_WINDOW)); if (!p->window) { BD_DEBUG(DBG_DECODE | DBG_CRIT, "out of memory\n"); return 0; } for (ii = 0; ii < p->num_windows; ii++) { pg_decode_window(bb, &p->window[ii]); } p->num_effects = bb_read(bb, 8); p->effect = calloc(p->num_effects, sizeof(BD_IG_EFFECT)); if (!p->effect) { BD_DEBUG(DBG_DECODE | DBG_CRIT, "out of memory\n"); return 0; } for (ii = 0; ii < p->num_effects; ii++) { if (!_decode_effect(bb, &p->effect[ii])) { return 0; } } return 1; }
static void _decode_effect_sequence(BITBUFFER *bb, BD_IG_EFFECT_SEQUENCE *p) { unsigned ii; p->num_windows = bb_read(bb, 8); p->window = calloc(p->num_windows, sizeof(BD_PG_WINDOW)); for (ii = 0; ii < p->num_windows; ii++) { pg_decode_window(bb, &p->window[ii]); } p->num_effects = bb_read(bb, 8); p->effect = calloc(p->num_effects, sizeof(BD_IG_EFFECT)); for (ii = 0; ii < p->num_effects; ii++) { _decode_effect(bb, &p->effect[ii]); } }