summaryrefslogtreecommitdiffstats
path: root/src/Streaming.h
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2019-06-26 16:49:32 +0200
committeraap <aap@papnet.eu>2019-06-26 16:49:32 +0200
commita91f40e79daff5ecf620fe892b0ddc30da6a2895 (patch)
treec03e68620b278a4e9c3f11692b3bacb1fc5cb5c0 /src/Streaming.h
parentfixed bug in CPed (diff)
downloadre3-a91f40e79daff5ecf620fe892b0ddc30da6a2895.tar
re3-a91f40e79daff5ecf620fe892b0ddc30da6a2895.tar.gz
re3-a91f40e79daff5ecf620fe892b0ddc30da6a2895.tar.bz2
re3-a91f40e79daff5ecf620fe892b0ddc30da6a2895.tar.lz
re3-a91f40e79daff5ecf620fe892b0ddc30da6a2895.tar.xz
re3-a91f40e79daff5ecf620fe892b0ddc30da6a2895.tar.zst
re3-a91f40e79daff5ecf620fe892b0ddc30da6a2895.zip
Diffstat (limited to '')
-rw-r--r--src/Streaming.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/Streaming.h b/src/Streaming.h
index 62d0c2fb..571a7194 100644
--- a/src/Streaming.h
+++ b/src/Streaming.h
@@ -24,14 +24,14 @@ enum StreamLoadState
STREAMSTATE_NOTLOADED = 0,
STREAMSTATE_LOADED = 1,
STREAMSTATE_INQUEUE = 2,
- STREAMSTATE_READING = 3, // what is this?
- STREAMSTATE_STARTED = 4, // first part read
+ STREAMSTATE_READING = 3, // channel is reading
+ STREAMSTATE_STARTED = 4, // first part loaded
};
enum ChannelState
{
CHANNELSTATE_IDLE = 0,
- CHANNELSTATE_UNK1 = 1,
+ CHANNELSTATE_READING = 1,
CHANNELSTATE_STARTED = 2,
CHANNELSTATE_ERROR = 3,
};
@@ -53,6 +53,7 @@ public:
void AddToList(CStreamingInfo *link);
void RemoveFromList(void);
uint32 GetCdSize(void) { return m_size; }
+ bool IsPriority(void) { return !!(m_flags & STREAMFLAGS_PRIORITY); }
};
struct CStreamingChannel
@@ -63,7 +64,7 @@ struct CStreamingChannel
int32 field24;
int32 position;
int32 size;
- int32 field30;
+ int32 numTries;
int32 status; // from CdStream
};
@@ -83,7 +84,7 @@ public:
static CStreamingInfo &ms_endRequestedList;
static int32 &ms_oldSectorX;
static int32 &ms_oldSectorY;
- static uint32 &ms_streamingBufferSize;
+ static int32 &ms_streamingBufferSize;
static int8 **ms_pStreamingBuffer; //[2]
static int32 &ms_memoryUsed;
static CStreamingChannel *ms_channel; //[2]
@@ -118,6 +119,7 @@ public:
static void RequestIslands(eLevelName level);
static void RequestSpecialModel(int32 modelId, const char *modelName, int32 flags);
static void RequestSpecialChar(int32 charId, const char *modelName, int32 flags);
+ static void DecrementRef(int32 id);
static void RemoveModel(int32 id);
static void RemoveTxd(int32 id) { RemoveModel(id + STREAM_OFFSET_TXD); }
static void RemoveUnusedBuildings(eLevelName level);
@@ -139,12 +141,14 @@ public:
static void SetModelTxdIsDeletable(int32 id);
static void SetMissionDoesntRequireModel(int32 id);
+ static int32 GetCdImageOffset(int32 lastPosn);
static int32 GetNextFileOnCd(int32 position, bool priority);
- static bool ProcessLoadingChannel(int32 ch);
static void RequestModelStream(int32 ch);
+ static bool ProcessLoadingChannel(int32 ch);
+ static void LoadRequestedModels(void);
+ static void LoadAllRequestedModels(bool priority);
static void FlushChannels(void);
static void FlushRequestList(void);
- static int32 GetCdImageOffset(int32 lastPosn);
static void MakeSpaceFor(int32 size);
static void ImGonnaUseStreamingMemory(void);