aboutsummaryrefslogtreecommitdiff
path: root/saga
diff options
context:
space:
mode:
authorEugene Sandulenko2004-05-03 23:06:57 +0000
committerEugene Sandulenko2004-05-03 23:06:57 +0000
commit51801dc503f045dd6a79211db7696202fe978e7e (patch)
treec443e62a4e2e175a7bb81dc54fd389798d1311d5 /saga
parentce03b7635fe70dc58587dd46b83191d4a334f2d3 (diff)
downloadscummvm-rg350-51801dc503f045dd6a79211db7696202fe978e7e.tar.gz
scummvm-rg350-51801dc503f045dd6a79211db7696202fe978e7e.tar.bz2
scummvm-rg350-51801dc503f045dd6a79211db7696202fe978e7e.zip
Started work on moving from ys_read/write to MemoryReadStream
svn-id: r13769
Diffstat (limited to 'saga')
-rw-r--r--saga/actionmap.cpp23
-rw-r--r--saga/actor.cpp8
-rw-r--r--saga/saga.h3
3 files changed, 17 insertions, 17 deletions
diff --git a/saga/actionmap.cpp b/saga/actionmap.cpp
index 506cf78a2b..9bdab9fa21 100644
--- a/saga/actionmap.cpp
+++ b/saga/actionmap.cpp
@@ -22,7 +22,7 @@
*/
/* Action map module */
-
+#include "saga.h"
#include "reinherit.h"
#include "yslib.h"
@@ -57,16 +57,13 @@ namespace Saga {
int exit_ct;
int i, pt;
- const byte *read_p = exmap_res;
- size_t read_len = exmap_res_len;
-
assert(ActmapModule.init);
assert(exmap_res != NULL);
- (void)read_len;
+ MemoryReadStream *exmapStream = new MemoryReadStream(exmap_res, exmap_res_len);
// Load exits
- exit_ct = ys_read_s16_le(read_p, &read_p);
+ exit_ct = exmapStream->readSint16LE();
if (exit_ct < 0) {
return R_FAILURE;
}
@@ -78,12 +75,12 @@ namespace Saga {
}
for (i = 0; i < exit_ct; i++) {
- exmap_entry[i].unknown00 = ys_read_s16_le(read_p, &read_p);
- exmap_entry[i].unknown02 = ys_read_s16_le(read_p, &read_p);
- exmap_entry[i].exit_scene = ys_read_s16_le(read_p, &read_p);
- exmap_entry[i].unknown06 = ys_read_s16_le(read_p, &read_p);
+ exmap_entry[i].unknown00 = exmapStream->readSint16LE();
+ exmap_entry[i].unknown02 = exmapStream->readSint16LE();
+ exmap_entry[i].exit_scene = exmapStream->readSint16LE();
+ exmap_entry[i].unknown06 = exmapStream->readSint16LE();
- exmap_entry[i].pt_count = ys_read_s16_le(read_p, &read_p);
+ exmap_entry[i].pt_count = exmapStream->readSint16LE();
if (exmap_entry[i].pt_count < 0) {
free(exmap_entry);
return R_FAILURE;
@@ -96,8 +93,8 @@ namespace Saga {
}
for (pt = 0; pt < exmap_entry[i].pt_count; pt++) {
- exmap_pt_tbl[pt].x = ys_read_s16_le(read_p, &read_p);
- exmap_pt_tbl[pt].y = ys_read_s16_le(read_p, &read_p);
+ exmap_pt_tbl[pt].x = exmapStream->readSint16LE();
+ exmap_pt_tbl[pt].y = exmapStream->readSint16LE();
}
exmap_entry[i].pt_tbl = exmap_pt_tbl;
diff --git a/saga/actor.cpp b/saga/actor.cpp
index 688bd2f8f9..d9793e5d03 100644
--- a/saga/actor.cpp
+++ b/saga/actor.cpp
@@ -654,7 +654,6 @@ R_ACTOR *LookupActor(int index) {
int LoadActorSpriteIndex(R_ACTOR * actor, int si_rn, int *last_frame_p) {
byte *res_p;
size_t res_len;
- const byte *read_p;
int s_action_ct;
R_ACTORACTION *action_p;
int last_frame;
@@ -667,11 +666,12 @@ int LoadActorSpriteIndex(R_ACTOR * actor, int si_rn, int *last_frame_p) {
return R_FAILURE;
}
- read_p = res_p;
s_action_ct = res_len / 16;
R_printf(R_STDOUT, "Sprite resource contains %d sprite actions.\n", s_action_ct);
action_p = (R_ACTORACTION *)malloc(sizeof(R_ACTORACTION) * s_action_ct);
+ MemoryReadStream *resStream = new MemoryReadStream(res_p, res_len);
+
if (action_p == NULL) {
R_printf(R_STDERR, "Couldn't allocate memory for sprite actions.\n");
RSC_FreeResource(res_p);
@@ -683,8 +683,8 @@ int LoadActorSpriteIndex(R_ACTOR * actor, int si_rn, int *last_frame_p) {
for (i = 0; i < s_action_ct; i++) {
for (orient = 0; orient < 4; orient++) {
// Load all four orientations
- action_p[i].dir[orient].frame_index = ys_read_u16_le(read_p, &read_p);
- action_p[i].dir[orient].frame_count = ys_read_u16_le(read_p, &read_p);
+ action_p[i].dir[orient].frame_index = resStream->readUint16LE();
+ action_p[i].dir[orient].frame_count = resStream->readUint16LE();
if (action_p[i].dir[orient].frame_index > last_frame) {
last_frame = action_p[i].dir[orient].frame_index;
}
diff --git a/saga/saga.h b/saga/saga.h
index a049d120c2..f792e63c29 100644
--- a/saga/saga.h
+++ b/saga/saga.h
@@ -29,6 +29,7 @@
#include "base/engine.h"
#include "base/gameDetector.h"
#include "common/util.h"
+#include "common/stream.h"
#include <limits.h>
#include <stddef.h>
@@ -41,6 +42,8 @@ class SndRes;
class Sound;
class Music;
+typedef Common::MemoryReadStream MemoryReadStream;
+
#define R_PBOUNDS(n,max) (((n)>=(0))&&((n)<(max)))
enum SAGAGameId {