示例#1
0
int StateScore::update( Uint32 delta )
{
	StateBase::update( delta );

	if ( caretTimer.stopped() && state == 0 )
	{
		caret = !caret;
		caretTimer.start( SCORE_CARET_BLINK_TIME );
	}

	if ( spGetInput()->button[SP_BUTTON_START]
#ifdef MOBILE_DEVICE
		|| spGetInput()->button[SP_BUTTON_B]
		|| spGetInput()->button[SP_BUTTON_Y]
#endif
		|| name[strlen(name)-1] == '\n' // Enter key was pressed
		)
	{
		if ( state == 0 && name[0] != 0 )
		{
			spResetButtonsState();
			spStopKeyboardInput();
			state = 1;
			caret = false;
			if (name[strlen(name)-1] == '\n')
				name[strlen(name)-1] = '\0';
			file.addScore( name, score, run->info.timecode );
			if ( run )
			{
				run->info.name = name;
				run->info.score = score;
				run->saveToFile( FOLDER_REPLAY "/" + Utility::numToStr( run->info.timecode ) +
									EXTENSION_REPLAY );
			}
		}
		else
		{
			spResetButtonsState();
			spStopKeyboardInput();
			return stMenu;
		}
	}

	return 0;
}
示例#2
0
int calc_account(Uint32 steps)
{
	blink+=steps;
	if (spNetC4AGetStatus() > 0)
	{
		right_after_status = 1;
		return 0;
	}
	if (right_after_status)
	{
		if (spNetC4AGetTaskResult() == 0)
		{
			mode = nextMode;
			askMode = last_task+7;
		}
		else
		{
			askMode = 6;
			spStopKeyboardInput();
		}
			
	}
	right_after_status = 0;
	if (askMode)
	{
		switch ( askMode )
		{
			case 1:
				if ( spGetInput()->button[SP_BUTTON_START_NOWASD] )
				{
					spGetInput()->button[SP_BUTTON_START_NOWASD] = 0;
					if (spNetC4ADeleteAccount(&profile,1,TIME_OUT) == 0)
					{
						right_after_status = 1;
						last_task = 2;
					}
					nextMode = 0;
					sprintf(longName,"");
					sprintf(shortName,"");
					sprintf(password,"");
					sprintf(mail,"");
					askMode = 0;
					switch (line)
					{
						case 0: spPollKeyboardInput(shortName,3,SP_PRACTICE_OK_NOWASD_MASK); break;
						case 1: spPollKeyboardInput(longName,256,SP_PRACTICE_OK_NOWASD_MASK); break;
						case 2: spPollKeyboardInput(password,256,SP_PRACTICE_OK_NOWASD_MASK); break;
						case 3: spPollKeyboardInput(mail,256,SP_PRACTICE_OK_NOWASD_MASK); break;
					}
				}
				if ( spGetInput()->button[SP_PRACTICE_CANCEL_NOWASD] )
				{
					spGetInput()->button[SP_PRACTICE_CANCEL_NOWASD] = 0;
					askMode = 0;
					switch (line)
					{
						case 0: spPollKeyboardInput(shortName,3,SP_PRACTICE_OK_NOWASD_MASK); break;
						case 1: spPollKeyboardInput(longName,256,SP_PRACTICE_OK_NOWASD_MASK); break;
						case 2: spPollKeyboardInput(password,256,SP_PRACTICE_OK_NOWASD_MASK); break;
						case 3: spPollKeyboardInput(mail,256,SP_PRACTICE_OK_NOWASD_MASK); break;
					}
				}
				break;
			default:
				if ( spGetInput()->button[SP_PRACTICE_OK_NOWASD] )
				{
					spGetInput()->button[SP_PRACTICE_OK_NOWASD] = 0;
					askMode = 0;
					switch (line)
					{
						case 0: spPollKeyboardInput(shortName,3,SP_PRACTICE_OK_NOWASD_MASK); break;
						case 1: spPollKeyboardInput(longName,256,SP_PRACTICE_OK_NOWASD_MASK); break;
						case 2: spPollKeyboardInput(password,256,SP_PRACTICE_OK_NOWASD_MASK); break;
						case 3: spPollKeyboardInput(mail,256,SP_PRACTICE_OK_NOWASD_MASK); break;
					}
				}
		}
		return 0;
	}
	if ( spGetInput()->button[SP_PRACTICE_CANCEL_NOWASD] )
	{
		spGetInput()->button[SP_PRACTICE_CANCEL_NOWASD] = 0;
		spStopKeyboardInput();
		return 1;
	}
	
	int i;
	for (i = 0; shortName[i] != 0; i++)
	{
		if ('a' <= shortName[i] && shortName[i] <= 'z')
			shortName[i] += 'A'-'a';
	}
		
	if ((spGetVirtualKeyboardState() == SP_VIRTUAL_KEYBOARD_ALWAYS && spGetInput()->button[SP_BUTTON_R_NOWASD]) ||
	    (spGetVirtualKeyboardState() != SP_VIRTUAL_KEYBOARD_ALWAYS && spGetInput()->axis[1] > 0))
	{
		line = (line + 1) % 4;
		spGetInput()->button[SP_BUTTON_R_NOWASD] = 0;
		if (spGetVirtualKeyboardState() != SP_VIRTUAL_KEYBOARD_ALWAYS)
			spGetInput()->axis[1] = 0;
		blink = 0;
		switch (line)
		{
			case 0: spPollKeyboardInput(shortName,3,SP_PRACTICE_OK_NOWASD_MASK); break;
			case 1: spPollKeyboardInput(longName,256,SP_PRACTICE_OK_NOWASD_MASK); break;
			case 2: spPollKeyboardInput(password,256,SP_PRACTICE_OK_NOWASD_MASK); break;
			case 3: spPollKeyboardInput(mail,256,SP_PRACTICE_OK_NOWASD_MASK); break;
		}
	}
	if ((spGetVirtualKeyboardState() == SP_VIRTUAL_KEYBOARD_ALWAYS && spGetInput()->button[SP_BUTTON_L_NOWASD]) ||
	    (spGetVirtualKeyboardState() != SP_VIRTUAL_KEYBOARD_ALWAYS && spGetInput()->axis[1] < 0))
	{
		line = (line + 3) % 4;
		spGetInput()->button[SP_BUTTON_L_NOWASD] = 0;
		if (spGetVirtualKeyboardState() != SP_VIRTUAL_KEYBOARD_ALWAYS)
			spGetInput()->axis[1] = 0;
		blink = 0;
		switch (line)
		{
			case 0: spPollKeyboardInput(shortName,3,SP_PRACTICE_OK_NOWASD_MASK); break;
			case 1: spPollKeyboardInput(longName,256,SP_PRACTICE_OK_NOWASD_MASK); break;
			case 2: spPollKeyboardInput(password,256,SP_PRACTICE_OK_NOWASD_MASK); break;
			case 3: spPollKeyboardInput(mail,256,SP_PRACTICE_OK_NOWASD_MASK); break;
		}
	}
	if ( spGetInput()->button[SP_BUTTON_START_NOWASD] )
	{
		spGetInput()->button[SP_BUTTON_START_NOWASD] = 0;
		if (check_shortname())
		{
			askMode = 2;
			spStopKeyboardInput();
		}
		else
		if (check_longname())
		{
			askMode = 3;
			spStopKeyboardInput();
		}
		else
		if (check_password())
		{
			askMode = 4;
			spStopKeyboardInput();
		}
		else
		if (check_mail())
		{
			askMode = 5;
			spStopKeyboardInput();
		}
		else
		{
			if (mode == 0)
			{
				if (spNetC4ACreateProfile(&profile,longName,shortName,password,mail,TIME_OUT) == 0)
				{
					right_after_status = 1;
					last_task = 0;
				}
				nextMode = 1;
			}
			else
			{
				if (spNetC4AEditProfile(&profile,longName,shortName,password,mail,TIME_OUT) == 0)
				{
					right_after_status = 1;
					last_task = 1;
				}
				nextMode = 1;
			}
		}
	}
	if ( mode == 1 && spGetInput()->button[SP_BUTTON_SELECT_NOWASD] )
	{
		 spGetInput()->button[SP_BUTTON_SELECT_NOWASD] = 0;
		 askMode = 1;
		 spStopKeyboardInput();
	}
	return 0;
}