"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Stray = void 0;
const JSONTemplate_1 = require("modloader64_api/JSONTemplate");
class Stray extends JSONTemplate_1.JSONTemplate {
    emulator;
    woodfall_fairies = 0x801EF744; //0x1
    snowhead_fairies = 0x801EF745; //0x1
    bay_fairies = 0x801EF746; //0x1
    stone_fairies = 0x801EF747; //0x1
    strayClockTownAddr = 0x801F0570;
    jsonFields = [
        'strayWoodfall',
        'straySnowhead',
        'strayBay',
        'strayStone',
        'strayClockTown'
    ];
    constructor(emulator) {
        super();
        this.emulator = emulator;
    }
    get strayWoodfall() {
        return this.emulator.rdramRead8(this.woodfall_fairies);
    }
    set strayWoodfall(flag) {
        this.emulator.rdramWrite8(this.woodfall_fairies, flag);
    }
    get straySnowhead() {
        return this.emulator.rdramRead8(this.snowhead_fairies);
    }
    set straySnowhead(flag) {
        this.emulator.rdramWrite8(this.snowhead_fairies, flag);
    }
    get strayBay() {
        return this.emulator.rdramRead8(this.bay_fairies);
    }
    set strayBay(flag) {
        this.emulator.rdramWrite8(this.bay_fairies, flag);
    }
    get strayStone() {
        return this.emulator.rdramRead8(this.stone_fairies);
    }
    set strayStone(flag) {
        this.emulator.rdramWrite8(this.stone_fairies, flag);
    }
    get strayClockTown() {
        return this.emulator.rdramReadBit8(this.strayClockTownAddr, 0);
    }
    set strayClockTown(flag) {
        this.emulator.rdramWriteBit8(this.strayClockTownAddr, 0, flag);
    }
}
exports.Stray = Stray;
//# sourceMappingURL=Stray.js.map