347 lines
9.0 KiB
C#
347 lines
9.0 KiB
C#
/*******************************************************************************
|
|
*
|
|
* Space Trader for Windows 2.00
|
|
*
|
|
* Copyright (C) 2005 Jay French, All Rights Reserved
|
|
*
|
|
* Additional coding by David Pierron
|
|
* Original coding by Pieter Spronck, Sam Anderson, Samuel Goldstein, Matt Lee
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the Free
|
|
* Software Foundation; either version 2 of the License, or (at your option) any
|
|
* later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
*
|
|
* If you'd like a copy of the GNU General Public License, go to
|
|
* http://www.gnu.org/copyleft/gpl.html.
|
|
*
|
|
* You can contact the author at spacetrader@frenchfryz.com
|
|
*
|
|
******************************************************************************/
|
|
using System;
|
|
using System.Collections;
|
|
|
|
namespace Fryz.Apps.SpaceTrader
|
|
{
|
|
public class GameOptions : STSerializableObject
|
|
{
|
|
#region Member Declarations
|
|
|
|
private bool _alwaysIgnorePirates = false; // Automatically ignores pirates when it is safe to do so
|
|
private bool _alwaysIgnorePolice = false; // Automatically ignores police when it is safe to do so
|
|
private bool _alwaysIgnoreTradeInOrbit = false; // Automatically ignores Trade in Orbit when it is safe to do so
|
|
private bool _alwaysIgnoreTraders = true; // Automatically ignores traders when it is safe to do so
|
|
private bool _autoFuel = false; // Automatically get a full tank when arriving in a new system
|
|
private bool _autoRepair = false; // Automatically get a full hull repair when arriving in a new system
|
|
private bool _continuousAttack = false; // Continuous attack/flee mode
|
|
private bool _continuousAttackFleeing = false; // Continue attack on fleeing ship
|
|
private bool _disableOpponents = false; // Disable opponents when possible (when you have disabling weapons and the opponent is a pirate, trader, or mantis)
|
|
private bool _newsAutoPay = false; // by default, ask each time someone buys a newspaper
|
|
private bool _newsAutoShow = false; // by default, don't show newspaper
|
|
private bool _remindLoans = true; // remind you every five days about outstanding loan balances
|
|
private bool _reserveMoney = false; // Keep enough money for insurance and mercenaries
|
|
private bool _showTrackedRange = true; // display range when tracking a system on Short Range Chart
|
|
private bool _trackAutoOff = true; // Automatically stop tracking a system when you get to it?
|
|
private int _leaveEmpty = 0; // Number of cargo bays to leave empty when buying goods
|
|
|
|
#endregion
|
|
|
|
#region Methods
|
|
|
|
public GameOptions(bool loadFromDefaults)
|
|
{
|
|
if (loadFromDefaults)
|
|
LoadFromDefaults(false);
|
|
}
|
|
|
|
public GameOptions(Hashtable hash): base(hash)
|
|
{
|
|
_alwaysIgnorePirates = (bool)GetValueFromHash(hash, "_alwaysIgnorePirates", _alwaysIgnorePirates);
|
|
_alwaysIgnorePolice = (bool)GetValueFromHash(hash, "_alwaysIgnorePolice", _alwaysIgnorePolice);
|
|
_alwaysIgnoreTradeInOrbit = (bool)GetValueFromHash(hash, "_alwaysIgnoreTradeInOrbit", _alwaysIgnoreTradeInOrbit);
|
|
_alwaysIgnoreTraders = (bool)GetValueFromHash(hash, "_alwaysIgnoreTraders", _alwaysIgnoreTraders);
|
|
_autoFuel = (bool)GetValueFromHash(hash, "_autoFuel", _autoFuel);
|
|
_autoRepair = (bool)GetValueFromHash(hash, "_autoRepair", _autoRepair);
|
|
_continuousAttack = (bool)GetValueFromHash(hash, "_continuousAttack", _continuousAttack);
|
|
_continuousAttackFleeing = (bool)GetValueFromHash(hash, "_continuousAttackFleeing", _continuousAttackFleeing);
|
|
_disableOpponents = (bool)GetValueFromHash(hash, "_disableOpponents", _disableOpponents);
|
|
_newsAutoPay = (bool)GetValueFromHash(hash, "_newsAutoPay", _newsAutoPay);
|
|
_newsAutoShow = (bool)GetValueFromHash(hash, "_newsAutoShow", _newsAutoShow);
|
|
_remindLoans = (bool)GetValueFromHash(hash, "_remindLoans", _remindLoans);
|
|
_reserveMoney = (bool)GetValueFromHash(hash, "_reserveMoney", _reserveMoney);
|
|
_showTrackedRange = (bool)GetValueFromHash(hash, "_showTrackedRange", _showTrackedRange);
|
|
_trackAutoOff = (bool)GetValueFromHash(hash, "_trackAutoOff", _trackAutoOff);
|
|
_leaveEmpty = (int)GetValueFromHash(hash, "_leaveEmpty", _leaveEmpty);
|
|
}
|
|
|
|
public void CopyValues(GameOptions source)
|
|
{
|
|
AlwaysIgnorePirates = source.AlwaysIgnorePirates;
|
|
AlwaysIgnorePolice = source.AlwaysIgnorePolice;
|
|
AlwaysIgnoreTradeInOrbit = source.AlwaysIgnoreTradeInOrbit;
|
|
AlwaysIgnoreTraders = source.AlwaysIgnoreTraders;
|
|
AutoFuel = source.AutoFuel;
|
|
AutoRepair = source.AutoRepair;
|
|
ContinuousAttack = source.ContinuousAttack;
|
|
ContinuousAttackFleeing = source.ContinuousAttackFleeing;
|
|
DisableOpponents = source.DisableOpponents;
|
|
NewsAutoPay = source.NewsAutoPay;
|
|
NewsAutoShow = source.NewsAutoShow;
|
|
RemindLoans = source.RemindLoans;
|
|
ReserveMoney = source.ReserveMoney;
|
|
ShowTrackedRange = source.ShowTrackedRange;
|
|
TrackAutoOff = source.TrackAutoOff;
|
|
LeaveEmpty = source.LeaveEmpty;
|
|
}
|
|
|
|
public void LoadFromDefaults(bool errorIfFileNotFound)
|
|
{
|
|
LoadFromDefaults(errorIfFileNotFound, null);
|
|
}
|
|
|
|
public void LoadFromDefaults(bool errorIfFileNotFound, System.Windows.Forms.IWin32Window owner)
|
|
{
|
|
GameOptions defaults = null;
|
|
|
|
object obj = Functions.LoadFile(Consts.DefaultSettingsFile, !errorIfFileNotFound, owner);
|
|
if (obj == null)
|
|
defaults = new GameOptions(false);
|
|
else
|
|
defaults = new GameOptions((Hashtable)obj);
|
|
|
|
CopyValues(defaults);
|
|
}
|
|
|
|
public void SaveAsDefaults(System.Windows.Forms.IWin32Window owner)
|
|
{
|
|
Functions.SaveFile(Consts.DefaultSettingsFile, Serialize(), owner);
|
|
}
|
|
|
|
public override Hashtable Serialize()
|
|
{
|
|
Hashtable hash = base.Serialize();
|
|
|
|
hash.Add("_alwaysIgnorePirates", _alwaysIgnorePirates);
|
|
hash.Add("_alwaysIgnorePolice", _alwaysIgnorePolice);
|
|
hash.Add("_alwaysIgnoreTradeInOrbit", _alwaysIgnoreTradeInOrbit);
|
|
hash.Add("_alwaysIgnoreTraders", _alwaysIgnoreTraders);
|
|
hash.Add("_autoFuel", _autoFuel);
|
|
hash.Add("_autoRepair", _autoRepair);
|
|
hash.Add("_continuousAttack", _continuousAttack);
|
|
hash.Add("_continuousAttackFleeing", _continuousAttackFleeing);
|
|
hash.Add("_disableOpponents", _disableOpponents);
|
|
hash.Add("_newsAutoPay", _newsAutoPay);
|
|
hash.Add("_newsAutoShow", _newsAutoShow);
|
|
hash.Add("_remindLoans", _remindLoans);
|
|
hash.Add("_reserveMoney", _reserveMoney);
|
|
hash.Add("_showTrackedRange", _showTrackedRange);
|
|
hash.Add("_trackAutoOff", _trackAutoOff);
|
|
hash.Add("_leaveEmpty", _leaveEmpty);
|
|
|
|
return hash;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Properties
|
|
|
|
public bool AlwaysIgnorePirates
|
|
{
|
|
get
|
|
{
|
|
return _alwaysIgnorePirates;
|
|
}
|
|
set
|
|
{
|
|
_alwaysIgnorePirates = value;
|
|
}
|
|
}
|
|
|
|
public bool AlwaysIgnorePolice
|
|
{
|
|
get
|
|
{
|
|
return _alwaysIgnorePolice;
|
|
}
|
|
set
|
|
{
|
|
_alwaysIgnorePolice = value;
|
|
}
|
|
}
|
|
|
|
public bool AlwaysIgnoreTradeInOrbit
|
|
{
|
|
get
|
|
{
|
|
return _alwaysIgnoreTradeInOrbit;
|
|
}
|
|
set
|
|
{
|
|
_alwaysIgnoreTradeInOrbit = value;
|
|
}
|
|
}
|
|
|
|
public bool AlwaysIgnoreTraders
|
|
{
|
|
get
|
|
{
|
|
return _alwaysIgnoreTraders;
|
|
}
|
|
set
|
|
{
|
|
_alwaysIgnoreTraders = value;
|
|
}
|
|
}
|
|
|
|
public bool AutoFuel
|
|
{
|
|
get
|
|
{
|
|
return _autoFuel;
|
|
}
|
|
set
|
|
{
|
|
_autoFuel = value;
|
|
}
|
|
}
|
|
|
|
public bool AutoRepair
|
|
{
|
|
get
|
|
{
|
|
return _autoRepair;
|
|
}
|
|
set
|
|
{
|
|
_autoRepair = value;
|
|
}
|
|
}
|
|
|
|
public bool ContinuousAttack
|
|
{
|
|
get
|
|
{
|
|
return _continuousAttack;
|
|
}
|
|
set
|
|
{
|
|
_continuousAttack = value;
|
|
}
|
|
}
|
|
|
|
public bool ContinuousAttackFleeing
|
|
{
|
|
get
|
|
{
|
|
return _continuousAttackFleeing;
|
|
}
|
|
set
|
|
{
|
|
_continuousAttackFleeing = value;
|
|
}
|
|
}
|
|
|
|
public bool DisableOpponents
|
|
{
|
|
get
|
|
{
|
|
return _disableOpponents;
|
|
}
|
|
set
|
|
{
|
|
_disableOpponents = value;
|
|
}
|
|
}
|
|
|
|
public int LeaveEmpty
|
|
{
|
|
get
|
|
{
|
|
return _leaveEmpty;
|
|
}
|
|
set
|
|
{
|
|
_leaveEmpty = value;
|
|
}
|
|
}
|
|
|
|
public bool NewsAutoPay
|
|
{
|
|
get
|
|
{
|
|
return _newsAutoPay;
|
|
}
|
|
set
|
|
{
|
|
_newsAutoPay = value;
|
|
}
|
|
}
|
|
|
|
public bool NewsAutoShow
|
|
{
|
|
get
|
|
{
|
|
return _newsAutoShow;
|
|
}
|
|
set
|
|
{
|
|
_newsAutoShow = value;
|
|
}
|
|
}
|
|
|
|
public bool RemindLoans
|
|
{
|
|
get
|
|
{
|
|
return _remindLoans;
|
|
}
|
|
set
|
|
{
|
|
_remindLoans = value;
|
|
}
|
|
}
|
|
|
|
public bool ReserveMoney
|
|
{
|
|
get
|
|
{
|
|
return _reserveMoney;
|
|
}
|
|
set
|
|
{
|
|
_reserveMoney = value;
|
|
}
|
|
}
|
|
|
|
public bool ShowTrackedRange
|
|
{
|
|
get
|
|
{
|
|
return _showTrackedRange;
|
|
}
|
|
set
|
|
{
|
|
_showTrackedRange = value;
|
|
}
|
|
}
|
|
|
|
public bool TrackAutoOff
|
|
{
|
|
get
|
|
{
|
|
return _trackAutoOff;
|
|
}
|
|
set
|
|
{
|
|
_trackAutoOff = value;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|