static bool physics_in (struct anim *k) { struct coord nc; struct pos np, pbf, pmbo, pbb; /* collision */ if (is_colliding (&k->f, &k->fo, +12, true, &k->ci) && k->i == 0) { kid_sword_normal (k); return false; } /* fall */ survey (_bf, pos, &k->f, &nc, &pbf, &np); survey (_mbo, pos, &k->f, &nc, &pmbo, &np); survey (_bb, pos, &k->f, &nc, &pbb, &np); if ((is_strictly_traversable (&pbf) || is_strictly_traversable (&pmbo) || is_strictly_traversable (&pbb))) { k->xf.b = NULL; kid_fall (k); return false; } return true; }
static bool flow (struct anim *k) { if (k->oaction != kid_sword_hit) { k->i = -1; k->j = 0; } if (k->i == 4) { kid_sword_normal (k); return false; } select_frame (k, kid_sword_hit_frameset, k->i + 1); if (k->i == 0) k->j = 28; if (k->i == 1) k->j = 32; if (k->i == 2) k->j = 29; if (k->i == 3) k->j = 7; if (k->i == 4) k->j = 17; select_xframe (&k->xf, sword_frameset, k->j); if (k->i == 0) k->xf.dx = -12, k->xf.dy = +2; if (k->i == 1) k->xf.dy += -2; return true; }
static bool flow (struct anim *k) { if (k->oaction != kid_sword_walkf) k->i = -1; if (k->i == 1) { kid_sword_normal (k); return false; } select_frame (k, kid_sword_walkf_frameset, k->i + 1); select_xframe (&k->xf, sword_frameset, 13); if (k->i == 0) k->xf.dx = -19; if (k->i == 1) k->xf.dx = -21; return true; }
static bool flow (struct anim *k) { if (k->oaction != kid_sword_defense) k->i = -1; struct anim *ke = get_anim_by_id (k->enemy_id); if (k->i == 2) { kid_sword_attack (k); return false; } else if (k->i == 1 && ke && ke->attack_defended == 2 && ke->counter_attacked != 2) { kid_sword_walkb (k); return false; } else if (k->i == 1 && ! (ke && ke->attack_defended == 2)) { kid_sword_normal (k); return false; } if (k->oaction == kid_sword_attack) { select_frame (k, kid_sword_walkb_frameset, 0); k->j = 10; } else if (k->f.b == kid_sword_walkb_frameset[0].frame) { select_frame (k, kid_sword_defense_frameset, 1); k->fo.dx += 7; k->j = 14; } else { select_frame (k, kid_sword_defense_frameset, k->i + 1); if (k->i == 0) k->j = 28; if (k->i == 1) k->j = 14; if (k->i == 2) k->j = 15; } select_xframe (&k->xf, sword_frameset, k->j); if (k->oaction == kid_sword_attack) k->fo.dx += +2; /* if (k->id == 0) */ /* printf ("kid_sword_defense: k->i = %i, k->fo.dx = %i\n", */ /* k->i, k->fo.dx); */ return true; }
static bool flow (struct anim *k) { if (k->oaction != kid_sword_walkb) k->i = -1; if (k->i == 1) { kid_sword_normal (k); return false; } if (k->i == -1) k->j = 10; if (k->i == 0) k->j = 17; if (k->f.b == kid_sword_attack_frameset[5].frame) k->i = 0; select_frame (k, kid_sword_walkb_frameset, k->i + 1); select_xframe (&k->xf, sword_frameset, k->j); return true; }