Показать сообщение отдельно
  #16  
Старый 31.01.2015, 15:12
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

С этого и надо было начинать.
1) CHUNKCACHESIZE=16 и GAMESPEED=3 есть везде. Значит их надо однозначно вынести из условий чекбоксов и писать отдельно (всегда).
2) FASTLOCK=ON есть везде, кроме 5-го. Значит если стоит чекбокс 5, то пишем OFF, иначе - пишем ON.
3) NOPRELOADSECTORS есть везде, кроме 8. Значит, опять же, если стоит чекбокс 8, то пишем preloadsize. В остальных случаях пишем nopreloadvectors.
4) SOFTWARE3D EDITOR VOODOO NOBLITTEXTURES NOTEXOVERLAYS - раскиданы по чекбоксам.
Код:
params := 'FASTLOCK=';
if checkbox5.checked then
    params := params + 'OFF'
else
    params := params + 'ON';
if checkbox2.checked then
    params := params + ' SOFTWARE3D';
if checkbox3.checked then
    params := params + ' EDITOR';
if checkbox4.checked then
    params := params + ' VOODOO';
if checkbox6.checked then
    params := params + ' NOBLITTEXTURES';
if checkbox7.checked then
    params := params + ' NOTEXOVERLAYS';
if checkbox8.checked then
    params := params + ' PRELOADSIZE=' + inttostr(...)
else
    params := params + ' NOPRELOADSECTORS';
params := params + ' CHUNKSIZE=' + inttostr(...) + ' GAMESPEED=' + inttostr(...);
И все дела.
Ну и дополнительно можно поставить проверку, что если не стоит ни один чекбокс, то сразу выход из функции с возвратом пустых параметров.
Кстати у вас получается, что 1 чекбокс лишен смысла.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием