コード例 #1
0
ファイル: ToolFunctions.cs プロジェクト: supercarotte/PSSE
 public static void SetResources(uint hearts = 0, uint coins = 0, uint jewels = 0, int[] items = null, int[] enhancements = null)
 {
     if (items == null)
     {
         items = new int[ShuffleItems.ILength];
     }
     if (enhancements == null)
     {
         enhancements = new int[ShuffleItems.ELength];
     }
     Array.Copy(BitConverter.GetBytes((BitConverter.ToUInt32(savedata, Coins.Ofset()) & 0xF0000007) | (Math.Min(0x1FFFF, coins) << Coins.Shift()) | (Math.Min(0xFF, jewels) << Jewels.Shift())), 0, savedata, Coins.Ofset(), 4);
     Array.Copy(BitConverter.GetBytes((BitConverter.ToUInt16(savedata, Hearts.Ofset()) & (uint)0xC07F) | (Math.Min(0x7F, hearts) << Hearts.Shift())), 0, savedata, Hearts.Ofset(), 2);
     for (int i = 0; i < ShuffleItems.ILength; i++) //Items (battle)
     {
         ushort val = BitConverter.ToUInt16(savedata, Items.Ofset(i));
         val &= 0x7F;
         val |= (ushort)(Math.Min(0x7F, items[i]) << Items.Shift());
         Array.Copy(BitConverter.GetBytes(val), 0, savedata, Items.Ofset(i), 2);
     }
     for (int i = 0; i < ShuffleItems.ELength; i++) //Enhancements (pokemon)
     {
         savedata[Enhancements.Ofset(i)] = (byte)(((Math.Min(0x7F, enhancements[i]) << Enhancements.Shift()) & 0xFE) | (savedata[Enhancements.Ofset(i)] & Enhancements.Shift()));
     }
 }