@@ -109,32 +109,6 @@ void LoadModelNamesLump(IVirtualStream* pFile, int size)
109109 pFile->Seek (l_ofs, VS_SEEK_SET);
110110}
111111
112- // -------------------------------------------------------------
113- // load texture names, same as model names
114- // -------------------------------------------------------------
115- void LoadTextureNamesLump (IVirtualStream* pFile, int size)
116- {
117- int l_ofs = pFile->Tell ();
118-
119- g_textureNamesData = new char [size];
120-
121- pFile->Read (g_textureNamesData, size, 1 );
122-
123- int len = strlen (g_textureNamesData);
124- int sz = 0 ;
125-
126- do
127- {
128- char * str = g_textureNamesData + sz;
129-
130- len = strlen (str);
131-
132- sz += len + 1 ;
133- } while (sz < size);
134-
135- pFile->Seek (l_ofs, VS_SEEK_SET);
136- }
137-
138112// -------------------------------------------------------------
139113// parses model lumps and exports models to OBJ
140114// -------------------------------------------------------------
@@ -180,99 +154,6 @@ void LoadLevelModelsLump(IVirtualStream* pFile)
180154
181155// ---------------------------------------------------------------------------------------------------------------------------------
182156
183- struct PAL_INFO
184- {
185- int palette;
186- int texnum;
187- int tpage;
188- int clut_number;
189- };
190-
191- struct PAL_INFO_D1
192- {
193- int palette;
194- int texnum;
195- int tpage;
196- };
197-
198- // -------------------------------------------------------------
199- // Loads car and pedestrians palletes
200- // -------------------------------------------------------------
201- void ProcessPalletLump (IVirtualStream* pFile, int lump_size)
202- {
203- ushort* clutTablePtr;
204- int total_cluts;
205- int l_ofs = pFile->Tell ();
206-
207- pFile->Read (&total_cluts, 1 , sizeof (int ));
208-
209- if (total_cluts == 0 )
210- return ;
211-
212- g_extraPalettes = new ExtClutData_t[total_cluts + 1 ];
213- memset (g_extraPalettes, 0 , sizeof (ExtClutData_t) * total_cluts);
214-
215- Msg (" total_cluts: %d\n " , total_cluts);
216-
217- int added_cluts = 0 ;
218- while (true )
219- {
220- PAL_INFO info;
221-
222- if (g_format == LEV_FORMAT_DRIVER1)
223- {
224- PAL_INFO_D1 infod1;
225- pFile->Read (&infod1, 1 , sizeof (info) - sizeof (int ));
226- info.clut_number = -1 ; // D1 doesn't have that
227- info.tpage = infod1.tpage ;
228- info.texnum = infod1.texnum ;
229- info.palette = infod1.palette ;
230- }
231- else
232- {
233- pFile->Read (&info, 1 , sizeof (info));
234- }
235-
236- if (info.palette == -1 )
237- break ;
238-
239- if (info.clut_number == -1 )
240- {
241- ExtClutData_t& data = g_extraPalettes[added_cluts];
242- data.texnum [data.texcnt ++] = info.texnum ;
243- data.tpage = info.tpage ;
244- data.palette = info.palette ;
245-
246- clutTablePtr = data.clut .colors ;
247-
248- pFile->Read (clutTablePtr, 16 , sizeof (ushort));
249-
250- added_cluts++;
251-
252- // only in D1 we need to check count
253- if (g_format == LEV_FORMAT_DRIVER1)
254- {
255- if (added_cluts >= total_cluts)
256- break ;
257- }
258- }
259- else
260- {
261- // Msg(" reference clut: %d, tex %d\n", info.clut_number, info.texnum);
262-
263- ExtClutData_t& data = g_extraPalettes[info.clut_number ];
264-
265- // add texture number to existing clut
266- data.texnum [data.texcnt ++] = info.texnum ;
267- }
268- }
269-
270- Msg (" added: %d\n " , added_cluts);
271- g_numExtraPalettes = added_cluts;
272-
273- pFile->Seek (l_ofs, VS_SEEK_SET);
274- }
275-
276157// -------------------------------------------------------------
277158// Loads overhead map lump
278159// -------------------------------------------------------------
@@ -400,7 +281,7 @@ void ProcessLumps(IVirtualStream* pFile)
400281 break ;
401282 case LUMP_TEXTURENAMES:
402283 MsgWarning (" LUMP_TEXTURENAMES ofs=%d size=%d\n " , pFile->Tell (), lump.size );
403- LoadTextureNamesLump (pFile, lump.size );
284+ g_levTextures. LoadTextureNamesLump (pFile, lump.size );
404285 break ;
405286 case LUMP_MODELNAMES:
406287 MsgWarning (" LUMP_MODELNAMES ofs=%d size=%d\n " , pFile->Tell (), lump.size );
@@ -421,7 +302,7 @@ void ProcessLumps(IVirtualStream* pFile)
421302 break ;
422303 case LUMP_PALLET:
423304 MsgWarning (" LUMP_PALLET ofs=%d size=%d\n " , pFile->Tell (), lump.size );
424- ProcessPalletLump (pFile, lump. size );
305+ g_levTextures. ProcessPalletLump (pFile);
425306 break ;
426307 case LUMP_SPOOLINFO:
427308 MsgWarning (" LUMP_SPOOLINFO ofs=%d size=%d\n " , pFile->Tell (), lump.size );
@@ -448,7 +329,7 @@ void ProcessLumps(IVirtualStream* pFile)
448329 break ;
449330 case LUMP_TEXTUREINFO:
450331 MsgWarning (" LUMP_TEXTUREINFO ofs=%d size=%d\n " , pFile->Tell (), lump.size );
451- LoadTextureInfoLump (pFile);
332+ g_levTextures. LoadTextureInfoLump (pFile);
452333 break ;
453334 default :
454335 MsgInfo (" LUMP type: %d (0x%X) ofs=%d size=%d\n " , lump.type , lump.type , pFile->Tell (), lump.size );
@@ -548,7 +429,7 @@ void LoadLevelFile(const char* filename)
548429 // -----------------------------------------------------
549430 // read global textures
550431
551- LoadPermanentTPages (g_levStream);
432+ g_levTextures. LoadPermanentTPages (g_levStream);
552433
553434 // -----------------------------------------------------
554435 // seek to section 3 - lump data 2
@@ -596,15 +477,5 @@ void FreeLevelData()
596477 free (g_carModels[i].lowmodel );
597478 }
598479
599- delete[] g_textureNamesData;
600-
601- // delete texture data
602- delete[] g_texPagePos;
603- delete[] g_texPages;
604- delete[] g_extraPalettes;
605480 delete[] g_overlayMapData;
606-
607- g_texPagePos = nullptr ;
608- g_texPagePos = nullptr ;
609- g_extraPalettes = nullptr ;
610481}
0 commit comments