rendered paste bodyvoid fronthandler(measure_t when, action_t action, Object *obj, void *data) {
if (action == PASS_AFTER) {
playSound(resourcetable[obj->resource()]);
removeSprite(obj);
} else if (action == PASS_BEFORE) {
addSprite(obj);
}
}
void rearhandler(measure_t when, action_t action, Object *obj, void *data) {
if (action == PASS_BEFORE) {
addSprite(obj);
} else if (action == PASS_AFTER) {
removeSprite(obj);
}
}
Pointer front(player, 0.0f), rear(player, 1.0f);
time_t time = getTicks();
front.addHandler(BMSNoteObject::group, &fronthandler, data);
rear.addHandler(BMSNoteObject::group, &rearhandler, data);
while (true) {
time_t newtime = getTicks();
timediff_t delta = newtime - time;
time = newtime;
front.advance(delta);
rear.advance(delta);
for (Player::iterator it = front.begin(); it != rear.end(); ++it) {
showSprite(*it); // or should use addSprite/removeSprite instead?
}
flushSprite();
}