Skip to content

Breaking changes

Petr Pivoňka edited this page Jul 1, 2024 · 35 revisions

In case your interested version isn't documented enough, you can try using the FuGet Explorer and set the API diff version.

GBX.NET on fuget.org

2.0.5

  • Renamed CPlugTree Translation to Location

2.0.4

No breaking changes.

2.0.3

  • CGameCtnCollector 0x009 Version has been removed
  • CGameCtnChallenge TMObjective_IsLapRace and IsLapRace have been merged to IsLapRace
  • CGameCtnChallenge TMObjective_NbLaps and NbLaps have been merged to NbLaps (could cause inexact behavior, report to me in case)

2.0.2

  • Added more ways to construct Ident
    • ("", new(26), "") for example does not work that well anymore.
    • For indexed collection, just do ("", 26, ""), or for named one, go with ("", "", "")
  • Renamed ClassManager.GetClassId to GetId

2.0.1

CGameBlockItem has changed

  • Dictionary<int, CPlugCrystal> is now IList<CGameBlockItem.Mobil>
  • Mobil has int Id and CPlugCrystal Crystal

2.0.0

A LOT. For any problem not mentioned here, don't hesitate to hit me up on Discord.

TODO

1.2.6

Int4.Zero returns Int4 now.

1.2.5

Removed Version from CGameItemModel 0x009.

1.2.4

In CGameCtnChallenge, changing MapUid or HashedPassword tweaks with CRC32 now, which could be unexpected.

1.2.3

No breaking changes.

1.2.2

No breaking changes.

1.2.1

TODO

1.2.0

  • CGameCtnGhost.PlayerInputData property Inputs now implicitly applies StartOffset to individual Times of IInput
  • CGameGhost.Data
    • Constructor requires two parameters, byte[] ghostData and bool isOldData
    • All Read methods have been privated
  • CGameItemModel.Cameras - changed from CMwNod?[]? to ExternalNode<CMwNod>[]?
  • CGameObjectPhyModel - changed a bunch of nullable properties to their not-nullable variant
  • CPlugEntRecordData - replaced Samples with more exact solution, now there are multiple sample buffers inside EntList instead
  • CPlugShaderApply - changed from CPlugBitmapAddress?[]? to ExternalNode<CPlugBitmapAddress>[]?
  • GameBoxHeader is no longer immutable
  • Removed GBX.NET.Sample
  • Older class names have been replaced with newer class names, usually CSceneVehicle... to CPlug
  • GameBoxWriter.WriteBigInt has changed signature
  • CPlugSolid2Model.MaterialUserInsts renamed to MaterialInsts (as it's the exact name)

1.1.3

  • Changed a lot of CGameCtnReplayRecord arrays to IReadOnlyCollection (I regret this change as you cannot index anymore, which I didn't know before)
    • ControlEntries
    • Extras
    • Ghosts
    • InterfaceScriptInfos
    • SceneryVortexKeys

1.1.2

  • CGameCtnGhost property LightTrailColor type Vec3? has been changed to Vec3
  • Made Node.WriteAsync internal (which should not have been public)

1.1.1

  • CGameCtnGhost.PlayerInputData:
    • InputChange class has been changed to TrackmaniaInputChange
    • TrackmaniaInputChange property IsRespawn was changed to Respawn
  • CGameCtnCollector property Author was changed to Ident (to apply namings considered from asserts in the code)
  • CGameCtnGhost.Data property NodeID was changed to SavedMobilClassId

1.1.0

TODO

GBX.NET

Practical

Theoretical

  • TimeInt32 and TimeSingle (soon)
  • Chunks in depth - why certain properties lag? (soon)
  • High-performance parsing (later)
  • Purpose of Async methods (soon)
  • Compatibility, class ID remapping (soon)

Internal

External

  • Gbx from noob to master
  • Reading chunks in your parser
Clone this wiki locally