Beispiel #1
0
    public RbyTrainer(RbySprite baseSprite, ReadStream data) : base(baseSprite, data)
    {
        TrainerClass = Map.Game.TrainerClasses[data.u8()];
        TeamIndex    = (byte)(data.u8() - 1);

        int textPointer   = Map.Bank << 16 | Map.TextPointer + (TextId - 1) * 2;
        int scriptPointer = Map.Bank << 16 | Map.Game.ROM.u16le(textPointer);
        int headerPointer = Map.Bank << 16 | Map.Game.ROM.u16le(scriptPointer + 2);

        if (baseSprite.Map.Id == 166 || TrainerClass == null || TrainerClass.Name.Contains("RIVAL"))
        {
            return;
        }

        ReadStream header = Map.Game.ROM.From(headerPointer);

        EventFlagBit     = header.u8();
        SightRange       = (byte)(header.u8() >> 4);
        EventFlagAddress = header.u16le();

        if (EventFlagBit >= 8)
        {
            EventFlagBit -= 8;
            EventFlagAddress++;
        }
    }
Beispiel #2
0
    public RbyTrainer(RbySprite baseSprite, ByteStream data) : base(baseSprite, data)
    {
        TrainerClass = Map.Game.TrainerClasses[data.u8()];
        TeamIndex    = (byte)(data.u8() - 1);

        int        textPointer   = Map.Bank << 16 | Map.TextPointer + (TextId - 1) * 2;
        int        scriptPointer = Map.Bank << 16 | Map.Game.ROM.u16le(textPointer);
        int        headerPointer = Map.Bank << 16 | Map.Game.ROM.u16le(scriptPointer + 2);
        ByteStream header        = Map.Game.ROM.From(headerPointer);

        EventFlagBit     = header.u8();
        SightRange       = (byte)(header.u8() >> 4);
        EventFlagAddress = header.u16le();
    }