public void SetProperties(BluaReader blua, string bluprintType, string blueprintName) { Preload(); while (blua.Offset < blua.Size) { var crc = blua.ReadUInt(); var propertyValueLength = blua.ReadInt(); if (!SetProperty(crc, blua) && !SetCommonProperty(crc, blua)) { // Skip over this property, if it wasn't read properly blua.Offset += propertyValueLength; } } PostLoad(); }
// TODO: read done, data storage isn't public bool Sub1634800(uint crc, BluaReader blua) { uint field; if (crc == 0x404D1343U) { blua.ReadInt(); // Not using the value return(true); } if (crc != 0xDB0F705CU) { if (crc != 0xFB31F1EFU) { return(false); } field = blua.ReadUInt(); if (field != 0x4FF9F863U) { Unk8 = field; } return(true); } var str2 = blua.ReadString(128); field = blua.ReadUInt(); if (field <= 0x3290BA65U) { if (field == 0x3290BA65U) { field = blua.ReadUInt(); if (field != 0x4FF9F863U) { // TODO Sub656A10 } return(true); } if (field == 0x1B444F31) { var b = blua.ReadByte(); if (b != 0) { // TODO: Sub656870 } return(true); } if (field == 0x2B93BDA9) { field = blua.ReadUInt(); // TODO: Sub656940 return(true); } } if (field != 0xB9059DF9) { if (field != 0xF0676C78) { if (field == 0xF5B799C2) { var str1 = blua.ReadString(128); if (str1 != "none" && !string.IsNullOrEmpty(str1)) { // TODO: Sub690650 } } return(true); } field = blua.ReadUInt(); // TODO: Sub656940 return(true); } var cnt = blua.ReadUInt(); var i = 0; while (i < cnt) { var str1 = blua.ReadString(128); ++i; // TODO: Sub656D20 } return(true); }
public bool SetControllableProperty(uint crc, BluaReader blua) { return(Sub1634800(crc, blua)); }
public static void Create(string blueprintType, string blueprintName, BluaReader blua) { var typeCrc = Hash.StringToHash(blueprintType); var nameCrc = Hash.StringToHash(blueprintName); WSBlueprint blueprint = null; // TODO: get blueprint from cache var found = blueprint != null; if (found) { blueprint.Sub452CC0(blua, blueprintType, blueprintName); } UnkStrGlobalCont = blueprintName; if (!found) { switch (blueprintType) { case "Weapon": break; case "Searcher": break; case "MeleeWeapon": break; case "Ammo": break; case "bullet": break; case "FlameOrdnance": break; case "PhysicalOrdnance": break; case "Rocket": break; case "HumanPhysics": break; case "Player": break; case "Car": break; case "Truck": break; case "APC": break; case "Tank": break; case "Human": break; case "Spore": break; case "VehicleCollision": break; case "PlayerCollision": break; case "Targetable": break; case "Prop": break; case "TrainList": break; case "Train": break; case "Foliage": break; case "AIAttractionPt": break; case "DamageSphere": break; case "Explosion": break; case "AIController": break; case "ScriptController": blueprint = new WSAIScriptControllerBlueprint(); break; case "AISpawner": break; case "AICombatParams": break; case "AICrowdBlocker": break; case "GlobalHumanParams": break; case "Melee": break; case "ParticleEffect": break; case "RadialBlur": break; case "Sound": break; case "Turret": break; case "SearchTurret": break; case "TrainCarriage": break; case "TrainEngine": break; case "TrainItem": break; case "SlowMotionCamera": break; case "ElasticTransition": break; case "AnimatedTransition": break; case "GroupTransition": break; case "ScopeTransition": break; case "CameraSettings": break; case "GroupCameraSettings": break; case "CameraSettingsMisc": break; case "ToneMapping": break; case "LightSettings": break; case "LightHalo": break; case "LightVolume": break; case "ClothObject": break; case "ClothForce": break; case "WillToFight": break; case "WillToFightNode": break; case "HealthEffectFilter": break; case "ParticleEffectSpawner": break; case "ButtonPrompt": break; case "Item": break; case "FxBoneStateList": break; case "FxHumanHead": break; case "FxHumanBodyPart": break; case "FxHumanBodySetup": break; case "FaceExpression": break; case "HumanBodyPart": break; case "HumanBodySetup": break; case "HumanSkeletonScale": break; case "AnimatedObject": break; case "RandomObj": break; case "BridgeController": break; case "Ricochet": break; case "AIRoad": break; case "Highlight": break; case "MiniGame": break; case "SabotageTarget": break; case "BigMap": break; case "FlashMovie": break; case "ItemCache": break; case "VirVehicleWheel": break; case "VirVehicleTransmission": break; case "VirVehicleEngine": break; case "VirVehicleChassis": break; case "VirVehicleSetup": break; case "VehicleWheelFX": break; case "Difficulty": break; case "Shop": break; case "Perks": break; case "PerkFactors": break; case "PhysicsParticleSet": break; case "PhysicsParticle": break; case "Decal": break; case "DetailObject": break; case "CivilianProp": break; case "Bird": break; case "Escalation": break; case "EscHWTF": break; case "AIChatterSet": break; case "AIChatter": break; case "SeatAnimations": break; case "SeatAnimationsPassenger": break; case "SeatAnimationsGunner": break; case "SeatAnimationsSearcher": break; case "SeatAnimationsDriver": break; case "FoliageFx": break; case "WaterController": break; case "WaterTexture": break; case "LeafSpawner": break; case "VerletBoneObject": break; case "WaterParticleFx": break; case "Cinematics": break; case "Rumble": break; case "ImageFolder": break; case "CreditName": break; } if (blueprintType == "CommonUI_Persistent" || blueprintType == "Common" || blueprintType == "SingleImage" || blueprintType == "InteriorImages" || blueprintType == "AIPathPt" || blueprint == null) { return; } } blueprint.Priority = 0; if (!found) { blueprint.Init(blueprintName); } blueprint.SetProperties(blua, blueprintType, blueprintName); if (found) { blueprint.EndLiveUpdate(); } if (blueprint.IsDynamic()) { blueprint.SetStreamBlock(WSStreamingManager.Instance.FindInDynamicBlocks(nameCrc)); } }
public bool SetCommonProperty(uint crc, BluaReader blua) { bool v4 = false; var v5 = GetDamagableBlueprint(); if (v5 != null && false) // TODO: struct is returned in the above call { v4 = true; } var v7 = GetAudibleBlueprint(); if (v7 != null && false) // TODO: struct is returned in the above call { v4 = true; } var v8 = GetModelRenderableBlueprint(); if (v8 != null && false) // TODO: struct is returned in the above call { v4 = true; } var v9 = GetTargetableBlueprint(); if (v9 != null && false) // TODO: struct is returned in the above call { v4 = true; } var v10 = GetAIAttractionPtBlueprint(); if (v10 != null && false) // TODO: struct is returned in the above call { v4 = true; } var v11 = GetControllableBlueprint(); if (v11 != null && v11.SetControllableProperty(crc, blua)) { v4 = true; } if (Hash.StringToHash("dynamic") == crc) { Flags ^= (byte)((blua.ReadByte() ^ Flags) & 1); return(true); } if (Hash.StringToHash("UseDynamicPool") == crc) { Flags ^= (byte)(((2 * blua.ReadByte()) ^ Flags) & 2); return(true); } if (Hash.StringToHash("priority") == crc) { var prio = blua.ReadInt(); if (prio >= 0) { if (prio > 255) { prio = 255; } Priority = (byte)prio; } else { Priority = 0; } return(true); } if (Hash.StringToHash("backup") == crc) { var crc2 = blua.ReadInt(); if (crc2 != Hash.StringToHash("NONE") && crc2 != 0) { Backup = null; // TODO } else { Backup = null; } return(true); } if (Hash.StringToHash("managed") == crc) { Flags ^= (byte)(((4 * blua.ReadByte()) ^ Flags) & 4); return(true); } return(v4); }
public virtual void Sub452CC0(BluaReader a, string category, string unk) { }
public virtual bool SetProperty(uint crc, BluaReader blua) { return(false); }
public bool SetControllableProperty(uint crc, BluaReader blua) { return(_base.SetControllableProperty(crc, blua)); }
public override bool SetProperty(uint crc, BluaReader blua) { // In sub function: Sub4A26D0 switch (crc) { case 0x0424DD32: _ = blua.ReadByte(); return(true); case 0x07B13063: _ = blua.ReadInt(); return(true); case 0x165C1FD7: _ = blua.ReadInt(); return(true); case 0x19BAB4C9: _ = blua.ReadFloat(); return(true); case 0x2F1820CC: _ = blua.ReadFloat(); return(true); case 0x3570F09D: _ = blua.ReadInt(); return(true); case 0x37FC008D: _ = blua.ReadFloat(); return(true); case 0x4177A478: _ = blua.ReadInt(); return(true); case 0x44885A78: _ = blua.ReadBool(); return(true); case 0x6A9AB174: _ = blua.ReadFloat(); return(true); case 0x7154DC63: _ = blua.ReadFloat(); return(true); case 0x722C0953: _ = blua.ReadInt(); return(true); case 0x77776D5A: _ = blua.ReadInt(); return(true); case 0x7A2AA5EF: _ = blua.ReadFloat(); return(true); case 0x85B5E29F: _ = blua.ReadString(32); return(true); case 0x89A84EF5: // 4 bytes _ = blua.ReadInt(); return(true); case 0x97EE12C6: // 1 byte _ = blua.ReadByte(); return(true); case 0xA3DBF09D: // 1 byte _ = blua.ReadByte(); return(true); case 0xA77EDAAA: // 1 byte _ = blua.ReadByte(); return(true); case 0xAE350719: _ = blua.ReadFloat(); return(true); case 0xBCFE6314: _ = blua.ReadString(128); return(true); case 0xBE5952B1: _ = blua.ReadFloat(); return(true); case 0xBF930289: // 4 bytes _ = blua.ReadInt(); return(true); case 0xC072E94A: _ = blua.ReadFloat(); return(true); case 0xC4C412CD: _ = blua.ReadFloat(); return(true); case 0xCA6B9057: // 4 bytes _ = blua.ReadInt(); return(true); case 0xCACFD6AA: _ = blua.ReadInt(); return(true); case 0xCE629E7E: _ = blua.ReadInt(); return(true); case 0xD6F4D903: _ = blua.ReadFloat(); return(true); case 0xD72AA401: _ = blua.ReadInt(); return(true); case 0xD730D0E1: _ = blua.ReadFloat(); return(true); case 0xD79C2BE9: // PblCRC _ = blua.ReadInt(); return(true); case 0xDDF1EE0F: _ = blua.ReadFloat(); return(true); case 0xE0B01D9F: Unkstr40 = blua.ReadString(128); return(true); case 0xE4E34549: // 4 bytes _ = blua.ReadInt(); return(true); case 0xF4BADFDB: _ = blua.ReadFloat(); return(true); case 0xF6B4FF0E: _ = blua.ReadInt(); return(true); case 0xFE8BAE82: // 4 bytes _ = blua.ReadInt(); return(true); default: return(false); } }