From 67c0db506b443596f414aee707762d28a4c1bd23 Mon Sep 17 00:00:00 2001
From: Tim Felgentreff <timfelgentreff@gmail.com>
Date: Tue, 26 Apr 2022 23:35:59 +0200
Subject: [PATCH] support size in SDL_RWops from CFile

---
 src/stratagus/iolib.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/stratagus/iolib.cpp b/src/stratagus/iolib.cpp
index 9613327b5..6dc5cd93a 100644
--- a/src/stratagus/iolib.cpp
+++ b/src/stratagus/iolib.cpp
@@ -194,7 +194,12 @@ int CFile::printf(const char *format, ...)
 }
 
 static Sint64 sdl_size(SDL_RWops * context) {
-	return -1;
+	CFile *self = reinterpret_cast<CFile*>(context->hidden.unknown.data1);
+	long currentPosition = self->tell();
+	self->seek(0, SEEK_END);
+	long size = self->tell();
+	self->seek(currentPosition, SEEK_SET);
+	return size;
 }
 
 static Sint64 sdl_seek(SDL_RWops * context, Sint64 offset, int whence) {