void ProcessModeSwitch() { unsigned char oldMode = gCurrentGpsMode; if (*g_TimeMs > gGpsScrollTimer + GPS_KEY_SCROLL_DELAY) { uint8_t bKeyUp = 0; bool bBlipFound = false; if ((GetAsyncKeyState(GPS_KEY_UP) & 1)) //DPADUP: todo bKeyUp = 1; else if (GetAsyncKeyState(GPS_KEY_DOWN) & 1) bKeyUp = 2; if (bKeyUp) { do { bKeyUp == 1 ? gCurrentGpsMode++ : gCurrentGpsMode--; if (bKeyUp == 1) { if (gCurrentGpsMode > III_RADAR_SPRITE_WEAPON) gCurrentGpsMode = III_RADAR_SPRITE_NONE; } else { if (gCurrentGpsMode < III_RADAR_SPRITE_NONE) gCurrentGpsMode = III_RADAR_SPRITE_WEAPON; } if (gCurrentGpsMode == III_RADAR_SPRITE_CENTRE && gCurrentGpsMode == III_RADAR_SPRITE_COPCAR) gCurrentGpsMode = bKeyUp == 1 ? III_RADAR_SPRITE_DON : III_RADAR_SPRITE_CAT; if (gCurrentGpsMode == III_RADAR_SPRITE_CENTRE || gCurrentGpsMode == III_RADAR_SPRITE_NONE) break; for (RadarBlipIII *blip = gRadarBlips3; blip != &gRadarBlips3[32]; blip++) { if (blip->m_wBlipSprite == gCurrentGpsMode && blip->m_bActive) { bBlipFound = true; } } } while (!bBlipFound); gGpsScrollTimer = *g_TimeMs; } } if (oldMode != gCurrentGpsMode) { gGpsTextTimer = *g_TimeMs; if (gCurrentGpsMode != III_RADAR_SPRITE_CENTRE && *g_TimeMs > gGpsAudioTimer + GPS_AUDIO_DELAY) { PlayFrontEndSound(gAudio, 149, 0); gGpsAudioTimer = *g_TimeMs; } } PrintGpsText(); }
void ProcessModeSwitch() { unsigned char oldMode = gCurrentGpsMode; if(HIBYTE(GetKeyState(GPS_KEY_SWITCH)) == 0xFF) { if(HIBYTE(GetKeyState(GPS_KEY_DISABLE)) == 0xFF) gCurrentGpsMode = GPS_MODE_DISABLED; else if(HIBYTE(GetKeyState(GPS_KEY_DEFAULT)) == 0xFF) gCurrentGpsMode = GPS_MODE_DEFAULT; else if(HIBYTE(GetKeyState(GPS_KEY_AMMUNATION)) == 0xFF) gCurrentGpsMode = GPS_MODE_AMMUNATION; else if(HIBYTE(GetKeyState(GPS_KEY_BOMBSHOP)) == 0xFF) gCurrentGpsMode = GPS_MODE_BOMBSHOP; else if(HIBYTE(GetKeyState(GPS_KEY_FIRESTATION)) == 0xFF) gCurrentGpsMode = GPS_MODE_FIRESTATION; else if(HIBYTE(GetKeyState(GPS_KEY_HOSPITAL)) == 0xFF) gCurrentGpsMode = GPS_MODE_HOSPITAL; else if(HIBYTE(GetKeyState(GPS_KEY_PAYNSPRAY)) == 0xFF) gCurrentGpsMode = GPS_MODE_PAYNSPRAY; else if(HIBYTE(GetKeyState(GPS_KEY_POLICE)) == 0xFF) gCurrentGpsMode = GPS_MODE_POLICE; else if(HIBYTE(GetKeyState(GPS_KEY_SAFEHOUSE)) == 0xFF) gCurrentGpsMode = GPS_MODE_SAFEHOUSE; } else if(*g_TimeMs > gGpsScrollTimer + GPS_KEY_SCROLL_DELAY) { if ((HIBYTE(GetKeyState(GPS_KEY_DOWN)) == 0xFF) || (*(BYTE*)(0x6F0370) == 0xFFu)) //DPADUP { gCurrentGpsMode++; if(gCurrentGpsMode > GPS_MODE_DISABLED) gCurrentGpsMode = GPS_MODE_DEFAULT; gGpsScrollTimer = *g_TimeMs; } else if(HIBYTE(GetKeyState(GPS_KEY_UP)) == 0xFF) { gCurrentGpsMode--; if(gCurrentGpsMode < GPS_MODE_DEFAULT) gCurrentGpsMode = GPS_MODE_DISABLED; gGpsScrollTimer = *g_TimeMs; } } if(oldMode != gCurrentGpsMode) { gGpsTextTimer = *g_TimeMs; if(gCurrentGpsMode != GPS_MODE_DISABLED && *g_TimeMs > gGpsAudioTimer + GPS_AUDIO_DELAY) { PlayFrontEndSound(gAudio, 149, 0); gGpsAudioTimer = *g_TimeMs; } } PrintGpsText(); }