Exemple #1
0
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();
}
Exemple #2
0
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();
}