File: iuse_software_lightson.h

package info (click to toggle)
cataclysm-dda 0.H-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 710,808 kB
  • sloc: cpp: 524,019; python: 11,580; sh: 1,228; makefile: 1,169; xml: 507; javascript: 150; sql: 56; exp: 41; perl: 37
file content (39 lines) | stat: -rw-r--r-- 976 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#pragma once
#ifndef CATA_SRC_IUSE_SOFTWARE_LIGHTSON_H
#define CATA_SRC_IUSE_SOFTWARE_LIGHTSON_H

#include <vector>

#include "cursesdef.h"
#include "point.h"

class lightson_game
{
    private:
        catacurses::window w_border;
        catacurses::window w;
        // rows, columns
        point level_size;
        std::vector<bool> level;
        std::vector<point> change_coords;
        // row, column
        point position;
        bool win = false;

        void new_level();
        void reset_level();
        void generate_change_coords( int changes );
        void draw_level();
        bool check_win();
        void toggle_lights();
        void toggle_lights_at( const point &pt );
        bool get_value_at( const point &pt );
        void set_value_at( const point &pt, bool value );
        void toggle_value_at( const point &pt );

    public:
        int start_game();
        lightson_game() = default;
};

#endif // CATA_SRC_IUSE_SOFTWARE_LIGHTSON_H