Skip to content

Commit 073ff66

Browse files
committed
- replace InitSpecSpool hardcoding with less hardcoding
1 parent 1b5565a commit 073ff66

2 files changed

Lines changed: 36 additions & 82 deletions

File tree

src_rebuild/Game/C/glaunch.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ void State_GameStart(void* param)
225225

226226
break;
227227
case GAME_TRAILBLAZER:
228-
gCurrentMissionNumber = GameLevel * 8 + 260 + gWantNight * 4 + gSubGameNumber;
228+
gCurrentMissionNumber = 260 + GameLevel * 8 + gWantNight * 4 + gSubGameNumber;
229229
SetState(STATE_GAMELAUNCH);
230230

231231
break;

src_rebuild/Game/C/spool.c

Lines changed: 35 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -2240,87 +2240,41 @@ void PrepareSecretCar(void)
22402240
// [D] [T]
22412241
void InitSpecSpool(void)
22422242
{
2243-
switch (gCurrentMissionNumber)
2244-
{
2245-
case 2:
2246-
case 4:
2247-
case 6:
2248-
case 7:
2249-
case 10:
2250-
case 11:
2251-
case 12:
2252-
case 13:
2253-
case 16:
2254-
case 18:
2255-
case 19:
2256-
case 20:
2257-
case 24:
2258-
case 26:
2259-
case 27:
2260-
case 29:
2261-
case 30:
2262-
case 31:
2263-
case 33:
2264-
case 35:
2265-
case 38:
2266-
case 39:
2267-
case 40:
2268-
case 58:
2269-
case 59:
2270-
case 60:
2271-
case 61:
2272-
case 62:
2273-
case 63:
2274-
case 64:
2275-
case 65:
2276-
case 70:
2277-
case 78:
2278-
case 86:
2279-
case 94:
2280-
case 228:
2281-
case 229:
2282-
case 236:
2283-
case 237:
2284-
case 244:
2285-
case 245:
2286-
case 252:
2287-
case 253:
2288-
case 352:
2289-
case 353:
2290-
case 360:
2291-
case 169:
2292-
case 368:
2293-
case 369:
2294-
case 376:
2295-
case 377:
2296-
case 420:
2297-
case 421:
2298-
case 428:
2299-
case 429:
2300-
case 436:
2301-
case 437:
2302-
case 444:
2303-
case 445:
2304-
case 480:
2305-
case 481:
2306-
case 482:
2307-
case 483:
2308-
case 484:
2309-
case 485:
2310-
case 486:
2311-
case 487:
2312-
case 498:
2313-
case 499:
2314-
case 500:
2315-
case 501:
2316-
case 502:
2317-
case 503:
2318-
case 504:
2319-
case 505:
2320-
allowSpecSpooling = 0;
2321-
break;
2322-
default:
2323-
allowSpecSpooling = 1;
2243+
allowSpecSpooling = 1;
2244+
2245+
if (GameType == GAME_SECRET)
2246+
allowSpecSpooling = 0;
2247+
else if (NumPlayers == 2)
2248+
allowSpecSpooling = 0;
2249+
else if (gCurrentMissionNumber == 40) // Chopper uses special texture slot
2250+
allowSpecSpooling = 0;
2251+
else if (gCurrentMissionNumber == 24) // Car bomb getaway is only exception
2252+
allowSpecSpooling = 1;
2253+
else
2254+
{
2255+
// disable special model spooling
2256+
// if special car is used as target
2257+
// or there is random chase present
2258+
MS_TARGET* target;
2259+
int i;
2260+
for (i = 0; i < MAX_MISSION_TARGETS; ++i)
2261+
{
2262+
target = &MissionTargets[i];
2263+
if (target->type == Target_Car)
2264+
{
2265+
if (target->s.car.type == 3 && (target->s.car.flags & CARTARGET_FLAG_RANDOMCHASE))
2266+
{
2267+
allowSpecSpooling = 0;
2268+
break;
2269+
}
2270+
2271+
if (target->s.car.model == residentCarModels[MAX_CAR_RESIDENT_MODELS - 1])
2272+
{
2273+
allowSpecSpooling = 0;
2274+
break;
2275+
}
2276+
}
2277+
}
23242278
}
23252279

23262280
#ifndef PSX

0 commit comments

Comments
 (0)