/* * Abuse - dark 2D side-scrolling platform game * Copyright (c) 1995 Crack dot Com * * This software was released into the Public Domain. As with most public * domain software, no warranty is made or implied by Crack dot Com or * Jonathan Clark. */ #ifndef __SEQUENCE_HPP_ #define __SEQUENCE_HPP_ #include "image.hpp" #include "items.hpp" #include "timage.hpp" #include "cache.hpp" #include class sequence { int total; int *seq; // array of ids to figures public : // takes a varible number of arguments (ints) specifing indexes into image array sequence(int *figures, int total_frames) { total=total_frames; seq=figures; } sequence(char *filename, void *pict_list, void *advance_list); int next_frame(short ¤t) { current++; if (current>=total) { current=0; return 0; } return 1; } int last_frame(short ¤t) { current--; if (current<0) { current=total-1; return 0; } return 1; } trans_image *get_frame(short current, int direction) { if (direction>0) return cash.fig(seq[current])->forward; else return cash.fig(seq[current])->backward; } figure *get_figure(short current) { return cash.fig(seq[current]); } int cache_in(); int x_center(short current) { return (short) (cash.fig(seq[current])->xcfg); } int length() { return total; } int get_advance(int current) { return cash.fig(seq[current])->advance; } int size(); ~sequence(); }; #endif