DING
Video
Shopping
Operating System

Under The Bonnet | Patch 11.2

Written by Parias on . Posted in Scattered Chatter, Under The Bonnet

Summary:

(As per \CitizenClient\Client_Release.id)

It’s finally that time again! Our last update was late February, so this is sure overdue. Understandably the developers have been incredibly busy trying to get the DFM (or “Arena Commander” if you prefer) release in order, so we can expect that any interim updates will be considerably less dramatic in nature until that comes out.

This patch serves as a good testament to this; we have a few new hangar additions to oogle over and a few code and functionality fixes, but the usual gamut of other updates (ship models and animations, loadout adjustments, etc) are absent. I’m even finding myself hard-pressed to find tangible content of significance to write about — but don’t worry, I’ll always find something.

There also seems to be quite the discussion about this patch being ~4GB in size. An actual under the hood analysis shows this really isn’t the case; it’s pretty common for the patcher to just assume your entire installation is invalid and it will actually force you to redownload the whole thing (particularly if you get a metadata error and a “Repair” option). The actual data-file differences between builds are much smaller in size.

Read on to see what’s new – and to see if you can unlock the mystery behind the enigmatic “Dumper’s Depot!”

Patch Breakdown

ANIMATIONS / CHARACTER MODELS

  • No changes for this build.

SCRIPTS / GAME DATA

  • There are a number of seemingly-inconspicuous changes to the map layer files in GameData.pak\GameLayers\ – for example, the Buggy Tracks, Firing Range, etc have had a “MinViewDistance” of 0 set. Spawn points have naturally been added for the Flair_calendar_stand and flair_towel42goal entities, and various sections have been enclosed in “PrefabLibraries” tags. No other major changes found – the mysterious GameLayers\Kythera\Maneuvers.lyr map layer file introduced a couple of builds ago is still present, but unchanged.
  • Some default cvar changes undoubtedly related to the Oculus Rift improvements are in GameData.pak\Libs\Config\Profiles\default\attributes.xml; interestingly the only change here is that the “EyeDistance” attribute (which set r_stereoStrength to 0.75) has now been removed.
  • The default key bindings / action map file (GameData.pak\Libs\Config\defaultProfile.xml) now has some new data in the “default” actionmap section:
    <actionmap name="default" version="23">
        <action name="hmd_toggle" onPress="1" keyboard="np_1" />
        <action name="hmd_center" onPress="1" keyboard="np_2" />

Hitting Numpad 1 on my keypad just crashes the game, but I don’t have an HMD / OR. The functions of these should be obvious for those who do though.

  • Here’s the UIElements xml for the new interactive calendar object, for the curious (GameData.pak\Libs\UI\UIElements\CalendarItem.xml):
<UIElements name="CalendarItem">
    <UIElement name="CalendarItem" render_lockless="1" fixed_proj_depth="0" skip_init="1">
        <GFx file="UI/Objects/Calendar/assets/SWF/Calendar_root.swf" fontlib="UI/Objects/Calendar/assets/SWF/gfxfontlib.swf">
            <Constraints>
                <Align mode="dynamic" halign="center" valign="center" scale="1" max="1" />
            </Constraints>
        </GFx>
        <functions>
        </functions>
    </UIElement>
</UIElements>

Scripts.Pak\Scripts\Entities\Items\XML\Flair\Flair_Calendar.xml also shows it has a “mass” of 60000. It’s geometry is called from Objects\brush\planet\uee\calendar\flare_calendar_screen.cgf – there’s also a separate entry for the calendar stand with similar references. The calendar itself is basically a set of triggered Shockwave Flash animated images.

  • Interestingly, the calendar’s interactivity logic seems to be flowgraph-driven. Scripts.pak\Scripts\Flowgraphs\calendar_flowgraph.xml shows a bit of how this works:
  </Node>
  <Node Id="18" Class="Entity:Material" pos="200,-420,0" flags="0" GraphEntity="0">
   <Inputs entityId="0" mat_Material="Objects/brush/planet/uee/calendar/flair_calendar_006"/>
  </Node>
  <Node Id="19" Class="Entity:Material" pos="200,-340,0" flags="0" GraphEntity="0">
   <Inputs entityId="0" mat_Material="Objects/brush/planet/uee/calendar/flair_calendar_007"/>
  </Node>
  <Node Id="21" Class="Logic:Sequentializer" pos="0,-50,0" flags="0">
   <Inputs Closed="0" Reverse="0"/>
  </Node>
  <Node Id="22" Class="Logic:Sequentializer" pos="0,60,0" flags="0">
   <Inputs Closed="1" Reverse="0"/>
  </Node>
  <Node Id="23" Class="Logic:Any" pos="10,190,0" flags="0">
   <Inputs />
  </Node>
  <Node Id="24" Class="Logic:Any" pos="20,-170,0" flags="0">
   <Inputs />
  </Node>
  <Node Id="25" Class="Entity:Material" pos="200,60,0" flags="0" GraphEntity="0">
   <Inputs entityId="0" mat_Material="Objects/brush/planet/uee/calendar/flair_calendar_012"/>
  </Node>
  <Node Id="26" Class="Entity:Material" pos="200,-20,0" flags="0" GraphEntity="0">
   <Inputs entityId="0" mat_Material="Objects/brush/planet/uee/calendar/flair_calendar_011"/>
  </Node>
  <Node Id="27" Class="Entity:Material" pos="200,460,0" flags="0" GraphEntity="0">
   <Inputs entityId="0" mat_Material="Objects/brush/planet/uee/calendar/flair_calendar_005"/>
  </Node>
(etc....)
</Nodes>
 <Edges>
  <Edge nodeIn="21" nodeOut="15" portIn="In" portOut="Used" enabled="1"/>
  <Edge nodeIn="22" nodeOut="15" portIn="In" portOut="Used" enabled="1"/>
  <Edge nodeIn="18" nodeOut="21" portIn="Set" portOut="Out1" enabled="1"/>
  <Edge nodeIn="19" nodeOut="21" portIn="Set" portOut="Out2" enabled="1"/>
  <Edge nodeIn="24" nodeOut="21" portIn="in1" portOut="Out6" enabled="1"/>
  <Edge nodeIn="26" nodeOut="21" portIn="Set" portOut="Out6" enabled="1"/>
(etc...)
</Edges>
  • A lot of the same stuff applies for the towel and switching between “dirty” states.
  • Don’t worry kids – CIG seems to be making sure the state of your towel will be properly replicated across the network when the time comes. A new line in Scripts.pak\Network\EntityScheduler.xml references “<Class name=”Flair_Towel_42″ policy=”obj”/>”.

SHIP / WEAPON / OTHER OBJECTS

  • Unfortunately there’s not much else to put in here, since I pretty much covered a lot of the new object stuff above (i.e. towel and calendar objects) from a scripting standpoint. However, there’s a very interesting set of new textures in ObjectsBrushPlanet.pak\Objects\brush\planet\uee\kits\interior_dumpers_depot\prop\texture – including dds files for all of the calendar images in high res (feel free to take a look even if you’re not a subscriber – I won’t tell), and a bunch of other generic plastic, metal, and even wood textures.

Taking a quick browse through the textures folder, I wasn’t seeing a whole lot that really jumped out at as significant.. until I got to unique_dumper_depot_logo_neon_diff.dds , which is probably one of the coolest things in this build. Maybe a hint at an eventual salvage yard location? (Edit: Thanks to Osric_Rhys_Daffyd from Reddit for pointing out this post on the RSI site with a Dumper’s Depot ad that has offers a bit more lore around this.)

TL;DR / MEDIA COMPILATION SECTION

With each new build of the hangar module, Parias likes to run diffs against the varying versions, and make notes just out of nerdy curiosity for what’s actually being changed under the hood —  in particular things which might not have been directly mentioned in the patch notes.

99% of this document will be personal conjecture – Parias may (and likely will) be wrong on the interpretation of a lot of things.

 

Trackback from your site.

Comments (5)

Leave a comment