public TextFile.Token[] InitPaintingInfo(int paintingTextId = 250) { GetMacroDataSource(); if (ItemGroup == ItemGroups.Paintings && dataSource.paintingInfo == null) { DFRandom.srand(message); uint paintingIndex = DFRandom.rand() % 180; dataSource.paintingFileIdx = paintingIndex & 7; char paintingFileChar = (char)((paintingIndex >> 3) + 97); dataSource.paintingFilename = paintingFileChar + "paint.cif"; byte[] paintingRecord = DaggerfallUnity.Instance.ContentReader.PaintFileReader.Read(paintingIndex); Debug.LogFormat("painting file: {0}, index: {1}, cif idx: {2}, record: {3} {4} {5}", dataSource.paintingFilename, paintingIndex, dataSource.paintingFileIdx, paintingRecord[0], paintingRecord[1], paintingRecord[2]); dataSource.paintingSub = GetPaintingRecordPart(paintingRecord, 0, 9) + 6100; // for %sub macro dataSource.paintingAdj = GetPaintingRecordPart(paintingRecord, 10, 19) + 6200; // for %adj macro dataSource.paintingPp1 = GetPaintingRecordPart(paintingRecord, 20, 29) + 6300; // for %pp1 macro dataSource.paintingPp2 = GetPaintingRecordPart(paintingRecord, 30, 39) + 6400; // for %pp2 macro ITextProvider textProvider = DaggerfallUnity.Instance.TextProvider; dataSource.paintingInfo = textProvider.GetRandomTokens(paintingTextId, true); } return(dataSource.paintingInfo); }
/// <summary> /// Gets tokens from a randomly selected subrecord. /// </summary> /// <param name="id">Text resource ID.</param> /// <param name="dfRand">Use Daggerfall rand() for random selection.</param> /// <returns>Text resource tokens.</returns> public virtual TextFile.Token[] GetRandomTokens(int id, bool dfRand = false) { return(fallback.GetRandomTokens(id, dfRand)); }