// initialize jwplayer var playerInstance = jwplayer('player'); // player dom elements var playerContainerEl = document.querySelector('.player-container'); // returns video player position from top of document function getElementOffsetTop(el) { var boundingClientRect = el.getBoundingClientRect(); var bodyEl = document.body; var docEl = document.documentElement; var scrollTop = window.pageYOffset || docEl.scrollTop || bodyEl.scrollTop; var clientTop = docEl.clientTop || bodyEl.clientTop || 0; return Math.round(boundingClientRect.top + scrollTop - clientTop); } // returns the current y scroll position function getScrollTop() { var docEl = document.documentElement; return (window.pageYOffset || docEl.scrollTop) - (docEl.clientTop || 0); } // configure jwplayer instance playerInstance.setup({ autostart: true, playlist: 'https://cdn.jwplayer.com/v2/playlists/mYdavspX', primary: 'html5', setFullscreen: true, width: '100%' }); // when jwplayer instance is ready playerInstance.on('ready', function() { var config = playerInstance.getConfig(); var utils = playerInstance.utils; // get height of player element var playerHeight = config.containerHeight; // flag determining whether close has been clicked var closed = true; // CHANGED // flag determing whether player is playing var playing = false; // ADDED // eventhandler for when close button is being pressed document.getElementsByClassName('icon-close')[0].addEventListener('click', () => { closed = true; onScrollViewHandler(); }); playerInstance.on('play', function() { closed = false; playing = true; // ADDED }).on('pause', function () { playing = false; // ADDED }).on('adPlay', function() { closed = false; // ADDED playing = true; // ADDED }).on('adPause', function() { playing = false; // ADDED }); // get player element position from top of document var playerOffsetTop = getElementOffsetTop(playerContainerEl); // set player container to match height of actual video element playerContainerEl.style.height = playerHeight + 'px'; // below we handle window scroll event without killing performance function onScrollViewHandler() { var minimized = getScrollTop() >= playerOffsetTop; if (closed && minimized) { minimized = false; jwplayer().pause(); playing = false; // ADDED } else if (!minimized && !playing) { closed = true; // ADDED } utils.toggleClass(playerContainerEl, 'player-minimize', minimized); // update the player's size so the controls are adjusted playerInstance.resize(); } // namespace for whether or not we are waiting for setTimeout() to finish var isScrollTimeout = false; // window onscroll event handler window.onscroll = function() { // skip if we're waiting on a scroll update timeout to finish if (isScrollTimeout) return; // flag that a new timeout will begin isScrollTimeout = true; // otherwise, call scroll event view handler onScrollViewHandler(); // set new timeout setTimeout(function() { // reset timeout flag to false (no longer waiting) isScrollTimeout = false; }, 80); }; });

Call of Duty’s efforts to create extra cashflow through micro-transactions has been controversial, but the process has led to some absolute gems in the camo department.

As Call of Duties continue roll out, we want to remember the times we had with previous installments of the series. It’s a natural human reaction to want to relive pieces of our past that spark joy or wonder.

A rather uncomplicated way for developers to link their modern generation Call of Duties to the past ones is through transporting customization features from previous titles.

Mainly, we’re talking about camos from previous Black Ops games. Treyarch’s art design team has produced some of CoD’s greatest camo hits and here are some we would like to see return.

The list below includes a non-DLC camo from among the ranks of previous Black Ops titles in addition to the DLC additions. The camos are listed in the same order as the images in their respective galleries appear.

Black Ops 2

  • Bacon Camo
  • Art of War Camo
  • Benjamins Camo
  • Cyborg Camo

Black Ops 3

  • Policia Camo
  • Halcyon Camo
  • Sunshine Camo
  • Gem Camo
  • Swindler Camo
  • Energeon Camo
  • Transgression Camo
  • Storm Camo
  • Ice Camo
  • Monochrome Camo
  • eSports Organization Camos

All of these camos brought vibrancy to the multiplayer world with dynamic effects and bright, striking color palettes. Black Ops 4 already contains a great variety of original and nostalgic camos and we would like to see these classics added to the mix. Perhaps in a future Contraband stream?

With this said, we obviously understand the time constraints at Treyarch and their priorities of League Play, Blackout, and other content updates.

Inserting these old camos would require Treyarch to upgrade the old camos to current resolution standards as well as implement the new art into their game’s texture pipeline.

What skins/camos from previous Call of Duty titles would you like to see added to Black Ops 4? Tell us below or on Twitter at @CharlieIntel.

comments below
A life-long Call of Duty player, Bachelor of Game Design, and a lover of eSports. Floodsye is my real name, Tommi is just the gamertag my parents gave me.