Exemplo n.º 1
0
BOOL runMultiRequester(UDWORD id,UDWORD *mode, char *chosen,UDWORD *chosenValue)
{
	if( id==M_REQUEST_CLOSE)							// close
	{
		closeMultiRequester();
		return true;
	}

	if( id>=M_REQUEST_BUT && id<=M_REQUEST_BUTM)		// chose a file.
	{
		strcpy(chosen,((W_BUTTON *)widgGetFromID(psRScreen,id))->pText );

		*chosenValue = ((W_BUTTON *)widgGetFromID(psRScreen,id))->UserData ;
		closeMultiRequester();
		*mode = context;

		return true;
	}

	switch (id)
	{
		case M_REQUEST_C1:
			closeMultiRequester();
			addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, 1, current_numplayers);
			break;
		case M_REQUEST_C2:
			closeMultiRequester();
			addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, 2, current_numplayers);
			break;
		case M_REQUEST_C3:
			closeMultiRequester();
			addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, 3, current_numplayers);
			break;
		case M_REQUEST_AP:
			closeMultiRequester();
			addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, 0);
			break;
		case M_REQUEST_2P:
			closeMultiRequester();
			addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, 2);
			break;
		case M_REQUEST_3P:
			closeMultiRequester();
			addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, 3);
			break;
		case M_REQUEST_4P:
			closeMultiRequester();
			addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, 4);
			break;
		case M_REQUEST_5P:
			closeMultiRequester();
			addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, 5);
			break;
		case M_REQUEST_6P:
			closeMultiRequester();
			addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, 6);
			break;
		case M_REQUEST_7P:
			closeMultiRequester();
			addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, 7);
			break;
		case M_REQUEST_8P:
			closeMultiRequester();
			addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, 8);
			break;
	}

	return false;
}
Exemplo n.º 2
0
bool runMultiRequester(UDWORD id, UDWORD *mode, char *chosen, UDWORD *chosenValue, bool *isHoverPreview)
{
	static unsigned hoverId = 0;
	static unsigned hoverStartTime = 0;

	if( (id == M_REQUEST_CLOSE) || CancelPressed() )			// user hit close box || hit the cancel key
	{
		closeMultiRequester();
		*mode = 0;
		return true;
	}

	bool hoverPreview = false;
	if (id == 0 && context == MULTIOP_MAP)
	{
		id = widgGetMouseOver(psRScreen);
		if (id != hoverId)
		{
			hoverId = id;
			hoverStartTime = wzGetTicks() + HOVER_PREVIEW_TIME;
		}
		if (id == hoverPreviewId || hoverStartTime > wzGetTicks())
		{
			id = 0;  // Don't re-render preview nor render preview before HOVER_PREVIEW_TIME.
		}
		hoverPreview = true;
	}
	if (id >= M_REQUEST_BUT && id <= M_REQUEST_BUTM)  // chose a file.
	{
		strcpy(chosen,((W_BUTTON *)widgGetFromID(psRScreen,id))->pText );

		*chosenValue = ((W_BUTTON *)widgGetFromID(psRScreen,id))->UserData ;
		*mode = context;
		*isHoverPreview = hoverPreview;
		hoverPreviewId = id;
		if (!hoverPreview)
		{
			closeMultiRequester();
		}

		return true;
	}
	if (hoverPreview)
	{
		id = 0;
	}

	switch (id)
	{
		case M_REQUEST_C1:
			closeMultiRequester();
			addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, 1, current_numplayers);
			break;
		case M_REQUEST_C2:
			closeMultiRequester();
			addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, 2, current_numplayers);
			break;
		case M_REQUEST_C3:
			closeMultiRequester();
			addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, 3, current_numplayers);
			break;
		case M_REQUEST_AP:
			closeMultiRequester();
			addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, 0);
			break;
		default:
			for (unsigned numPlayers = 2; numPlayers <= MAX_PLAYERS_IN_GUI; ++numPlayers)
			{
				if (id == M_REQUEST_NP[numPlayers - 2])
				{
					closeMultiRequester();
					addMultiRequest(MultiCustomMapsPath, ".wrf", MULTIOP_MAP, current_tech, numPlayers);
					break;
				}
			}
			break;
	}

	return false;
}