}; // // Animation locations for episode 0 (1). // Using patches saves a lot of space, // as they replace 320x200 full screen frames. // #define ANIM(type, period, nanims, x, y, nexttic) \ { (type), (period), (nanims), { (x), (y) }, (nexttic), \ 0, { NULL, NULL, NULL }, 0, 0, 0, 0 } static anim_t epsd0animinfo[] = { ANIM(ANIM_ALWAYS, TICRATE / 3, 3, 224, 104, 0), ANIM(ANIM_ALWAYS, TICRATE / 3, 3, 184, 160, 0), ANIM(ANIM_ALWAYS, TICRATE / 3, 3, 112, 136, 0), ANIM(ANIM_ALWAYS, TICRATE / 3, 3, 72, 112, 0), ANIM(ANIM_ALWAYS, TICRATE / 3, 3, 88, 96, 0), ANIM(ANIM_ALWAYS, TICRATE / 3, 3, 64, 48, 0), ANIM(ANIM_ALWAYS, TICRATE / 3, 3, 192, 40, 0), ANIM(ANIM_ALWAYS, TICRATE / 3, 3, 136, 16, 0), ANIM(ANIM_ALWAYS, TICRATE / 3, 3, 80, 16, 0), ANIM(ANIM_ALWAYS, TICRATE / 3, 3, 64, 24, 0), }; static anim_t epsd1animinfo[] = { ANIM(ANIM_LEVEL, TICRATE / 3, 1, 128, 136, 1), ANIM(ANIM_LEVEL, TICRATE / 3, 1, 128, 136, 2),
#include "anim.h" const struct anim animations[] = { ANIM(ANIM_P1_MOVE_N, 40, 4), ANIM(ANIM_P1_MOVE_NW, 64, 4), ANIM(ANIM_P1_MOVE_W, 48, 4), ANIM(ANIM_P1_MOVE_SW, 60, 4), ANIM(ANIM_P1_MOVE_S, 44, 4), ANIM(ANIM_P1_MOVE_SO, 56, 4), ANIM(ANIM_P1_MOVE_O, 52, 4), ANIM(ANIM_P1_MOVE_NO, 68, 4), ANIM(ANIM_P1_DIE, 80, 8), ANIM(ANIM_P1_THROW_N, 72, 1), ANIM(ANIM_P1_THROW_NW, 78, 1), ANIM(ANIM_P1_THROW_W, 74, 1), ANIM(ANIM_P1_THROW_SW, 77, 1), ANIM(ANIM_P1_THROW_S, 73, 1), ANIM(ANIM_P1_THROW_SO, 76, 1), ANIM(ANIM_P1_THROW_O, 75, 1), ANIM(ANIM_P1_THROW_NO, 79, 1), ANIM(ANIM_P2_MOVE_N, 0, 4), ANIM(ANIM_P2_MOVE_NW, 24, 4), ANIM(ANIM_P2_MOVE_W, 8, 4), ANIM(ANIM_P2_MOVE_SW, 20, 4), ANIM(ANIM_P2_MOVE_S, 4, 4), ANIM(ANIM_P2_MOVE_SO, 16, 4), ANIM(ANIM_P2_MOVE_O, 12, 4), ANIM(ANIM_P2_MOVE_NO, 28, 4), ANIM(ANIM_P2_DIE, 88, 4), // FIXME: the last 4 sprites are from ANIM_P1_DIE, so it's actually 8 ANIM(ANIM_P2_THROW_N, 32, 1), ANIM(ANIM_P2_THROW_NW, 38, 1),