Exemple #1
0
//--------------------------------------------------------------------------
// PopupAutoMap()
//--------------------------------------------------------------------------
void PopupAutoMap()
{
	#define BASE_X	64
	#define BASE_Y	44

	ThreeDRefresh();
	ThreeDRefresh();

	SD_StopSound();
	ClearMemory();
	CacheDrawPic(BASE_X,BASE_Y,AUTOMAPPIC);

	ShowStats(BASE_X+101,BASE_Y+22,ss_quick,&gamestuff.level[gamestate.mapon].stats);

	while (Keyboard[sc_back_quote])
		CalcTics();

#if GAME_VERSION != SHAREWARE_VERSION && IN_DEVELOPMENT
//	if (DebugOk && PP_step)
//		PicturePause();
#endif

	IN_StartAck ();
	while (!IN_CheckAck ())
		CalcTics();

	CleanDrawPlayBorder();
	IN_ClearKeysDown();
}
Exemple #2
0
void Cmd_Cam_f(edict_t *ent)
{
	char * name = gi.args();
 // obj1 is how to tell when we've looped
	edict_t * obj1;
	edict_t * target;
	BlinkyClient_t * bdata;

	bdata = &ent->client->blinky_client;
	obj1 = bdata->cam_target;

	if (!coop->value || IsSpectator(ent))
		return;

	if (!obj1)
		obj1 = ent;
	target = obj1;
	while(1)
	{
		// advance loop thru edicts
		// to do - this ought to cycle at maxclients instead of num_edicts
		if (target < &g_edicts[0]+(int)(maxclients->value)+1)
			target++;
		else
			target = g_edicts+1;
		if (target == obj1)
			break;
		// only look at (in use) players
		if (!target->inuse || !target->client || IsSpectator(target))
			continue;
		// if a specific name requested & doesn't match, skip
		if (name[0] && Q_stricmp(name, target->client->pers.netname))
			continue;

		// found cam target
		if (target == ent)
		{
			StopCam(ent);
		}
		else
		{
			StartCam(ent, target);
			ShowStats(ent, target);
		}
		break;
	}

}
void LoadLastPlaylist(HWND hwnd)
{
    char playlist[MAX_PATH];

    GetPrivateProfileString("Playlist","LastPlaylist","",playlist,MAX_PATH,szINIFileName);
    if (lstrcmpi(playlist,""))
    {
		OpenProgress(hwnd,PDT_SINGLE,"Playlist loading");
		LoadPlaylist(hwnd,playlist);
		CloseProgress();
		curNode=GetNodeByIndex((int)GetPrivateProfileInt("Playlist","LastNode",0,szINIFileName));
		if (curNode==NULL)
			curNode=list_start;
		ShowStats();
    }
}
//---------------------------------------------------------------------------------
// Purpose: Process a players death
//---------------------------------------------------------------------------------
void ManiVictimStats::DODSPlayerDeath
(
 player_t *victim_ptr, 
 player_t *attacker_ptr, 
 bool attacker_exists,
 int  weapon
 )
{
	int victim_index;
	int attacker_index;

	victim_index = victim_ptr->index - 1;
	if (weapon == -1) return;

	if (attacker_ptr->user_id <= 0)
	{
		// World attacked player (i.e. fell too far)
		Q_strcpy(damage_list[victim_index][victim_index].name, victim_ptr->name);
	}
	else
	{
		if (!attacker_exists)
		{
			return;
		}

		int mapped_weapon = map_dod_weapons[weapon];
		if (mapped_weapon == -1) return;

		Vector	v = attacker_ptr->player_info->GetAbsOrigin() - victim_ptr->player_info->GetAbsOrigin();

		// Update attackers matrix
		attacker_index = attacker_ptr->index - 1;
		damage_list[attacker_index][victim_index].killed = true;
		Q_strcpy(damage_list[attacker_index][victim_index].name, victim_ptr->name);
		Q_strcpy(damage_list[attacker_index][victim_index].weapon_name, dod_weapons_nice[mapped_weapon]);
		damage_list[attacker_index][victim_index].distance = v.Length() * 0.025;
	}

	// Show dead players stats
	ShowStats(victim_ptr, attacker_ptr);

}
Exemple #5
0
void Cmd_Stats_f(edict_t *ent)
{
	char * name = gi.args();
	edict_t * player;
	for (player = &g_edicts[0]+1; player< &g_edicts[0]+(int)(maxclients->value)+1; player++)
	{
		if (!player->inuse || !player->client || player->client->pers.spectator)
			continue;
//		if (player == ent)
//			continue;
		// if a specific name requested & doesn't match, skip
		if (name[0])
		{
			if (Q_stricmp(name, player->client->pers.netname))
				continue;
		}
		ShowStats(ent, player);
	}
}
//---------------------------------------------------------------------------------
// Purpose: Process a players death
//---------------------------------------------------------------------------------
void ManiVictimStats::PlayerDeath
(
 player_t *victim_ptr, 
 player_t *attacker_ptr, 
 bool attacker_exists,
 bool headshot, 
 char *weapon_name
 )
{
	int victim_index;
	int attacker_index;

	victim_index = victim_ptr->index - 1;

	if (attacker_ptr->user_id <= 0)
	{
		// World attacked player (i.e. fell too far)
		Q_strcpy(damage_list[victim_index][victim_index].name, victim_ptr->name);
	}
	else
	{
		if (!attacker_exists)
		{
			return;
		}

		Vector	v = attacker_ptr->player_info->GetAbsOrigin() - victim_ptr->player_info->GetAbsOrigin();

		// Update attackers matrix
		attacker_index = attacker_ptr->index - 1;
		damage_list[attacker_index][victim_index].killed = true;
		damage_list[attacker_index][victim_index].headshot = headshot;
		Q_strcpy(damage_list[attacker_index][victim_index].name, victim_ptr->name);
		Q_strcpy(damage_list[attacker_index][victim_index].weapon_name, weapon_name);
		damage_list[attacker_index][victim_index].distance = v.Length() * 0.025;
	}

	// Show dead players stats
	ShowStats(victim_ptr, attacker_ptr);

}
int main(int argc, char *argv[])
{
    ConfigMap cmap;

    if (ParseCmdLine(argc, argv, cmap) != OK)
    {
        exit(0);
    }

    auto queue = makeQueue<Process>();

    uint64_t seconds = Utils::getTimeStamp();
    uint64_t stopTS = Utils::getTimeStamp() + (boost::get<uint64_t>(cmap["sim_time"]) * MILLISECONS_IN_A_SECOND);

    auto t1 = Utils::Time();

    auto algorithm = bindSimulator(getAlgorithmByString(boost::get<std::string>(cmap["algorithm"])));

    auto pg = ProcessGenerator::createGenerator(queue);

    std::this_thread::sleep_for(std::chrono::seconds(1));

    algorithm.Simulate(queue);

    while (seconds <= stopTS)
    {
        seconds = Utils::getTimeStamp();
    }
    
    algorithm.Stop();
    pg->Stop();

    auto t2 = Utils::Time();

    ShowStats(algorithm.getStats(), boost::get<std::string>(cmap["algorithm"]));

    std::cout << "Executing stuff for " << Utils::Diff(t1, t2) / MICROSECONS_IN_A_SECOND << " seconds" << std::endl;

    return 0;
}
//---------------------------------------------------------------------------------
// Purpose: Check all players on round start
//---------------------------------------------------------------------------------
void ManiVictimStats::RoundEnd(void)
{
	if (mani_show_victim_stats.GetInt() == 1 && !war_mode)
	{
		player_t victim;

		for (int i = 1; i <= max_players; i++)
		{
			victim.index = i;
			if (damage_list[i - 1][i - 1].shown_stats)
			{
				continue;
			}

			if (!FindPlayerByIndex(&victim))
			{
				continue;
			}

			ShowStats(&victim, NULL);
		}
	}
}
Exemple #9
0
void	CheckHighScore (long score,word other)
{
	word		i,j;
	int			n;
	HighScore	myscore;
	US_CursorStruct TermCursor = {'@',0,HIGHLIGHT_TEXT_COLOR,2};


   // Check for cheaters

   if (DebugOk)
	{
   	SD_PlaySound(NOWAYSND);
      return;
   }

	strcpy(myscore.name,"");
	myscore.score = score;
	myscore.episode = gamestate.episode;
	myscore.completed = other;
	myscore.ratio = ShowStats(0,0,ss_justcalc,&gamestuff.level[gamestate.mapon].stats);

	for (i = 0,n = -1;i < MaxScores;i++)
	{
		if ((myscore.score > Scores[i].score) ||	((myscore.score == Scores[i].score)
			&& (myscore.completed > Scores[i].completed)))
		{
			for (j = MaxScores;--j > i;)
				Scores[j] = Scores[j - 1];
			Scores[i] = myscore;
			n = i;
			break;
		}
	}

	StartCPMusic (ROSTER_MUS);
	DrawHighScores ();

	VW_FadeIn ();

	if (n != -1)
	{
		//
		// got a high score
		//

		DrawInstructions(IT_ENTER_HIGHSCORE);
		SETFONTCOLOR(HIGHLIGHT_TEXT_COLOR,TERM_BACK_COLOR);
		PrintY = 68+(SCORE_Y_SPACING * n);
		PrintX = 45;
		use_custom_cursor = true;
		allcaps = true;
		US_CustomCursor = TermCursor;
		US_LineInput(PrintX,PrintY,Scores[n].name,nil,true,MaxHighName,100);
	}
	else
	{
		IN_ClearKeysDown ();
		IN_UserInput(500);
	}

   StopMusic();
	use_custom_cursor = false;
}