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)
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[SDLK_ESCAPE]))
82 engine->paused = false;
83 engine->keyState[keyboard.control[CONTROL::PAUSE]] = 0;
84 engine->keyState[SDLK_ESCAPE] = 0;
89 bool Config::loadJoystickConfig()
91 char filename[PATH_MAX];
92 sprintf(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()
116 char filename[PATH_MAX];
117 sprintf(filename, "%sjoystick.cfg", engine->userHomeDirectory);
119 debug(("Saving joystick config to %s\n", filename));
121 FILE *fp = fopen(filename, "wb");
125 debug(("WARNING: Couldn't save joystick config\n"));
129 fwrite(&joystick, sizeof(Joystick), 1, fp);
136 bool Config::loadKeyConfig()
138 char filename[PATH_MAX];
139 sprintf(filename, "%skeyboard.cfg", engine->userHomeDirectory);
141 debug(("Loading keyboard config from %s\n", filename));
143 FILE *fp = fopen(filename, "rb");
150 if (fread(&keyboard, sizeof(Keyboard), 1, fp) != 1)
156 for (int i = 0; i < CONTROL::MAX; i++)
158 if (keyboard.control[i] < 0 || keyboard.control[i] >= 350)
167 // Keyboard break fix - Feb 09
168 keyboard.control[CONTROL::UP] = 0;
173 bool Config::saveKeyConfig()
175 char filename[PATH_MAX];
176 sprintf(filename, "%skeyboard.cfg", engine->userHomeDirectory);
178 debug(("Saving keyboard config to %s\n", filename));
180 FILE *fp = fopen(filename, "wb");
187 fwrite(&keyboard, sizeof(keyboard), 1, fp);
194 void Config::restoreKeyDefaults()
196 keyboard.setDefaultKeys();