X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fcommon%2Fwadres.c;h=88583b78ece81075a003012b3c704177ced50cba;hb=65130d9f6581e4bd39ceae50d820c9774e4972a9;hp=99524cc1ed81ff2725e05221799f6151f6cf1a46;hpb=10bdd396f0cd0ff1fc0a504cd41949ff39937b30;p=flatwaifu.git diff --git a/src/common/wadres.c b/src/common/wadres.c index 99524cc..88583b7 100644 --- a/src/common/wadres.c +++ b/src/common/wadres.c @@ -14,18 +14,18 @@ typedef struct Entry { static int n_wads; static int n_resources; -static Reader *wads[MAX_WADS]; +static Stream *wads[MAX_WADS]; static Entry resources[MAX_RESOURCES]; -static int check_header (Reader *r) { +static int check_header (Stream *r) { assert(r != NULL); char ident[4]; - r->setpos(r, 0); + stream_setpos(r, 0); // !!! stream_read(ident, 4, 1, r); return (memcmp(ident, "IWAD", 4) == 0) || (memcmp(ident, "PWAD", 4) == 0); } -int WADRES_addwad (Reader *r) { +int WADRES_addwad (Stream *r) { assert(r != NULL); if (n_wads < MAX_WADS && check_header(r)) { wads[n_wads] = r; @@ -52,11 +52,11 @@ static int WADRES_addresource (const Entry *e) { return -1; } -static int WADRES_read (Reader *r) { - r->setpos(r, 4); // skip magic +static int WADRES_read (Stream *r) { + stream_setpos(r, 4); // skip magic int32_t n = stream_read32(r); int32_t dir = stream_read32(r); - r->setpos(r, dir); + stream_setpos(r, dir); int ok = 1; for (int32_t i = 0; ok && i < n; ++i) { Entry e; @@ -90,7 +90,7 @@ int WADRES_maxids (void) { return n_resources; } -Reader *WADRES_getbasereader (int id) { +Stream *WADRES_getbasereader (int id) { assert(id >= 0 && id < n_resources); return wads[resources[id].f]; } @@ -112,9 +112,9 @@ void WADRES_getname (int id, char *name) { void WADRES_getdata (int id, void *data) { assert(id >= 0 && id < n_resources); - Reader *r = wads[resources[id].f]; - long pos = r->getpos(r); - r->setpos(r, resources[id].offset); + Stream *r = wads[resources[id].f]; + long pos = stream_getpos(r); + stream_setpos(r, resources[id].offset); stream_read(data, resources[id].size, 1, r); - r->setpos(r, pos); + stream_setpos(r, pos); }