Enable BIND_VEHICLE_FIREWEAPON with gta3.set size check
This commit is contained in:
parent
dc96a49dfd
commit
b9747de5d6
@ -132,6 +132,10 @@ void CControllerConfigManager::LoadSettings(int32 file)
|
|||||||
{
|
{
|
||||||
bool bValid = true;
|
bool bValid = true;
|
||||||
|
|
||||||
|
#ifdef BIND_VEHICLE_FIREWEAPON
|
||||||
|
bool skipVehicleFireWeapon = false;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (file)
|
if (file)
|
||||||
{
|
{
|
||||||
char buff[29];
|
char buff[29];
|
||||||
@ -139,18 +143,55 @@ void CControllerConfigManager::LoadSettings(int32 file)
|
|||||||
|
|
||||||
if (!strncmp(buff, TopLineEmptyFile, sizeof(TopLineEmptyFile)-1))
|
if (!strncmp(buff, TopLineEmptyFile, sizeof(TopLineEmptyFile)-1))
|
||||||
bValid = false;
|
bValid = false;
|
||||||
else
|
else {
|
||||||
CFileMgr::Seek(file, 0, 0);
|
CFileMgr::Seek(file, 0, 0);
|
||||||
|
|
||||||
|
#ifdef BIND_VEHICLE_FIREWEAPON
|
||||||
|
// HACK!
|
||||||
|
// All of this is hacky as fuck.
|
||||||
|
// We are checking the file size to read the .set file correctly.
|
||||||
|
// But because .set file is opened in text mode we have to read
|
||||||
|
// the WHOLE file to get the size we should be working with.
|
||||||
|
// Joy, ain't it?
|
||||||
|
char tempBuf[0x1000];
|
||||||
|
size_t fileSize = 0, blockSize;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
blockSize = CFileMgr::Read(file, tempBuf, sizeof(tempBuf));
|
||||||
|
fileSize += blockSize;
|
||||||
|
} while (blockSize == sizeof(tempBuf));
|
||||||
|
|
||||||
|
CFileMgr::Seek(file, 0, 0);
|
||||||
|
|
||||||
|
if (fileSize == 0x671)
|
||||||
|
skipVehicleFireWeapon = true;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bValid)
|
if (bValid)
|
||||||
{
|
{
|
||||||
ControlsManager.MakeControllerActionsBlank();
|
ControlsManager.MakeControllerActionsBlank();
|
||||||
|
|
||||||
|
#ifdef BIND_VEHICLE_FIREWEAPON
|
||||||
|
// Set the default settings of VEHICLE_FIREWEAPON
|
||||||
|
if (skipVehicleFireWeapon) {
|
||||||
|
SetControllerKeyAssociatedWithAction(VEHICLE_FIREWEAPON, rsPADINS, KEYBOARD);
|
||||||
|
SetControllerKeyAssociatedWithAction(VEHICLE_FIREWEAPON, rsLCTRL, OPTIONAL_EXTRA);
|
||||||
|
if (m_bMouseAssociated)
|
||||||
|
SetMouseButtonAssociatedWithAction(VEHICLE_FIREWEAPON, 1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
for (int32 i = 0; i < MAX_CONTROLLERTYPES; i++)
|
for (int32 i = 0; i < MAX_CONTROLLERTYPES; i++)
|
||||||
{
|
{
|
||||||
for (int32 j = 0; j < MAX_CONTROLLERACTIONS; j++)
|
for (int32 j = 0; j < MAX_CONTROLLERACTIONS; j++)
|
||||||
{
|
{
|
||||||
|
#ifdef BIND_VEHICLE_FIREWEAPON
|
||||||
|
// Skip file read
|
||||||
|
if (skipVehicleFireWeapon && j == VEHICLE_FIREWEAPON)
|
||||||
|
continue;
|
||||||
|
#endif
|
||||||
CFileMgr::Read(file, (char *)&ControlsManager.m_aSettings[j][i], sizeof(tControllerConfigBind));
|
CFileMgr::Read(file, (char *)&ControlsManager.m_aSettings[j][i], sizeof(tControllerConfigBind));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -274,7 +274,7 @@ enum Config {
|
|||||||
#define ALLCARSHELI_CHEAT
|
#define ALLCARSHELI_CHEAT
|
||||||
#define ALT_DODO_CHEAT
|
#define ALT_DODO_CHEAT
|
||||||
#define REGISTER_START_BUTTON
|
#define REGISTER_START_BUTTON
|
||||||
//#define BIND_VEHICLE_FIREWEAPON // Adds ability to rebind fire key for 'in vehicle' controls
|
#define BIND_VEHICLE_FIREWEAPON // Adds ability to rebind fire key for 'in vehicle' controls
|
||||||
#define BUTTON_ICONS // use textures to show controller buttons
|
#define BUTTON_ICONS // use textures to show controller buttons
|
||||||
|
|
||||||
// Hud, frontend and radar
|
// Hud, frontend and radar
|
||||||
|
Loading…
Reference in New Issue
Block a user