mirror of
https://github.com/GTAmodding/re3.git
synced 2024-12-24 18:25:41 +00:00
Controller menu
This commit is contained in:
parent
102d105e0a
commit
12330e38cb
17 changed files with 1002 additions and 56 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -2416,7 +2416,7 @@ int32 CControllerConfigManager::GetNumOfSettingsForAction(e_ControllerAction act
|
||||||
#define VFB(b)
|
#define VFB(b)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define CONTROLLER_BUTTONS(T, O, X, Q, L1, L2, L3, R1, R2, R3, SELECT, RSL, RSR) \
|
#define CONTROLLER_BUTTONS(T, O, X, Q, L1, L2, L3, R1, R2, R3, SELECT, RSU, RSD, RSL, RSR) \
|
||||||
{{ \
|
{{ \
|
||||||
O, /* PED_FIREWEAPON */ \
|
O, /* PED_FIREWEAPON */ \
|
||||||
R2, /* PED_CYCLE_WEAPON_RIGHT */ \
|
R2, /* PED_CYCLE_WEAPON_RIGHT */ \
|
||||||
|
@ -2576,8 +2576,8 @@ int32 CControllerConfigManager::GetNumOfSettingsForAction(e_ControllerAction act
|
||||||
L3, /* PED_DUCK */ \
|
L3, /* PED_DUCK */ \
|
||||||
L1, /* PED_ANSWER_PHONE */ \
|
L1, /* PED_ANSWER_PHONE */ \
|
||||||
VFB(R1) /* VEHICLE_FIREWEAPON */ \
|
VFB(R1) /* VEHICLE_FIREWEAPON */ \
|
||||||
nil, /* VEHICLE_ACCELERATE */ \
|
RSU, /* VEHICLE_ACCELERATE */ \
|
||||||
nil, /* VEHICLE_BRAKE */ \
|
RSD, /* VEHICLE_BRAKE */ \
|
||||||
O, /* VEHICLE_CHANGE_RADIO_STATION */ \
|
O, /* VEHICLE_CHANGE_RADIO_STATION */ \
|
||||||
L3, /* VEHICLE_HORN */ \
|
L3, /* VEHICLE_HORN */ \
|
||||||
Q, /* TOGGLE_SUBMISSIONS */ \
|
Q, /* TOGGLE_SUBMISSIONS */ \
|
||||||
|
@ -2618,10 +2618,10 @@ int32 CControllerConfigManager::GetNumOfSettingsForAction(e_ControllerAction act
|
||||||
#define RIGHT "RIGHT"
|
#define RIGHT "RIGHT"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *XboxButtons_noIcons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("Y", "B", "A", "X", "LB", "LT", "LS", "RB", "RT", "RS", "BACK", "right stick left", "right stick right");
|
const char *XboxButtons_noIcons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("Y", "B", "A", "X", "LB", "LT", "LS", "RB", "RT", "RS", "BACK", "right stick up", "right stick down", "right stick left", "right stick right");
|
||||||
|
|
||||||
#ifdef BUTTON_ICONS
|
#ifdef BUTTON_ICONS
|
||||||
const char *XboxButtons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("~T~", "~O~", "~X~", "~Q~", "~K~", "~M~", "~A~", "~J~", "~V~", "~C~", "BACK", "~(~", "~)~");
|
const char *XboxButtons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("~T~", "~O~", "~X~", "~Q~", "~K~", "~M~", "~A~", "~J~", "~V~", "~C~", "BACK", "~H~", "~L~", "~(~", "~)~");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -2630,11 +2630,6 @@ const char *XboxButtons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("~T~", "~O
|
||||||
#define PS2_CIRCLE "|"
|
#define PS2_CIRCLE "|"
|
||||||
#define PS2_CROSS "/"
|
#define PS2_CROSS "/"
|
||||||
#define PS2_SQUARE "^"
|
#define PS2_SQUARE "^"
|
||||||
#elif defined(BUTTON_ICONS)
|
|
||||||
#define PS2_TRIANGLE "~T~"
|
|
||||||
#define PS2_CIRCLE "~O~"
|
|
||||||
#define PS2_CROSS "~X~"
|
|
||||||
#define PS2_SQUARE "~Q~"
|
|
||||||
#else
|
#else
|
||||||
#define PS2_TRIANGLE "TRIANGLE"
|
#define PS2_TRIANGLE "TRIANGLE"
|
||||||
#define PS2_CIRCLE "CIRCLE"
|
#define PS2_CIRCLE "CIRCLE"
|
||||||
|
@ -2643,11 +2638,11 @@ const char *XboxButtons[][MAX_CONTROLLERACTIONS] = CONTROLLER_BUTTONS("~T~", "~O
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *PlayStationButtons_noIcons[][MAX_CONTROLLERACTIONS] =
|
const char *PlayStationButtons_noIcons[][MAX_CONTROLLERACTIONS] =
|
||||||
CONTROLLER_BUTTONS(PS2_TRIANGLE, PS2_CIRCLE, PS2_CROSS, PS2_SQUARE, "L1", "L2", "L3", "R1", "R2", "R3", "SELECT", "right stick left", "right stick right");
|
CONTROLLER_BUTTONS(PS2_TRIANGLE, PS2_CIRCLE, PS2_CROSS, PS2_SQUARE, "L1", "L2", "L3", "R1", "R2", "R3", "SELECT", "right stick up", "right stick down", "right stick left", "right stick right");
|
||||||
|
|
||||||
#ifdef BUTTON_ICONS
|
#ifdef BUTTON_ICONS
|
||||||
const char *PlayStationButtons[][MAX_CONTROLLERACTIONS] =
|
const char *PlayStationButtons[][MAX_CONTROLLERACTIONS] =
|
||||||
CONTROLLER_BUTTONS(PS2_TRIANGLE, PS2_CIRCLE, PS2_CROSS, PS2_SQUARE, "~K~", "~M~", "~A~", "~J~", "~V~", "~C~", "SELECT", "~(~", "~)~");
|
CONTROLLER_BUTTONS("~T~", "~O~", "~X~", "~Q~", "~K~", "~M~", "~A~", "~J~", "~V~", "~C~", "SELECT", "~H~", "~L~", "~(~", "~)~");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#undef PS2_TRIANGLE
|
#undef PS2_TRIANGLE
|
||||||
|
@ -2669,11 +2664,36 @@ void CControllerConfigManager::GetWideStringOfCommandKeys(uint16 action, wchar *
|
||||||
if (CPad::GetPad(0)->IsAffectedByController) {
|
if (CPad::GetPad(0)->IsAffectedByController) {
|
||||||
wchar wstr[16];
|
wchar wstr[16];
|
||||||
|
|
||||||
// TODO: INI and/or menu setting for Xbox/PS switch
|
const char* (*Buttons)[MAX_CONTROLLERACTIONS];
|
||||||
|
|
||||||
#ifdef BUTTON_ICONS
|
#ifdef BUTTON_ICONS
|
||||||
const char *(*Buttons)[MAX_CONTROLLERACTIONS] = CFont::ButtonsSlot != -1 ? XboxButtons : XboxButtons_noIcons;
|
#ifdef GAMEPAD_MENU
|
||||||
|
switch (FrontEndMenuManager.m_PrefsControllerType)
|
||||||
|
{
|
||||||
|
case CMenuManager::CONTROLLER_DUALSHOCK2:
|
||||||
|
case CMenuManager::CONTROLLER_DUALSHOCK3:
|
||||||
|
case CMenuManager::CONTROLLER_DUALSHOCK4:
|
||||||
|
Buttons = CFont::ButtonsSlot != -1 ? PlayStationButtons : PlayStationButtons_noIcons;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
#endif
|
||||||
|
Buttons = CFont::ButtonsSlot != -1 ? XboxButtons : XboxButtons_noIcons;
|
||||||
|
#ifdef GAMEPAD_MENU
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
const char *(*Buttons)[MAX_CONTROLLERACTIONS] = XboxButtons_noIcons;
|
switch (FrontEndMenuManager.m_PrefsControllerType)
|
||||||
|
{
|
||||||
|
case CMenuManager::CONTROLLER_DUALSHOCK2:
|
||||||
|
case CMenuManager::CONTROLLER_DUALSHOCK3:
|
||||||
|
case CMenuManager::CONTROLLER_DUALSHOCK4:
|
||||||
|
Buttons = PlayStationButtons_noIcons;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
Buttons = XboxButtons_noIcons;
|
||||||
|
break;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
assert(Buttons[CPad::GetPad(0)->Mode][action] != nil); // we cannot use these
|
assert(Buttons[CPad::GetPad(0)->Mode][action] != nil); // we cannot use these
|
||||||
|
|
|
@ -125,6 +125,10 @@ bool CMenuManager::m_PrefsMarketing = false;
|
||||||
bool CMenuManager::m_PrefsDisableTutorials = false;
|
bool CMenuManager::m_PrefsDisableTutorials = false;
|
||||||
#endif // !MASTER
|
#endif // !MASTER
|
||||||
|
|
||||||
|
#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU)
|
||||||
|
uint32 TimeToStopPadShaking;
|
||||||
|
#endif
|
||||||
|
|
||||||
const char* FrontendFilenames[][2] = {
|
const char* FrontendFilenames[][2] = {
|
||||||
{"background", ""},
|
{"background", ""},
|
||||||
{"vc_logo", "vc_logom"},
|
{"vc_logo", "vc_logom"},
|
||||||
|
@ -151,7 +155,14 @@ const char* FrontendFilenames[][2] = {
|
||||||
{"downOff", "buttonA"},
|
{"downOff", "buttonA"},
|
||||||
{"downOn", "buttonA"},
|
{"downOn", "buttonA"},
|
||||||
{"upOff", "buttonA"},
|
{"upOff", "buttonA"},
|
||||||
{"upOn", "buttonA"}
|
{"upOn", "buttonA"},
|
||||||
|
#ifdef GAMEPAD_MENU
|
||||||
|
{"fe_controller", "" },
|
||||||
|
{"fe_arrows1", "" },
|
||||||
|
{"fe_arrows2", "" },
|
||||||
|
{"fe_arrows3", "" },
|
||||||
|
{"fe_arrows4", "" },
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MENU_X_RIGHT_ALIGNED(x) SCALE_AND_CENTER_X(DEFAULT_SCREEN_WIDTH - (x))
|
#define MENU_X_RIGHT_ALIGNED(x) SCALE_AND_CENTER_X(DEFAULT_SCREEN_WIDTH - (x))
|
||||||
|
@ -526,6 +537,10 @@ CMenuManager::CMenuManager()
|
||||||
#ifdef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
m_PrefsIslandLoading = ISLAND_LOADING_LOW;
|
m_PrefsIslandLoading = ISLAND_LOADING_LOW;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef GAMEPAD_MENU
|
||||||
|
m_PrefsControllerType = CONTROLLER_XBOXONE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1074,7 +1089,7 @@ CMenuManager::DrawStandardMenus(bool activeScreen)
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) {
|
switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) {
|
||||||
#ifdef LEGACY_MENU_OPTIONS
|
#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU)
|
||||||
case MENUACTION_CTRLVIBRATION:
|
case MENUACTION_CTRLVIBRATION:
|
||||||
if (m_PrefsUseVibration)
|
if (m_PrefsUseVibration)
|
||||||
rightText = TheText.Get("FEM_ON");
|
rightText = TheText.Get("FEM_ON");
|
||||||
|
@ -1539,6 +1554,11 @@ CMenuManager::DrawStandardMenus(bool activeScreen)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
switch (m_nCurrScreen) {
|
switch (m_nCurrScreen) {
|
||||||
|
#ifdef GAMEPAD_MENU
|
||||||
|
case MENUPAGE_CONTROLLER_SETTINGS:
|
||||||
|
PrintController();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
case MENUPAGE_STATS:
|
case MENUPAGE_STATS:
|
||||||
case MENUPAGE_CONTROLLER_PC:
|
case MENUPAGE_CONTROLLER_PC:
|
||||||
case MENUPAGE_SOUND_SETTINGS:
|
case MENUPAGE_SOUND_SETTINGS:
|
||||||
|
@ -2280,6 +2300,9 @@ CMenuManager::DrawBackground(bool transitionCall)
|
||||||
break;
|
break;
|
||||||
case MENUPAGE_SKIN_SELECT:
|
case MENUPAGE_SKIN_SELECT:
|
||||||
case MENUPAGE_KEYBOARD_CONTROLS:
|
case MENUPAGE_KEYBOARD_CONTROLS:
|
||||||
|
#ifdef GAMEPAD_MENU
|
||||||
|
case MENUPAGE_CONTROLLER_SETTINGS:
|
||||||
|
#endif
|
||||||
menuBg.topLeft_x = 14.0f;
|
menuBg.topLeft_x = 14.0f;
|
||||||
menuBg.topLeft_y = 39.0f;
|
menuBg.topLeft_y = 39.0f;
|
||||||
menuBg.topRight_x = 636.0f;
|
menuBg.topRight_x = 636.0f;
|
||||||
|
@ -2948,12 +2971,19 @@ CMenuManager::LoadAllTextures()
|
||||||
CTxdStore::AddRef(frontendTxdSlot2);
|
CTxdStore::AddRef(frontendTxdSlot2);
|
||||||
CTxdStore::SetCurrentTxd(frontendTxdSlot2);
|
CTxdStore::SetCurrentTxd(frontendTxdSlot2);
|
||||||
|
|
||||||
|
#ifdef GAMEPAD_MENU
|
||||||
|
for (int i = 3; i < MENUSPRITE_CONTROLLER; i++) {
|
||||||
|
#else
|
||||||
for (int i = 3; i < NUM_MENU_SPRITES; i++) {
|
for (int i = 3; i < NUM_MENU_SPRITES; i++) {
|
||||||
|
#endif
|
||||||
m_aFrontEndSprites[i].SetTexture(FrontendFilenames[i][0], FrontendFilenames[i][1]);
|
m_aFrontEndSprites[i].SetTexture(FrontendFilenames[i][0], FrontendFilenames[i][1]);
|
||||||
m_aFrontEndSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER);
|
m_aFrontEndSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER);
|
||||||
}
|
}
|
||||||
|
|
||||||
CTxdStore::PopCurrentTxd();
|
CTxdStore::PopCurrentTxd();
|
||||||
|
#ifdef GAMEPAD_MENU
|
||||||
|
LoadController(m_PrefsControllerType);
|
||||||
|
#endif
|
||||||
CStreaming::IHaveUsedStreamingMemory();
|
CStreaming::IHaveUsedStreamingMemory();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4896,6 +4926,16 @@ CMenuManager::ProcessUserInput(uint8 goDown, uint8 goUp, uint8 optionSelected, u
|
||||||
|
|
||||||
if (changeAmount != 0) {
|
if (changeAmount != 0) {
|
||||||
switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) {
|
switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) {
|
||||||
|
#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU)
|
||||||
|
case MENUACTION_CTRLCONFIG:
|
||||||
|
CPad::GetPad(0)->Mode += changeAmount;
|
||||||
|
if (CPad::GetPad(0)->Mode > 3)
|
||||||
|
CPad::GetPad(0)->Mode = 0;
|
||||||
|
else if (CPad::GetPad(0)->Mode < 0)
|
||||||
|
CPad::GetPad(0)->Mode = 3;
|
||||||
|
SaveSettings();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
case MENUACTION_RADIO:
|
case MENUACTION_RADIO:
|
||||||
ChangeRadioStation(changeAmount);
|
ChangeRadioStation(changeAmount);
|
||||||
break;
|
break;
|
||||||
|
@ -5037,14 +5077,14 @@ void
|
||||||
CMenuManager::ProcessOnOffMenuOptions()
|
CMenuManager::ProcessOnOffMenuOptions()
|
||||||
{
|
{
|
||||||
switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) {
|
switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) {
|
||||||
#ifdef LEGACY_MENU_OPTIONS
|
#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU)
|
||||||
case MENUACTION_CTRLVIBRATION:
|
case MENUACTION_CTRLVIBRATION:
|
||||||
m_PrefsUseVibration = !m_PrefsUseVibration;
|
m_PrefsUseVibration = !m_PrefsUseVibration;
|
||||||
break;
|
if (m_PrefsUseVibration) {
|
||||||
case MENUACTION_CTRLCONFIG:
|
CPad::GetPad(0)->StartShake(350, 150);
|
||||||
CPad::GetPad(0)->Mode++;
|
TimeToStopPadShaking = CTimer::GetTimeInMillisecondsPauseMode() + 500;
|
||||||
if (CPad::GetPad(0)->Mode > 3)
|
}
|
||||||
CPad::GetPad(0)->Mode = 0;
|
SaveSettings();
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case MENUACTION_INVERTPADY:
|
case MENUACTION_INVERTPADY:
|
||||||
|
@ -5510,6 +5550,14 @@ CMenuManager::SwitchMenuOnAndOff()
|
||||||
|
|
||||||
m_bStartUpFrontEndRequested = false;
|
m_bStartUpFrontEndRequested = false;
|
||||||
m_bShutDownFrontEndRequested = false;
|
m_bShutDownFrontEndRequested = false;
|
||||||
|
|
||||||
|
#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU)
|
||||||
|
// Reset pad shaking.
|
||||||
|
if (TimeToStopPadShaking && TimeToStopPadShaking < CTimer::GetTimeInMillisecondsPauseMode()) {
|
||||||
|
CPad::StopPadsShaking();
|
||||||
|
TimeToStopPadShaking = 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -5534,6 +5582,13 @@ CMenuManager::UnloadTextures()
|
||||||
m_aFrontEndSprites[i].Delete();
|
m_aFrontEndSprites[i].Delete();
|
||||||
|
|
||||||
CTxdStore::RemoveTxd(frontend2);
|
CTxdStore::RemoveTxd(frontend2);
|
||||||
|
|
||||||
|
#ifdef GAMEPAD_MENU
|
||||||
|
// Unload controller txd
|
||||||
|
int frontend_controller = CTxdStore::FindTxdSlot("frontend_controller");
|
||||||
|
if (frontend_controller != -1)
|
||||||
|
CTxdStore::RemoveTxd(frontend_controller);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
m_bSpritesLoaded = false;
|
m_bSpritesLoaded = false;
|
||||||
|
@ -5781,5 +5836,753 @@ uint8 CMenuManager::GetNumberOfMenuOptions()
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef GAMEPAD_MENU
|
||||||
|
const char* controllerTypesPaths[] = {
|
||||||
|
"MODELS/FRONTEND_DS2.TXD",
|
||||||
|
"MODELS/FRONTEND_DS3.TXD",
|
||||||
|
"MODELS/FRONTEND_DS4.TXD",
|
||||||
|
"MODELS/FRONTEND_X360.TXD",
|
||||||
|
"MODELS/FRONTEND_XONE.TXD",
|
||||||
|
};
|
||||||
|
|
||||||
|
void
|
||||||
|
CMenuManager::PrintController(void)
|
||||||
|
{
|
||||||
|
// Don't print anything if controller texture is missing
|
||||||
|
if (!m_aFrontEndSprites[MENUSPRITE_CONTROLLER].m_pTexture) return;
|
||||||
|
|
||||||
|
const float scale = 0.9f;
|
||||||
|
const float CONTROLLER_SIZE_X = 235.2f;
|
||||||
|
const float CONTROLLER_SIZE_Y = 175.2f;
|
||||||
|
const float CONTROLLER_POS_X = (DEFAULT_SCREEN_WIDTH - CONTROLLER_SIZE_X) / 2.0f;
|
||||||
|
const float CONTROLLER_POS_Y = 220.0f;
|
||||||
|
|
||||||
|
float centerX = CONTROLLER_POS_X + CONTROLLER_SIZE_X / 2;
|
||||||
|
float centerY = CONTROLLER_POS_Y + CONTROLLER_SIZE_Y / 2;
|
||||||
|
|
||||||
|
#define X(f) ((f)*scale + centerX)
|
||||||
|
#define Y(f) ((f)*scale + centerY)
|
||||||
|
|
||||||
|
m_aFrontEndSprites[MENUSPRITE_CONTROLLER].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255)));
|
||||||
|
if (m_DisplayControllerOnFoot) {
|
||||||
|
if ((int)CTimer::GetTimeInMillisecondsPauseMode() & 0x400)
|
||||||
|
m_aFrontEndSprites[MENUSPRITE_ARROWS1].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255)));
|
||||||
|
else
|
||||||
|
m_aFrontEndSprites[MENUSPRITE_ARROWS3].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255)));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ((int)CTimer::GetTimeInMillisecondsPauseMode() & 0x400)
|
||||||
|
m_aFrontEndSprites[MENUSPRITE_ARROWS2].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255)));
|
||||||
|
else
|
||||||
|
m_aFrontEndSprites[MENUSPRITE_ARROWS4].Draw(MENU_X_LEFT_ALIGNED(X(-CONTROLLER_SIZE_X / 2)), MENU_Y(Y(-CONTROLLER_SIZE_Y / 2)), MENU_X(CONTROLLER_SIZE_X * scale), MENU_Y(CONTROLLER_SIZE_Y * scale), CRGBA(255, 255, 255, FadeIn(255)));
|
||||||
|
}
|
||||||
|
|
||||||
|
CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD));
|
||||||
|
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.9f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.9f)); // X
|
||||||
|
|
||||||
|
CFont::SetDropColor(CRGBA(0, 0, 0, FadeIn(255)));
|
||||||
|
CFont::SetDropShadowPosition(0);
|
||||||
|
CFont::SetColor(CRGBA(0, 0, 0, FadeIn(255)));
|
||||||
|
CFont::SetWrapx(SCREEN_WIDTH);
|
||||||
|
|
||||||
|
float TEXT_L2_X = 85.0f + CONTROLLER_POS_X - centerX, TEXT_L2_Y = -14.0f + CONTROLLER_POS_Y - centerY;
|
||||||
|
float TEXT_L1_X = -4.0f + CONTROLLER_POS_X - centerX, TEXT_L1_Y = 27.0f + CONTROLLER_POS_Y - centerY, TEXT_L1_Y_VEH = 3.0f + TEXT_L1_Y;
|
||||||
|
float TEXT_DPAD_X = -4.0f + CONTROLLER_POS_X - centerX, TEXT_DPAD_Y = 67.0f + CONTROLLER_POS_Y - centerY;
|
||||||
|
float TEXT_LSTICK_X = -4.0f + CONTROLLER_POS_X - centerX, TEXT_LSTICK_Y = 97.0f + CONTROLLER_POS_Y - centerY;
|
||||||
|
float TEXT_SELECT_X = 170.0f + CONTROLLER_POS_X - centerX, TEXT_SELECT_Y = 141.0f + CONTROLLER_POS_Y - centerY;
|
||||||
|
float TEXT_START_X = 130.0f + CONTROLLER_POS_X - centerX, TEXT_START_Y = 128.0f + CONTROLLER_POS_Y - centerY;
|
||||||
|
float TEXT_R2_X = 164.0f + CONTROLLER_POS_X - centerX, TEXT_R2_Y = -14.0f + CONTROLLER_POS_Y - centerY;
|
||||||
|
float TEXT_R1_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_R1_Y = 27.0f + CONTROLLER_POS_Y - centerY;
|
||||||
|
|
||||||
|
float TEXT_SQUARE_X = 147.0f + CONTROLLER_POS_X - centerX, TEXT_SQUARE_Y = 30.0f + CONTROLLER_POS_Y - centerY;
|
||||||
|
float TEXT_TRIANGLE_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_TRIANGLE_Y = 55.0f + CONTROLLER_POS_Y - centerY;
|
||||||
|
float TEXT_CIRCLE_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_CIRCLE_Y = 67.0f + CONTROLLER_POS_Y - centerY;
|
||||||
|
float TEXT_CROSS_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_CROSS_Y = 80.0f + CONTROLLER_POS_Y - centerY;
|
||||||
|
float TEXT_RSTICK_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_RSTICK_Y = 97.0f + CONTROLLER_POS_Y - centerY;
|
||||||
|
float TEXT_R3_X = 242.0f + CONTROLLER_POS_X - centerX, TEXT_R3_Y = 110.0f + CONTROLLER_POS_Y - centerY;
|
||||||
|
float TEXT_L3_X = 94.0f + CONTROLLER_POS_X - centerX, TEXT_L3_Y = 162.0f + CONTROLLER_POS_Y - centerY;
|
||||||
|
float TEXT_L2R2_X = 120.0f + CONTROLLER_POS_X - centerX, TEXT_L2R2_Y = -4.0f + CONTROLLER_POS_Y - centerY;
|
||||||
|
|
||||||
|
switch (m_PrefsControllerType)
|
||||||
|
{
|
||||||
|
case CONTROLLER_DUALSHOCK4:
|
||||||
|
TEXT_L1_Y += 7.0f;
|
||||||
|
TEXT_L1_Y_VEH = TEXT_L1_Y;
|
||||||
|
TEXT_R1_Y += 7.0f;
|
||||||
|
TEXT_TRIANGLE_Y -= 1.0f;
|
||||||
|
TEXT_CIRCLE_Y -= 1.0f;
|
||||||
|
TEXT_CROSS_Y -= 1.0f;
|
||||||
|
TEXT_RSTICK_Y -= 4.0f;
|
||||||
|
TEXT_R3_Y -= 4.0f;
|
||||||
|
TEXT_DPAD_Y -= 2.0f;
|
||||||
|
TEXT_LSTICK_Y -= 6.0f;
|
||||||
|
TEXT_L3_X -= 2.0f;
|
||||||
|
break;
|
||||||
|
case CONTROLLER_XBOXONE:
|
||||||
|
TEXT_L2_X -= 2.0f;
|
||||||
|
TEXT_R2_X += 2.0f;
|
||||||
|
TEXT_L1_Y += 15.0f;
|
||||||
|
TEXT_L1_Y_VEH = TEXT_L1_Y;
|
||||||
|
TEXT_R1_Y += 15.0f;
|
||||||
|
TEXT_TRIANGLE_Y += 4.0f;
|
||||||
|
TEXT_CIRCLE_Y += 4.0f;
|
||||||
|
TEXT_CROSS_Y += 4.0f;
|
||||||
|
TEXT_RSTICK_Y += 1.0f;
|
||||||
|
TEXT_R3_Y += 1.0f;
|
||||||
|
TEXT_DPAD_Y += 29.0f;
|
||||||
|
TEXT_LSTICK_Y -= 20.0f;
|
||||||
|
TEXT_L3_X -= 36.0f;
|
||||||
|
TEXT_L2R2_Y += 5.0f;
|
||||||
|
TEXT_SELECT_X += 4.0f;
|
||||||
|
break;
|
||||||
|
case CONTROLLER_XBOX360:
|
||||||
|
TEXT_L2_X += 8.0f;
|
||||||
|
TEXT_R2_X -= 8.0f;
|
||||||
|
TEXT_L1_Y += 15.0f;
|
||||||
|
TEXT_L1_Y_VEH = TEXT_L1_Y;
|
||||||
|
TEXT_R1_Y += 15.0f;
|
||||||
|
TEXT_TRIANGLE_Y += 4.0f;
|
||||||
|
TEXT_CIRCLE_Y += 4.0f;
|
||||||
|
TEXT_CROSS_Y += 4.0f;
|
||||||
|
TEXT_RSTICK_Y += 4.0f;
|
||||||
|
TEXT_R3_Y += 4.0f;
|
||||||
|
TEXT_DPAD_Y += 30.0f;
|
||||||
|
TEXT_LSTICK_Y -= 19.0f;
|
||||||
|
TEXT_L3_X -= 36.0f;
|
||||||
|
TEXT_L2R2_Y += 5.0f;
|
||||||
|
TEXT_SELECT_X += 3.0f;
|
||||||
|
break;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (m_DisplayControllerOnFoot) {
|
||||||
|
switch (CPad::GetPad(0)->Mode) {
|
||||||
|
case 0:
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_L2_X -= 45.0f;
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)) - SCREEN_SCALE_X(85));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
CFont::SetRightJustifyWrap(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL"));
|
||||||
|
CFont::SetRightJustifyWrap(0);
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_LOF"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_MOV"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_CR3"));
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_GERMAN:
|
||||||
|
TEXT_SELECT_X += 20.0f;
|
||||||
|
break;
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_SELECT_X += 15.0f;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU"));
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_R2_X += 30.0f;
|
||||||
|
CFont::SetJustifyOff();
|
||||||
|
CFont::SetWrapx(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)) + SCREEN_SCALE_X(120));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::SetWrapx(SCREEN_WIDTH);
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR"));
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_ENV"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_ATT"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_RUN"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3"));
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_L2_X -= 45.0f;
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)) - SCREEN_SCALE_X(85));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
CFont::SetRightJustifyWrap(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL"));
|
||||||
|
CFont::SetRightJustifyWrap(0);
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_LOF"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_CAM"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_CR3"));
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_GERMAN:
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_NA"));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X - 50)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_NA"));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU"));
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_R2_X += 30.0f;
|
||||||
|
CFont::SetJustifyOff();
|
||||||
|
CFont::SetWrapx(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)) + SCREEN_SCALE_X(120));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::SetWrapx(SCREEN_WIDTH);
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR"));
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_ENV"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_ATT"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_RUN"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3"));
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_L2_X -= 45.0f;
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)) - SCREEN_SCALE_X(85));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
CFont::SetRightJustifyWrap(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL"));
|
||||||
|
CFont::SetRightJustifyWrap(0);
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_ENV"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_MOV"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_CR3"));
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_GERMAN:
|
||||||
|
TEXT_SELECT_X += 20.0f;
|
||||||
|
break;
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_SELECT_X += 15.0f;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU"));
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_R2_X += 30.0f;
|
||||||
|
CFont::SetJustifyOff();
|
||||||
|
CFont::SetWrapx(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)) + SCREEN_SCALE_X(120));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::SetWrapx(SCREEN_WIDTH);
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR"));
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_LOF"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RUN"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ATT"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3"));
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_L2_X -= 45.0f;
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)) - SCREEN_SCALE_X(85));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
CFont::SetRightJustifyWrap(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_CWL"));
|
||||||
|
CFont::SetRightJustifyWrap(0);
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y)), TheText.Get("FEC_TAR"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_NA"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_MOV"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_CR3"));
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_GERMAN:
|
||||||
|
TEXT_SELECT_X += 20.0f;
|
||||||
|
break;
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_SELECT_X += 15.0f;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU"));
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_R2_X += 30.0f;
|
||||||
|
CFont::SetJustifyOff();
|
||||||
|
CFont::SetWrapx(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)) + SCREEN_SCALE_X(120));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_CWR"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::SetWrapx(SCREEN_WIDTH);
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_TAR"));
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_JUM"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_LOF"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RUN"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ATT"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_FPC"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_LB3"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y + 13.0f)), TheText.Get("FEC_R3"));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CFont::SetCentreOn();
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_ITALIAN:
|
||||||
|
if (m_PrefsControllerType != CONTROLLER_XBOX360)
|
||||||
|
break;
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
case LANGUAGE_GERMAN:
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(0.0f)), MENU_Y(Y(TEXT_L2R2_Y)), TheText.Get("FEC_LB"));
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.9f), MENU_Y(SMALLESTTEXT_Y_SCALE* scale * 0.9f));
|
||||||
|
switch (CPad::GetPad(0)->Mode) {
|
||||||
|
case 0:
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_RSC"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_VES"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES"));
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_HO3"));
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
TEXT_SELECT_X -= 5.0f;
|
||||||
|
break;
|
||||||
|
case LANGUAGE_GERMAN:
|
||||||
|
TEXT_SELECT_X += 20.0f;
|
||||||
|
break;
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_SELECT_X += 15.0f;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)) - SCREEN_SCALE_X(80));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_HAB"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_EXV"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_CAW"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ACC"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_TUC"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_SM3"));
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
switch (m_PrefsControllerType)
|
||||||
|
{
|
||||||
|
case CONTROLLER_XBOXONE:
|
||||||
|
case CONTROLLER_XBOX360:
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f));
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
TEXT_SQUARE_X += 3.0f;
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90));
|
||||||
|
break;
|
||||||
|
case LANGUAGE_GERMAN:
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_SQUARE_X += 18.0f;
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
TEXT_SQUARE_X -= 15.0f;
|
||||||
|
TEXT_SQUARE_Y += 5.0f;
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f));
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60));
|
||||||
|
break;
|
||||||
|
case LANGUAGE_GERMAN:
|
||||||
|
TEXT_SQUARE_X -= 15.0f;
|
||||||
|
TEXT_SQUARE_Y += 10.0f;
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE* scale * 0.65f));
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60));
|
||||||
|
break;
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_SQUARE_X += 15.0f;
|
||||||
|
case LANGUAGE_ITALIAN:
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f));
|
||||||
|
default:
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(100));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_BRA"));
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_HOR"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_CAM"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES"));
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_NA"));
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_GERMAN:
|
||||||
|
TEXT_SELECT_X += 20.0f;
|
||||||
|
break;
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_SELECT_X += 12.0f;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)) - SCREEN_SCALE_X(80));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_RSC"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_HAB"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_EXV"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_CAW"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ACC"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_TUC"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_SM3"));
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
switch (m_PrefsControllerType)
|
||||||
|
{
|
||||||
|
case CONTROLLER_XBOXONE:
|
||||||
|
case CONTROLLER_XBOX360:
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f));
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
TEXT_SQUARE_X += 3.0f;
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90));
|
||||||
|
break;
|
||||||
|
case LANGUAGE_GERMAN:
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_SQUARE_X += 18.0f;
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
TEXT_SQUARE_X -= 15.0f;
|
||||||
|
TEXT_SQUARE_Y += 5.0f;
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f));
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60));
|
||||||
|
break;
|
||||||
|
case LANGUAGE_GERMAN:
|
||||||
|
TEXT_SQUARE_X -= 15.0f;
|
||||||
|
TEXT_SQUARE_Y += 10.0f;
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f));
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60));
|
||||||
|
break;
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_SQUARE_X += 15.0f;
|
||||||
|
case LANGUAGE_ITALIAN:
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f));
|
||||||
|
default:
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(100));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_BRA"));
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_EXV"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_VES"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES"));
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_RS3"));
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
TEXT_SELECT_X -= 5.0f;
|
||||||
|
break;
|
||||||
|
case LANGUAGE_GERMAN:
|
||||||
|
TEXT_SELECT_X += 20.0f;
|
||||||
|
break;
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_SELECT_X += 15.0f;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)) - SCREEN_SCALE_X(80));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_HOR"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_HAB"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_CAW"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_ACC"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_TUC"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_SM3"));
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
switch (m_PrefsControllerType)
|
||||||
|
{
|
||||||
|
case CONTROLLER_XBOXONE:
|
||||||
|
case CONTROLLER_XBOX360:
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f));
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
TEXT_SQUARE_X += 3.0f;
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90));
|
||||||
|
break;
|
||||||
|
case LANGUAGE_GERMAN:
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_SQUARE_X += 18.0f;
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(90));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
TEXT_SQUARE_X -= 15.0f;
|
||||||
|
TEXT_SQUARE_Y += 5.0f;
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f));
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60));
|
||||||
|
break;
|
||||||
|
case LANGUAGE_GERMAN:
|
||||||
|
TEXT_SQUARE_X -= 15.0f;
|
||||||
|
TEXT_SQUARE_Y += 10.0f;
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f));
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(60));
|
||||||
|
break;
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_SQUARE_X += 15.0f;
|
||||||
|
case LANGUAGE_ITALIAN:
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f));
|
||||||
|
default:
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)) - SCREEN_SCALE_X(100));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_BRA"));
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L2_X)), MENU_Y(Y(TEXT_L2_Y)), TheText.Get("FEC_LL"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L1_X)), MENU_Y(Y(TEXT_L1_Y_VEH)), TheText.Get("FEC_HAB"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_DPAD_X)), MENU_Y(Y(TEXT_DPAD_Y)), TheText.Get("FEC_TUC"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_LSTICK_X)), MENU_Y(Y(TEXT_LSTICK_Y)), TheText.Get("FEC_VES"));
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_L3_X)), MENU_Y(Y(TEXT_L3_Y)), TheText.Get("FEC_HO3"));
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
TEXT_SELECT_X -= 5.0f;
|
||||||
|
break;
|
||||||
|
case LANGUAGE_GERMAN:
|
||||||
|
TEXT_SELECT_X += 20.0f;
|
||||||
|
break;
|
||||||
|
case LANGUAGE_SPANISH:
|
||||||
|
TEXT_SELECT_X += 15.0f;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
CFont::SetRightJustifyWrap(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)) - SCREEN_SCALE_X(80));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_SELECT_X)), MENU_Y(Y(TEXT_SELECT_Y)), TheText.Get("FEC_CAM"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_START_X)), MENU_Y(Y(TEXT_START_Y)), TheText.Get("FEC_PAU"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R2_X)), MENU_Y(Y(TEXT_R2_Y)), TheText.Get("FEC_LR"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R1_X)), MENU_Y(Y(TEXT_R1_Y)), TheText.Get("FEC_CAW"));
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_TRIANGLE_X)), MENU_Y(Y(TEXT_TRIANGLE_Y)), TheText.Get("FEC_EXV"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CIRCLE_X)), MENU_Y(Y(TEXT_CIRCLE_Y)), TheText.Get("FEC_RSC"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_CROSS_X)), MENU_Y(Y(TEXT_CROSS_Y)), TheText.Get("FEC_NA"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_RSTICK_X)), MENU_Y(Y(TEXT_RSTICK_Y)), TheText.Get("FEC_ACC"));
|
||||||
|
CFont::PrintString(MENU_X_LEFT_ALIGNED(X(TEXT_R3_X)), MENU_Y(Y(TEXT_R3_Y)), TheText.Get("FEC_BRA"));
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
CFont::SetRightJustifyWrap(0);
|
||||||
|
switch (m_PrefsControllerType)
|
||||||
|
{
|
||||||
|
case CONTROLLER_XBOXONE:
|
||||||
|
case CONTROLLER_XBOX360:
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f));
|
||||||
|
CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_SMT"));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
switch (m_PrefsLanguage)
|
||||||
|
{
|
||||||
|
case LANGUAGE_GERMAN:
|
||||||
|
TEXT_SQUARE_X += 5.0f;
|
||||||
|
case LANGUAGE_FRENCH:
|
||||||
|
case LANGUAGE_ITALIAN:
|
||||||
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE * 2 * scale * 0.65f), MENU_Y(SMALLESTTEXT_Y_SCALE * scale * 0.65f));
|
||||||
|
CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_SMT"));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
CFont::PrintStringFromBottom(MENU_X_LEFT_ALIGNED(X(TEXT_SQUARE_X + 16.0f)), MENU_Y(Y(TEXT_SQUARE_Y)), TheText.Get("FEC_SMT"));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CFont::SetDropShadowPosition(0); // X
|
||||||
|
|
||||||
|
#undef X
|
||||||
|
#undef Y
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
CMenuManager::LoadController(int8 type)
|
||||||
|
{
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case CONTROLLER_DUALSHOCK2:
|
||||||
|
case CONTROLLER_DUALSHOCK3:
|
||||||
|
case CONTROLLER_DUALSHOCK4:
|
||||||
|
CFont::LoadButtons("MODELS/PS3BTNS.TXD");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
CFont::LoadButtons("MODELS/X360BTNS.TXD");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unload current textures
|
||||||
|
for (int i = MENUSPRITE_CONTROLLER; i <= MENUSPRITE_ARROWS4; i++)
|
||||||
|
m_aFrontEndSprites[i].Delete();
|
||||||
|
|
||||||
|
// Unload txd
|
||||||
|
int frontend_controller = CTxdStore::FindTxdSlot("frontend_controller");
|
||||||
|
if (frontend_controller != -1)
|
||||||
|
CTxdStore::RemoveTxd(frontend_controller);
|
||||||
|
|
||||||
|
// Find the new txd to load
|
||||||
|
bool bTxdMissing = true;
|
||||||
|
if (controllerTypesPaths[type])
|
||||||
|
if (int file = CFileMgr::OpenFile(controllerTypesPaths[type])) {
|
||||||
|
CFileMgr::CloseFile(file);
|
||||||
|
bTxdMissing = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int txdSlot = -1;
|
||||||
|
|
||||||
|
if (bTxdMissing)
|
||||||
|
// Not found, fall back to original textures
|
||||||
|
txdSlot = CTxdStore::FindTxdSlot("frontend2");
|
||||||
|
else {
|
||||||
|
// Found, load txd
|
||||||
|
txdSlot = frontend_controller;
|
||||||
|
if (txdSlot == -1)
|
||||||
|
txdSlot = CTxdStore::AddTxdSlot("frontend_controller");
|
||||||
|
CTxdStore::LoadTxd(txdSlot, controllerTypesPaths[type]);
|
||||||
|
CTxdStore::AddRef(txdSlot);
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(txdSlot != -1);
|
||||||
|
// Load new textures
|
||||||
|
CTxdStore::SetCurrentTxd(txdSlot);
|
||||||
|
for (int i = MENUSPRITE_CONTROLLER; i <= MENUSPRITE_ARROWS4; i++) {
|
||||||
|
m_aFrontEndSprites[i].SetTexture(FrontendFilenames[i][0], FrontendFilenames[i][1]);
|
||||||
|
m_aFrontEndSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif // GAMEPAD_MENU
|
||||||
|
|
||||||
#undef GetBackJustUp
|
#undef GetBackJustUp
|
||||||
#undef GetBackJustDown
|
#undef GetBackJustDown
|
||||||
|
|
|
@ -137,6 +137,13 @@ enum eMenuSprites
|
||||||
MENUSPRITE_DOWNON,
|
MENUSPRITE_DOWNON,
|
||||||
MENUSPRITE_UPOFF,
|
MENUSPRITE_UPOFF,
|
||||||
MENUSPRITE_UPON,
|
MENUSPRITE_UPON,
|
||||||
|
#ifdef GAMEPAD_MENU
|
||||||
|
MENUSPRITE_CONTROLLER,
|
||||||
|
MENUSPRITE_ARROWS1,
|
||||||
|
MENUSPRITE_ARROWS2,
|
||||||
|
MENUSPRITE_ARROWS3,
|
||||||
|
MENUSPRITE_ARROWS4,
|
||||||
|
#endif
|
||||||
NUM_MENU_SPRITES
|
NUM_MENU_SPRITES
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -192,8 +199,10 @@ enum eMenuScreen
|
||||||
MENUPAGE_MOUSE_CONTROLS = 31,
|
MENUPAGE_MOUSE_CONTROLS = 31,
|
||||||
MENUPAGE_PAUSE_MENU = 32,
|
MENUPAGE_PAUSE_MENU = 32,
|
||||||
MENUPAGE_NONE = 33, // Then chooses main menu or pause menu
|
MENUPAGE_NONE = 33, // Then chooses main menu or pause menu
|
||||||
#ifdef LEGACY_MENU_OPTIONS
|
#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU)
|
||||||
MENUPAGE_CONTROLLER_SETTINGS,
|
MENUPAGE_CONTROLLER_SETTINGS,
|
||||||
|
#endif
|
||||||
|
#ifdef LEGACY_MENU_OPTIONS
|
||||||
MENUPAGE_DEBUG_MENU,
|
MENUPAGE_DEBUG_MENU,
|
||||||
MENUPAGE_CONTROLLER_PC_OLD1,
|
MENUPAGE_CONTROLLER_PC_OLD1,
|
||||||
MENUPAGE_CONTROLLER_PC_OLD2,
|
MENUPAGE_CONTROLLER_PC_OLD2,
|
||||||
|
@ -275,7 +284,7 @@ enum eMenuAction
|
||||||
MENUACTION_DRAWDIST,
|
MENUACTION_DRAWDIST,
|
||||||
MENUACTION_MOUSESENS,
|
MENUACTION_MOUSESENS,
|
||||||
MENUACTION_MP3VOLUMEBOOST,
|
MENUACTION_MP3VOLUMEBOOST,
|
||||||
#ifdef LEGACY_MENU_OPTIONS
|
#if defined(LEGACY_MENU_OPTIONS) || defined(GAMEPAD_MENU)
|
||||||
MENUACTION_CTRLVIBRATION,
|
MENUACTION_CTRLVIBRATION,
|
||||||
MENUACTION_CTRLCONFIG,
|
MENUACTION_CTRLCONFIG,
|
||||||
#endif
|
#endif
|
||||||
|
@ -668,6 +677,18 @@ public:
|
||||||
int8 m_nDisplayMSAALevel;
|
int8 m_nDisplayMSAALevel;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef GAMEPAD_MENU
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
CONTROLLER_DUALSHOCK2 = 0,
|
||||||
|
CONTROLLER_DUALSHOCK3,
|
||||||
|
CONTROLLER_DUALSHOCK4,
|
||||||
|
CONTROLLER_XBOX360,
|
||||||
|
CONTROLLER_XBOXONE,
|
||||||
|
};
|
||||||
|
|
||||||
|
int8 m_PrefsControllerType;
|
||||||
|
#endif
|
||||||
enum LANGUAGE
|
enum LANGUAGE
|
||||||
{
|
{
|
||||||
LANGUAGE_AMERICAN,
|
LANGUAGE_AMERICAN,
|
||||||
|
@ -788,6 +809,10 @@ public:
|
||||||
int8 GetPreviousPageOption();
|
int8 GetPreviousPageOption();
|
||||||
|
|
||||||
// uint8 GetNumberOfMenuOptions();
|
// uint8 GetNumberOfMenuOptions();
|
||||||
|
#ifdef GAMEPAD_MENU
|
||||||
|
void LoadController(int8 type);
|
||||||
|
void PrintController(void);
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef IMPROVED_VIDEOMODE
|
#ifndef IMPROVED_VIDEOMODE
|
||||||
|
|
|
@ -69,11 +69,17 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef INVERT_LOOK_FOR_PAD
|
#ifdef INVERT_LOOK_FOR_PAD
|
||||||
#define INVERT_PAD_SELECTOR MENUACTION_CFO_SELECT, "FEC_ILU", { new CCFOSelect((int8*)&CPad::bInvertLook4Pad, "Controller", "InvertPad", off_on, 2, false) }, 150, 0, MENUALIGN_LEFT,
|
#define INVERT_PAD_SELECTOR MENUACTION_CFO_SELECT, "FEC_ILU", { new CCFOSelect((int8*)&CPad::bInvertLook4Pad, "Controller", "InvertPad", off_on, 2, false) }, 0, 0, MENUALIGN_LEFT,
|
||||||
#else
|
#else
|
||||||
#define INVERT_PAD_SELECTOR
|
#define INVERT_PAD_SELECTOR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef GAMEPAD_MENU
|
||||||
|
#define SELECT_CONTROLLER_TYPE MENUACTION_CFO_SELECT, "FEC_TYP", { new CCFOSelect((int8*)&FrontEndMenuManager.m_PrefsControllerType, "Controller", "Type", controllerTypes, ARRAY_SIZE(controllerTypes), false, ControllerTypeAfterChange) }, 0, 0, MENUALIGN_LEFT,
|
||||||
|
#else
|
||||||
|
#define SELECT_CONTROLLER_TYPE
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *filterNames[] = { "FEM_NON", "FEM_SIM", "FEM_NRM", "FEM_MOB" };
|
const char *filterNames[] = { "FEM_NON", "FEM_SIM", "FEM_NRM", "FEM_MOB" };
|
||||||
const char *off_on[] = { "FEM_OFF", "FEM_ON" };
|
const char *off_on[] = { "FEM_OFF", "FEM_ON" };
|
||||||
|
|
||||||
|
@ -332,6 +338,14 @@ void DetectJoystickGoBack() {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef GAMEPAD_MENU
|
||||||
|
const char* controllerTypes[] = { "FEC_DS2", "FEC_DS3", "FEC_DS4", "FEC_360", "FEC_ONE" };
|
||||||
|
void ControllerTypeAfterChange(int8 before, int8 after)
|
||||||
|
{
|
||||||
|
FrontEndMenuManager.LoadController(after);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
CMenuScreenCustom aScreens[] = {
|
CMenuScreenCustom aScreens[] = {
|
||||||
// MENUPAGE_STATS = 0
|
// MENUPAGE_STATS = 0
|
||||||
{ "FEH_STA", MENUPAGE_NONE, nil, nil,
|
{ "FEH_STA", MENUPAGE_NONE, nil, nil,
|
||||||
|
@ -567,11 +581,13 @@ CMenuScreenCustom aScreens[] = {
|
||||||
#else
|
#else
|
||||||
MENUACTION_KEYBOARDCTRLS,"FEC_RED", {nil, SAVESLOT_NONE, MENUPAGE_KEYBOARD_CONTROLS}, 320, 150, MENUALIGN_CENTER,
|
MENUACTION_KEYBOARDCTRLS,"FEC_RED", {nil, SAVESLOT_NONE, MENUPAGE_KEYBOARD_CONTROLS}, 320, 150, MENUALIGN_CENTER,
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef GAMEPAD_MENU
|
||||||
|
MENUACTION_CHANGEMENU, "FET_AGS", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, MENUALIGN_CENTER,
|
||||||
|
#endif
|
||||||
#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS
|
#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS
|
||||||
MENUACTION_CHANGEMENU, "FEC_JOD", {nil, SAVESLOT_NONE, MENUPAGE_DETECT_JOYSTICK}, 0, 0, MENUALIGN_CENTER,
|
MENUACTION_CHANGEMENU, "FEC_JOD", {nil, SAVESLOT_NONE, MENUPAGE_DETECT_JOYSTICK}, 0, 0, MENUALIGN_CENTER,
|
||||||
#endif
|
#endif
|
||||||
MENUACTION_CHANGEMENU, "FEC_MOU", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_CENTER,
|
MENUACTION_CHANGEMENU, "FEC_MOU", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_CENTER,
|
||||||
INVERT_PAD_SELECTOR
|
|
||||||
MENUACTION_RESTOREDEF, "FET_DEF", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC}, 320, 0, MENUALIGN_CENTER,
|
MENUACTION_RESTOREDEF, "FET_DEF", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC}, 320, 0, MENUALIGN_CENTER,
|
||||||
MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 0, MENUALIGN_CENTER,
|
MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 0, MENUALIGN_CENTER,
|
||||||
},
|
},
|
||||||
|
@ -611,8 +627,12 @@ CMenuScreenCustom aScreens[] = {
|
||||||
{ "FEC_MOU", MENUPAGE_CONTROLLER_PC, nil, nil,
|
{ "FEC_MOU", MENUPAGE_CONTROLLER_PC, nil, nil,
|
||||||
MENUACTION_MOUSESENS, "FEC_MSH", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 40, 170, MENUALIGN_LEFT,
|
MENUACTION_MOUSESENS, "FEC_MSH", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 40, 170, MENUALIGN_LEFT,
|
||||||
MENUACTION_INVVERT, "FEC_IVV", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_LEFT,
|
MENUACTION_INVVERT, "FEC_IVV", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_LEFT,
|
||||||
|
#ifndef GAMEPAD_MENU
|
||||||
|
INVERT_PAD_SELECTOR
|
||||||
|
#endif
|
||||||
MENUACTION_MOUSESTEER, "FET_MST", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_LEFT,
|
MENUACTION_MOUSESTEER, "FET_MST", {nil, SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS}, 0, 0, MENUALIGN_LEFT,
|
||||||
MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 260, MENUALIGN_CENTER,
|
MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 0, MENUALIGN_CENTER,
|
||||||
|
//MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, 0}, 320, 260, MENUALIGN_CENTER, // original y
|
||||||
},
|
},
|
||||||
|
|
||||||
// MENUPAGE_PAUSE_MENU = 32
|
// MENUPAGE_PAUSE_MENU = 32
|
||||||
|
@ -629,15 +649,24 @@ CMenuScreenCustom aScreens[] = {
|
||||||
// MENUPAGE_NONE = 33
|
// MENUPAGE_NONE = 33
|
||||||
{ "", 0, nil, nil, },
|
{ "", 0, nil, nil, },
|
||||||
|
|
||||||
|
#ifdef GAMEPAD_MENU
|
||||||
#ifdef LEGACY_MENU_OPTIONS
|
{ "FET_AGS", MENUPAGE_CONTROLLER_PC, new CCustomScreenLayout({40, 78, 25, true}), nil,
|
||||||
|
MENUACTION_CTRLCONFIG, "FEC_CCF", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 40, 76, MENUALIGN_LEFT,
|
||||||
|
MENUACTION_CTRLDISPLAY, "FEC_CDP", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 0, 0, MENUALIGN_LEFT,
|
||||||
|
INVERT_PAD_SELECTOR
|
||||||
|
MENUACTION_CTRLVIBRATION, "FEC_VIB", { nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS }, 0, 0, MENUALIGN_LEFT,
|
||||||
|
SELECT_CONTROLLER_TYPE
|
||||||
|
MENUACTION_GOBACK, "FEDS_TB", { nil, SAVESLOT_NONE, MENUPAGE_NONE }, 0, 0, MENUALIGN_LEFT,
|
||||||
|
},
|
||||||
|
#elif defined(LEGACY_MENU_OPTIONS)
|
||||||
// MENUPAGE_CONTROLLER_SETTINGS = 4
|
// MENUPAGE_CONTROLLER_SETTINGS = 4
|
||||||
{ "FET_CON", MENUPAGE_OPTIONS, nil, nil,
|
{ "FET_CON", MENUPAGE_OPTIONS, nil, nil,
|
||||||
MENUACTION_CTRLCONFIG, "FEC_CCF", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, 0,
|
MENUACTION_CTRLCONFIG, "FEC_CCF", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, 0,
|
||||||
MENUACTION_CTRLVIBRATION, "FEC_VIB", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, 0,
|
MENUACTION_CTRLVIBRATION, "FEC_VIB", {nil, SAVESLOT_NONE, MENUPAGE_CONTROLLER_SETTINGS}, 0, 0, 0,
|
||||||
MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, MENUPAGE_NONE}, 0, 0, 0,
|
MENUACTION_GOBACK, "FEDS_TB", {nil, SAVESLOT_NONE, MENUPAGE_NONE}, 0, 0, 0,
|
||||||
},
|
},
|
||||||
|
#endif
|
||||||
|
#ifdef LEGACY_MENU_OPTIONS
|
||||||
// MENUPAGE_DEBUG_MENU = 18
|
// MENUPAGE_DEBUG_MENU = 18
|
||||||
{ "FED_DBG", MENUPAGE_NONE, nil, nil,
|
{ "FED_DBG", MENUPAGE_NONE, nil, nil,
|
||||||
MENUACTION_RELOADIDE, "FED_RID", {nil, SAVESLOT_NONE, MENUPAGE_NONE}, 0, 0, 0,
|
MENUACTION_RELOADIDE, "FED_RID", {nil, SAVESLOT_NONE, MENUPAGE_NONE}, 0, 0, 0,
|
||||||
|
|
|
@ -320,6 +320,9 @@ enum Config {
|
||||||
//# define PS2_MENU_USEALLPAGEICONS
|
//# define PS2_MENU_USEALLPAGEICONS
|
||||||
#else
|
#else
|
||||||
# define MAP_ENHANCEMENTS // Adding waypoint and better mouse support
|
# define MAP_ENHANCEMENTS // Adding waypoint and better mouse support
|
||||||
|
# ifdef XINPUT
|
||||||
|
# define GAMEPAD_MENU // Add gamepad menu
|
||||||
|
# endif
|
||||||
# define TRIANGLE_BACK_BUTTON
|
# define TRIANGLE_BACK_BUTTON
|
||||||
//# define CIRCLE_BACK_BUTTON
|
//# define CIRCLE_BACK_BUTTON
|
||||||
#define LEGACY_MENU_OPTIONS // i.e. frame sync(vsync)
|
#define LEGACY_MENU_OPTIONS // i.e. frame sync(vsync)
|
||||||
|
|
|
@ -289,11 +289,26 @@ CFont::Initialise(void)
|
||||||
SetDropShadowPosition(0);
|
SetDropShadowPosition(0);
|
||||||
CTxdStore::PopCurrentTxd();
|
CTxdStore::PopCurrentTxd();
|
||||||
|
|
||||||
|
#if !defined(GAMEPAD_MENU) && defined(BUTTON_ICONS)
|
||||||
|
// loaded in CMenuManager with GAMEPAD_MENU defined
|
||||||
|
LoadButtons("MODELS/X360BTNS.TXD");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef BUTTON_ICONS
|
#ifdef BUTTON_ICONS
|
||||||
if (int file = CFileMgr::OpenFile("MODELS/X360BTNS.TXD")) {
|
void
|
||||||
|
CFont::LoadButtons(const char *txdPath)
|
||||||
|
{
|
||||||
|
if (int file = CFileMgr::OpenFile(txdPath)) {
|
||||||
CFileMgr::CloseFile(file);
|
CFileMgr::CloseFile(file);
|
||||||
ButtonsSlot = CTxdStore::AddTxdSlot("buttons");
|
if (ButtonsSlot == -1)
|
||||||
CTxdStore::LoadTxd(ButtonsSlot, "MODELS/X360BTNS.TXD");
|
ButtonsSlot = CTxdStore::AddTxdSlot("buttons");
|
||||||
|
else {
|
||||||
|
for (int i = 0; i < MAX_BUTTON_ICONS; i++)
|
||||||
|
ButtonSprite[i].Delete();
|
||||||
|
CTxdStore::RemoveTxd(ButtonsSlot);
|
||||||
|
}
|
||||||
|
CTxdStore::LoadTxd(ButtonsSlot, txdPath);
|
||||||
CTxdStore::AddRef(ButtonsSlot);
|
CTxdStore::AddRef(ButtonsSlot);
|
||||||
CTxdStore::PushCurrentTxd();
|
CTxdStore::PushCurrentTxd();
|
||||||
CTxdStore::SetCurrentTxd(ButtonsSlot);
|
CTxdStore::SetCurrentTxd(ButtonsSlot);
|
||||||
|
@ -311,12 +326,22 @@ CFont::Initialise(void)
|
||||||
ButtonSprite[BUTTON_R1].SetTexture("r1");
|
ButtonSprite[BUTTON_R1].SetTexture("r1");
|
||||||
ButtonSprite[BUTTON_R2].SetTexture("r2");
|
ButtonSprite[BUTTON_R2].SetTexture("r2");
|
||||||
ButtonSprite[BUTTON_R3].SetTexture("r3");
|
ButtonSprite[BUTTON_R3].SetTexture("r3");
|
||||||
|
ButtonSprite[BUTTON_RSTICK_UP].SetTexture("thumbryu");
|
||||||
|
ButtonSprite[BUTTON_RSTICK_DOWN].SetTexture("thumbryd");
|
||||||
ButtonSprite[BUTTON_RSTICK_LEFT].SetTexture("thumbrxl");
|
ButtonSprite[BUTTON_RSTICK_LEFT].SetTexture("thumbrxl");
|
||||||
ButtonSprite[BUTTON_RSTICK_RIGHT].SetTexture("thumbrxr");
|
ButtonSprite[BUTTON_RSTICK_RIGHT].SetTexture("thumbrxr");
|
||||||
CTxdStore::PopCurrentTxd();
|
CTxdStore::PopCurrentTxd();
|
||||||
}
|
}
|
||||||
#endif // BUTTON_ICONS
|
else {
|
||||||
|
if (ButtonsSlot != -1) {
|
||||||
|
for (int i = 0; i < MAX_BUTTON_ICONS; i++)
|
||||||
|
ButtonSprite[i].Delete();
|
||||||
|
CTxdStore::RemoveTxdSlot(ButtonsSlot);
|
||||||
|
ButtonsSlot = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
#endif // BUTTON_ICONS
|
||||||
|
|
||||||
#ifdef MORE_LANGUAGES
|
#ifdef MORE_LANGUAGES
|
||||||
void
|
void
|
||||||
|
@ -369,6 +394,7 @@ CFont::Shutdown(void)
|
||||||
for (int i = 0; i < MAX_BUTTON_ICONS; i++)
|
for (int i = 0; i < MAX_BUTTON_ICONS; i++)
|
||||||
ButtonSprite[i].Delete();
|
ButtonSprite[i].Delete();
|
||||||
CTxdStore::RemoveTxdSlot(ButtonsSlot);
|
CTxdStore::RemoveTxdSlot(ButtonsSlot);
|
||||||
|
ButtonsSlot = -1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
Sprite[0].Delete();
|
Sprite[0].Delete();
|
||||||
|
@ -1437,6 +1463,8 @@ CFont::ParseToken(wchar* str, CRGBA &color, bool &flash, bool &bold)
|
||||||
case 'J': PS2Symbol = BUTTON_R1; break;
|
case 'J': PS2Symbol = BUTTON_R1; break;
|
||||||
case 'V': PS2Symbol = BUTTON_R2; break;
|
case 'V': PS2Symbol = BUTTON_R2; break;
|
||||||
case 'C': PS2Symbol = BUTTON_R3; break;
|
case 'C': PS2Symbol = BUTTON_R3; break;
|
||||||
|
case 'H': PS2Symbol = BUTTON_RSTICK_UP; break;
|
||||||
|
case 'L': PS2Symbol = BUTTON_RSTICK_DOWN; break;
|
||||||
case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break;
|
case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break;
|
||||||
case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break;
|
case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break;
|
||||||
#endif
|
#endif
|
||||||
|
@ -1488,6 +1516,8 @@ CFont::ParseToken(wchar *s, bool japShit)
|
||||||
case 'J': PS2Symbol = BUTTON_R1; break;
|
case 'J': PS2Symbol = BUTTON_R1; break;
|
||||||
case 'V': PS2Symbol = BUTTON_R2; break;
|
case 'V': PS2Symbol = BUTTON_R2; break;
|
||||||
case 'C': PS2Symbol = BUTTON_R3; break;
|
case 'C': PS2Symbol = BUTTON_R3; break;
|
||||||
|
case 'H': PS2Symbol = BUTTON_RSTICK_UP; break;
|
||||||
|
case 'L': PS2Symbol = BUTTON_RSTICK_DOWN; break;
|
||||||
case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break;
|
case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break;
|
||||||
case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break;
|
case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break;
|
||||||
#endif
|
#endif
|
||||||
|
@ -1612,6 +1642,8 @@ CFont::ParseToken(wchar *s)
|
||||||
case 'J': PS2Symbol = BUTTON_R1; break;
|
case 'J': PS2Symbol = BUTTON_R1; break;
|
||||||
case 'V': PS2Symbol = BUTTON_R2; break;
|
case 'V': PS2Symbol = BUTTON_R2; break;
|
||||||
case 'C': PS2Symbol = BUTTON_R3; break;
|
case 'C': PS2Symbol = BUTTON_R3; break;
|
||||||
|
case 'H': PS2Symbol = BUTTON_RSTICK_UP; break;
|
||||||
|
case 'L': PS2Symbol = BUTTON_RSTICK_DOWN; break;
|
||||||
case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break;
|
case '(': PS2Symbol = BUTTON_RSTICK_LEFT; break;
|
||||||
case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break;
|
case ')': PS2Symbol = BUTTON_RSTICK_RIGHT; break;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -111,6 +111,8 @@ enum
|
||||||
BUTTON_R1,
|
BUTTON_R1,
|
||||||
BUTTON_R2,
|
BUTTON_R2,
|
||||||
BUTTON_R3,
|
BUTTON_R3,
|
||||||
|
BUTTON_RSTICK_UP,
|
||||||
|
BUTTON_RSTICK_DOWN,
|
||||||
BUTTON_RSTICK_LEFT,
|
BUTTON_RSTICK_LEFT,
|
||||||
BUTTON_RSTICK_RIGHT,
|
BUTTON_RSTICK_RIGHT,
|
||||||
MAX_BUTTON_ICONS
|
MAX_BUTTON_ICONS
|
||||||
|
@ -137,7 +139,8 @@ public:
|
||||||
static int32 ButtonsSlot;
|
static int32 ButtonsSlot;
|
||||||
static CSprite2d ButtonSprite[MAX_BUTTON_ICONS];
|
static CSprite2d ButtonSprite[MAX_BUTTON_ICONS];
|
||||||
static int PS2Symbol;
|
static int PS2Symbol;
|
||||||
|
|
||||||
|
static void LoadButtons(const char *txdPath);
|
||||||
static void DrawButton(float x, float y);
|
static void DrawButton(float x, float y);
|
||||||
#endif // BUTTON_ICONS
|
#endif // BUTTON_ICONS
|
||||||
|
|
||||||
|
|
|
@ -6484,8 +6484,9 @@ Press the ~h~~k~~PED_FIREWEAPON~~w~ button to ~h~fire~w~ the sniper rifle.
|
||||||
[PLANE_H]
|
[PLANE_H]
|
||||||
Use the ~h~~k~~VEHICLE_ACCELERATE~~w~ button to accelerate, Left and right to turn.
|
Use the ~h~~k~~VEHICLE_ACCELERATE~~w~ button to accelerate, Left and right to turn.
|
||||||
|
|
||||||
[PLANE_4]
|
[PLANE_4] { reVC update }
|
||||||
Use the ~h~~k~~VEHICLE_ACCELERATE~~w~ button to accelerate, Left and right to turn.
|
{ Use the ~h~~k~~VEHICLE_ACCELERATE~~w~ button to accelerate, Left and right to turn. }
|
||||||
|
Use the right analog stick to accelerate, pull back on the left analog stick to climb, push forwards to descend. Left and right to turn.
|
||||||
|
|
||||||
[HELP55]
|
[HELP55]
|
||||||
Press the ~h~~k~~PED_FIREWEAPON~~w~ button to attack the chef.
|
Press the ~h~~k~~PED_FIREWEAPON~~w~ button to attack the chef.
|
||||||
|
@ -13980,8 +13981,9 @@ To ~h~pick up a bomb~w~, simply maneuver the RC helicopter next to it. The RC He
|
||||||
[TEX3_37:SERG3]
|
[TEX3_37:SERG3]
|
||||||
Pushing ~h~back on the analog stick ~w~decreases the rotor speed, causing the helicopter to~h~ descend.
|
Pushing ~h~back on the analog stick ~w~decreases the rotor speed, causing the helicopter to~h~ descend.
|
||||||
|
|
||||||
[TEX3_38:SERG3]
|
[TEX3_38:SERG3] { reVC update }
|
||||||
Pressing the ~h~~k~~VEHICLE_ACCELERATE~ ~w~button increases the rotor speed, causing the helicopter to ~h~ascend.
|
{ Pressing the ~h~~k~~VEHICLE_ACCELERATE~ ~w~button increases the rotor speed, causing the helicopter to ~h~ascend. }
|
||||||
|
Pushing ~h~forward on the analog stick ~w~increases the rotor speed, causing the helicopter to ~h~ascend.
|
||||||
|
|
||||||
[TEX3_39:SERG3]
|
[TEX3_39:SERG3]
|
||||||
~g~To drop a bomb press the ~h~~k~~VEHICLE_HANDBRAKE~ ~g~button.
|
~g~To drop a bomb press the ~h~~k~~VEHICLE_HANDBRAKE~ ~g~button.
|
||||||
|
@ -14400,6 +14402,27 @@ NONE
|
||||||
[FEA_FMN]
|
[FEA_FMN]
|
||||||
RADIO OFF
|
RADIO OFF
|
||||||
|
|
||||||
|
[FEC_DS2]
|
||||||
|
DUALSHOCK 2
|
||||||
|
|
||||||
|
[FEC_DS3]
|
||||||
|
DUALSHOCK 3
|
||||||
|
|
||||||
|
[FEC_DS4]
|
||||||
|
DUALSHOCK 4
|
||||||
|
|
||||||
|
[FEC_360]
|
||||||
|
XBOX 360 CONTROLLER
|
||||||
|
|
||||||
|
[FEC_ONE]
|
||||||
|
XBOX ONE CONTROLLER
|
||||||
|
|
||||||
|
[FEC_TYP]
|
||||||
|
GAMEPAD TYPE
|
||||||
|
|
||||||
|
[FET_AGS]
|
||||||
|
GAMEPAD SETTINGS
|
||||||
|
|
||||||
{ end of file }
|
{ end of file }
|
||||||
[DUMMY]
|
[DUMMY]
|
||||||
THIS LABEL NEEDS TO BE HERE !!!
|
THIS LABEL NEEDS TO BE HERE !!!
|
||||||
|
|
|
@ -6688,8 +6688,9 @@ Appuie sur la touche ~h~~k~~PED_FIREWEAPON~~w~ ~w~pour ~h~tirer~w~ avec le fusil
|
||||||
[PLANE_H]
|
[PLANE_H]
|
||||||
Utilise la touche ~h~~k~~VEHICLE_ACCELERATE~~w~ pour accélérer. Gauche et droite pour tourner.
|
Utilise la touche ~h~~k~~VEHICLE_ACCELERATE~~w~ pour accélérer. Gauche et droite pour tourner.
|
||||||
|
|
||||||
[PLANE_4]
|
[PLANE_4] { reVC update }
|
||||||
Utilise la touche ~h~~k~~VEHICLE_ACCELERATE~~w~ pour accélérer. Gauche et droite pour tourner.
|
{Utilise la touche ~h~~k~~VEHICLE_ACCELERATE~~w~ pour accélérer. Gauche et droite pour tourner.}
|
||||||
|
Utilise le joystick analogique droit pour accélérer, appuie vers le bas sur le joystick analogique gauche pour monter et vers le haut pour descendre. Gauche et droite pour tourner.
|
||||||
|
|
||||||
[HELP55]
|
[HELP55]
|
||||||
Appuie sur la touche ~h~~k~~PED_FIREWEAPON~~w~ pour attaquer le chef.
|
Appuie sur la touche ~h~~k~~PED_FIREWEAPON~~w~ pour attaquer le chef.
|
||||||
|
@ -14262,8 +14263,9 @@ Pour ~h~ramasser une bombe~w~, manoeuvre l'hélico radiocommandé à côté. Il
|
||||||
[TEX3_37:SERG3]
|
[TEX3_37:SERG3]
|
||||||
Pousse le ~h~joystick analogique droit vers le haut ~w~pour vitesse la vitesse du rotor et ainsi faire ~h~ monter l'hélicoptère.
|
Pousse le ~h~joystick analogique droit vers le haut ~w~pour vitesse la vitesse du rotor et ainsi faire ~h~ monter l'hélicoptère.
|
||||||
|
|
||||||
[TEX3_38:SERG3]
|
[TEX3_38:SERG3] { reVC update }
|
||||||
Pousse le ~h~~k~~VEHICLE_ACCELERATE~ ~w~pour augmenter la réduire du rotor et ainsi faire ~h~ descendre l'hélicoptère.
|
{Pousse le ~h~~k~~VEHICLE_ACCELERATE~ ~w~pour augmenter la réduire du rotor et ainsi faire ~h~ descendre l'hélicoptère.}
|
||||||
|
Pousse le ~h~joystick analogique droit vers la bas ~w~pour augmenter la réduire du rotor et ainsi faire ~h~ descendre l'hélicoptère.
|
||||||
|
|
||||||
[TEX3_39:SERG3]
|
[TEX3_39:SERG3]
|
||||||
~g~Appuie sur la touche ~h~~k~~VEHICLE_HANDBRAKE~ ~g~pour larguer une bombe.
|
~g~Appuie sur la touche ~h~~k~~VEHICLE_HANDBRAKE~ ~g~pour larguer une bombe.
|
||||||
|
|
|
@ -6640,8 +6640,9 @@ Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um das Prãzisionsgewehr ~h~abzufeu
|
||||||
[PLANE_H]
|
[PLANE_H]
|
||||||
Benutze die ~h~~k~~VEHICLE_ACCELERATE~~w~-Taste, um zu beschleunigen. Links bzw. Rechts für Richtungswechsel.
|
Benutze die ~h~~k~~VEHICLE_ACCELERATE~~w~-Taste, um zu beschleunigen. Links bzw. Rechts für Richtungswechsel.
|
||||||
|
|
||||||
[PLANE_4]
|
[PLANE_4] { reVC update }
|
||||||
Benutze die ~h~~k~~VEHICLE_ACCELERATE~~w~-Taste, um zu beschleunigen. Links bzw. Rechts für Richtungswechsel.
|
{Benutze die ~h~~k~~VEHICLE_ACCELERATE~~w~-Taste, um zu beschleunigen. Links bzw. Rechts für Richtungswechsel.}
|
||||||
|
Benutze den rechten Analog-Stick, um zu beschleunigen. Ziehe den linken Analog-Stick, um zu steigen oder drücke ihn nach vorn, um zu sinken. Links bzw. Rechts für Richtungswechsel.
|
||||||
|
|
||||||
[HELP55]
|
[HELP55]
|
||||||
Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um den Küchenchef anzugreifen.
|
Drücke die ~h~~k~~PED_FIREWEAPON~~w~-Taste, um den Küchenchef anzugreifen.
|
||||||
|
@ -14262,8 +14263,9 @@ Um ~h~eine Bombe aufzunehmen~w~, steuere den Helikopter direkt über sie. Der He
|
||||||
[TEX3_37:SERG3]
|
[TEX3_37:SERG3]
|
||||||
Zieh den ~h~ Rechten Analog-Stick zurück~w~, um die Rotorgeschwindigkeit zu erhöhen, der Helikopter ~h~ gewinnt dann an Höhe.
|
Zieh den ~h~ Rechten Analog-Stick zurück~w~, um die Rotorgeschwindigkeit zu erhöhen, der Helikopter ~h~ gewinnt dann an Höhe.
|
||||||
|
|
||||||
[TEX3_38:SERG3]
|
[TEX3_38:SERG3] { reVC update }
|
||||||
Drück den ~h~ ~k~~VEHICLE_ACCELERATE~~w~, um die Rotorgeschwindigkeit zu verringern, der Helikopter ~h~ verliert dann an Höhe.
|
{Drück den ~h~ ~k~~VEHICLE_ACCELERATE~~w~, um die Rotorgeschwindigkeit zu verringern, der Helikopter ~h~ verliert dann an Höhe.}
|
||||||
|
Drück den ~h~ Rechten Analog-Stick nach vorn~w~, um die Rotorgeschwindigkeit zu verringern, der Helikopter ~h~ verliert dann an Höhe.
|
||||||
|
|
||||||
[TEX3_39:SERG3]
|
[TEX3_39:SERG3]
|
||||||
Um eine Bombe abzuwerfen, drücke die ~h~~k~~VEHICLE_HANDBRAKE~~g~-Taste.
|
Um eine Bombe abzuwerfen, drücke die ~h~~k~~VEHICLE_HANDBRAKE~~g~-Taste.
|
||||||
|
|
|
@ -6694,8 +6694,9 @@ Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per ~h~sparare~w~ col fucile di precisi
|
||||||
[PLANE_H]
|
[PLANE_H]
|
||||||
Usa il tasto ~h~~k~~VEHICLE_ACCELERATE~~w~ per accelerare e a sinistra e a destra per curvare.
|
Usa il tasto ~h~~k~~VEHICLE_ACCELERATE~~w~ per accelerare e a sinistra e a destra per curvare.
|
||||||
|
|
||||||
[PLANE_4]
|
[PLANE_4] { reVC update }
|
||||||
Usa il tasto ~h~~k~~VEHICLE_ACCELERATE~~w~ per accelerare e a sinistra e a destra per curvare.
|
{Usa il tasto ~h~~k~~VEHICLE_ACCELERATE~~w~ per accelerare e a sinistra e a destra per curvare.}
|
||||||
|
Usa la levetta analogica destra per accelerare, premi la levetta analogica sinistra in basso per salire, in alto per scendere e a sinistra e a destra per curvare.
|
||||||
|
|
||||||
[HELP55]
|
[HELP55]
|
||||||
Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per attaccare lo chef.
|
Premi il tasto ~h~~k~~PED_FIREWEAPON~~w~ per attaccare lo chef.
|
||||||
|
@ -14271,8 +14272,9 @@ Per raccogliere una bomba, avvicinaci l'elicottero radiocomandato. L'elicottero
|
||||||
[TEX3_37:SERG3]
|
[TEX3_37:SERG3]
|
||||||
Sposta ~h~in basso la levetta analogica destra~w~ per aumentare la velocità del rotore e ~h~far salire~w~ l'elicottero.
|
Sposta ~h~in basso la levetta analogica destra~w~ per aumentare la velocità del rotore e ~h~far salire~w~ l'elicottero.
|
||||||
|
|
||||||
[TEX3_38:SERG3]
|
[TEX3_38:SERG3] { reVC update }
|
||||||
Sposta ~h~~k~~VEHICLE_ACCELERATE~~w~ per ridurre la velocità del rotore e ~h~far scendere~w~ l'elicottero.
|
{Sposta ~h~~k~~VEHICLE_ACCELERATE~~w~ per ridurre la velocità del rotore e ~h~far scendere~w~ l'elicottero.}
|
||||||
|
Sposta ~h~in alto la levetta analogica destra~w~ per ridurre la velocità del rotore e ~h~far scendere~w~ l'elicottero.
|
||||||
|
|
||||||
[TEX3_39:SERG3]
|
[TEX3_39:SERG3]
|
||||||
~g~Per sganciare una bomba, premi il tasto ~h~~k~~VEHICLE_HANDBRAKE~~g~.
|
~g~Per sganciare una bomba, premi il tasto ~h~~k~~VEHICLE_HANDBRAKE~~g~.
|
||||||
|
|
|
@ -6485,8 +6485,9 @@ Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para ~h~disparar~w~ el rifle de francotirador.
|
||||||
[PLANE_H]
|
[PLANE_H]
|
||||||
Mueve ~h~~k~~VEHICLE_ACCELERATE~~w~ hacia delante para acelerar y a izquierda o derecha para girar.
|
Mueve ~h~~k~~VEHICLE_ACCELERATE~~w~ hacia delante para acelerar y a izquierda o derecha para girar.
|
||||||
|
|
||||||
[PLANE_4]
|
[PLANE_4] { reVC update }
|
||||||
Mueve ~h~~k~~VEHICLE_ACCELERATE~~w~ hacia delante para acelerar y a izquierda o derecha para girar.
|
{Mueve ~h~~k~~VEHICLE_ACCELERATE~~w~ hacia delante para acelerar y a izquierda o derecha para girar.}
|
||||||
|
Utiliza el joystick analógico derecho para acelerar, tira hacia atrás el joystick analógico izquierdo para ascender, empújalo hacia adelante para descender. Para girar muévelo a izquierda o derecha.
|
||||||
|
|
||||||
[HELP55]
|
[HELP55]
|
||||||
Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para atacar al chef.
|
Pulsa ~h~~k~~PED_FIREWEAPON~~w~ para atacar al chef.
|
||||||
|
@ -13952,8 +13953,9 @@ Para ~h~recoger una bomba~w~, simplemente dirige el helicóptero RC hasta ella.
|
||||||
[TEX3_37:SERG3]
|
[TEX3_37:SERG3]
|
||||||
Si empujas ~h~el joystick analógico derecho hacia atrás~w~, aumentarás la velocidad del rotor y así ~h~ascenderá~w~.
|
Si empujas ~h~el joystick analógico derecho hacia atrás~w~, aumentarás la velocidad del rotor y así ~h~ascenderá~w~.
|
||||||
|
|
||||||
[TEX3_38:SERG3]
|
[TEX3_38:SERG3] { reVC update }
|
||||||
Pulsa ~h~~k~~VEHICLE_ACCELERATE~~w~ para aumentar la velocidad del rotor y así ~h~ascender~w~.
|
{Pulsa ~h~~k~~VEHICLE_ACCELERATE~~w~ para aumentar la velocidad del rotor y así ~h~ascender~w~.}
|
||||||
|
Si empujas ~h~el joystick analógico derecho hacia adelante~w~disminuye la velocidad del rotor aumenta haciendo que el helicóptero ~h~descienda.
|
||||||
|
|
||||||
[TEX3_39:SERG3]
|
[TEX3_39:SERG3]
|
||||||
~g~Para soltar una bomba pulsa ~h~~k~~VEHICLE_HANDBRAKE~~w~.
|
~g~Para soltar una bomba pulsa ~h~~k~~VEHICLE_HANDBRAKE~~w~.
|
||||||
|
|
Loading…
Reference in a new issue