コード例 #1
0
ファイル: ui_atoms.c プロジェクト: otty/cake3
static void UI_MessageMode_f( void )
{
  char *arg = UI_Argv( 0 );

  trap_Cvar_Set( "ui_sayBuffer", "" );

  switch( arg[ 11 ] )
  {
    default:
    case '\0':
      // Global
      uiInfo.chatTeam             = qfalse;
      break;

    case '2':
      // Team
      uiInfo.chatTeam             = qtrue;
      break;
  }

  trap_Key_SetCatcher( KEYCATCH_UI );
  Menus_CloseByName( "say" );
  Menus_CloseByName( "say_team" );

  if( uiInfo.chatTeam )
    Menus_ActivateByName( "say_team" );
  else
    Menus_ActivateByName( "say" );
}
コード例 #2
0
ファイル: ui_script.c プロジェクト: boutetnico/etlegacy
void Script_Close(itemDef_t *item, qboolean *bAbort, char **args)
{
	const char *name = NULL;

	if (String_Parse(args, &name))
	{
		Menus_CloseByName(name);
	}
}
コード例 #3
0
ファイル: cg_newdraw.c プロジェクト: Razish/QtZ
void CG_HideTeamMenu( void ) {
	Menus_CloseByName("teamMenu");
	Menus_CloseByName("getMenu");
}
コード例 #4
0
// Message Processor
void JKG_Slice_ProcessCommand_f(void)
{
	char arg[1024] = {0};
	char data[840];

	int len;

	int i, row, col;

	sfxHandle_t sfx;

	bitstream_t stream;

	trap->Cmd_Argv(1, arg, 1024);

	len = Base128_DecodeLength(strlen(arg));
	Base128_Decode(arg, strlen(arg), data, 840);

	

	BitStream_Init(&stream, (unsigned char *)data, len);
	BitStream_BeginReading(&stream);

	for (;;)
	{
		switch (BitStream_ReadBits(&stream, 4)) // Get the next instruction
		{
		case SLICECMD_EOM:
			// End of message
			return;
		case SLICECMD_START:
			// Reset data
			memset(&sliceData, 0, sizeof(sliceData));
			sliceData.active = qtrue;

			// Bring up UI
			trap->Cvar_Set("ui_hidehud", "1");
			Menus_CloseAll();
			if (Menus_ActivateByName("jkg_slice"))
			{
				trap->Key_SetCatcher( trap->Key_GetCatcher() | KEYCATCH_UI & ~KEYCATCH_CONSOLE );
			}
			Menu_ClearFocus(Menus_FindByName("jkg_slice"));

			// Field is locked until all data is available
			sliceData.fieldLocked = qtrue;
			break;
		case SLICECMD_STOP:
			// End the slicing minigame
			sliceData.active = qfalse;

			Menus_CloseByName("jkg_slice");
			trap->Cvar_Set("ui_hidehud", "0");
			trap->Key_SetCatcher( trap->Key_GetCatcher() & ~KEYCATCH_UI );
			break;
		case SLICECMD_CONFIG:
			// Receive configuration
			sliceData.width = BitStream_ReadBits(&stream, 3) + 1;
			sliceData.height = BitStream_ReadBits(&stream, 3) + 1;
			sliceData.securityLevels = BitStream_ReadBits(&stream, 3);
			sliceData.warningThreshold = BitStream_ReadBits(&stream, 5);
			sliceData.intrusionDetection = BitStream_ReadBool(&stream);
			if (sliceData.intrusionDetection) {
				sliceData.intrusionTime = BitStream_ReadByte(&stream) * 10;
			} else {
				sliceData.intrusionTime = 0;
			}
			sliceData.intrusionStart = 0;
			break;
		case SLICECMD_REVEAL:		
			row = BitStream_ReadBits(&stream, 3);
			col = BitStream_ReadBits(&stream, 3);
			sliceData.grid[row][col].active = 1;
			sliceData.grid[row][col].revealTime = trap->Milliseconds();
			sliceData.grid[row][col].type = BitStream_ReadBits(&stream, 3);
			break;
		case SLICECMD_LOCK:
			if (BitStream_ReadBool(&stream)) {
				sliceData.fieldLocked = qtrue;
			} else {
				sliceData.fieldLocked = qfalse;
			}
			break;
		case SLICECMD_PROGLST:
			JKG_Slice_ProgramListReset();
			sliceData.selectedProgram = -1;
			sliceData.programCount = BitStream_ReadBits(&stream, 4);
			for (i = 0; i < sliceData.programCount; i++) 
			{
				Q_strncpyz(sliceData.programs[i].ID, BitStream_ReadStringBuffered(&stream), sizeof(sliceData.programs[i].ID));
				Q_strncpyz(sliceData.programs[i].name, BitStream_ReadStringBuffered(&stream), sizeof(sliceData.programs[i].name));
				Q_strncpyz(sliceData.programs[i].desc, BitStream_ReadStringBuffered(&stream), sizeof(sliceData.programs[i].desc));
				
				sliceData.programs[i].type = BitStream_ReadBits(&stream, 2);
			}
			break;
		case SLICECMD_SHOWMSG:
			{
				int mode = BitStream_ReadBits(&stream, 2);
				char buffer[3][256];
				BitStream_ReadString(&stream, buffer[0], 256);
				BitStream_ReadString(&stream, buffer[1], 256);
				BitStream_ReadString(&stream, buffer[2], 256);

				JKG_Slice_Dialog_Show(buffer[0], buffer[1], buffer[2], mode, DLGID_SERVER);
			}
			break;
		case SLICECMD_ENDMSG:
			JKG_Slice_Dialog_Close();
			break;
		case SLICECMD_SUMMARY:
			// Process column summaries
			for (i=0; i < sliceData.width; i++) {
				sliceData.summaries[i].value = BitStream_ReadBits(&stream, 6);
				sliceData.summaries[i].alarms = BitStream_ReadBits(&stream, 4);
			}

			// Process row summaries
			for (i=0; i < sliceData.height; i++) {
				sliceData.summaries[8+i].value = BitStream_ReadBits(&stream, 6);
				sliceData.summaries[8+i].alarms = BitStream_ReadBits(&stream, 4);
			}

			sliceData.summariesKnown = qtrue;
			break;
		case SLICECMD_SECUPDATE:
			for (i = 0; i < sliceData.securityLevels; i++) {
				sliceData.securityState[i] = BitStream_ReadBits(&stream, 2);
			}
			break;
		case SLICECMD_INTRUSION:
			// TODO: Play sound effect?
			sliceData.intrusionState = BitStream_ReadBits(&stream, 2);
			if (sliceData.intrusionState == 1) {
				sliceData.intrusionStart = trap->Milliseconds();
			} else {
				sliceData.intrusionStart = 0;
			}
			break;
		case SLICECMD_WARNLEVEL:
			sliceData.warningLevel = BitStream_ReadBits(&stream, 5);
			break;
		case SLICECMD_BLINKNODE:
			row = BitStream_ReadBits(&stream, 3);
			col = BitStream_ReadBits(&stream, 3);
			sliceData.grid[row][col].blinkTime = trap->Milliseconds();
			sliceData.grid[row][col].blinkColor = BitStream_ReadBool(&stream);
			break;
		case SLICECMD_INITFIELD:
			// Ready to play
			sliceData.fieldLocked = qfalse;
			break;
		case SLICECMD_ALARM:
			sfx = trap->S_RegisterSound("sound/effects/mpalarm.wav");
			trap->S_StartLocalSound(sfx, CHAN_AUTO);
			break;
		default:
			Com_Printf("Error processing slice command, unknown command ID\n");
			return;
		}
	}
}