コード例 #1
0
ファイル: TeamDeathMatch.cpp プロジェクト: DaleRunner/duel6r
 void TeamDeathMatch::initializePlayers(std::vector<Game::PlayerDefinition> &definitions) {
     Int32 index = 0;
     for (auto &definition : definitions) {
         const Team &team = getPlayerTeam(index);
         PlayerSkinColors &colors = definition.getColors();
         colors.set(PlayerSkinColors::Trousers, team.color);
         colors.set(PlayerSkinColors::HairTop, team.color);
         index++;
     }
 }
コード例 #2
0
ファイル: TeamDeathMatch.cpp プロジェクト: DaleRunner/duel6r
    void TeamDeathMatch::initializeRound(Game &game, std::vector<Player> &players, World &world) {
        teamMap.clear();
        Int32 index = 0;
        for (auto &player : players) {
            const Team &team = getPlayerTeam(index);
            teamMap.insert(std::make_pair(&player, &team));
            index++;
        }

        eventListener = std::make_unique<TeamDeathMatchPlayerEventListener>(world.getMessageQueue(), game.getSettings(),
                                                                            friendlyFire, teamMap);
        for (auto &player : players) {
            player.setEventListener(*eventListener);
        }
    }
コード例 #3
0
//TODO: typedef?
std::shared_ptr<boost::multi_array<TerrainTile*, 3>> CGameInfoCallback::getAllVisibleTiles() const
{
	assert(player.is_initialized());
	auto team = getPlayerTeam(player.get());

	size_t width = gs->map->width;
	size_t height = gs->map->height;
	size_t levels = (gs->map->twoLevel ? 2 : 1);


	boost::multi_array<TerrainTile*, 3> tileArray(boost::extents[width][height][levels]);

	for (size_t x = 0; x < width; x++)
		for (size_t y = 0; y < height; y++)
			for (size_t z = 0; z < levels; z++)
			{
				if (team->fogOfWarMap[x][y][z])
					tileArray[x][y][z] = &gs->map->getTile(int3(x, y, z));
				else
					tileArray[x][y][z] = nullptr;
			}
	return std::make_shared<boost::multi_array<TerrainTile*, 3>>(tileArray);
}