Skip to content

Mismatch in ObjectCreationList data after playing a map with map.ini with custom object creation list #1974

@Caball009

Description

@Caball009

Prerequisites

  • I have searched for similar issues and confirmed this is not a duplicate

Game Version

  • Command & Conquer Generals
  • Command & Conquer Generals: Zero Hour
  • Other (please specify below)

Bug Description

If a client played a match with a custom ObjectCreationList item and then plays a match against another client that doesn't have the same data for that particular item, the game mismatches when that item is used.

Default / old data is replaced by data from the map.ini file in ObjectCreationListStore::parseObjectCreationListDefinition.

Credits to @DrGoldFish1 for testing and reproduction.

Reproduction Steps

ObjectCreationList SUPERWEAPON_ArtilleryBarrage1

  DeliverPayload
    Transport                       = ChinaArtilleryCannon
    FormationSize                   = 9
    FormationSpacing                = 1.0
    StartAtPreferredHeight          = Yes
    StartAtMaxSpeed                 = Yes
    MaxAttempts                     = 1                   ;max attempts
    DeliveryDistance                = 250                 ;distance from target allowed to start/stop dropping.
    WeaponErrorRadius               = 150                 ; how bad the artillerist is
    DelayDeliveryMax                = 3000                ; his delayed reaction to "Fire!"
    VisibleItemsDroppedPerInterval  = 1                   ;Drops two bombs at a time
    VisibleDropBoneBaseName         = RootTransform       ;The bombs are created and dropped at this bone base
    VisibleSubObjectBaseName        = Bomb                ;The bombs are visible until dropped.
    VisibleNumBones                 = 1                   ;Number of bones.
    VisiblePayloadTemplateName      = ChinaArtilleryBarrageShell  ;Created when payload is dropped.
    VisiblePayloadWeaponTemplate    = Chem_SCUDLauncherGunAnthraxGamma
    InheritTransportVelocity        = Yes                 ;The bombs will start at transport velocity.
    ExitPitchRate                   = 30                  ;The bomb will pitch down.
    SelfDestructObject              = Yes                 ; so the delivery vehicle goes away 'POP!'
    DeliveryDecalRadius = 125
    DeliveryDecal
      Texture           = SCCArtilleryBarrage_China
      Style             = SHADOW_ALPHA_DECAL
      OpacityMin        = 25%
      OpacityMax        = 50%
      OpacityThrobTime  = 500
      Color             = R:255 G:156 B:0 A:255 
      OnlyVisibleToOwningPlayer = Yes
    End
  End

End
  1. Use client01 to start a (multiplayer) match with a custom map with this ObjectCreationList item.
  2. Exit match and host multiplayer match with any of the default maps.
  3. Join match with client02.
  4. Game mismatches as soon as this item is used by either client.

Additional Context

Similar issues that are caused by not or improperly restoring template data after loading custom maps:


Metadata

Metadata

Assignees

No one assigned

    Labels

    BugSomething is not working right, typically is user facingMajorSeverity: Minor < Major < Critical < BlockerStabilityConcerns stability of the runtime

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions