diff options
author | Max Horn | 2003-09-12 23:22:45 +0000 |
---|---|---|
committer | Max Horn | 2003-09-12 23:22:45 +0000 |
commit | 4d9296d4c4b2b8f81575ff37bea80835d2d98a05 (patch) | |
tree | 5252c5ccc4b7b7d8b237af105a874ac28444c7ae | |
parent | af14b48b4d224726e586f7ef5cae925a0d371eef (diff) | |
download | scummvm-rg350-4d9296d4c4b2b8f81575ff37bea80835d2d98a05.tar.gz scummvm-rg350-4d9296d4c4b2b8f81575ff37bea80835d2d98a05.tar.bz2 scummvm-rg350-4d9296d4c4b2b8f81575ff37bea80835d2d98a05.zip |
cleanup
svn-id: r10197
-rw-r--r-- | sword2/driver/d_sound.cpp | 31 | ||||
-rw-r--r-- | sword2/resman.cpp | 2 | ||||
-rw-r--r-- | sword2/router.cpp | 61 |
3 files changed, 50 insertions, 44 deletions
diff --git a/sword2/driver/d_sound.cpp b/sword2/driver/d_sound.cpp index bcbbe3329d..d5e1fa60aa 100644 --- a/sword2/driver/d_sound.cpp +++ b/sword2/driver/d_sound.cpp @@ -465,6 +465,8 @@ int32 Sword2Sound::PreFetchCompSpeech(const char *filename, uint32 speechid, uin fp.close(); + // FIXME: potential endian problem, maybe this should be + ///data16[0] = READ_LE_UINT16(data8); data16[0] = *((int16*)data8); // Starting Value i = 1; @@ -480,12 +482,11 @@ int32 Sword2Sound::PreFetchCompSpeech(const char *filename, uint32 speechid, uin } int32 Sword2Sound::PlayCompSpeech(const char *filename, uint32 speechid, uint8 vol, int8 pan) { - uint32 i; - uint16 *data16; - uint8 *data8; - uint32 speechIndex[2]; - void *lpv1; - File fp; + uint32 i; + uint16 *data16; + uint8 *data8; + uint32 speechIndex[2]; + File fp; uint32 bufferSize; if (!speechMuted) { @@ -527,11 +528,11 @@ int32 Sword2Sound::PlayCompSpeech(const char *filename, uint32 speechid, uint8 v fp.close(); - lpv1 = malloc(bufferSize); - - // decompress data into speech buffer. - data16 = (uint16*)lpv1; + // Decompress data into speech buffer. + data16 = (uint16*)malloc(bufferSize); + // FIXME: potential endian problem, maybe this should be + ///data16[0] = READ_LE_UINT16(data8); data16[0] = *((int16*)data8); // Starting Value i = 1; @@ -545,7 +546,7 @@ int32 Sword2Sound::PlayCompSpeech(const char *filename, uint32 speechid, uint8 v free(data8); - // Modify the volume according to the master volume + // Modify the volume according to the master volume byte volume; int8 p; if (speechMuted) { @@ -555,15 +556,17 @@ int32 Sword2Sound::PlayCompSpeech(const char *filename, uint32 speechid, uint8 v } p = panTable[pan + 16]; - // Start the speech playing + // Start the speech playing speechPaused = 1; uint32 flags = SoundMixer::FLAG_16BITS; flags |= SoundMixer::FLAG_AUTOFREE; - //Until the mixer supports LE samples natively, we need to convert our LE ones to BE +#ifndef SCUMM_BIG_ENDIAN + // Until the mixer supports LE samples natively, we need to convert our LE ones to BE for (uint j = 0; j < (bufferSize / 2); j++) - data16[j] = TO_BE_16(data16[j]); + data16[j] = SWAP_BYTES_16(data16[j]); +#endif _mixer->playRaw(&soundHandleSpeech, data16, bufferSize, 22050, flags, -1, volume, pan); diff --git a/sword2/resman.cpp b/sword2/resman.cpp index efc846d5f9..b8ac5bd8c6 100644 --- a/sword2/resman.cpp +++ b/sword2/resman.cpp @@ -378,9 +378,9 @@ static void convertEndian(uint8 *file, uint32 len) { } case WALK_GRID_FILE: { _walkGridHeader *walkGridHeader = (_walkGridHeader *)file; + walkGridHeader->numBars = SWAP_BYTES_32(walkGridHeader->numBars); walkGridHeader->numNodes = SWAP_BYTES_32(walkGridHeader->numNodes); - break; } case GLOBAL_VAR_FILE: diff --git a/sword2/router.cpp b/sword2/router.cpp index 6982c3d92f..4567e95ce9 100644 --- a/sword2/router.cpp +++ b/sword2/router.cpp @@ -173,42 +173,44 @@ typedef struct //-------------------------------------------------------------------------------------- // Function prototypes -int32 GetRoute(void); -void ExtractRoute(void); -void LoadWalkGrid(void); -void SetUpWalkGrid(Object_mega *ob_mega, int32 x, int32 y, int32 dir); -void LoadWalkData(Object_walkdata *ob_walkdata); -void PlotCross(int16 x, int16 y, uint8 colour); - -int32 Scan(int32); -int32 NewCheck(int32, int32 , int32 , int32 , int32); -int32 LineCheck(int32 , int32 , int32 , int32); -int32 VertCheck(int32 , int32 , int32); -int32 HorizCheck(int32 , int32 , int32); -int32 Check(int32 , int32 , int32 , int32); -int32 CheckTarget(int32 , int32); - -int32 SmoothestPath(); -int32 SlidyPath(); -int32 SolidPath(); - -int32 SmoothCheck(int32 best, int32 p, int32 dirS, int32 dirD); - -int32 AddSlowInFrames(_walkData *walkAnim); -void AddSlowOutFrames(_walkData *walkAnim); -void SlidyWalkAnimator(_walkData *walkAnim); -int32 SolidWalkAnimator(_walkData *walkAnim); -void RouteLine(int32 x1,int32 y1,int32 x2,int32 y2 ,int32 colour); +static int32 GetRoute(void); +static void ExtractRoute(void); +static void LoadWalkGrid(void); +static void SetUpWalkGrid(Object_mega *ob_mega, int32 x, int32 y, int32 dir); +static void LoadWalkData(Object_walkdata *ob_walkdata); +static void PlotCross(int16 x, int16 y, uint8 colour); + +static int32 Scan(int32); +static int32 NewCheck(int32, int32 , int32 , int32 , int32); +static int32 LineCheck(int32 , int32 , int32 , int32); +static int32 VertCheck(int32 , int32 , int32); +static int32 HorizCheck(int32 , int32 , int32); +static int32 Check(int32 , int32 , int32 , int32); +static int32 CheckTarget(int32 , int32); + +static int32 SmoothestPath(); +static int32 SlidyPath(); +static int32 SolidPath(); + +static int32 SmoothCheck(int32 best, int32 p, int32 dirS, int32 dirD); + +static int32 AddSlowInFrames(_walkData *walkAnim); +static void AddSlowOutFrames(_walkData *walkAnim); +static void SlidyWalkAnimator(_walkData *walkAnim); +static int32 SolidWalkAnimator(_walkData *walkAnim); +#ifdef PLOT_PATHS +static void RouteLine(int32 x1,int32 y1,int32 x2,int32 y2 ,int32 colour); +#endif //-------------------------------------------------------------------------------------- #define MAX_WALKGRIDS 10 -int32 walkGridList[MAX_WALKGRIDS]; +static int32 walkGridList[MAX_WALKGRIDS]; //-------------------------------------------------------------------------------------- #define TOTAL_ROUTE_SLOTS 2 // because we only have 2 megas in the game! -mem *route_slots[TOTAL_ROUTE_SLOTS]; // stores pointers to mem blocks containing routes created & used by megas (NULL if slot not in use) +static mem *route_slots[TOTAL_ROUTE_SLOTS]; // stores pointers to mem blocks containing routes created & used by megas (NULL if slot not in use) //-------------------------------------------------------------------------------------- // Local Variables @@ -341,7 +343,7 @@ void AllocateRouteMem(void) } //------------------------------------------ - route_slots[slotNo] = Twalloc( 4800, MEM_locked, UID_walk_anim ); + route_slots[slotNo] = Twalloc( sizeof(_walkData)*O_WALKANIM_SIZE, MEM_locked, UID_walk_anim ); // 12000 bytes were used for this in Sword1 mega compacts, based on 20 bytes per '_walkData' frame // ie. allowing for 600 frames including end-marker // Now '_walkData' is 8 bytes, so 8*600 = 4800 bytes. @@ -1309,6 +1311,7 @@ void SlidyWalkAnimator(_walkData *walkAnim) currentDir = 99;// this ensures that we don't put in turn frames for the start do { + assert(stepCount < O_WALKANIM_SIZE); while (modularPath[p].num == 0) { p = p + 1; |