1 //============================================================================
2 //
3 //   SSSS    tt          lll  lll
4 //  SS  SS   tt           ll   ll
5 //  SS     tttttt  eeee   ll   ll   aaaa
6 //   SSSS    tt   ee  ee  ll   ll      aa
7 //      SS   tt   eeeeee  ll   ll   aaaaa  --  "An Atari 2600 VCS Emulator"
8 //  SS  SS   tt   ee      ll   ll  aa  aa
9 //   SSSS     ttt  eeeee llll llll  aaaaa
10 //
11 // Copyright (c) 1995-2021 by Bradford W. Mott, Stephen Anthony
12 // and the Stella Team
13 //
14 // See the file "License.txt" for information on usage and redistribution of
15 // this file, and for a DISCLAIMER OF ALL WARRANTIES.
16 //============================================================================
17 
18 #ifndef CHEETAH_CHEAT_HXX
19 #define CHEETAH_CHEAT_HXX
20 
21 #include "Cheat.hxx"
22 
23 class CheetahCheat : public Cheat
24 {
25   public:
26     CheetahCheat(OSystem& os, const string& name, const string& code);
27     ~CheetahCheat() override = default;
28 
29     bool enable() override;
30     bool disable() override;
31     void evaluate() override;
32 
33   private:
34     std::array<uInt8, 16> savedRom;
35     uInt16 address{0};
36     uInt8  value{0};
37     uInt8  count{0};
38 
39   private:
40     // Following constructors and assignment operators not supported
41     CheetahCheat() = delete;
42     CheetahCheat(const CheetahCheat&) = delete;
43     CheetahCheat(CheetahCheat&&) = delete;
44     CheetahCheat& operator=(const CheetahCheat&) = delete;
45     CheetahCheat& operator=(CheetahCheat&&) = delete;
46 };
47 
48 #endif
49