1 /*
2 
3 Copyright (C) 2015-2018 Night Dive Studios, LLC.
4 
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9 
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 GNU General Public License for more details.
14 
15 You should have received a copy of the GNU General Public License
16 along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 
18 */
19 #include "objects.h"
20 #include "cybstrng.h"
21 
22 #define CREATURE_SHODODMETER
23 
24 #ifdef CREATURE_SHODOMETER
25 #define CYBORG_DRONE_TRIPLE_VALUE   2
26 #define WARRIOR_TRIPLE_VALUE        4
27 #define ASSASSIN_TRIPLE_VALUE       4
28 #define CYBERBABE_TRIPLE_VALUE      8
29 #define ELITE_GUARD_TRIPLE_VALUE   20
30 #define CORTEX_REAVER_TRIPLE_VALUE 16
31 #define MUTANT_BORG_TRIPLE_VALUE   10
32 #define SECURITY_BOT1_TRIPLE_VALUE  5
33 #define SECURITY_BOT2_TRIPLE_VALUE 22
34 #define EXECBOT_TRIPLE_VALUE        6
35 #endif
36 #define CAMERA_TRIPLE_VALUE         5
37 #define SMALL_CPU_TRIPLE_VALUE     10
38 #define LARGCPU_TRIPLE_VALUE       50
39 
40 #define SHODAN_INTERVAL_SHIFT       6
41 #define SHODAN_COLOR             0x4a
42 
43 #define FIRST_SHODAN_QV          0x10
44 #define SHODAN_QV (FIRST_SHODAN_QV + player_struct.level)
45 #define MAX_SHODOMETER_LEVEL       13
46 
47 #define SHODAN_BARK_CODE           -1
48 #define SHODAN_BARK_TIMEOUT         3
49 #define DIEGO_BARK_CODE            -2
50 #define FIRST_SHODAN_BARK       0x666
51 #define NUM_SHODAN_BARKS            4
52 #define SHODAN_MUG                 17
53 #define DIEGO_MUG                   4
54 #define SHODAN_MUG_2               23
55 #define FIRST_SHODAN_MUG           31
56 #define NUM_SHODAN_MUGS NUM_SHODAN_BARKS
57 
58 #define FIRST_SHODAN_ANIM        0x3f
59 #define NUM_SHODAN_FRAMES           6
60 
61 #define SPECIAL_SHODAN_FAIL_CODE 0xFF
62 #define SHODAN_FAILURE_STRING REF_STR_SHODANFail
63 
64 short compute_shodometer_value(uchar game_stuff);
65 short increment_shodan_value(ObjID oid, uchar game_stuff);
66 short decrement_shodan_value(ObjID oid, uchar game_stuff);
67