aboutsummaryrefslogtreecommitdiff
path: root/sword1/resman.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sword1/resman.cpp')
-rw-r--r--sword1/resman.cpp42
1 files changed, 22 insertions, 20 deletions
diff --git a/sword1/resman.cpp b/sword1/resman.cpp
index a40faab659..09699305d0 100644
--- a/sword1/resman.cpp
+++ b/sword1/resman.cpp
@@ -21,8 +21,6 @@
#include "stdafx.h"
#include "scummsys.h"
-#include <stdio.h>
-#include <stdlib.h>
#include "memman.h"
#include "resman.h"
#include "sworddefs.h"
@@ -30,6 +28,8 @@
#include "common/util.h"
#include "swordres.h"
+namespace Sword1 {
+
#define MAX_PATH_LEN 260
ResMan::ResMan(const char *resFile, MemMan *pMemoMan) {
@@ -48,27 +48,27 @@ void ResMan::loadCluDescript(const char *fileName) {
error("ResMan::loadCluDescript(): File %s not found!", fileName);
_prj.noClu = resFile.readUint32LE();
- _prj.clu = new BsClu*[_prj.noClu];
+ _prj.clu = new Clu*[_prj.noClu];
uint32 *cluIndex = (uint32*)malloc(_prj.noClu * 4);
resFile.read(cluIndex, _prj.noClu * 4);
for (uint32 clusCnt = 0; clusCnt < _prj.noClu; clusCnt++)
if (cluIndex[clusCnt]) {
- BsClu *cluster = _prj.clu[clusCnt] = new BsClu;
+ Clu *cluster = _prj.clu[clusCnt] = new Clu;
resFile.read(cluster->label, MAX_LABEL_SIZE);
cluster->noGrp = resFile.readUint32LE();
- cluster->grp = new BsGrp*[cluster->noGrp];
+ cluster->grp = new Grp*[cluster->noGrp];
uint32 *grpIndex = (uint32*)malloc(cluster->noGrp * 4);
resFile.read(grpIndex, cluster->noGrp * 4);
for (uint32 grpCnt = 0; grpCnt < cluster->noGrp; grpCnt++)
if (grpIndex[grpCnt]) {
- BsGrp *group = cluster->grp[grpCnt] = new BsGrp;
+ Grp *group = cluster->grp[grpCnt] = new Grp;
group->noRes = resFile.readUint32LE();
- group->resHandle = new BsMemHandle[group->noRes];
+ group->resHandle = new MemHandle[group->noRes];
group->offset = new uint32[group->noRes];
group->length = new uint32[group->noRes];
uint32 *resIdIdx = (uint32*)malloc(group->noRes * 4);
@@ -101,9 +101,9 @@ void ResMan::loadCluDescript(const char *fileName) {
void ResMan::freeCluDescript(void) {
for (uint32 clusCnt = 0; clusCnt < _prj.noClu; clusCnt++)
- if (BsClu *cluster = _prj.clu[clusCnt]) {
+ if (Clu *cluster = _prj.clu[clusCnt]) {
for (uint32 grpCnt = 0; grpCnt < cluster->noGrp; grpCnt++)
- if (BsGrp *group = cluster->grp[grpCnt]) {
+ if (Grp *group = cluster->grp[grpCnt]) {
for (uint32 resCnt = 0; resCnt < group->noRes; resCnt++)
_memMan->freeNow(group->resHandle + resCnt);
delete[] group->resHandle;
@@ -119,9 +119,9 @@ void ResMan::freeCluDescript(void) {
void ResMan::flush(void) {
for (uint32 clusCnt = 0; clusCnt < _prj.noClu; clusCnt++)
- if (BsClu *cluster = _prj.clu[clusCnt])
+ if (Clu *cluster = _prj.clu[clusCnt])
for (uint32 grpCnt = 0; grpCnt < cluster->noGrp; grpCnt++)
- if (BsGrp *group = cluster->grp[grpCnt])
+ if (Grp *group = cluster->grp[grpCnt])
for (uint32 resCnt = 0; resCnt < group->noRes; resCnt++)
if (group->resHandle[resCnt].cond != MEM_FREED) {
_memMan->setCondition(group->resHandle + resCnt, MEM_CAN_FREE);
@@ -130,7 +130,7 @@ void ResMan::flush(void) {
}
void *ResMan::fetchRes(uint32 id) {
- BsMemHandle *memHandle = resHandle(id);
+ MemHandle *memHandle = resHandle(id);
if (!memHandle->data)
error("fetchRes:: resource %d is not open!", id);
return memHandle->data;
@@ -146,7 +146,7 @@ void ResMan::dumpRes(uint32 id) {
sprintf(outn, "DUMP%08X.BIN", id);
FILE *outf = fopen( outn, "wb");
resOpen(id);
- BsMemHandle *memHandle = resHandle(id);
+ MemHandle *memHandle = resHandle(id);
fwrite(memHandle->data, 1, memHandle->size, outf);
fclose(outf);
resClose(id);
@@ -157,7 +157,7 @@ Header *ResMan::lockScript(uint32 scrID) {
error("Script id %d not found.\n", scrID);
scrID = _scriptList[scrID / ITM_PER_SEC];
#ifdef SCUMM_BIG_ENDIAN
- BsMemHandle *memHandle = resHandle(scrID);
+ MemHandle *memHandle = resHandle(scrID);
if (memHandle->cond == MEM_FREED)
openScriptResourceBigEndian(scrID);
else
@@ -174,7 +174,7 @@ void ResMan::unlockScript(uint32 scrID) {
void *ResMan::cptResOpen(uint32 id) {
#ifdef SCUMM_BIG_ENDIAN
- BsMemHandle *memHandle = resHandle(id);
+ MemHandle *memHandle = resHandle(id);
if (memHandle->cond == MEM_FREED)
openCptResourceBigEndian(id);
else
@@ -186,7 +186,7 @@ void *ResMan::cptResOpen(uint32 id) {
}
void ResMan::resOpen(uint32 id) { // load resource ID into memory
- BsMemHandle *memHandle = resHandle(id);
+ MemHandle *memHandle = resHandle(id);
if (memHandle->cond == MEM_FREED) { // memory has been freed
uint32 size = resLength(id);
_memMan->alloc(memHandle, size);
@@ -206,7 +206,7 @@ void ResMan::resOpen(uint32 id) { // load resource ID into memory
}
void ResMan::resClose(uint32 id) {
- BsMemHandle *handle = resHandle(id);
+ MemHandle *handle = resHandle(id);
if (!handle->refCount) {
warning("Resource Manager fail: unlocking object with refCount 0. Id: %d\n", id);
} else {
@@ -235,7 +235,7 @@ File *ResMan::openClusterFile(uint32 id) {
return clusFile;
}
-BsMemHandle *ResMan::resHandle(uint32 id) {
+MemHandle *ResMan::resHandle(uint32 id) {
if ((id >> 16) == 0x0405)
id = _srIdList[id & 0xFFFF];
uint8 cluster = (uint8)((id >> 24) - 1);
@@ -264,7 +264,7 @@ uint32 ResMan::resOffset(uint32 id) {
void ResMan::openCptResourceBigEndian(uint32 id) {
resOpen(id);
- BsMemHandle *handle = resHandle(id);
+ MemHandle *handle = resHandle(id);
uint32 totSize = handle->size;
uint32 *data = (uint32*)((uint8*)handle->data + sizeof(Header));
totSize -= sizeof(Header);
@@ -279,7 +279,7 @@ void ResMan::openCptResourceBigEndian(uint32 id) {
void ResMan::openScriptResourceBigEndian(uint32 id) {
resOpen(id);
- BsMemHandle *handle = resHandle(id);
+ MemHandle *handle = resHandle(id);
// uint32 totSize = handle->size;
Header *head = (Header*)handle->data;
head->comp_length = FROM_LE_32(head->comp_length);
@@ -327,3 +327,5 @@ uint32 ResMan::_srIdList[29] = { // the file numbers differ for the control pane
0x04050019, // SR_DEATHPANEL
0,
};
+
+} // End of namespace Sword1