public int Build() { var table = Database["Missions"]; var row = table.Create(Id); var mission = new MissionsTable(row); mission.defined_type = Type; mission.defined_subtype = SubType; mission.UISortOrder = UiSortOrder; mission.reward_currency = RewardCurrency; mission.LegoScore = RewardScore; mission.isMission = IsMission; mission.isChoiceReward = ChoiceRewards; mission.localize = true; mission.reward_maximagination = RewardMaxImagination; mission.reward_maxhealth = RewardMaxHealth; mission.reward_maxinventory = RewardMaxInventory; mission.repeatable = Repeatable; mission.reward_currency_repeatable = RepeatRewardCurrency; mission.missionIconID = MissionIconId; mission.prereqMissionID = Prerequisites; mission.offer_objectID = OfferObject; mission.target_objectID = TargetObject; mission.inMOTD = InMotd; mission.gate_version = "freetrial"; row["time_limit"].Type = DataType.Nothing; for (var i = 0; i < 4; i++) { var item = ItemRewards[i]; var repeat = RepeatItemRewards[i]; var emote = EmoteRewards[i]; row[$"reward_item{i + 1}"].Value = item.Lot; row[$"reward_item{i + 1}_count"].Value = item.Count; row[$"reward_item{i + 1}_repeatable"].Value = repeat.Lot; row[$"reward_item{i + 1}_repeat_count"].Value = repeat.Count; var id = i == 0 ? "" : $"{i + 1}"; row[$"reward_emote{id}"].Value = emote; } foreach (var task in Tasks) { task.Build(Database, Id); } BuildMissionText(); return(Id); }
public static BaseTable ReadXBin(BinaryReader reader, ulong hash) { BaseTable XBinData = null; switch (hash) { case 0x5E42EF29E8A3E1D3: // StringTable XBinData = new StringTable(); XBinData.ReadFromFile(reader); break; case 0xA869F8A3AC7656E1: // M3 case 0xA869F8A3ED0CDAFC: // M1: DE XBinData = new VehicleTable(); // VehicleTable XBinData.ReadFromFile(reader); break; case 0x3759788EC437536C: // CarGearboxTable XBinData = new CarGearBoxesTable(); XBinData.ReadFromFile(reader); break; case 0xF5D56763013A2B0A: // CarInteriorColorsTable XBinData = new CarInteriorColorsTable(); XBinData.ReadFromFile(reader); break; case 0x44FA070D73C43CBD: // CarTrafficTuningTable for M1:DE case 0x44FA070D55388F65: // CarTrafficTuningTable for M3 XBinData = new CarTrafficTuningTable(); XBinData.ReadFromFile(reader); break; case 0x09B5140FA382AF8F: // CarTuningModificatorsTable XBinData = new CarTuningModificatorsTable(); XBinData.ReadFromFile(reader); break; case 0x2793BB7847F84081: // GameMeshBindingTable XBinData = new GameMeshBindingTable(); XBinData.ReadFromFile(reader); break; case 0x493DEA76C9A390F0: // SlotTable XBinData = new SlotTable(); XBinData.ReadFromFile(reader); break; case 0xB77D0A522C8E12A3: // MissionsTable XBinData = new MissionsTable(); XBinData.ReadFromFile(reader); break; case 0x3990790678078A1C: // GenericSpeechSituations XBinData = new GenericSpeechSituationsTable(); XBinData.ReadFromFile(reader); break; case 0xEF795C84CA85E193: // CharacterCinematicsTable XBinData = new CharacterCinematicsTable(); XBinData.ReadFromFile(reader); break; case 0x5D69A41C1FBD6565: // TableContainer (Mafia I: DE) case 0x5D69A41CDC82936C: // TableContainer (Mafia III) XBinData = new TableContainer(); XBinData.ReadFromFile(reader); break; case 0x06F579D51CE129A5: // GfxEnvContainer (Mafia III) case 0x06F579D595DA02AD: // GfxEnvContainer (Mafia I: DE) XBinData = new GfxEnvContainer(); XBinData.ReadFromFile(reader); break; case 0xAD5CF0F7FC3717F0: // GameGuiContainer (Mafia I: DE) case 0xAD5CF0F764C39370: // GameGuiContainer (Mafia III) XBinData = new GameGuiContainer(); XBinData.ReadFromFile(reader); break; case 0x0E2FBBCF46754F66: // CarTuningPackAvailabilityTable (Mafia I: DE and Mafia III) XBinData = new CarTuningPackAvailabilityTable(); XBinData.ReadFromFile(reader); break; //case 0xDC327944DD83627E: // TODO: Fix for M1: DE. look for 0xA for PaintCombination array entries. // XBinData = new PaintCombinationsTable(); // PaintCombinations // XBinData.ReadFromFile(reader); // break; default: throw new Exception("We lack the support for this type."); break; } Debug.Assert(XBinData != null, "XBinData is null, but we should have actually read this."); return(XBinData); }