public GscObject(RAMStream data) { Sprite = data.u8(); MapObjectIndex = data.u8(); SpriteTile = data.u8(); MovementType = (GscSpriteMovement)data.u8(); Flags = data.u16be(); Palette = (GscPalette)data.u8(); Walking = data.u8(); Direction = data.u8(); StepType = data.u8(); StepDuration = data.u8(); Action = data.u8(); ObjectStepFrame = data.u8(); Facing = data.u8(); StandingTile = data.u8(); LastTile = data.u8(); StandingMapX = data.u8(); StandingMapY = data.u8(); LastMapX = data.u8(); LastMapY = data.u8(); ObjectInitX = data.u8(); ObjectInitY = data.u8(); Radius = data.u8(); SpriteX = data.u8(); SpriteY = data.u8(); SpriteXOffset = data.u8(); SpriteYOffset = data.u8(); MovementByteIndex = data.u8(); Field1c = data.u8(); Field1d = data.u8(); Field1e = data.u8(); Field1f = data.u8(); Range = data.u8(); }
private RbyPokemon ReadBattleStruct(RAMStream data, RAMStream battleStatus, RAMStream modifier, string unmodifiedStatsLabel) { RbyPokemon mon = new RbyPokemon(); mon.Species = Species[data.u8()]; mon.HP = data.u16be(); data.Seek(1); // party pos mon.Status = data.u8(); data.Seek(3); // type and catch rate (for transform, but unimportant to us right now) mon.Moves = Array.ConvertAll(data.Read(4), m => Moves[m]); mon.DVs = data.u16be(); mon.Level = data.u8(); mon.MaxHP = data.u16be(); mon.Attack = data.u16be(); mon.Defense = data.u16be(); mon.Speed = data.u16be(); mon.Special = data.u16be(); mon.PP = data.Read(4); mon.BattleStatus1 = battleStatus.u8(); mon.BattleStatus2 = battleStatus.u8(); mon.BattleStatus3 = battleStatus.u8(); mon.AttackModifider = modifier.u8(); mon.DefenseModifider = modifier.u8(); mon.SpeedModifider = modifier.u8(); mon.SpecialModifider = modifier.u8(); mon.AccuracyModifider = modifier.u8(); mon.EvasionModifider = modifier.u8(); mon.UnmodifiedMaxHP = CpuReadBE <ushort>(unmodifiedStatsLabel + "MaxHP"); mon.UnmodifiedAttack = CpuReadBE <ushort>(unmodifiedStatsLabel + "Attack"); mon.UnmodifiedDefense = CpuReadBE <ushort>(unmodifiedStatsLabel + "Defense"); mon.UnmodifiedSpeed = CpuReadBE <ushort>(unmodifiedStatsLabel + "Speed"); mon.UnmodifiedSpecial = CpuReadBE <ushort>(unmodifiedStatsLabel + "Special"); return(mon); }
private RbyPokemon ReadPartyStruct(RAMStream data) { RbyPokemon mon = ReadBoxStruct(data); mon.Level = data.u8(); mon.MaxHP = data.u16be(); mon.Attack = data.u16be(); mon.Defense = data.u16be(); mon.Speed = data.u16be(); mon.Special = data.u16be(); return(mon); }
private GscPokemon ReadPartyStruct(RAMStream data) { GscPokemon mon = ReadBoxStruct(data); mon.Status = data.u8(); data.Seek(1); // unused mon.HP = data.u16be(); mon.MaxHP = data.u16be(); mon.Attack = data.u16be(); mon.Defense = data.u16be(); mon.Speed = data.u16be(); mon.SpecialAttack = data.u16be(); mon.SpecialDefense = data.u16be(); return(mon); }
public GscMapObject(RAMStream data) { StructID = data.u8(); Sprite = data.u8(); YCoord = data.u8(); XCOord = data.u8(); Movement = data.u8(); Raidus = data.u8(); Hour = data.u8(); TimeOfDay = data.u8(); Color = (GscPalette)data.u8(); Range = data.u8(); Script = data.u16le(); EventFlag = data.u16le(); }
private RbyPokemon ReadBoxStruct(RAMStream data) { RbyPokemon mon = new RbyPokemon(); mon.Species = Species[data.u8()]; mon.HP = data.u16be(); mon.Level = data.u8(); mon.Status = data.u8(); data.Seek(3); mon.Moves = Array.ConvertAll(data.Read(4), m => Moves[m]); data.Seek(2); mon.Experience = data.u24be(); mon.HPExp = data.u16be(); mon.AttackExp = data.u16be(); mon.DefenseExp = data.u16be(); mon.SpeedExp = data.u16be(); mon.SpecialExp = data.u16be(); mon.DVs = data.u16be(); mon.PP = data.Read(4); mon.CalculateUnmodifiedStats(); return(mon); }
private GscPokemon ReadBoxStruct(RAMStream data) { GscPokemon mon = new GscPokemon(); mon.Species = Species[data.u8()]; mon.HeldItem = Items[data.u8()]; mon.Moves = Array.ConvertAll(data.Read(4), m => Moves[m]); data.Seek(2); // ID mon.Experience = data.u24be(); mon.HPExp = data.u16be(); mon.AttackExp = data.u16be(); mon.DefenseExp = data.u16be(); mon.SpeedExp = data.u16be(); mon.SpecialExp = data.u16be(); mon.DVs = data.u16be(); mon.PP = data.Read(4); mon.Happiness = data.u8(); mon.Pokerus = data.u8() > 0; data.Seek(2); // unused mon.Level = data.u8(); mon.CalculateUnmodifiedStats(); return(mon); }
private GscPokemon ReadBattleStruct(RAMStream data, RAMStream modifiers, RAMStream battleStatus, int screensAddr) { GscPokemon mon = new GscPokemon(); mon.Species = Species[data.u8()]; mon.HeldItem = Items[data.u8()]; mon.Moves = Array.ConvertAll(data.Read(4), m => Moves[m]); mon.DVs = data.u16be(); mon.PP = data.Read(4); mon.Happiness = data.u8(); mon.Level = data.u8(); mon.Status = data.u8(); data.Seek(1); // unused mon.HP = data.u16be(); mon.MaxHP = data.u16be(); mon.Attack = data.u16be(); mon.Defense = data.u16be(); mon.Speed = data.u16be(); mon.SpecialAttack = data.u16be(); mon.SpecialDefense = data.u16be(); mon.AttackModifider = modifiers.u8(); mon.DefenseModifider = modifiers.u8(); mon.SpeedModifider = modifiers.u8(); mon.SpecialAttackModifider = modifiers.u8(); mon.SpecialDefenseModifider = modifiers.u8(); mon.AccuracyModifider = modifiers.u8(); mon.EvasionModifider = modifiers.u8(); mon.BattleStatus1 = battleStatus.u8(); mon.BattleStatus2 = battleStatus.u8(); mon.BattleStatus3 = battleStatus.u8(); mon.BattleStatus4 = battleStatus.u8(); mon.BattleStatus5 = battleStatus.u8(); mon.Screens = CpuRead(screensAddr); mon.CalculateUnmodifiedStats(); return(mon); }