@@ -77,14 +77,15 @@ void setupFileList(const s_MCB_CGB* fileList)
7777 fieldTaskPtr->m8_pSubFieldData ->m30_fileList = fileList;
7878
7979 checkFilesExists (fileList);
80-
81- fieldTaskPtr->m8_pSubFieldData ->m0_memoryArea [0 ] = fieldTaskPtr->m8_pSubFieldData ->m20_memoryArea_bottom ;
82- fieldTaskPtr->m8_pSubFieldData ->m0_memoryArea [1 ] = fieldTaskPtr->m8_pSubFieldData ->m0_memoryArea [0 ] + fieldTaskPtr->m8_pSubFieldData ->m34_MCBFilesSizes [0 ]; // TODO: should be aligned
83- fieldTaskPtr->m8_pSubFieldData ->m0_memoryArea [2 ] = fieldTaskPtr->m8_pSubFieldData ->m0_memoryArea [1 ] + fieldTaskPtr->m8_pSubFieldData ->m34_MCBFilesSizes [1 ]; // TODO: should be aligned
8480
85- fieldTaskPtr->m8_pSubFieldData ->m0_bundles [0 ] = new s_fileBundle (fieldTaskPtr->m8_pSubFieldData ->m0_memoryArea [0 ]);
86- fieldTaskPtr->m8_pSubFieldData ->m0_bundles [1 ] = new s_fileBundle (fieldTaskPtr->m8_pSubFieldData ->m0_memoryArea [1 ]);
87- fieldTaskPtr->m8_pSubFieldData ->m0_bundles [2 ] = new s_fileBundle (fieldTaskPtr->m8_pSubFieldData ->m0_memoryArea [2 ]);
81+ u8 * buffers[3 ];
82+ buffers[0 ] = fieldTaskPtr->m8_pSubFieldData ->m20_memoryArea_bottom ;
83+ buffers[1 ] = buffers[0 ] + fieldTaskPtr->m8_pSubFieldData ->m34_MCBFilesSizes [0 ]; // TODO: should be aligned
84+ buffers[2 ] = buffers[1 ] + fieldTaskPtr->m8_pSubFieldData ->m34_MCBFilesSizes [1 ]; // TODO: should be aligned
85+
86+ fieldTaskPtr->m8_pSubFieldData ->m0_bundles [0 ] = new s_fileBundle (buffers[0 ]);
87+ fieldTaskPtr->m8_pSubFieldData ->m0_bundles [1 ] = new s_fileBundle (buffers[1 ]);
88+ fieldTaskPtr->m8_pSubFieldData ->m0_bundles [2 ] = new s_fileBundle (buffers[2 ]);
8889
8990 fieldTaskPtr->m8_pSubFieldData ->mC_characterArea [0 ] = fieldTaskPtr->m8_pSubFieldData ->m28_characterArea_bottom ;
9091 fieldTaskPtr->m8_pSubFieldData ->mC_characterArea [1 ] = fieldTaskPtr->m8_pSubFieldData ->mC_characterArea [0 ] + fieldTaskPtr->m8_pSubFieldData ->m1B4_CGBFilesSizes [0 ]; // TODO: should be aligned
@@ -105,7 +106,7 @@ void setupFileList(const s_MCB_CGB* fileList)
105106 currentFileIndex++;
106107 }
107108
108- fieldTaskPtr->m8_pSubFieldData ->m18_memoryArea_edge = fieldTaskPtr-> m8_pSubFieldData -> m0_memoryArea [2 ] + largestMCB; // TODO: should be aligned
109+ fieldTaskPtr->m8_pSubFieldData ->m18_memoryArea_edge = buffers [2 ] + largestMCB; // TODO: should be aligned
109110 fieldTaskPtr->m8_pSubFieldData ->m1C_characterArea_edge = fieldTaskPtr->m8_pSubFieldData ->mC_characterArea [2 ] + largestCGB; // TODO: should be aligned
110111}
111112
@@ -128,7 +129,6 @@ void loadFileFromFileList(u32 index)
128129 if (pFileData->MCB )
129130 {
130131 loadFile (pFileData->MCB , &fieldTaskPtr->m8_pSubFieldData ->m0_bundles [slot], fieldTaskPtr->m8_pSubFieldData ->mC_characterArea [slot] >> 3 );
131- fieldTaskPtr->m8_pSubFieldData ->m0_memoryArea [slot] = fieldTaskPtr->m8_pSubFieldData ->m0_bundles [slot]->getRawBuffer ();
132132 }
133133
134134 if (pFileData->CGB )
@@ -144,7 +144,6 @@ void getMemoryArea(s_memoryAreaOutput* pOutput, u32 areaIndex)
144144 areaIndex = 2 ;
145145 }
146146
147- pOutput->m0_mainMemory = fieldTaskPtr->m8_pSubFieldData ->m0_memoryArea [areaIndex];
148147 pOutput->m0_mainMemoryBundle = fieldTaskPtr->m8_pSubFieldData ->m0_bundles [areaIndex];
149148 pOutput->m4_characterArea = fieldTaskPtr->m8_pSubFieldData ->mC_characterArea [areaIndex];
150149}
0 commit comments