public override void Core_Update() { try { byte[] data; if (Compressed < 0) { data = Core.ReadData(Address, Compressed * -1); Current = new OAM_Array(data, 0); } else { data = Core.ReadData(Address, 0); Current = new OAM_Array(data, (uint)Compressed); } Entry_NumBox.Maximum = (Current.Sprites.Count <= 0) ? 0 : Current.Sprites.Count - 1; Core_UpdateValues(Entry_NumBox.Value); Display = new SpriteSheet(240, 160); Display.AddSprite(Colors, Tiles, Current, OffsetX, OffsetY); Core_UpdateDisplay(Display); } catch (Exception ex) { Program.ShowError("There has been an error while trying to update the OAM Editor.", ex); } }
public BattleAnimFrame( OAM_Array oamData_L, OAM_Array oamData_R, uint tileset, uint offset, uint duration) { OAM_Data_L = oamData_L; OAM_Data_R = oamData_R; TilesetIndex = tileset; OAM_Offset = offset; Duration = duration; }
private static string GetAnimationCode_AddAffinesIfAny(string file, uint tileset, OAM_Array oam, ref List <Tuple <uint, OAM> > affines) { string result = ""; int s = 0; while (s < oam.Sprites.Count) { if (oam.Sprites[s].IsAffineSprite()) { int affine_index = -1; for (int i = 0; i < affines.Count; i++) { if (tileset == affines[i].Item1 && oam.Sprites[s].SheetX == affines[i].Item2.SheetX && oam.Sprites[s].SheetY == affines[i].Item2.SheetY && oam.Sprites[s].SpriteShape == affines[i].Item2.SpriteShape && oam.Sprites[s].SpriteSize == affines[i].Item2.SpriteSize) { affine_index = i; } } if (affine_index == -1) { affine_index = affines.Count; affines.Add(Tuple.Create(tileset, oam.Sprites[s])); } if (result.Length > 0) { result += "\r\n\t"; } int index = oam.Sprites[s].AffineIndex; bool big = oam.Sprites[s].OBJMode == OAM_OBJMode.BigAffine; result += (big ? " d" : " a"); result += " [" + file + "_affine_" + affine_index; result += ".png]"; result += " (" + (oam.Sprites[s].ScreenX + SCREEN_OFFSET_X_R); result += ", " + (oam.Sprites[s].ScreenY + SCREEN_OFFSET_Y); result += ") (" + oam.Affines[index].Ux.ToString("0.00000").Replace(',', '.'); result += ", " + oam.Affines[index].Vx.ToString("0.00000").Replace(',', '.'); result += ", " + oam.Affines[index].Uy.ToString("0.00000").Replace(',', '.'); result += ", " + oam.Affines[index].Vy.ToString("0.00000").Replace(',', '.'); result += ")"; } s++; } return(result); }