Example #1
0
 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();
 }
Example #2
0
    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);
    }
Example #3
0
    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);
    }
Example #4
0
    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);
    }
Example #5
0
 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();
 }
Example #6
0
    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);
    }
Example #7
0
    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);
    }
Example #8
0
    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);
    }