Replace magic numbers with enum (#341)

* Replace magic string numbers with enum

* Fix enum FatalError enum item
This commit is contained in:
Anonymous Maarten 2023-07-22 02:05:07 +02:00 committed by GitHub
parent c5163f2d9a
commit 4200cfab6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 395 additions and 140 deletions

View File

@ -3264,7 +3264,7 @@ int ExpandBoundingBox(tCar_spec* c) {
c->bounds[1].min.v[2] = min_z;
c->bounds[1].max.v[2] = max_z;
if (c->driver == eDriver_local_human) {
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(6));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_RepairObstructed));
}
return 0;
}

View File

@ -766,7 +766,7 @@ void LookLeft(void) {
LOG_TRACE("()");
if (gAusterity_mode) {
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(192));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_NOT_ENOUGH_MEMORY));
} else {
PratcamEvent(27);
gProgram_state.old_view = gProgram_state.which_view;
@ -807,7 +807,7 @@ void LookRight(void) {
LOG_TRACE("()");
if (gAusterity_mode) {
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(192));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_NOT_ENOUGH_MEMORY));
} else {
PratcamEvent(28);
gProgram_state.old_view = gProgram_state.which_view;
@ -1074,7 +1074,7 @@ void ToggleCockpit(void) {
AdjustHeadups();
MungeForwardSky();
} else {
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(192));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_NOT_ENOUGH_MEMORY));
}
}
}
@ -1086,9 +1086,9 @@ void ToggleMirror(void) {
gProgram_state.mirror_on = !gProgram_state.mirror_on;
ReinitialiseRearviewCamera();
if (gProgram_state.mirror_on) {
NewTextHeadupSlot(4, 0, 500, -4, GetMiscString(2));
NewTextHeadupSlot(4, 0, 500, -4, GetMiscString(kMiscString_MirrorOn));
} else {
NewTextHeadupSlot(4, 0, 500, -4, GetMiscString(3));
NewTextHeadupSlot(4, 0, 500, -4, GetMiscString(kMiscString_MirrorOff));
}
}
@ -1319,11 +1319,11 @@ void SetRecovery(void) {
}
if (gProgram_state.current_car.time_to_recover) {
if (GetRaceTime() + 600 >= gProgram_state.current_car.time_to_recover) {
NewTextHeadupSlot2(4, 0, 2000, -4, GetMiscString(242), 1);
NewTextHeadupSlot2(4, 0, 2000, -4, GetMiscString(kMiscString_TOO_LATE_TO_CANCEL), 1);
gToo_late = 1;
} else {
gProgram_state.current_car.time_to_recover = 0;
NewTextHeadupSlot2(4, 0, 2000, -4, GetMiscString(125), 0);
NewTextHeadupSlot2(4, 0, 2000, -4, GetMiscString(kMiscString_RECOVERY_CANCELLED), 0);
}
return;
}
@ -1456,7 +1456,7 @@ void CheckRecoveryOfCars(tU32 pEndFrameTime) {
gProgram_state.current_car.time_to_recover = 0;
} else {
time = (gProgram_state.current_car.time_to_recover - pEndFrameTime + 1000) / 1000;
sprintf(s, "%s %d %s", GetMiscString(97), time, time > 1 ? GetMiscString(99) : GetMiscString(98));
sprintf(s, "%s %d %s", GetMiscString(kMiscString_RECOVERY_IN), time, time > 1 ? GetMiscString(kMiscString_SECONDS) : GetMiscString(kMiscString_SECOND));
if (!gToo_late) {
NewTextHeadupSlot2(4, 0, 2000, -4, s, 0);
}
@ -1583,15 +1583,15 @@ void CheckOtherRacingKeys(void) {
total_repair_cost += cost;
if (total_repair_cost) {
if (gFree_repairs) {
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(4));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_RepairingForFree));
} else {
sprintf(s, "%s %d", GetMiscString(5), total_repair_cost);
sprintf(s, "%s %d", GetMiscString(kMiscString_RepairCostColon), total_repair_cost);
NewTextHeadupSlot(4, 0, 1000, -4, s);
}
}
} else {
if (!stopped_repairing) {
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(95));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_CANNOT_AFFORD_TO_REPAIR));
}
gAuto_repair = 0;
stopped_repairing = 1;
@ -1623,7 +1623,7 @@ void CheckOtherRacingKeys(void) {
}
if (gRecovery_voucher_count != 0) {
gRecovery_voucher_count--;
sprintf(s, "%s", GetMiscString(48));
sprintf(s, "%s", GetMiscString(kMiscString_RecoveringForFree));
NewTextHeadupSlot(4, 0, 1500, -4, s);
} else {
if (gNet_mode) {
@ -1637,7 +1637,7 @@ void CheckOtherRacingKeys(void) {
} else {
cost = gRecovery_cost[gProgram_state.skill_level];
}
sprintf(s, "%s %d", GetMiscString(7), cost);
sprintf(s, "%s %d", GetMiscString(kMiscString_RecoveryCostColon), cost);
NewTextHeadupSlot(4, 0, 1500, -4, s);
LoseSomePSPowerups(2);
}
@ -1659,7 +1659,7 @@ int CheckRecoverCost(void) {
}
gProgram_state.credits_earned = 0;
gProgram_state.credits_lost = 0;
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(96));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_CANNOT_AFFORD_TO_RECOVER));
DoFancyHeadup(kFancyHeadupNetworkRaceNoMoreMoney);
KnackerThisCar(&gProgram_state.current_car);
SendGameplayToHost(eNet_gameplay_suicide, 0, 0, 0, 0);
@ -1869,13 +1869,13 @@ void CheckKevKeys(void) {
if (gKev_keys[i].num == 0xA11EE75D) {
strcpy(s, gNet_players[gThis_net_player_index].player_name);
strcat(s, " ");
strcat(s, GetMiscString(225));
strcat(s, GetMiscString(kMiscString_MANAGED_TO_CHEAT));
NetSendHeadupToEverybody(s);
gKev_keys[i].action_proc(gKev_keys[i].num);
} else {
strcpy(s, gNet_players[gThis_net_player_index].player_name);
strcat(s, " ");
strcat(s, GetMiscString(224));
strcat(s, GetMiscString(kMiscString_TRIED_TO_CHEAT));
NetSendHeadupToAllPlayers(s);
}
} else {
@ -2102,7 +2102,7 @@ void ToggleInvulnerability(void) {
gProgram_state.current_car.invulnerable = !gProgram_state.current_car.invulnerable;
if (gProgram_state.current_car.invulnerable) {
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(0));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_Invulnerable));
} else {
NewTextHeadupSlot(4, 0, 1000, -4, "Vulnerability returns!");
}
@ -2128,7 +2128,7 @@ void ToggleTimerFreeze(void) {
gFreeze_timer = !gFreeze_timer;
if (gFreeze_timer) {
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(1));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_TimerFrozen));
} else {
NewTextHeadupSlot(4, 0, 1000, -4, "Timer thawed out");
}
@ -2157,9 +2157,9 @@ void ToggleMap(void) {
if (gMap_mode == 0) {
if (!gAction_replay_mode) {
if (gNet_mode != eNet_mode_none && gCurrent_net_game->type == eNet_game_type_foxy && gThis_net_player_index == gIt_or_fox) {
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(214));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_THE_FOX_CANNOT_DO_THAT));
} else if (gNet_mode != eNet_mode_none && gCurrent_net_game->type == eNet_game_type_tag && gThis_net_player_index != gIt_or_fox) {
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(215));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_ONLY_IT_CAN_DO_THAT));
} else {
old_indent = gRender_indent;
gRender_indent = 0;
@ -2244,13 +2244,13 @@ void CycleCarTexturingLevel(void) {
SetCarTexturingLevel(new_level);
switch (new_level) {
case eCTL_none:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(50));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_NoCarTextures));
break;
case eCTL_transparent:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(51));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_TransparentCarTexturesOnly));
break;
case eCTL_full:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(52));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_FullCarTextures));
break;
case eCTL_count:
break;
@ -2267,13 +2267,13 @@ void CycleWallTexturingLevel(void) {
SetWallTexturingLevel(new_level);
switch (new_level) {
case eWTL_none:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(55));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_NoWallTextures));
break;
case eWTL_linear:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(56));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_LinearWallTextures));
break;
case eWTL_full:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(57));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_BestWallTextures));
break;
case eWTL_count:
break;
@ -2289,9 +2289,9 @@ void CycleRoadTexturingLevel(void) {
ReallySetRoadTexturingLevel(new_level);
SetRoadTexturingLevel(new_level);
if (new_level == eRTL_none) {
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(53));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_NoRoadTextures));
} else if (new_level == eRTL_full) {
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(54));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_RoadTextures));
}
}
@ -2307,13 +2307,13 @@ void CycleYonFactor(void) {
}
SetYonFactor(new_factor);
if (new_factor > .75f) {
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(100));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_TrackAppearsVeryQuickly));
} else if (new_factor > .375f) {
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(101));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_TrackAppearsQuiteQuickly));
} else if (new_factor > .187f) {
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(102));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_TrackQppearsQuiteLate));
} else {
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(103));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_TrackAppearsVeryLate));
}
}
@ -2352,13 +2352,13 @@ void CycleSoundDetailLevel(void) {
SetSoundDetailLevel(new_level);
switch (new_level) {
case 0:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(116));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_FewestSounds));
break;
case 1:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(117));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_PartialSound));
break;
case 2:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(118));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_AllSounds));
break;
}
}
@ -2370,7 +2370,7 @@ void CycleCarSimplificationLevel(void) {
LOG_TRACE("()");
gCar_simplification_level = (gCar_simplification_level + 1) % 5;
src = GetMiscString(119);
src = GetMiscString(kMiscString_CarSimplificationLevel_D);
dst = BrMemAllocate(strlen(src), kMem_simp_level);
sprintf(dst, src, gCar_simplification_level);
NewTextHeadupSlot(4, 0, 2000, -4, dst);
@ -2386,12 +2386,12 @@ void ToggleAccessoryRendering(void) {
on = !GetAccessoryRendering();
SetAccessoryRendering(on);
if (on) {
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(120));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_AccessoriesOn));
} else {
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(121));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_AccessoriesOff));
}
} else {
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(124));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_NetGamesAlwaysAccessorized));
}
}
@ -2404,9 +2404,9 @@ void ToggleSmoke(void) {
ReallySetSmokeOn(on);
SetSmokeOn(on);
if (on) {
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(122));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_SmokeOn));
} else {
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(123));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_SmokeOff));
}
}

View File

@ -510,7 +510,7 @@ void CheckLastCar(void) {
LOG_TRACE("()");
if (gNet_mode == eNet_mode_none && GetCarCount(eVehicle_opponent) != 0 && NumberOfOpponentsLeft() == 0) {
NewTextHeadupSlot(4, 0, 5000, -4, GetMiscString(10));
NewTextHeadupSlot(4, 0, 5000, -4, GetMiscString(kMiscString_EveryOpponentWasted));
RaceCompleted(eRace_over_opponents);
}
}

View File

@ -762,7 +762,7 @@ void IncreaseYon(void) {
AssertYons();
camera_ptr = gCamera_list[1]->type_data;
i = (int)camera_ptr->yon_z;
sprintf(s, GetMiscString(114), i);
sprintf(s, GetMiscString(kMiscString_YonIncreasedTo_D), i);
NewTextHeadupSlot(4, 0, 2000, -4, s);
}
@ -780,7 +780,7 @@ void DecreaseYon(void) {
AssertYons();
camera_ptr = gCamera_list[1]->type_data;
i = (int)camera_ptr->yon_z;
sprintf(s, GetMiscString(115), i);
sprintf(s, GetMiscString(kMiscString_YonDecreasedTo_D), i);
NewTextHeadupSlot(4, 0, 2000, -4, s);
}

View File

@ -1400,16 +1400,16 @@ void EarnCredits2(int pAmount, char* pPrefix_text) {
}
gLast_credit_amount = pAmount;
if (pAmount >= 2) {
sprintf(s, "%s%d %s", pPrefix_text, pAmount, GetMiscString(12));
sprintf(s, "%s%d %s", pPrefix_text, pAmount, GetMiscString(kMiscString_Credits));
gProgram_state.credits_earned += original_amount;
} else if (pAmount >= 1) {
sprintf(s, "%s1 %s", pPrefix_text, GetMiscString(13));
sprintf(s, "%s1 %s", pPrefix_text, GetMiscString(kMiscString_Credit));
gProgram_state.credits_earned += original_amount;
} else if (pAmount >= -1) {
sprintf(s, "%s%s 1 %s", pPrefix_text, GetMiscString(14), GetMiscString(13));
sprintf(s, "%s%s 1 %s", pPrefix_text, GetMiscString(kMiscString_Lost), GetMiscString(kMiscString_Credit));
gProgram_state.credits_lost -= original_amount;
} else {
sprintf(s, "%s%s %d %s", GetMiscString(14), pPrefix_text, -pAmount, GetMiscString(12));
sprintf(s, "%s%s %d %s", GetMiscString(kMiscString_Lost), pPrefix_text, -pAmount, GetMiscString(kMiscString_Credits));
gProgram_state.credits_lost -= original_amount;
}
gLast_credit_headup__displays = NewTextHeadupSlot(4, 0, 2000, -4, s);

View File

@ -3010,16 +3010,16 @@ void ToggleShadow(void) {
}
switch (gShadow_level) {
case eShadow_none:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(104));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_NoShadows));
break;
case eShadow_us_only:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(105));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_ShadowUnderOwnCar));
break;
case eShadow_us_and_opponents:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(106));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_ShadowUnderMainCars));
break;
case eShadow_everyone:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(107));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_ShadowUnderAllCars));
break;
default:
return;

View File

@ -294,10 +294,10 @@ void AustereWarning(void) {
if (gAusterity_mode) {
LoadFont(FONT_GRNLIT);
TransDRPixelmapText(gBack_screen,
(gBack_screen->width - DRTextWidth(&gFonts[FONT_GRNLIT], GetMiscString(193))) / 2,
(gBack_screen->width - DRTextWidth(&gFonts[FONT_GRNLIT], GetMiscString(kMiscString_LOW_MEMORY_MODE_INVOKED))) / 2,
0,
&gFonts[FONT_GRNLIT],
GetMiscString(193),
GetMiscString(kMiscString_LOW_MEMORY_MODE_INVOKED),
gBack_screen->width);
PDScreenBufferSwap(0);
gAustere_time = PDGetTotalTime();

View File

@ -707,7 +707,7 @@ void DoRLTypeLetter(int pChar, int pSlot_index) {
new_len = strlen(gCurrent_typing) + 1;
if (new_len > 100) {
new_len = 100;
DoErrorInterface(-1);
DoErrorInterface(kMiscString_FIXED_THAT_YOU_TWISTED_BASTARD);
}
for (i = new_len - 1; i > gCurrent_position; i--) {
gCurrent_typing[i] = gCurrent_typing[i - 1];
@ -720,7 +720,7 @@ void DoRLTypeLetter(int pChar, int pSlot_index) {
}
if (new_len > 100) {
new_len = 100;
DoErrorInterface(-1);
DoErrorInterface(kMiscString_FIXED_THAT_YOU_TWISTED_BASTARD);
}
gCurrent_typing[new_len] = 0;

View File

@ -3305,7 +3305,7 @@ FILE* DRfopen(char* pFilename, char* pMode) {
if (result == NULL && !gAllow_open_to_fail) {
if (GetCDPathFromPathsTxtFile(CD_dir) && !PDCheckDriveExists(CD_dir)) {
if (gMisc_strings[0]) {
PDFatalError(GetMiscString(243));
PDFatalError(GetMiscString(kMiscString_CouldNotFindTheCarmageddonCD));
} else {
PDFatalError("Could not find the Carmageddon CD");
}

View File

@ -187,7 +187,7 @@ void StartRollingSaveNamesIn(void) {
AddRollingNumber(gSaved_games[i]->rank, 2, gCurrent_graf_data->save_slot_rank_x_offset, save_slot_height);
AddRollingNumber(gSaved_games[i]->credits, 6, gCurrent_graf_data->save_slot_credits_x_offset, save_slot_height);
} else {
AddRollingString(GetMiscString(15), gCurrent_graf_data->save_slot_x_offset, save_slot_height, eRT_alpha);
AddRollingString(GetMiscString(kMiscString_Empty), gCurrent_graf_data->save_slot_x_offset, save_slot_height, eRT_alpha);
}
}
}
@ -453,7 +453,7 @@ int DoLoadGame(void) {
if (gNet_mode == eNet_mode_none) {
if (!OriginalCarmaCDinDrive()) {
DoErrorInterface(223);
DoErrorInterface(kMiscString_PLEASE_INSERT_THE_CARMAGEDDON_CD);
return 0;
}
gProgram_state.loading = 1;
@ -496,7 +496,7 @@ int DoLoadGame(void) {
}
} else {
SuspendPendingFlic();
DoErrorInterface(75);
DoErrorInterface(kMiscString_CannotSaveGameInNetworkPlay);
return 0;
}
}
@ -631,10 +631,10 @@ void GetSaveName(int pStarting_to_type, int pCurrent_choice, char* pString, int*
strcpy(pString, gSaved_games[pCurrent_choice]->slot_name);
} else {
if (pStarting_to_type) {
BlankSlot(pCurrent_choice, strlen(GetMiscString(15)), 12);
BlankSlot(pCurrent_choice, strlen(GetMiscString(kMiscString_Empty)), 12);
*pString = '\0';
} else {
strcpy(pString, GetMiscString(15));
strcpy(pString, GetMiscString(kMiscString_Empty));
}
}
*pMax_length = 12;
@ -958,6 +958,6 @@ void DoSaveGame(int pSave_allowed) {
gProgram_state.saving = 0;
} else {
SuspendPendingFlic();
DoErrorInterface(75);
DoErrorInterface(kMiscString_CannotSaveGameInNetworkPlay);
}
}

View File

@ -213,13 +213,13 @@ void MungeHeadups(void) {
DoNetworkHeadups(net_credits);
} else {
if (net_credits < 0) {
sprintf(the_text, "\xF8%d\xFA %s", -net_credits, GetMiscString(17));
sprintf(the_text, "\xF8%d\xFA %s", -net_credits, GetMiscString(kMiscString_LOSS));
} else {
sprintf(the_text, "\xF8%d\xFA %s", net_credits, GetMiscString(net_credits < 100000 ? 16 : 47));
sprintf(the_text, "\xF8%d\xFA %s", net_credits, GetMiscString(net_credits < 100000 ? kMiscString_PROFIT : kMiscString_PRFT));
}
ChangeHeadupText(gCredits_won_headup, the_text);
if (gPedestrians_on) {
sprintf(the_text, "\xF8%d\xFA/%d %s", gProgram_state.peds_killed, gTotal_peds, GetMiscString(18));
sprintf(the_text, "\xF8%d\xFA/%d %s", gProgram_state.peds_killed, gTotal_peds, GetMiscString(kMiscString_KILLS));
ChangeHeadupText(gPed_kill_count_headup, the_text);
} else {
ChangeHeadupText(gPed_kill_count_headup, "");
@ -229,13 +229,13 @@ void MungeHeadups(void) {
}
if (gQueued_wasted_massages_count) {
if (Flash(150, &gWasted_last_flash, &gWasted_flash_state)) {
sprintf(the_text, "\xF9%s %s", gOpponents[gQueued_wasted_massages[0]].abbrev_name, GetMiscString(46));
sprintf(the_text, "\xF9%s %s", gOpponents[gQueued_wasted_massages[0]].abbrev_name, GetMiscString(kMiscString_WASTED_46));
} else {
sprintf(the_text, " ");
}
} else {
oppo_count = GetCarCount(eVehicle_opponent);
sprintf(the_text, "%s \xF8%d\xFA/%d", GetMiscString(19), oppo_count - NumberOfOpponentsLeft(), oppo_count);
sprintf(the_text, "%s \xF8%d\xFA/%d", GetMiscString(kMiscString_WASTED_19), oppo_count - NumberOfOpponentsLeft(), oppo_count);
}
ChangeHeadupText(gCar_kill_count_headup, the_text);
if (effective_timer > 1199000) {
@ -243,14 +243,14 @@ void MungeHeadups(void) {
}
TimerString(effective_timer, the_text, 1, 0);
ChangeHeadupText(gTimer_headup, the_text);
sprintf(the_text, "%s \xF8%d\xFA/%d %s \xF8%d\xFA/%d", GetMiscString(21), gCheckpoint, gCheckpoint_count, GetMiscString(20), gLap, gTotal_laps);
sprintf(the_text, "%s \xF8%d\xFA/%d %s \xF8%d\xFA/%d", GetMiscString(kMiscString_CP), gCheckpoint, gCheckpoint_count, GetMiscString(kMiscString_LAP), gLap, gTotal_laps);
ChangeHeadupText(gLaps_headup, the_text);
the_time = GetTotalTime() - gTime_bonus_start;
switch (gTime_bonus_state) {
case eTime_bonus_initial_pause:
if (the_time >= 500) {
bonus = gCurrent_race.bonus_score[gRace_over_reason][gProgram_state.skill_level];
sprintf(the_text, "%s %d", GetMiscString(22), bonus);
sprintf(the_text, "%s %d", GetMiscString(kMiscString_TimeBonus), bonus);
DRS3StartSound(gPedestrians_outlet, 8015);
ChangeHeadupText(gRace_bonus_headup, the_text);
gProgram_state.credits_earned += bonus;
@ -278,7 +278,7 @@ void MungeHeadups(void) {
gTime_bonus += (previous_gtimer - gTimer) / 1000 * gPoints_per_second[gProgram_state.skill_level];
last_rattle_time += 15 * ((the_time - last_rattle_time) / 15);
}
sprintf(the_text, "%s %d", GetMiscString(23), gTime_bonus);
sprintf(the_text, "%s %d", GetMiscString(kMiscString_TimeBonus), gTime_bonus);
ChangeHeadupText(gTime_bonus_headup, the_text);
} else {
gTime_bonus_state = eTime_bonus_tb_pause;
@ -306,7 +306,7 @@ void MungeHeadups(void) {
gProgram_state.credits_earned += bonus - gTime_bonus;
last_rattle_time += 15 * ((the_time - last_rattle_time) / 15);
}
sprintf(the_text, "%s %d", GetMiscString(23), gTime_bonus);
sprintf(the_text, "%s %d", GetMiscString(kMiscString_TimeBonus), gTime_bonus);
ChangeHeadupText(gTime_bonus_headup, the_text);
} else {
gTime_bonus_state = eTime_bonus_end_pause;

View File

@ -314,47 +314,47 @@ void DoNetworkHeadups(int pCredits) {
if (gNot_shown_race_type_headup) {
gNot_shown_race_type_headup = 0;
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(59 + gCurrent_net_game->type));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_NetworkGameTypeNames_START + gCurrent_net_game->type));
}
if (gTime_for_punishment && gTime_for_punishment <= PDGetTotalTime()) {
gTime_for_punishment = 0;
switch (gCurrent_net_game->type) {
case eNet_game_type_carnage:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(219));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_THAT_HALVED_YOUR_KILL_COUNT));
break;
case eNet_game_type_checkpoint:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(220));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_THAT_LOST_YOU_A_CHECKPOINT));
break;
case eNet_game_type_sudden_death:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(221));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_BACK_TO_THE_START));
break;
case eNet_game_type_foxy:
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(222));
NewTextHeadupSlot(4, 0, 2000, -4, GetMiscString(kMiscString_THAT_HALVED_YOUR_TIME));
break;
default:
break;
}
}
if (gNet_mode == eNet_mode_none || gNet_recovery_cost[gCurrent_net_game->type] <= gProgram_state.credits_earned - gProgram_state.credits_lost || Flash(200, &last_flash, &flash_state)) {
sprintf(s, "\xf8%d\xfa %s", pCredits, GetMiscString(94));
sprintf(s, "\xf8%d\xfa %s", pCredits, GetMiscString(kMiscString_CREDITS));
ChangeHeadupText(gNet_cash_headup, s);
} else {
ChangeHeadupText(gNet_cash_headup, "");
}
switch (gCurrent_net_game->type) {
case eNet_game_type_carnage:
sprintf(s, "%s \xf8%d\xfa", GetMiscString(180), gPed_target);
sprintf(s, "%s \xf8%d\xfa", GetMiscString(kMiscString_TARGET_180), gPed_target);
break;
case eNet_game_type_car_crusher:
sprintf(s, "%s \xf8%d\xfa", GetMiscString(181), gCurrent_net_game->options.race_end_target);
sprintf(s, "%s \xf8%d\xfa", GetMiscString(kMiscString_TARGET_181), gCurrent_net_game->options.race_end_target);
break;
case eNet_game_type_foxy:
TimerString(gCurrent_net_game->options.race_end_target, s2, 1, 1);
sprintf(s, "%s \xf8%s\xfa", GetMiscString(182), s2);
sprintf(s, "%s \xf8%s\xfa", GetMiscString(kMiscString_TARGET_182), s2);
break;
case eNet_game_type_tag:
TimerString(gCurrent_net_game->options.race_end_target, s2, 1, 1);
sprintf(s, "%s \xf8%s\xfa", GetMiscString(183), s2);
sprintf(s, "%s \xf8%s\xfa", GetMiscString(kMiscString_LIMIT), s2);
break;
default:
s[0] = '\0';
@ -606,19 +606,19 @@ void BuyPSPowerup(int pIndex) {
LOG_TRACE("(%d)", pIndex);
if (gNet_mode == eNet_mode_none) {
NewTextHeadupSlot(4, 0, 3000, -4, GetMiscString(178));
NewTextHeadupSlot(4, 0, 3000, -4, GetMiscString(kMiscString_ONLY_AVAILABLE_IN_NET_GAMES));
} else if (gProgram_state.current_car.power_up_levels[pIndex] < 4) {
if (gNet_mode == eNet_mode_none || gPowerup_cost[gProgram_state.current_car.power_up_levels[pIndex]] <= (gProgram_state.credits_earned - gProgram_state.credits_lost)) {
SpendCredits(gPowerup_cost[gProgram_state.current_car.power_up_levels[pIndex]]);
ImprovePSPowerup(&gProgram_state.current_car, pIndex);
} else {
strcpy(s, GetMiscString(179));
strcpy(s, GetMiscString(kMiscString_CANNOT_AFFORD_IT));
sprintf(s2, "%d", gPowerup_cost[gProgram_state.current_car.power_up_levels[pIndex]]);
SubsStringJob(s, s2);
NewTextHeadupSlot(4, 0, 3008, -4, s);
}
} else {
NewTextHeadupSlot(4, 0, 3000, -4, GetMiscString(174));
NewTextHeadupSlot(4, 0, 3000, -4, GetMiscString(kMiscString_YOU_ARE_ALREADY_AT_MAX));
}
}
@ -634,9 +634,9 @@ void BuyPower(void) {
LOG_TRACE("()");
if (gNet_mode != eNet_mode_none && gCurrent_net_game->type == eNet_game_type_foxy && gThis_net_player_index == gIt_or_fox) {
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(214));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_THE_FOX_CANNOT_DO_THAT));
} else if (gNet_mode != eNet_mode_none && gCurrent_net_game->type == eNet_game_type_tag && gThis_net_player_index != gIt_or_fox) {
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(215));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_ONLY_IT_CAN_DO_THAT));
} else {
BuyPSPowerup(1);
}

View File

@ -346,7 +346,7 @@ void NetLeaveGame(tNet_game_details* pNet_game) {
NetGuaranteedSendMessageToHost(pNet_game, the_message, NULL);
strcpy(s, gProgram_state.player_name[0]);
strcat(s, " ");
strcat(s, GetMiscString(74));
strcat(s, GetMiscString(kMiscString_HasLeftTheGame));
NetSendHeadupToAllPlayers(s);
}
for (i = 0; i < gNumber_of_net_players; i++) {
@ -1261,7 +1261,7 @@ void ReceivedNewPlayerList(tNet_contents* pContents, tNet_message* pM) {
}
}
if (gThis_net_player_index < 0) {
FatalError(kFatalError_NonInReceivedPlayerList);
FatalError(kFatalError_NotInReceivedPlayerList);
}
gNet_players[0].last_heard_from_him = PDGetTotalTime();
gCurrent_race.number_of_racers = gNumber_of_net_players;
@ -1662,7 +1662,7 @@ void CheckForDisappearees(void) {
if (!gNet_players[i].host && gNet_players[i].last_heard_from_him != 0 && the_time - gNet_players[i].last_heard_from_him >= 20000) {
strcpy(s, gNet_players[i].player_name);
strcat(s, " ");
strcat(s, GetMiscString(90));
strcat(s, GetMiscString(kMiscString_IS_NO_LONGER_RESPONDING));
NetSendHeadupToAllPlayers(s);
KickPlayerOut(gNet_players[i].ID);
if (gProgram_state.racing) {

View File

@ -154,7 +154,7 @@ void FrankAnneDraw(int pCurrent_choice, int pCurrent_mode) {
gCurrent_graf_data->enter_name_x[pCurrent_choice],
gCurrent_graf_data->enter_name_y,
&gFonts[FONT_GRNLIT],
GetMiscString(191),
GetMiscString(kMiscString_ENTER_NAME),
gBack_screen->width);
}
}
@ -388,7 +388,7 @@ int DoOnePlayerStart(void) {
UnlockBunchOfFlics(4);
return 1;
} else {
DoErrorInterface(223);
DoErrorInterface(kMiscString_PLEASE_INSERT_THE_CARMAGEDDON_CD);
return 0;
}
}
@ -523,10 +523,10 @@ void DrawGames(int pCurrent_choice, int pCurrent_mode) {
GetMousePosition(&x_coord, &y_coord);
gLast_graph_sel__newgame = -1;
}
DrawColumnHeading__newgame(206, gCurrent_graf_data->joinable_games_x_1);
DrawColumnHeading__newgame(207, gCurrent_graf_data->joinable_games_x_2);
DrawColumnHeading__newgame(208, gCurrent_graf_data->joinable_games_x_3);
DrawColumnHeading__newgame(209, gCurrent_graf_data->joinable_games_x_4);
DrawColumnHeading__newgame(kMiscString_NetworkGamesTableHeading_HOST, gCurrent_graf_data->joinable_games_x_1);
DrawColumnHeading__newgame(kMiscString_NetworkGamesTableHeading_GAME_TYPE, gCurrent_graf_data->joinable_games_x_2);
DrawColumnHeading__newgame(kMiscString_NetworkGamesTableHeading_PLAYERS, gCurrent_graf_data->joinable_games_x_3);
DrawColumnHeading__newgame(kMiscString_NetworkGamesTableHeading_STATUS, gCurrent_graf_data->joinable_games_x_4);
BrPixelmapLine(gBack_screen,
gCurrent_graf_data->joinable_games_sel_left,
gCurrent_graf_data->joinable_games_y + gFonts[12].height + 1 - (TranslationMode() ? 2 : 0) - gCurrent_graf_data->joinable_games_y_pitch,
@ -562,13 +562,13 @@ void DrawGames(int pCurrent_choice, int pCurrent_mode) {
}
sprintf(s, "%s", gGames_to_join[i].game->host_name);
DrawAnItem__newgame(gCurrent_graf_data->joinable_games_x_1, current_index, font_index, s);
sprintf(s, "%s", GetMiscString(59 + gGames_to_join[i].game->type));
sprintf(s, "%s", GetMiscString(kMiscString_NetworkGameTypeNames_START + gGames_to_join[i].game->type));
DrawAnItem__newgame(gCurrent_graf_data->joinable_games_x_2, current_index, font_index, s);
sprintf(s, "%d", gGames_to_join[i].game->num_players);
DrawAnItem__newgame(gCurrent_graf_data->joinable_games_x_3, current_index, font_index, s);
sprintf(s, "%s, %s",
GetMiscString(68 + gGames_to_join[i].game->status.stage),
GetMiscString(71 + gGames_to_join[i].game->options.open_game));
GetMiscString(kMiscString_NetworkGameStage_START + gGames_to_join[i].game->status.stage),
GetMiscString(kMiscString_NetworkGameOpenGame_START + gGames_to_join[i].game->options.open_game));
DrawAnItem__newgame(gCurrent_graf_data->joinable_games_x_4, current_index, font_index, s);
if (i == gLast_graph_sel__newgame) {
DrawRectangle(gBack_screen,
@ -1392,7 +1392,7 @@ void DrawNetChoose(int pCurrent_choice, int pCurrent_mode) {
gCurrent_graf_data->net_choose_race_y,
gCurrent_graf_data->net_descr_race_r - gCurrent_graf_data->net_descr_race_l,
gFonts[10].height + 1 - (TranslationMode() ? 2 : 0), 0);
sprintf(s, "%s %s", GetMiscString(201), gRace_list[gRace_index].name);
sprintf(s, "%s %s", GetMiscString(kMiscString_FIRST_RACE), gRace_list[gRace_index].name);
DRPixelmapCentredText(gBack_screen,
gCurrent_graf_data->net_choose_race_x,
gCurrent_graf_data->net_choose_race_y,
@ -1404,7 +1404,7 @@ void DrawNetChoose(int pCurrent_choice, int pCurrent_mode) {
gCurrent_graf_data->net_descr_race_bot - gCurrent_graf_data->net_descr_race_top,
0);
OoerrIveGotTextInMeBoxMissus(9,
GetMiscString(194 + (pCurrent_mode ? pCurrent_choice - 4 : gLast_game_type)),
GetMiscString(kMiscString_NetworkGameTypeDescriptions_START + (pCurrent_mode ? pCurrent_choice - 4 : gLast_game_type)),
gBack_screen,
gCurrent_graf_data->net_descr_race_l,
gCurrent_graf_data->net_descr_race_top,
@ -1765,7 +1765,7 @@ int DoMultiPlayerStart(void) {
}
if (NetInitialise()) {
SuspendPendingFlic();
DoErrorInterface(76);
DoErrorInterface(kMiscString_NetworkPlayIsNotAvailable);
return 0;
}
gSynch_race_start = 0;
@ -1780,7 +1780,7 @@ int DoMultiPlayerStart(void) {
case eJoin_or_host_join:
gProgram_state.frank_or_anniness = eFrankie;
if (!CarmaCDinDriveOrFullGameInstalled()) {
DoErrorInterface(223);
DoErrorInterface(kMiscString_PLEASE_INSERT_THE_CARMAGEDDON_CD);
return 0;
}
car_index = -1;
@ -1800,7 +1800,7 @@ int DoMultiPlayerStart(void) {
ReenableNetService();
strcpy(s, gProgram_state.player_name[0]);
strcat(s, " ");
strcat(s, GetMiscString(58));
strcat(s, GetMiscString(kMiscString_HasJoinedTheGame));
NetSendHeadupToAllPlayers(s);
start_rank = 1;
} else {
@ -1816,7 +1816,7 @@ int DoMultiPlayerStart(void) {
case eJoin_or_host_host:
gProgram_state.frank_or_anniness = eFrankie;
if (!OriginalCarmaCDinDrive()) {
DoErrorInterface(223);
DoErrorInterface(kMiscString_PLEASE_INSERT_THE_CARMAGEDDON_CD);
return 0;
}
car_index = -1;

View File

@ -1236,7 +1236,7 @@ void ProcessLevitate(tOpponent_spec* pOpponent_spec, tProcess_objective_command
pOpponent_spec->levitate_data.time_started = gTime_stamp_for_this_munging;
pOpponent_spec->levitate_data.initial_y = pOpponent_spec->car_spec->car_master_actor->t.t.translate.t.v[1];
if (pOpponent_spec->car_spec->has_been_stolen) {
NewTextHeadupSlot(4, 250, 2500, -4, GetMiscString(170));
NewTextHeadupSlot(4, 250, 2500, -4, GetMiscString(kMiscString_CarAddedToChangeCarList));
}
} else {
pOpponent_spec->car_spec->brake_force = 15.f * pOpponent_spec->car_spec->M;

View File

@ -848,7 +848,7 @@ void DrawKeyAssignments(int pCurrent_choice, int pCurrent_mode) {
font_n = &gFonts[9];
font_k = &gFonts[11];
}
TransDRPixelmapText(gBack_screen, name_x, y, font_n, GetMiscString(150 + i), 640);
TransDRPixelmapText(gBack_screen, name_x, y, font_n, GetMiscString(kMiscString_InputOptions_START + i), 640);
TransDRPixelmapText(gBack_screen, key_x, y, font_k, gKey_names[gKey_mapping[gKey_defns[i]] + 2], 640);
if (i == gCurrent_key && pCurrent_mode != 0) {
DrawRRectangle(gBack_screen, name_x - 3, y - 3, end_box, font_k->height + y + 2 - (TranslationMode() ? 2 : 0), 45);

View File

@ -202,9 +202,9 @@ void TogglePedestrians(void) {
if (!gProgram_state.sausage_eater_mode) {
gPedestrians_on = !gPedestrians_on;
if (gPedestrians_on) {
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(24));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_LetTheCarnageContinue));
} else {
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(25));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_NiceAndFluffyMode));
}
}
}
@ -1525,7 +1525,7 @@ void CheckLastPed(void) {
LOG_TRACE("()");
if (gNet_mode == eNet_mode_none && gProgram_state.peds_killed >= gTotal_peds) {
NewTextHeadupSlot(4, 0, 5000, -4, GetMiscString(26));
NewTextHeadupSlot(4, 0, 5000, -4, GetMiscString(kMiscString_EveryPedestrianWasted));
RaceCompleted(eRace_over_peds);
}
}

View File

@ -213,7 +213,7 @@ int GotPowerupX(tCar_spec* pCar, int pIndex, int pTell_net_players, int pDisplay
return -1;
}
if (the_powerup->got_proc == NULL) {
NewTextHeadupSlot(4, 0, 3000, -4, GetMiscString(190));
NewTextHeadupSlot(4, 0, 3000, -4, GetMiscString(kMiscString_UNAVAILABLE_IN_DEMO));
return -1;
}
original_index = pIndex;
@ -589,7 +589,7 @@ void ImprovePSPowerup(tCar_spec* pCar, int pIndex) {
LOG_TRACE("(%p, %d)", pCar, pIndex);
pCar->power_up_levels[pIndex]++;
NewTextHeadupSlot(4, 0, 3000, -4, GetMiscString(175 + pIndex));
NewTextHeadupSlot(4, 0, 3000, -4, GetMiscString(kMiscString_APOGained_START + pIndex));
}
// IDA: int __usercall GotTimeOrPower@<EAX>(tPowerup *pPowerup@<EAX>, tCar_spec *pCar@<EDX>)
@ -622,7 +622,7 @@ int GotTimeOrPower(tPowerup* pPowerup, tCar_spec* pCar) {
}
}
} else {
NewTextHeadupSlot(4, 0, 3000, -4, GetMiscString(174));
NewTextHeadupSlot(4, 0, 3000, -4, GetMiscString(kMiscString_YOU_ARE_ALREADY_AT_MAX));
}
}
return GET_POWERUP_INDEX(pPowerup);

View File

@ -58,7 +58,7 @@ void TogglePratcam(void) {
LOG_TRACE("()");
if (gAusterity_mode) {
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(192));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_NOT_ENOUGH_MEMORY));
} else {
if (gWhirr_noise == 0 || !DRS3SoundStillPlaying(gWhirr_noise)) {
DRS3StopSound(gWhirr_noise);

View File

@ -125,7 +125,7 @@ void DrawRaceList(int pOffset) {
}
}
if (gChange_race_net_mode) {
strcpy(rank_str, GetMiscString(202 + (gNet_race_sequence__racestrt == 1 ? 1 : 0)));
strcpy(rank_str, GetMiscString(gNet_race_sequence__racestrt == 1 ? kMiscString_SUBSEQUENT_RACES_WILL_BE_RANDOM : kMiscString_RACES_WILL_CONTINUE_DOWN_THIS_LIST));
TransBrPixelmapText(gBack_screen,
(right_most + left_most - BrPixelmapTextWidth(gBack_screen, gBig_font, rank_str)) / 2,
gCurrent_graf_data->choose_race_current_text_y,
@ -133,17 +133,17 @@ void DrawRaceList(int pOffset) {
gBig_font,
rank_str);
} else {
sprintf(rank_str, "%s%d", GetMiscString(27), gProgram_state.rank);
sprintf(rank_str, "%s%d", GetMiscString(kMiscString_YourCurrentRankIs), gProgram_state.rank);
text_x = (gCurrent_graf_data->choose_race_left + gCurrent_graf_data->choose_race_right) / 2 - BrPixelmapTextWidth(gBack_screen, gBig_font, rank_str) / 2;
TransBrPixelmapText(gBack_screen,
text_x,
gCurrent_graf_data->choose_race_current_text_y,
3,
gBig_font,
GetMiscString(27));
GetMiscString(kMiscString_YourCurrentRankIs));
sprintf(rank_str, "%d", gProgram_state.rank);
TransBrPixelmapText(gBack_screen,
text_x + BrPixelmapTextWidth(gBack_screen, gBig_font, GetMiscString(27)),
text_x + BrPixelmapTextWidth(gBack_screen, gBig_font, GetMiscString(kMiscString_YourCurrentRankIs)),
gCurrent_graf_data->choose_race_current_text_y,
5,
gBig_font,
@ -346,16 +346,16 @@ void DrawCar(int pCurrent_choice, int pCurrent_mode) {
PollCarDetails(gChoose_car_net_game);
if (gChange_race_net_mode == 0) {
if (gProgram_state.number_of_cars == 1) {
sprintf(s, GetMiscString(34));
sprintf(s, GetMiscString(kMiscString_NoOtherCarsToChooseFromYet));
} else if (gProgram_state.cars_available[gCurrent_car_index] == gProgram_state.frank_or_anniness) {
sprintf(s, GetMiscString(36));
sprintf(s, GetMiscString(kMiscString_YourOriginalCar));
} else {
sprintf(s, "%s %s", GetMiscString(35), gOpponents[gProgram_state.cars_available[gCurrent_car_index]].name);
sprintf(s, "%s %s", GetMiscString(kMiscString_OriginalDriverWas), gOpponents[gProgram_state.cars_available[gCurrent_car_index]].name);
}
} else if (gCar_details[gProgram_state.cars_available[gCurrent_car_index]].ownership == eCar_owner_someone) {
sprintf(s, "%s %s", GetMiscString(204), gCar_details[gProgram_state.cars_available[gCurrent_car_index]].name);
sprintf(s, "%s %s", GetMiscString(kMiscString_THIS_CAR_ALREADY_TAKEN_BY), gCar_details[gProgram_state.cars_available[gCurrent_car_index]].name);
} else {
sprintf(s, GetMiscString(205));
sprintf(s, GetMiscString(kMiscString_AVAILABLE));
}
#pragma GCC diagnostic pop
@ -784,20 +784,20 @@ void DrawPartsText(void) {
LOG_TRACE("()");
CalcPartPrice(gPart_category, gPart_index, &price, &cost);
TransBrPixelmapText(gBack_screen, gCurrent_graf_data->parts_cost_x, gCurrent_graf_data->parts_cost_y, 5, gFont_7, GetMiscString(28));
TransBrPixelmapText(gBack_screen, gCurrent_graf_data->parts_cost_x, gCurrent_graf_data->parts_cost_y, 5, gFont_7, GetMiscString(kMiscString_RetailColon));
BrPixelmapTextF(gBack_screen, gCurrent_graf_data->parts_numbers_x, gCurrent_graf_data->parts_cost_y - (TranslationMode() ? 2 : 0), 5, gFont_7, "%d", price);
if (cost > 0) {
TransBrPixelmapText(gBack_screen, gCurrent_graf_data->parts_net_x, gCurrent_graf_data->parts_net_y, 45, gFont_7, GetMiscString(29));
TransBrPixelmapText(gBack_screen, gCurrent_graf_data->parts_net_x, gCurrent_graf_data->parts_net_y, 45, gFont_7, GetMiscString(kMiscString_YouPayColon));
BrPixelmapTextF(gBack_screen, gCurrent_graf_data->parts_numbers_x, gCurrent_graf_data->parts_net_y - (TranslationMode() ? 2 : 0), 45, gFont_7, "%d", cost);
} else if (cost < 0) {
TransBrPixelmapText(gBack_screen, gCurrent_graf_data->parts_net_x, gCurrent_graf_data->parts_net_y, 201, gFont_7, GetMiscString(30));
TransBrPixelmapText(gBack_screen, gCurrent_graf_data->parts_net_x, gCurrent_graf_data->parts_net_y, 201, gFont_7, GetMiscString(kMiscString_RefundColon));
BrPixelmapTextF(gBack_screen, gCurrent_graf_data->parts_numbers_x, gCurrent_graf_data->parts_net_y - (TranslationMode() ? 2 : 0), 201, gFont_7, "%d", -cost);
} else if (gJust_bought_part) {
TransBrPixelmapText(gBack_screen, gCurrent_graf_data->parts_net_x, gCurrent_graf_data->parts_net_y, 134, gFont_7, GetMiscString(33));
TransBrPixelmapText(gBack_screen, gCurrent_graf_data->parts_net_x, gCurrent_graf_data->parts_net_y, 134, gFont_7, GetMiscString(kMiscString_YouGotIt));
} else {
TransBrPixelmapText(gBack_screen, gCurrent_graf_data->parts_net_x, gCurrent_graf_data->parts_net_y, 134, gFont_7, GetMiscString(32));
TransBrPixelmapText(gBack_screen, gCurrent_graf_data->parts_net_x, gCurrent_graf_data->parts_net_y, 134, gFont_7, GetMiscString(kMiscString_YoursAlready));
}
TransBrPixelmapText(gBack_screen, gCurrent_graf_data->parts_total_x, gCurrent_graf_data->parts_total_y, 2, gFont_7, GetMiscString(31));
TransBrPixelmapText(gBack_screen, gCurrent_graf_data->parts_total_x, gCurrent_graf_data->parts_total_y, 2, gFont_7, GetMiscString(kMiscString_CreditsColon));
BrPixelmapTextF(gBack_screen, gCurrent_graf_data->parts_numbers_x, gCurrent_graf_data->parts_total_y - (TranslationMode() ? 2 : 0), 2, gFont_7, "%d", gProgram_state.credits);
}
@ -2554,7 +2554,7 @@ void NetSynchStartDraw(int pCurrent_choice, int pCurrent_mode) {
strcpy(s, gNet_players[i].player_name);
if (gNet_players[i].host) {
strcat(s, " -");
strcat(s, GetMiscString(88));
strcat(s, GetMiscString(kMiscString_HOST));
strcat(s, "-");
}
TurnOffPaletteConversion();
@ -2575,7 +2575,7 @@ void NetSynchStartDraw(int pCurrent_choice, int pCurrent_mode) {
DrawAnItem__racestrt(gCurrent_graf_data->start_synch_x_2,
i,
(gNet_players[i].player_status == ePlayer_status_ready) ? 83 : ((gNet_players[i].player_status == ePlayer_status_not_responding) ? 247 : 4),
GetMiscString(77 + gNet_players[i].player_status));
GetMiscString(kMiscString_NetworkPlayerStatus_START + gNet_players[i].player_status));
if (gNet_players[i].player_status == ePlayer_status_ready) {
number_ready++;
}

View File

@ -187,10 +187,10 @@ void ActualActionReplayHeadups(int pSpecial_zappy_bastard) {
}
if (the_time - gCam_change_time < 2000) {
TransDRPixelmapText(gBack_screen,
gCurrent_graf_data->action_replay_cam_text_x - DRTextWidth(&gFonts[1], GetMiscString(gAction_replay_camera_mode ? 39 : 38)),
gCurrent_graf_data->action_replay_cam_text_x - DRTextWidth(&gFonts[1], GetMiscString(gAction_replay_camera_mode ? kMiscString_PanningCamera : kMiscString_StandardCamera)),
gCurrent_graf_data->action_replay_cam_text_y,
&gFonts[1],
GetMiscString(gAction_replay_camera_mode ? 39 : 38),
GetMiscString(gAction_replay_camera_mode ? kMiscString_PanningCamera : kMiscString_StandardCamera),
2 * gCurrent_graf_data->action_replay_cam_text_x);
}
TurnOnPaletteConversion();
@ -307,7 +307,7 @@ void ToggleReplay(void) {
LOG_TRACE("()");
if (!IsActionReplayAvailable()) {
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(37));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_ACTION_REPLAY_UNAVAILABLE));
return;
}
if (!gAction_replay_mode) {

View File

@ -154,7 +154,7 @@ void IncrementCheckpoint(void) {
gLap++;
if (gLap == gTotal_laps) {
PratcamEvent(33); // FIXME: or PratcamEventNow
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(42));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_FinalLap));
DRS3StartSound(gPedestrians_outlet, 8014);
done_voice = 1;
} else if (gLap > gTotal_laps) {
@ -206,7 +206,7 @@ void WrongCheckpoint(int pCheckpoint_index) {
return;
}
}
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(43));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_WrongCheckpoint));
DRS3StartSound(gPedestrians_outlet, 8013);
gLast_checkpoint_time = GetTotalTime();
gLast_wrong_checkpoint = pCheckpoint_index;
@ -298,7 +298,7 @@ void TotalRepair(void) {
LOG_TRACE("()");
TotallyRepairCar();
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(41));
NewTextHeadupSlot(4, 0, 1000, -4, GetMiscString(kMiscString_InstantRepair));
}
// IDA: void __cdecl DoLogos()
@ -688,7 +688,7 @@ void JumpTheStart(void) {
DRS3StopOutletSound(gPedestrians_outlet);
DRS3StartSound(gPedestrians_outlet, 8016);
SpendCredits(gJump_start_fine[gProgram_state.skill_level]);
sprintf(s, "%s %d %s", GetMiscString(gProgram_state.frank_or_anniness == eFrankie ? 44 : 49), gJump_start_fine[gProgram_state.skill_level], GetMiscString(45));
sprintf(s, "%s %d %s", GetMiscString(gProgram_state.frank_or_anniness == eFrankie ? kMiscString_BadBoy : kMiscString_BadGirl), gJump_start_fine[gProgram_state.skill_level], GetMiscString(kMiscString_CreditFine));
NewTextHeadupSlot(4, 0, 1000, -4, s);
}
}

View File

@ -439,7 +439,7 @@ enum {
kFatalError_OpenHeadupsFile = 102,
kFatalError_OpenPartsshopFile = 103,
kFatalError_OpenResolutionDependentFile = 104,
kFatalError_NonInReceivedPlayerList = 105,
kFatalError_NotInReceivedPlayerList = 105,
kFatalError_OpenKeyNamesFile = 106,
kFatalError_Open_S = 107,
kFatalError_SpecialVolumeTooManyPlanes_S = 108,
@ -453,6 +453,261 @@ enum {
kFatalError_RandomNumberOutOfRange_S = 116,
};
enum {
kMiscString_FIXED_THAT_YOU_TWISTED_BASTARD = -1,
kMiscString_Invulnerable = 0,
kMiscString_TimerFrozen = 1,
kMiscString_MirrorOn = 2,
kMiscString_MirrorOff = 3,
kMiscString_RepairingForFree = 4,
kMiscString_RepairCostColon = 5,
kMiscString_RepairObstructed = 6,
kMiscString_RecoveryCostColon = 7,
kMiscString_OpponentsVisibleOnMap = 8,
kMiscString_OpponentsNotVisibleOnMap = 9,
kMiscString_EveryOpponentWasted = 10,
kMiscString_RunningDemoGame = 11,
kMiscString_Credits = 12,
kMiscString_Credit = 13,
kMiscString_Lost = 14,
kMiscString_Empty = 15,
kMiscString_PROFIT = 16,
kMiscString_LOSS = 17,
kMiscString_KILLS = 18,
kMiscString_WASTED_19 = 19,
kMiscString_LAP = 20,
kMiscString_CP = 21,
kMiscString_CompletionBonusColon = 22,
kMiscString_TimeBonus = 23,
kMiscString_LetTheCarnageContinue = 24,
kMiscString_NiceAndFluffyMode = 25,
kMiscString_EveryPedestrianWasted = 26,
kMiscString_YourCurrentRankIs = 27,
kMiscString_RetailColon = 28,
kMiscString_YouPayColon = 29,
kMiscString_RefundColon = 30,
kMiscString_CreditsColon = 31,
kMiscString_YoursAlready = 32,
kMiscString_YouGotIt = 33,
kMiscString_NoOtherCarsToChooseFromYet = 34,
kMiscString_OriginalDriverWas = 35,
kMiscString_YourOriginalCar = 36,
kMiscString_ACTION_REPLAY_UNAVAILABLE = 37,
kMiscString_StandardCamera = 38,
kMiscString_PanningCamera = 39,
kMiscString_ActionTrackingCamera = 40,
kMiscString_InstantRepair = 41,
kMiscString_FinalLap = 42,
kMiscString_WrongCheckpoint = 43,
kMiscString_BadBoy = 44,
kMiscString_CreditFine = 45,
kMiscString_WASTED_46 = 46,
kMiscString_PRFT = 47,
kMiscString_RecoveringForFree = 48,
kMiscString_BadGirl = 49,
kMiscString_NoCarTextures = 50,
kMiscString_TransparentCarTexturesOnly = 51,
kMiscString_FullCarTextures = 52,
kMiscString_NoRoadTextures = 53,
kMiscString_RoadTextures = 54,
kMiscString_NoWallTextures = 55,
kMiscString_LinearWallTextures = 56,
kMiscString_BestWallTextures = 57,
kMiscString_HasJoinedTheGame = 58,
kMiscString_NetworkGameTypeNames_START = 59,
kMiscString_DRIVEN_TO_DESTRUCTION = 59,
kMiscString_CAR_CRUSHER = 60,
kMiscString_CARNAGE_ACCUMULATOR = 61,
kMiscString_CHECKPOINT_STAMPEDE = 62,
kMiscString_SUDDEN_DEATH = 63,
kMiscString_TERMINAL_TAG = 64,
kMiscString_FOX_N_HOUNDS = 65,
kMiscString_UNUSED_66 = 66,
kMiscString_UNUSED_67 = 67,
kMiscString_NetworkGameStage_START = 68,
kMiscString_STARTING = 68,
kMiscString_READY_69 = 69,
kMiscString_PLAYING = 70,
kMiscString_NetworkGameOpenGame_START = 71,
kMiscString_CLOSED = 71,
kMiscString_OPEN = 72,
kMiscString_GAME_TERMINATED_BY_HOST = 73,
kMiscString_HasLeftTheGame = 74,
kMiscString_CannotSaveGameInNetworkPlay = 75,
kMiscString_NetworkPlayIsNotAvailable = 76,
kMiscString_NetworkPlayerStatus_START = 77,
kMiscString_NetworkPlayerStatus_UNKNOWN = 77,
kMiscString_NetworkPlayerStatus_READY = 78,
kMiscString_NetworkPlayerStatus_LOADING = 79,
kMiscString_IN_WRECKS_GALLERY = 80,
kMiscString_IN_RACE_SUMMARY = 81,
kMiscString_NOT_RESPONDING = 82,
kMiscString_RACING = 83,
kMiscString_IN_MAIN_MENU = 84,
kMiscString_RECOVERING = 85,
kMiscString_IN_ACTION_REPLAY = 86,
kMiscString_HOST_ABANDONED_RACE = 87,
kMiscString_HOST = 88,
kMiscString_SORRY_YOU_RE_TOO_LATE = 89,
kMiscString_IS_NO_LONGER_RESPONDING = 90,
kMiscString_PANIC_HOST_HAS_DISAPPEARED = 91,
kMiscString_IN = 92,
kMiscString_OUT = 93,
kMiscString_CREDITS = 94,
kMiscString_CANNOT_AFFORD_TO_REPAIR = 95,
kMiscString_CANNOT_AFFORD_TO_RECOVER = 96,
kMiscString_RECOVERY_IN = 97,
kMiscString_SECOND = 98,
kMiscString_SECONDS = 99,
kMiscString_TrackAppearsVeryQuickly = 100,
kMiscString_TrackAppearsQuiteQuickly = 101,
kMiscString_TrackQppearsQuiteLate = 102,
kMiscString_TrackAppearsVeryLate = 103,
kMiscString_NoShadows = 104,
kMiscString_ShadowUnderOwnCar = 105,
kMiscString_ShadowUnderMainCars = 106,
kMiscString_ShadowUnderAllCars = 107,
kMiscString_SkyTextureOn = 108,
kMiscString_SkyTextureOff = 109,
kMiscString_ThereIsNoSkyTextureForThisRace = 110,
kMiscString_DepthCueingOn = 111,
kMiscString_DepthCueingOff = 112,
kMiscString_ThereIsNoDepthCueingForThisRace = 113,
kMiscString_YonIncreasedTo_D = 114,
kMiscString_YonDecreasedTo_D = 115,
kMiscString_FewestSounds = 116,
kMiscString_PartialSound = 117,
kMiscString_AllSounds = 118,
kMiscString_CarSimplificationLevel_D = 119,
kMiscString_AccessoriesOn = 120,
kMiscString_AccessoriesOff = 121,
kMiscString_SmokeOn = 122,
kMiscString_SmokeOff = 123,
kMiscString_NetGamesAlwaysAccessorized = 124,
kMiscString_RECOVERY_CANCELLED = 125,
kMiscString_AND = 126,
kMiscString_WASTED_EACH_OTHER = 127,
kMiscString_RACE_CHANGED_DURING_LOADING = 128,
kMiscString_WRONG_TEXT_129 = 129,
kMiscString_WRONG_TEXT_130 = 130,
kMiscString_WRONG_TEXT_131 = 131,
kMiscString_WRONG_TEXT_132 = 132,
kMiscString_WRONG_TEXT_133 = 133,
kMiscString_WRONG_TEXT_134 = 134,
kMiscString_WRONG_TEXT_135 = 135,
kMiscString_WRONG_TEXT_136 = 136,
kMiscString_WRONG_TEXT_137 = 137,
kMiscString_WRONG_TEXT_138 = 138,
kMiscString_WRONG_TEXT_139 = 139,
kMiscString_WRONG_TEXT_140 = 140,
kMiscString_WRONG_TEXT_141 = 141,
kMiscString_WRONG_TEXT_142 = 142,
kMiscString_WRONG_TEXT_143 = 143,
kMiscString_WRONG_TEXT_144 = 144,
kMiscString_WRONG_TEXT_145 = 145,
kMiscString_WRONG_TEXT_146 = 146,
kMiscString_WRONG_TEXT_147 = 147,
kMiscString_WRONG_TEXT_148 = 148,
kMiscString_WRONG_TEXT_149 = 149,
kMiscString_InputOptions_START = 150,
kMiscString_Accelerate = 150,
kMiscString_Brake_Rev = 151,
kMiscString_TurnLeft = 152,
kMiscString_TurnRight = 153,
kMiscString_Handbrake = 154,
kMiscString_Repair = 155,
kMiscString_Recover = 156,
kMiscString_ActionReplay = 157,
kMiscString_Wheelspin = 158,
kMiscString_CockpitToggle = 159,
kMiscString_LookLeft = 160,
kMiscString_LookForward = 161,
kMiscString_LookRight = 162,
kMiscString_MapToggle = 163,
kMiscString_BuyArmour = 164,
kMiscString_BuyPower = 165,
kMiscString_BuyOffense = 166,
kMiscString_SendMessage = 167,
kMiscString_WRONG_TEXT_168 = 168,
kMiscString_WRONG_TEXT_169 = 169,
kMiscString_CarAddedToChangeCarList = 170,
kMiscString_WastedBy = 171,
kMiscString_COMMITTED_SUICIDE = 172,
kMiscString_WASTED_173 = 173,
kMiscString_YOU_ARE_ALREADY_AT_MAX = 174,
kMiscString_APOGained_START = 175,
kMiscString_ARMOUR_STRENGTHENED = 175,
kMiscString_ENGINE_POWER_INCREASED = 176,
kMiscString_INCREASED_OFFENSIVE = 177,
kMiscString_ONLY_AVAILABLE_IN_NET_GAMES = 178,
kMiscString_CANNOT_AFFORD_IT = 179,
kMiscString_TARGET_180 = 180,
kMiscString_TARGET_181 = 181,
kMiscString_TARGET_182 = 182,
kMiscString_LIMIT = 183,
kMiscString_IS_OUT = 184,
kMiscString_IS_IT = 185,
kMiscString_HA_HA_YOU_ARE_IT = 186,
kMiscString_IS_NOW_THE_FOX = 187,
kMiscString_YOU_ARE_THE_FOX = 188,
kMiscString_IS_THE_WINNER = 189,
kMiscString_UNAVAILABLE_IN_DEMO = 190,
kMiscString_ENTER_NAME = 191,
kMiscString_NOT_ENOUGH_MEMORY = 192,
kMiscString_LOW_MEMORY_MODE_INVOKED = 193,
kMiscString_NetworkGameTypeDescriptions_START = 194,
kMiscString_DrivenToDestruction_Description = 194,
kMiscString_CarCrusher_Description = 195,
kMiscString_CarnageAccumulator_Description = 196,
kMiscString_CheckpointStampede_Description = 197,
kMiscString_SuddenDeath_Description = 198,
kMiscString_TerminalTag_Description = 199,
kMiscString_FoxAndHounds_Description = 200,
kMiscString_FIRST_RACE = 201,
kMiscString_RACES_WILL_CONTINUE_DOWN_THIS_LIST = 202,
kMiscString_SUBSEQUENT_RACES_WILL_BE_RANDOM = 203,
kMiscString_THIS_CAR_ALREADY_TAKEN_BY = 204,
kMiscString_AVAILABLE = 205,
kMiscString_NetworkGamesTableHeading_HOST = 206,
kMiscString_NetworkGamesTableHeading_GAME_TYPE = 207,
kMiscString_NetworkGamesTableHeading_PLAYERS = 208,
kMiscString_NetworkGamesTableHeading_STATUS = 209,
kMiscString_PLAYER = 210,
kMiscString_PLAYED = 211,
kMiscString_WON = 212,
kMiscString_SCORE = 213,
kMiscString_THE_FOX_CANNOT_DO_THAT = 214,
kMiscString_ONLY_IT_CAN_DO_THAT = 215,
kMiscString_COP = 216,
kMiscString_WATCHING = 217,
kMiscString_RACE_LEADER = 218,
kMiscString_THAT_HALVED_YOUR_KILL_COUNT = 219,
kMiscString_THAT_LOST_YOU_A_CHECKPOINT = 220,
kMiscString_BACK_TO_THE_START = 221,
kMiscString_THAT_HALVED_YOUR_TIME = 222,
kMiscString_PLEASE_INSERT_THE_CARMAGEDDON_CD = 223,
kMiscString_TRIED_TO_CHEAT = 224,
kMiscString_MANAGED_TO_CHEAT = 225,
kMiscString_MESSAGE_SENT = 226,
kMiscString_ENTER_MESSAGE = 227,
kMiscString_PLEASE_WAIT_HOST_HAS_PAUSED = 228,
kMiscString_USE_SYSTEM_CONTROL_PANEL_FOR_JOYSTICKS = 229,
kMiscString_CANNOT_CALIBRATE_JOYSTICK_DURING_RACE_IN_SVGA = 230,
kMiscString_HIT_ESCAPE_TO_ABORT = 231,
kMiscString_HIT_ESCAPE_TO_FINISH_JOYSTICK_SETTINGS_1_WILL_BE_RETAINED = 232,
kMiscString_PLEASE_MOVE_JOYSTICK_1_TO_LEFT_AND_HIT_ANY_KEY = 233,
kMiscString_PLEASE_MOVE_JOYSTICK_1_TO_BOTTOM_RIGHT_AND_HIT_ANY_KEY = 234,
kMiscString_PLEASE_MOVE_JOYSTICK_1_TO_CENTRE_AND_HIT_ANY_KEY = 235,
kMiscString_PLEASE_MOVE_JOYSTICK_2_TO_TOP_LEFT_AND_HIT_ANY_KEY = 236,
kMiscString_PLEASE_MOVE_JOYSTICK_2_TO_BOTTOM_RIGHT_AND_HIT_ANY_KEY = 237,
kMiscString_PLEASE_MOVE_JOYSTICK_2_TO_CENTRE_AND_HIT_ANY_KEY = 238,
kMiscString_A_NUMBER_FOR_YOU_TO_LOOK_AT = 239,
kMiscString_ANOTHER_NUMBER_FOR_YOU_TO_LOOK_AT = 240,
kMiscString_QUOTE_IT_QUOTE = 241,
kMiscString_TOO_LATE_TO_CANCEL = 242,
kMiscString_CouldNotFindTheCarmageddonCD = 243,
};
enum {
NETMSGID_SENDMEDETAILS = 0x00,
NETMSGID_DETAILS = 0x01,