Skip to content

Commit dab138a

Browse files
committed
- support content override for SetupSpecDenting and SetupSpecCosmetics
1 parent 062879d commit dab138a

2 files changed

Lines changed: 49 additions & 27 deletions

File tree

src_rebuild/Game/C/cosmetic.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ CAR_COSMETICS car_cosmetics[MAX_CAR_MODELS];
2525
CAR_COSMETICS levelSpecCosmetics[5];
2626
#endif
2727

28-
#ifndef PSX
28+
#if USE_PC_FILESYSTEM
29+
extern int gContentOverride;
30+
2931
// [A] loads car cosmetics from file
3032
void LoadCustomCarCosmetics(CAR_COSMETICS* dest, int modelNumber)
3133
{
@@ -67,8 +69,7 @@ void ProcessCosmeticsLump(char *lump_ptr, int lump_size)
6769
offset = *(int*)(lump_ptr + model * sizeof(int));
6870
car_cosmetics[i] = *(CAR_COSMETICS*)((u_char*)lump_ptr + offset);
6971

70-
#ifndef PSX
71-
extern int gContentOverride;
72+
#if USE_PC_FILESYSTEM
7273
if(gContentOverride)
7374
LoadCustomCarCosmetics(&car_cosmetics[i], model);
7475
#endif
@@ -145,6 +146,11 @@ void SetupSpecCosmetics(char *loadbuffer)
145146
car_cosmetics[4] = *(CAR_COSMETICS*)loadbuffer;
146147
#endif
147148

149+
#if USE_PC_FILESYSTEM
150+
if (gContentOverride)
151+
LoadCustomCarCosmetics(&car_cosmetics[4], model);
152+
#endif
153+
148154
// [A] don't forget
149155
FixCarCos(&car_cosmetics[4], model);
150156
}

src_rebuild/Game/C/denting.c

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,29 @@
1212
#include "players.h"
1313
#include "main.h"
1414

15+
#if USE_PC_FILESYSTEM
16+
extern int gContentOverride;
17+
18+
// [A] loads car model from file
19+
char* LoadCustomCarDentingFromFile(char* dest, int modelNumber)
20+
{
21+
char* mem;
22+
char filename[64];
23+
24+
sprintf(filename, "LEVELS\\%s\\CARMODEL_%d.DEN", LevelNames[GameLevel], modelNumber);
25+
if (FileExists(filename))
26+
{
27+
mem = dest ? dest : ((char*)_other_buffer + modelNumber * 4096);
28+
29+
// get model from file
30+
Loadfile(filename, mem);
31+
return mem;
32+
}
33+
34+
return NULL;
35+
}
36+
#endif
37+
1538
char* DentingFiles[] =
1639
{
1740
"LEVELS\\CHICAGO.DEN",
@@ -377,27 +400,6 @@ void MoveHubcap()
377400
}
378401
}
379402

380-
#ifndef PSX
381-
// [A] loads car model from file
382-
char* LoadCarDentingFromFile(char* dest, int modelNumber)
383-
{
384-
char* mem;
385-
char filename[64];
386-
387-
sprintf(filename, "LEVELS\\%s\\CARMODEL_%d.DEN", LevelNames[GameLevel], modelNumber);
388-
if(FileExists(filename))
389-
{
390-
mem = dest ? dest : ((char*)_other_buffer + modelNumber * 4096);
391-
392-
// get model from file
393-
Loadfile(filename, mem);
394-
return mem;
395-
}
396-
397-
return NULL;
398-
}
399-
#endif
400-
401403
// [D] [T]
402404
void ProcessDentLump(char *lump_ptr, int lump_size)
403405
{
@@ -424,11 +426,11 @@ void ProcessDentLump(char *lump_ptr, int lump_size)
424426
{
425427
offset = *(int *)(lump_ptr + model * 4);
426428
mem = (u_char*)lump_ptr;
427-
#ifndef PSX
428-
extern int gContentOverride;
429+
#if USE_PC_FILESYSTEM
429430
if (gContentOverride)
430431
{
431-
char* newDenting = LoadCarDentingFromFile(NULL, model);
432+
char* newDenting;
433+
newDenting = LoadCustomCarDentingFromFile(NULL, model);
432434
if (newDenting)
433435
{
434436
mem = (u_char*)newDenting;
@@ -454,6 +456,20 @@ void SetupSpecDenting(char *loadbuffer)
454456
{
455457
int offset;
456458

459+
#if USE_PC_FILESYSTEM
460+
if (gContentOverride)
461+
{
462+
char* newDenting;
463+
int model;
464+
model = MissionHeader->residentModels[4];
465+
466+
newDenting = LoadCustomCarDentingFromFile(NULL, model);
467+
if (newDenting)
468+
loadbuffer = newDenting;
469+
}
470+
471+
#endif
472+
457473
// [A] this is better
458474
memcpy((u_char*)gCarDamageZoneVerts[4], (u_char*)loadbuffer, NUM_DAMAGE_ZONES * MAX_FILE_DAMAGE_ZONE_VERTS);
459475
offset = NUM_DAMAGE_ZONES * MAX_FILE_DAMAGE_ZONE_VERTS;

0 commit comments

Comments
 (0)