7 for (int i = 0 ; i < CONTROL::MAX ; i++)
17 void Config::populate()
19 for (int i = 0 ; i < CONTROL::MAX ; i++)
21 command[i] = (engine->keyState[keyboard.control[i]]);
23 if (joystick.control[i] >= 0)
25 command[i] = (command[i] || (engine->joystickState[joystick.control[i]]));
29 if (engine->joyX < -joystick.sensitivity) command[CONTROL::LEFT] = 1;
30 if (engine->joyX > joystick.sensitivity) command[CONTROL::RIGHT] = 1;
31 if (engine->joyY < -joystick.sensitivity) command[CONTROL::UP] = 1;
32 if (engine->joyY > joystick.sensitivity) command[CONTROL::DOWN] = 1;
35 void Config::populate(int *data)
37 for (int i = 0 ; i < CONTROL::MAX ; i++)
42 command[CONTROL::MAP] = 0;
43 command[CONTROL::PAUSE] = 0;
46 bool Config::isControl(CONTROL::TYPE type) const
51 void Config::resetControl(CONTROL::TYPE type)
53 engine->keyState[keyboard.control[type]] = 0;
57 if (joystick.control[type] >= 0)
59 engine->joystickState[joystick.control[type]] = 0;
62 if (type == CONTROL::LEFT) engine->joyX = 0;
63 if (type == CONTROL::RIGHT) engine->joyX = 0;
64 if (type == CONTROL::UP) engine->joyY = 0;
65 if (type == CONTROL::DOWN) engine->joyY = 0;
68 void Config::doPause()
72 if (engine->keyState[keyboard.control[CONTROL::PAUSE]])
74 engine->paused = true;
75 engine->keyState[keyboard.control[CONTROL::PAUSE]] = 0;
80 if ((engine->keyState[keyboard.control[CONTROL::PAUSE]]) || (engine->keyState[SDL_SCANCODE_ESCAPE]))
82 engine->paused = false;
83 engine->keyState[keyboard.control[CONTROL::PAUSE]] = 0;
84 engine->keyState[SDL_SCANCODE_ESCAPE] = 0;
89 bool Config::loadJoystickConfig()
91 char filename[PATH_MAX];
92 snprintf(filename, sizeof filename, "%sjoystick.cfg", engine->userHomeDirectory);
94 debug(("Loading joystick config from %s\n", filename));
96 FILE *fp = fopen(filename, "rb");
103 if (fread(&joystick, sizeof(Joystick), 1, fp) != 1)
114 bool Config::saveJoystickConfig()
117 char filename[PATH_MAX];
118 snprintf(filename, sizeof filename, "%sjoystick.cfg", engine->userHomeDirectory);
120 debug(("Saving joystick config to %s\n", filename));
122 FILE *fp = fopen(filename, "wb");
126 debug(("WARNING: Couldn't save joystick config: %s\n", strerror(errno)));
130 if (fwrite(&joystick, sizeof(Joystick), 1, fp) != 1)
132 debug(("WARNING: Couldn't save joystick config: %s\n", strerror(errno)));
141 bool Config::loadKeyConfig()
143 char filename[PATH_MAX];
144 snprintf(filename, sizeof filename, "%skeyboard.cfg", engine->userHomeDirectory);
146 debug(("Loading keyboard config from %s\n", filename));
148 FILE *fp = fopen(filename, "rb");
155 if (fread(&keyboard, sizeof(Keyboard), 1, fp) != 1)
163 // Keyboard break fix - Feb 09
164 keyboard.control[CONTROL::UP] = 0;
169 bool Config::saveKeyConfig()
172 char filename[PATH_MAX];
173 snprintf(filename, sizeof filename, "%skeyboard.cfg", engine->userHomeDirectory);
175 debug(("Saving keyboard config to %s\n", filename));
177 FILE *fp = fopen(filename, "wb");
181 debug(("WARNING: Couldn't save keyboard config: %s\n", strerror(errno)));
185 if (fwrite(&keyboard, sizeof(keyboard), 1, fp) != 1)
187 debug(("WARNING: Couldn't save keyboard config: %s\n", strerror(errno)));
196 void Config::restoreKeyDefaults()
198 keyboard.setDefaultKeys();