diff --git a/src/engine/command.cc b/src/engine/command.cc index 8fd7099..dbb9076 100644 --- a/src/engine/command.cc +++ b/src/engine/command.cc @@ -3,6 +3,8 @@ #include "command.hh" +#include + #include #include diff --git a/src/engine/texture.cc b/src/engine/texture.cc index a04e210..596d2d0 100644 --- a/src/engine/texture.cc +++ b/src/engine/texture.cc @@ -8,6 +8,7 @@ #include #include +#include #include "command.hh" // identflags #include "console.hh" /* conoutf */ @@ -1479,7 +1480,7 @@ static SDL_Surface *loadsurface(const char *name) stream *z = openzipfile(name, "rb"); if(z) { - SDL_RWops *rw = z->rwops(); + SDL_RWops *rw = stream_rwops(z); if(rw) { const char *ext = strrchr(name, '.'); @@ -3869,12 +3870,12 @@ static void saveimage(const char *filename, int format, ImageData &image, bool f switch(format) { case IMG_JPG: #if SDL_IMAGE_VERSION_ATLEAST(2, 0, 2) - IMG_SaveJPG_RW(s, f->rwops(), 1, screenshotquality); + IMG_SaveJPG_RW(s, stream_rwops(f), 1, screenshotquality); #else conoutf(CON_ERROR, "JPG screenshot support requires SDL_image 2.0.2"); #endif break; - default: SDL_SaveBMP_RW(s, f->rwops(), 1); break; + default: SDL_SaveBMP_RW(s, stream_rwops(f), 1); break; } delete f; } diff --git a/src/sauerlib/tools.hh b/src/sauerlib/tools.hh index 903325b..d511c8e 100644 --- a/src/sauerlib/tools.hh +++ b/src/sauerlib/tools.hh @@ -11,7 +11,6 @@ #include -#include #include typedef unsigned char uchar; @@ -1211,10 +1210,6 @@ struct stream template T get() { T n; return read(&n, sizeof(n)) == sizeof(n) ? n : 0; } template T getlil() { return lilswap(get()); } template T getbig() { return bigswap(get()); } - -#ifndef STANDALONE - SDL_RWops *rwops(); -#endif }; template diff --git a/src/shared/rwops.hh b/src/shared/rwops.hh new file mode 100644 index 0000000..31e806d --- /dev/null +++ b/src/shared/rwops.hh @@ -0,0 +1,10 @@ +#ifndef SHARED_RWOPS_HH +#define SHARED_RWOPS_HH + +#include + +#include "tools.hh" + +SDL_RWops *stream_rwops(stream *s); + +#endif diff --git a/src/shared/stream.cc b/src/shared/stream.cc index fdea9b1..62c258d 100644 --- a/src/shared/stream.cc +++ b/src/shared/stream.cc @@ -1,5 +1,7 @@ #include +#include + #include #include "command.hh" @@ -566,11 +568,11 @@ static int rwopsclose(SDL_RWops *rw) return 0; } -SDL_RWops *stream::rwops() +SDL_RWops *stream_rwops(stream *s) { SDL_RWops *rw = SDL_AllocRW(); if(!rw) return nullptr; - rw->hidden.unknown.data1 = this; + rw->hidden.unknown.data1 = s; rw->seek = rwopsseek; rw->read = rwopsread; rw->write = rwopswrite;