forked from Whales/Cataclysm
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaction.cpp
More file actions
164 lines (160 loc) · 3.88 KB
/
action.cpp
File metadata and controls
164 lines (160 loc) · 3.88 KB
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#include "game.h"
#include "keypress.h"
#include <fstream>
action_id look_up_action(std::string ident);
void game::load_keyboard_settings()
{
std::ifstream fin;
fin.open("data/keymap.txt");
if (!fin) { // It doesn't exist
std::ofstream fout;
fout.open("data/keymap.txt");
fout << default_keymap_txt();
fout.close();
fin.open("data/keymap.txt");
}
if (!fin) { // Still can't open it--probably bad permissions
debugmsg("Can't open data/keymap.txt. This may be a permissions issue.");
return;
}
while (!fin.eof()) {
std::string id;
fin >> id;
if (id == "")
getline(fin, id); // Empty line, chomp it
else if (id[0] != '#') {
action_id act = look_up_action(id);
if (act == ACTION_NULL)
debugmsg("\
Warning! data/keymap.txt contains an unknown action, \"%s\"\n\
Fix data/keymap.txt at your next chance!", id.c_str());
else {
while (fin.peek() != '\n' && !fin.eof()) {
char ch;
fin >> ch;
if (keymap.find(ch) != keymap.end())
debugmsg("\
Warning! '%c' assigned twice in the keymap!\n\
%s is being ignored.\n\
Fix data/keymap.txt at your next chance!", ch, id.c_str());
else
keymap[ ch ] = act;
}
}
} else {
getline(fin, id); // Clear the whole line
}
}
}
action_id look_up_action(std::string ident)
{
if (ident == "pause")
return ACTION_PAUSE;
if (ident == "move_n")
return ACTION_MOVE_N;
if (ident == "move_ne")
return ACTION_MOVE_NE;
if (ident == "move_e")
return ACTION_MOVE_E;
if (ident == "move_se")
return ACTION_MOVE_SE;
if (ident == "move_s")
return ACTION_MOVE_S;
if (ident == "move_sw")
return ACTION_MOVE_SW;
if (ident == "move_w")
return ACTION_MOVE_W;
if (ident == "move_nw")
return ACTION_MOVE_NW;
if (ident == "move_down")
return ACTION_MOVE_DOWN;
if (ident == "move_up")
return ACTION_MOVE_UP;
if (ident == "open")
return ACTION_OPEN;
if (ident == "close")
return ACTION_CLOSE;
if (ident == "smash")
return ACTION_SMASH;
if (ident == "examine")
return ACTION_EXAMINE;
if (ident == "pickup")
return ACTION_PICKUP;
if (ident == "butcher")
return ACTION_BUTCHER;
if (ident == "chat")
return ACTION_CHAT;
if (ident == "look")
return ACTION_LOOK;
if (ident == "inventory")
return ACTION_INVENTORY;
if (ident == "organize")
return ACTION_ORGANIZE;
if (ident == "apply")
return ACTION_USE;
if (ident == "wear")
return ACTION_WEAR;
if (ident == "take_off")
return ACTION_TAKE_OFF;
if (ident == "eat")
return ACTION_EAT;
if (ident == "read")
return ACTION_READ;
if (ident == "wield")
return ACTION_WIELD;
if (ident == "pick_style")
return ACTION_PICK_STYLE;
if (ident == "reload")
return ACTION_RELOAD;
if (ident == "unload")
return ACTION_UNLOAD;
if (ident == "throw")
return ACTION_THROW;
if (ident == "fire")
return ACTION_FIRE;
if (ident == "fire_burst")
return ACTION_FIRE_BURST;
if (ident == "drop")
return ACTION_DROP;
if (ident == "drop_adj")
return ACTION_DIR_DROP;
if (ident == "bionics")
return ACTION_BIONICS;
if (ident == "wait")
return ACTION_WAIT;
if (ident == "craft")
return ACTION_CRAFT;
if (ident == "construct")
return ACTION_CONSTRUCT;
if (ident == "sleep")
return ACTION_SLEEP;
if (ident == "safemode")
return ACTION_TOGGLE_SAFEMODE;
if (ident == "autosafe")
return ACTION_TOGGLE_AUTOSAFE;
if (ident == "ignore_enemy")
return ACTION_IGNORE_ENEMY;
if (ident == "save")
return ACTION_SAVE;
if (ident == "quit")
return ACTION_QUIT;
if (ident == "player_data")
return ACTION_PL_INFO;
if (ident == "map")
return ACTION_MAP;
if (ident == "missions")
return ACTION_MISSIONS;
if (ident == "factions")
return ACTION_FACTIONS;
if (ident == "morale")
return ACTION_MORALE;
if (ident == "help")
return ACTION_HELP;
if (ident == "debug")
return ACTION_DEBUG;
if (ident == "debug_scent")
return ACTION_DISPLAY_SCENT;
if (ident == "debug_mode")
return ACTION_TOGGLE_DEBUGMON;
return ACTION_NULL;
}