mirror of
https://github.com/sfall-team/sfall.git
synced 2026-07-27 16:52:34 -07:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29da6d7071 | ||
|
|
ec4a58e19e | ||
|
|
b023999c5e | ||
|
|
ee711d8f81 | ||
|
|
d26a06872a | ||
|
|
c4f8912490 | ||
|
|
d9a440f667 | ||
|
|
49bc2d3241 | ||
|
|
d07603f1b0 | ||
|
|
76346c24b3 | ||
|
|
dee3e2f596 | ||
|
|
648eb9b2f1 | ||
|
|
fcbf4d3972 | ||
|
|
3ef6056a77 | ||
|
|
ac10bce231 | ||
|
|
6780a21b07 | ||
|
|
25fabde434 | ||
|
|
da7cd2a060 | ||
|
|
8924257aee | ||
|
|
90ef9e273d | ||
|
|
b447e8e9b8 | ||
|
|
3744c0b165 | ||
|
|
c98af496b3 | ||
|
|
c7eaff7ff5 | ||
|
|
37acec7115 | ||
|
|
f6ec543f40 | ||
|
|
5cfd5f99e3 | ||
|
|
dafee58c77 | ||
|
|
4cf0c6688f | ||
|
|
27ec2d24fe | ||
|
|
e3a3ff2540 | ||
|
|
e6a51f965f | ||
|
|
552a2a185e | ||
|
|
04d47d10ad | ||
|
|
749e248c8b | ||
|
|
52290b09d2 | ||
|
|
a6a8e2e42f | ||
|
|
9693c0d439 | ||
|
|
aa22575ec9 | ||
|
|
8f4fd1dec8 | ||
|
|
d26097e9ae | ||
|
|
4bb9828f3e | ||
|
|
2d2f539826 | ||
|
|
97bd2cee18 | ||
|
|
62f890d287 | ||
|
|
4b28829983 | ||
|
|
cbb739bd7c | ||
|
|
e00d02f1f0 | ||
|
|
c9e0feeb32 | ||
|
|
272e58d873 | ||
|
|
20cb24b385 | ||
|
|
071581effc | ||
|
|
155c14f4e7 | ||
|
|
c6d612f4a7 | ||
|
|
61aa1104a1 | ||
|
|
2bd8a6223d | ||
|
|
99bc47e3f8 | ||
|
|
07ff16af75 | ||
|
|
a7ea2a9a81 | ||
|
|
2bbb020a80 | ||
|
|
81ba15d451 | ||
|
|
36523d89e5 | ||
|
|
53bb9ea5c7 | ||
|
|
c0f9f142c4 | ||
|
|
8b9ffd08a8 | ||
|
|
b26208141f | ||
|
|
147382de25 | ||
|
|
9529208c7c | ||
|
|
fc3b7180af | ||
|
|
f53aa16923 | ||
|
|
ce19262283 | ||
|
|
e43762b45f | ||
|
|
ceb9c41e3d | ||
|
|
0aee36f77d | ||
|
|
9c41ddd243 | ||
|
|
f38d87e0ee | ||
|
|
5fa418ae08 | ||
|
|
c6c66a4b58 | ||
|
|
feeae8c750 | ||
|
|
58a67d58cb | ||
|
|
96881c19a3 | ||
|
|
c18828b61b | ||
|
|
b1e78bb61c | ||
|
|
bcb0228ed3 | ||
|
|
a75e634c96 | ||
|
|
c4f6c762c4 | ||
|
|
5ccd1534f4 | ||
|
|
8e0190939e | ||
|
|
0f7a8592a9 | ||
|
|
e9f3fd5039 | ||
|
|
6cc988aef5 | ||
|
|
e50369c18d | ||
|
|
f1ef55d22d | ||
|
|
d1fe920cf7 | ||
|
|
9a331c918c | ||
|
|
56fd9706a4 | ||
|
|
b46892cb66 | ||
|
|
7663a47fbb | ||
|
|
a9aeac1f6f | ||
|
|
6db496e66c | ||
|
|
daf6585ba3 | ||
|
|
1f6dac09b8 | ||
|
|
af6038ee0c | ||
|
|
2c7548f164 | ||
|
|
301ccba45f | ||
|
|
899dc2422d | ||
|
|
0e69ef4af1 | ||
|
|
f6d27b71aa | ||
|
|
520f939afa | ||
|
|
fa1e5eddc9 | ||
|
|
3b8878e647 | ||
|
|
5353ab0ad6 | ||
|
|
20ffc39f95 | ||
|
|
8482618291 | ||
|
|
f7fa62a078 | ||
|
|
1891612f38 | ||
|
|
efe00b9faf | ||
|
|
2059a3da8c | ||
|
|
ec3bc8c21c | ||
|
|
c1ec4057a6 | ||
|
|
5d9008f407 | ||
|
|
64e4daeb02 | ||
|
|
40ed445956 | ||
|
|
cbd3964ae5 | ||
|
|
34628c0ea5 | ||
|
|
f2f260e743 | ||
|
|
f13e6bd9f3 | ||
|
|
8ef05d205a | ||
|
|
3c255085ed | ||
|
|
7500e6b637 | ||
|
|
560eead694 | ||
|
|
45baeff397 | ||
|
|
2df1dfbadc | ||
|
|
cbe31e845c | ||
|
|
2e2d3f7946 | ||
|
|
854adc2afc | ||
|
|
0c8794661c | ||
|
|
ceb55cdfa9 | ||
|
|
6791b15af1 | ||
|
|
ff4f5d7e73 | ||
|
|
564c48354a | ||
|
|
4232be088c | ||
|
|
9ec8a12288 | ||
|
|
b97c5fd65d | ||
|
|
5c377ad3df | ||
|
|
3c47288e70 | ||
|
|
5d7ee90f71 | ||
|
|
6193afff11 | ||
|
|
b4800361e6 | ||
|
|
0debe89a27 | ||
|
|
aae34d5d82 | ||
|
|
26e814581f | ||
|
|
a62a4d6911 | ||
|
|
20746abba2 | ||
|
|
e11755cb2d | ||
|
|
83b0862db6 | ||
|
|
386b5a6678 | ||
|
|
5bd69dfee2 | ||
|
|
a388a9e602 | ||
|
|
69bea44481 | ||
|
|
e2fc1ee0ec | ||
|
|
912abbd213 | ||
|
|
653b419be6 | ||
|
|
4480ecfcad | ||
|
|
08b9d98d3b | ||
|
|
c20e709659 | ||
|
|
68a345f398 | ||
|
|
730cd212a4 | ||
|
|
ce0f5ea8c9 | ||
|
|
2ce1c0f36e | ||
|
|
72e370117e | ||
|
|
6ab45bbc3c | ||
|
|
7bcf06c227 | ||
|
|
bc8f7477c7 | ||
|
|
f5c570ddc1 | ||
|
|
504f66f002 | ||
|
|
76f2301b6c | ||
|
|
4788ac757b | ||
|
|
a71b33aab1 | ||
|
|
222f3eaf68 | ||
|
|
823d2b92f7 | ||
|
|
f478e9a1f9 | ||
|
|
8718b86440 | ||
|
|
67adb9b592 | ||
|
|
ca5781a44a | ||
|
|
4edf36a1dc | ||
|
|
4a5f556cd3 | ||
|
|
2b7754746c | ||
|
|
8a4a83c8f8 | ||
|
|
c04df22c48 | ||
|
|
8e0ccc576c | ||
|
|
42566cc9da | ||
|
|
9e1c68e78d | ||
|
|
9765396b08 | ||
|
|
b008502e13 | ||
|
|
d71efe5b82 | ||
|
|
120888e5ed | ||
|
|
7b5075042d | ||
|
|
12ad41043d | ||
|
|
e509932add |
Generated
+95
-69
@@ -24,16 +24,17 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent() {
|
||||
this.dataGridView1 = new System.Windows.Forms.DataGridView();
|
||||
this.Column0 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.bGlobals = new System.Windows.Forms.Button();
|
||||
this.bMapVars = new System.Windows.Forms.Button();
|
||||
this.bCritters = new System.Windows.Forms.Button();
|
||||
this.bSGlobals = new System.Windows.Forms.Button();
|
||||
this.bArrays = new System.Windows.Forms.Button();
|
||||
this.Column0 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.bEdit = new System.Windows.Forms.Button();
|
||||
this.bCrittersLvar = new System.Windows.Forms.Button();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
@@ -41,84 +42,38 @@
|
||||
//
|
||||
this.dataGridView1.AllowUserToAddRows = false;
|
||||
this.dataGridView1.AllowUserToDeleteRows = false;
|
||||
this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.dataGridView1.AllowUserToResizeRows = false;
|
||||
this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.dataGridView1.ColumnHeadersHeight = 22;
|
||||
this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||
this.Column0,
|
||||
this.Column1,
|
||||
this.Column2,
|
||||
this.Column3});
|
||||
this.dataGridView1.Location = new System.Drawing.Point(12, 12);
|
||||
this.dataGridView1.MultiSelect = false;
|
||||
this.dataGridView1.Name = "dataGridView1";
|
||||
this.dataGridView1.Size = new System.Drawing.Size(444, 215);
|
||||
this.dataGridView1.RowHeadersVisible = false;
|
||||
this.dataGridView1.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
|
||||
this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||
this.dataGridView1.Size = new System.Drawing.Size(561, 354);
|
||||
this.dataGridView1.TabIndex = 0;
|
||||
this.dataGridView1.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellDoubleClick);
|
||||
this.dataGridView1.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellEndEdit);
|
||||
//
|
||||
// bGlobals
|
||||
//
|
||||
this.bGlobals.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.bGlobals.Location = new System.Drawing.Point(12, 233);
|
||||
this.bGlobals.Name = "bGlobals";
|
||||
this.bGlobals.Size = new System.Drawing.Size(100, 23);
|
||||
this.bGlobals.TabIndex = 1;
|
||||
this.bGlobals.Text = "Globals";
|
||||
this.bGlobals.UseVisualStyleBackColor = true;
|
||||
this.bGlobals.Click += new System.EventHandler(this.bGlobals_Click);
|
||||
//
|
||||
// bMapVars
|
||||
//
|
||||
this.bMapVars.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.bMapVars.Location = new System.Drawing.Point(118, 233);
|
||||
this.bMapVars.Name = "bMapVars";
|
||||
this.bMapVars.Size = new System.Drawing.Size(100, 23);
|
||||
this.bMapVars.TabIndex = 2;
|
||||
this.bMapVars.Text = "Map variables";
|
||||
this.bMapVars.UseVisualStyleBackColor = true;
|
||||
this.bMapVars.Click += new System.EventHandler(this.bMapVars_Click);
|
||||
//
|
||||
// bCritters
|
||||
//
|
||||
this.bCritters.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.bCritters.Location = new System.Drawing.Point(118, 262);
|
||||
this.bCritters.Name = "bCritters";
|
||||
this.bCritters.Size = new System.Drawing.Size(100, 23);
|
||||
this.bCritters.TabIndex = 3;
|
||||
this.bCritters.Text = "Critters";
|
||||
this.bCritters.UseVisualStyleBackColor = true;
|
||||
this.bCritters.Click += new System.EventHandler(this.bCritters_Click);
|
||||
//
|
||||
// bSGlobals
|
||||
//
|
||||
this.bSGlobals.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.bSGlobals.Location = new System.Drawing.Point(225, 233);
|
||||
this.bSGlobals.Name = "bSGlobals";
|
||||
this.bSGlobals.Size = new System.Drawing.Size(100, 23);
|
||||
this.bSGlobals.TabIndex = 4;
|
||||
this.bSGlobals.Text = "sfall globals";
|
||||
this.bSGlobals.UseVisualStyleBackColor = true;
|
||||
this.bSGlobals.Click += new System.EventHandler(this.bSGlobals_Click);
|
||||
//
|
||||
// bArrays
|
||||
//
|
||||
this.bArrays.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.bArrays.Location = new System.Drawing.Point(12, 262);
|
||||
this.bArrays.Name = "bArrays";
|
||||
this.bArrays.Size = new System.Drawing.Size(100, 23);
|
||||
this.bArrays.TabIndex = 5;
|
||||
this.bArrays.Text = "sfall arrays";
|
||||
this.bArrays.UseVisualStyleBackColor = true;
|
||||
this.bArrays.Click += new System.EventHandler(this.bArrays_Click);
|
||||
this.dataGridView1.RowsAdded += new System.Windows.Forms.DataGridViewRowsAddedEventHandler(this.dataGridView1_RowsAdded);
|
||||
//
|
||||
// Column0
|
||||
//
|
||||
this.Column0.HeaderText = "ID";
|
||||
this.Column0.Name = "Column0";
|
||||
this.Column0.ReadOnly = true;
|
||||
this.Column0.Width = 50;
|
||||
//
|
||||
// Column1
|
||||
//
|
||||
this.Column1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
||||
this.Column1.HeaderText = "Name";
|
||||
this.Column1.Name = "Column1";
|
||||
this.Column1.ReadOnly = true;
|
||||
@@ -133,10 +88,65 @@
|
||||
this.Column3.HeaderText = "Value (Float)";
|
||||
this.Column3.Name = "Column3";
|
||||
//
|
||||
// bGlobals
|
||||
//
|
||||
this.bGlobals.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.bGlobals.Location = new System.Drawing.Point(12, 372);
|
||||
this.bGlobals.Name = "bGlobals";
|
||||
this.bGlobals.Size = new System.Drawing.Size(100, 23);
|
||||
this.bGlobals.TabIndex = 1;
|
||||
this.bGlobals.Text = "Globals";
|
||||
this.bGlobals.UseVisualStyleBackColor = true;
|
||||
this.bGlobals.Click += new System.EventHandler(this.bGlobals_Click);
|
||||
//
|
||||
// bMapVars
|
||||
//
|
||||
this.bMapVars.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.bMapVars.Location = new System.Drawing.Point(118, 372);
|
||||
this.bMapVars.Name = "bMapVars";
|
||||
this.bMapVars.Size = new System.Drawing.Size(100, 23);
|
||||
this.bMapVars.TabIndex = 2;
|
||||
this.bMapVars.Text = "Map variables";
|
||||
this.bMapVars.UseVisualStyleBackColor = true;
|
||||
this.bMapVars.Click += new System.EventHandler(this.bMapVars_Click);
|
||||
//
|
||||
// bCritters
|
||||
//
|
||||
this.bCritters.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.bCritters.Location = new System.Drawing.Point(12, 401);
|
||||
this.bCritters.Name = "bCritters";
|
||||
this.bCritters.Size = new System.Drawing.Size(100, 23);
|
||||
this.bCritters.TabIndex = 3;
|
||||
this.bCritters.Text = "Critters";
|
||||
this.bCritters.UseVisualStyleBackColor = true;
|
||||
this.bCritters.Click += new System.EventHandler(this.bCritters_Click);
|
||||
//
|
||||
// bSGlobals
|
||||
//
|
||||
this.bSGlobals.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.bSGlobals.Location = new System.Drawing.Point(367, 372);
|
||||
this.bSGlobals.Name = "bSGlobals";
|
||||
this.bSGlobals.Size = new System.Drawing.Size(100, 23);
|
||||
this.bSGlobals.TabIndex = 4;
|
||||
this.bSGlobals.Text = "sfall globals";
|
||||
this.bSGlobals.UseVisualStyleBackColor = true;
|
||||
this.bSGlobals.Click += new System.EventHandler(this.bSGlobals_Click);
|
||||
//
|
||||
// bArrays
|
||||
//
|
||||
this.bArrays.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.bArrays.Location = new System.Drawing.Point(473, 372);
|
||||
this.bArrays.Name = "bArrays";
|
||||
this.bArrays.Size = new System.Drawing.Size(100, 23);
|
||||
this.bArrays.TabIndex = 5;
|
||||
this.bArrays.Text = "sfall arrays";
|
||||
this.bArrays.UseVisualStyleBackColor = true;
|
||||
this.bArrays.Click += new System.EventHandler(this.bArrays_Click);
|
||||
//
|
||||
// bEdit
|
||||
//
|
||||
this.bEdit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.bEdit.Location = new System.Drawing.Point(225, 262);
|
||||
this.bEdit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.bEdit.Location = new System.Drawing.Point(473, 401);
|
||||
this.bEdit.Name = "bEdit";
|
||||
this.bEdit.Size = new System.Drawing.Size(100, 23);
|
||||
this.bEdit.TabIndex = 6;
|
||||
@@ -144,11 +154,24 @@
|
||||
this.bEdit.UseVisualStyleBackColor = true;
|
||||
this.bEdit.Click += new System.EventHandler(this.bEdit_Click);
|
||||
//
|
||||
// bCrittersLvar
|
||||
//
|
||||
this.bCrittersLvar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.bCrittersLvar.Enabled = false;
|
||||
this.bCrittersLvar.Location = new System.Drawing.Point(118, 401);
|
||||
this.bCrittersLvar.Name = "bCrittersLvar";
|
||||
this.bCrittersLvar.Size = new System.Drawing.Size(100, 23);
|
||||
this.bCrittersLvar.TabIndex = 7;
|
||||
this.bCrittersLvar.Text = "Local variables";
|
||||
this.bCrittersLvar.UseVisualStyleBackColor = true;
|
||||
this.bCrittersLvar.Click += new System.EventHandler(this.bCrittersLvar_Click);
|
||||
//
|
||||
// DebugEditor
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(468, 297);
|
||||
this.ClientSize = new System.Drawing.Size(585, 436);
|
||||
this.Controls.Add(this.bCrittersLvar);
|
||||
this.Controls.Add(this.bEdit);
|
||||
this.Controls.Add(this.bArrays);
|
||||
this.Controls.Add(this.bSGlobals);
|
||||
@@ -156,8 +179,10 @@
|
||||
this.Controls.Add(this.bMapVars);
|
||||
this.Controls.Add(this.bGlobals);
|
||||
this.Controls.Add(this.dataGridView1);
|
||||
this.MinimumSize = new System.Drawing.Size(450, 300);
|
||||
this.Name = "DebugEditor";
|
||||
this.Text = "DebugEditor";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "sfall Debug Editor";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.DebugEditor_FormClosing);
|
||||
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
@@ -172,11 +197,12 @@
|
||||
private System.Windows.Forms.Button bCritters;
|
||||
private System.Windows.Forms.Button bSGlobals;
|
||||
private System.Windows.Forms.Button bArrays;
|
||||
private System.Windows.Forms.Button bEdit;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column0;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column1;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column2;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column3;
|
||||
private System.Windows.Forms.Button bEdit;
|
||||
private System.Windows.Forms.Button bCrittersLvar;
|
||||
|
||||
}
|
||||
}
|
||||
+225
-140
File diff suppressed because it is too large
Load Diff
@@ -3,7 +3,9 @@ using System.Net.Sockets;
|
||||
using System.IO;
|
||||
|
||||
namespace FalloutClient {
|
||||
class EditorConnection {
|
||||
|
||||
class EditorConnection
|
||||
{
|
||||
private TcpClient client;
|
||||
private NetworkStream stream;
|
||||
private BinaryReader br;
|
||||
@@ -11,73 +13,81 @@ namespace FalloutClient {
|
||||
|
||||
public readonly int[] Globals;
|
||||
public readonly int[] MapVars;
|
||||
public readonly uint[] Critters;
|
||||
public readonly uint[,] Critters;
|
||||
public readonly ulong[] SGlobalKeys;
|
||||
public readonly int[] sGlobals;
|
||||
public readonly uint[] Arrays;
|
||||
public readonly int[] ArrayLengths;
|
||||
public readonly int[] ArrayDataSizes;
|
||||
public readonly int[] ArrayFlag;
|
||||
public readonly bool[] ArrayIsMap;
|
||||
|
||||
public EditorConnection() {
|
||||
System.Threading.Thread.Sleep(1000);
|
||||
client=new TcpClient("127.0.0.1", 4245);
|
||||
stream=client.GetStream();
|
||||
br=new BinaryReader(stream);
|
||||
bw=new BinaryWriter(stream);
|
||||
Globals=new int[br.ReadInt32()];
|
||||
MapVars=new int[br.ReadInt32()];
|
||||
SGlobalKeys=new ulong[br.ReadInt32()];
|
||||
sGlobals=new int[SGlobalKeys.Length];
|
||||
Arrays=new uint[br.ReadInt32()];
|
||||
ArrayLengths=new int[Arrays.Length];
|
||||
ArrayDataSizes=new int[Arrays.Length];
|
||||
Critters=new uint[br.ReadInt32()];
|
||||
client = new TcpClient("127.0.0.1", 4245);
|
||||
stream = client.GetStream();
|
||||
br = new BinaryReader(stream);
|
||||
bw = new BinaryWriter(stream);
|
||||
Globals = new int[br.ReadInt32()];
|
||||
MapVars = new int[br.ReadInt32()];
|
||||
SGlobalKeys = new ulong[br.ReadInt32()];
|
||||
sGlobals = new int[SGlobalKeys.Length];
|
||||
Arrays = new uint[br.ReadInt32()];
|
||||
ArrayLengths = new int[Arrays.Length];
|
||||
ArrayFlag = new int[Arrays.Length];
|
||||
ArrayIsMap = new bool[Arrays.Length];
|
||||
Critters = new uint[br.ReadInt32(), 2];
|
||||
|
||||
for(int i=0;i<Globals.Length;i++) Globals[i]=br.ReadInt32();
|
||||
for(int i=0;i<MapVars.Length;i++) MapVars[i]=br.ReadInt32();
|
||||
for(int i=0;i<sGlobals.Length;i++) {
|
||||
SGlobalKeys[i]=br.ReadUInt64();
|
||||
sGlobals[i]=br.ReadInt32();
|
||||
for (int i = 0; i < Globals.Length; i++) Globals[i] = br.ReadInt32();
|
||||
for (int i = 0; i < MapVars.Length; i++) MapVars[i] = br.ReadInt32();
|
||||
for (int i = 0; i < sGlobals.Length; i++) {
|
||||
SGlobalKeys[i] = br.ReadUInt64();
|
||||
sGlobals[i] = br.ReadInt32();
|
||||
br.ReadInt32();
|
||||
}
|
||||
for(int i=0;i<Arrays.Length;i++) {
|
||||
Arrays[i]=br.ReadUInt32();
|
||||
ArrayLengths[i]=br.ReadInt32();
|
||||
ArrayDataSizes[i]=br.ReadInt32();
|
||||
for (int i = 0; i < Arrays.Length; i++) {
|
||||
Arrays[i] = br.ReadUInt32();
|
||||
ArrayIsMap[i] = (br.ReadInt32() != 0);
|
||||
ArrayLengths[i] = br.ReadInt32();
|
||||
ArrayFlag[i] = br.ReadInt32();
|
||||
}
|
||||
for (int i = 0; i < Critters.Length / 2; i++) {
|
||||
Critters[i, 0] = br.ReadUInt32();
|
||||
Critters[i, 1] = br.ReadUInt32();
|
||||
}
|
||||
for(int i=0;i<Critters.Length;i++) Critters[i]=br.ReadUInt32();
|
||||
}
|
||||
|
||||
public void Close() {
|
||||
stream.Close();
|
||||
client.Close();
|
||||
stream=null;
|
||||
client=null;
|
||||
stream = null;
|
||||
client = null;
|
||||
}
|
||||
|
||||
public void WriteDataType(DataTypeSend type) {
|
||||
stream.WriteByte((byte)type);
|
||||
//bw.Write((byte)type);
|
||||
}
|
||||
|
||||
public void WriteByte(byte b) { bw.Write(b); }
|
||||
public void WriteInt16(short value) { bw.Write(value); }
|
||||
public void WriteInt(int value) { bw.Write(value); }
|
||||
public void WriteBytes(byte[] buf) { bw.Write(buf); }
|
||||
|
||||
public void WriteBytes(byte[] buf, int start, int len) {
|
||||
bw.Write(buf, start, len);
|
||||
}
|
||||
|
||||
public void Read(byte[] buffer) {
|
||||
int upto=0;
|
||||
while(upto<buffer.Length) {
|
||||
upto+=stream.Read(buffer, upto, buffer.Length-upto);
|
||||
int upto = 0;
|
||||
while (upto < buffer.Length) {
|
||||
upto += stream.Read(buffer, upto, buffer.Length - upto);
|
||||
}
|
||||
}
|
||||
public void Read(byte[] buffer, int offset, int length) {
|
||||
int upto=0;
|
||||
int upto = 0;
|
||||
//System.Diagnostics.Debug.WriteLine("Read - offset: "+offset+" length: "+length);
|
||||
while(upto<length) {
|
||||
upto+=stream.Read(buffer, offset+upto, length-upto);
|
||||
while (upto < length) {
|
||||
upto += stream.Read(buffer, offset + upto, length - upto);
|
||||
}
|
||||
}
|
||||
public int ReadByte() {
|
||||
|
||||
Generated
+41
-11
@@ -29,13 +29,14 @@
|
||||
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.checkBox = new System.Windows.Forms.CheckBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// bSave
|
||||
//
|
||||
this.bSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.bSave.Location = new System.Drawing.Point(281, 265);
|
||||
this.bSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.bSave.Location = new System.Drawing.Point(12, 336);
|
||||
this.bSave.Name = "bSave";
|
||||
this.bSave.Size = new System.Drawing.Size(75, 23);
|
||||
this.bSave.TabIndex = 0;
|
||||
@@ -46,7 +47,7 @@
|
||||
// bCancel
|
||||
//
|
||||
this.bCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.bCancel.Location = new System.Drawing.Point(200, 265);
|
||||
this.bCancel.Location = new System.Drawing.Point(371, 336);
|
||||
this.bCancel.Name = "bCancel";
|
||||
this.bCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.bCancel.TabIndex = 1;
|
||||
@@ -58,49 +59,77 @@
|
||||
//
|
||||
this.dataGridView1.AllowUserToAddRows = false;
|
||||
this.dataGridView1.AllowUserToDeleteRows = false;
|
||||
this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.dataGridView1.AllowUserToResizeRows = false;
|
||||
this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.dataGridView1.ColumnHeadersHeight = 22;
|
||||
this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||
this.Column1,
|
||||
this.Column2,
|
||||
this.Column3});
|
||||
this.dataGridView1.Location = new System.Drawing.Point(12, 12);
|
||||
this.dataGridView1.MultiSelect = false;
|
||||
this.dataGridView1.Name = "dataGridView1";
|
||||
this.dataGridView1.Size = new System.Drawing.Size(344, 247);
|
||||
this.dataGridView1.RowHeadersVisible = false;
|
||||
this.dataGridView1.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
|
||||
this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
|
||||
this.dataGridView1.Size = new System.Drawing.Size(434, 318);
|
||||
this.dataGridView1.TabIndex = 2;
|
||||
this.dataGridView1.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellEndEdit);
|
||||
//
|
||||
// Column1
|
||||
//
|
||||
this.Column1.HeaderText = "Name";
|
||||
this.Column1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
||||
this.Column1.HeaderText = "Element";
|
||||
this.Column1.Name = "Column1";
|
||||
this.Column1.ReadOnly = true;
|
||||
this.Column1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
|
||||
//
|
||||
// Column2
|
||||
//
|
||||
this.Column2.HeaderText = "Type";
|
||||
this.Column2.Name = "Column2";
|
||||
this.Column2.ReadOnly = true;
|
||||
this.Column2.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
|
||||
this.Column2.Width = 75;
|
||||
//
|
||||
// Column3
|
||||
//
|
||||
this.Column3.HeaderText = "Value";
|
||||
this.Column3.Name = "Column3";
|
||||
this.Column3.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
|
||||
this.Column3.Width = 150;
|
||||
//
|
||||
// checkBox
|
||||
//
|
||||
this.checkBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.checkBox.AutoSize = true;
|
||||
this.checkBox.Location = new System.Drawing.Point(103, 341);
|
||||
this.checkBox.Name = "checkBox";
|
||||
this.checkBox.Size = new System.Drawing.Size(91, 17);
|
||||
this.checkBox.TabIndex = 3;
|
||||
this.checkBox.Text = "Values in Hex";
|
||||
this.checkBox.UseVisualStyleBackColor = true;
|
||||
this.checkBox.Click += new System.EventHandler(this.checkBox_Click);
|
||||
//
|
||||
// EditorWindow
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(368, 300);
|
||||
this.ClientSize = new System.Drawing.Size(458, 371);
|
||||
this.Controls.Add(this.checkBox);
|
||||
this.Controls.Add(this.dataGridView1);
|
||||
this.Controls.Add(this.bCancel);
|
||||
this.Controls.Add(this.bSave);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
|
||||
this.MinimumSize = new System.Drawing.Size(300, 200);
|
||||
this.Name = "EditorWindow";
|
||||
this.Text = "EditorWindow";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "Edit Values";
|
||||
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
@@ -112,5 +141,6 @@
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column1;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column2;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column3;
|
||||
private System.Windows.Forms.CheckBox checkBox;
|
||||
}
|
||||
}
|
||||
+90
-19
@@ -3,32 +3,93 @@ using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace FalloutClient {
|
||||
public enum DataType : int { None=0, Int=1, Float=2, String=3 }
|
||||
public partial class EditorWindow : Form {
|
||||
private readonly DataType[] types;
|
||||
private readonly string[] values;
|
||||
private bool save;
|
||||
|
||||
private EditorWindow(string[] names, DataType[] types, string[] values) {
|
||||
this.types=types;
|
||||
this.values=values;
|
||||
public enum DataType : int { None = 0, Int = 1, Float = 2, String = 3 }
|
||||
|
||||
public partial class EditorWindow : Form
|
||||
{
|
||||
private readonly DataType[] types = null;
|
||||
private string[] values;
|
||||
private bool save;
|
||||
private static bool valueInHex = false;
|
||||
|
||||
private void ConvertValues(bool toHex) {
|
||||
for (int i = 0; i < values.Length; i++) {
|
||||
if (toHex) {
|
||||
if (types == null || types[i] == DataType.Int) {
|
||||
int val = int.Parse(values[i]);
|
||||
values[i] = "0x" + val.ToString("x").ToUpper();
|
||||
}
|
||||
} else {
|
||||
if (types == null || types[i] == DataType.Int) {
|
||||
values[i] = Convert.ToInt32(values[i], 16).ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private EditorWindow(string[] names, DataType[] types, string[] values, bool isMap) {
|
||||
this.types = types;
|
||||
this.values = values;
|
||||
|
||||
InitializeComponent();
|
||||
checkBox.Checked = EditorWindow.valueInHex;
|
||||
dataGridView1.SuspendLayout();
|
||||
if(names==null) for(int i=0;i<types.Length;i++) dataGridView1.Rows.Add(i.ToString(), types[i].ToString(), values[i]);
|
||||
else for(int i=0;i<types.Length;i++) dataGridView1.Rows.Add(names[i], types[i].ToString(), values[i]);
|
||||
if (valueInHex) ConvertValues(true);
|
||||
if (names == null)
|
||||
for (int i = 0; i < types.Length; i++) {
|
||||
string element = i.ToString();
|
||||
if (isMap && (i % 2) == 0) element += " - Key";
|
||||
dataGridView1.Rows.Add(element, types[i].ToString(), values[i]);
|
||||
}
|
||||
else
|
||||
for (int i = 0; i < types.Length; i++) dataGridView1.Rows.Add("[0x" + (i * 4).ToString("x").ToUpper() + "]" + names[i], types[i].ToString(), values[i]);
|
||||
dataGridView1.ResumeLayout();
|
||||
}
|
||||
|
||||
public static string[] ShowEditor(string[] names, DataType[] types, string[] values) {
|
||||
EditorWindow editor=new EditorWindow(names, types, values);
|
||||
public static string[] ShowEditor(DebugEditor form, string[] names, DataType[] types, string[] values, bool isMap = false) {
|
||||
EditorWindow editor = new EditorWindow(names, types, values, isMap);
|
||||
editor.ShowDialog();
|
||||
if(editor.save) return editor.values;
|
||||
else return null;
|
||||
if (editor.save) {
|
||||
if (valueInHex) editor.ConvertValues(false);
|
||||
return editor.values;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private EditorWindow(string[] values) {
|
||||
this.values = values;
|
||||
InitializeComponent();
|
||||
checkBox.Checked = EditorWindow.valueInHex;
|
||||
dataGridView1.SuspendLayout();
|
||||
if (valueInHex) ConvertValues(true);
|
||||
for (int i = 0; i < values.Length; i++) {
|
||||
dataGridView1.Rows.Add(i.ToString(), "Int", values[i]);
|
||||
}
|
||||
dataGridView1.ResumeLayout();
|
||||
}
|
||||
|
||||
public static string[] ShowEditor(DebugEditor form, string[] lvalues) {
|
||||
EditorWindow editor = new EditorWindow(lvalues);
|
||||
editor.ShowDialog();
|
||||
if (editor.save) {
|
||||
if (valueInHex) editor.ConvertValues(false);
|
||||
return editor.values;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private bool CheckInput(DataType type, string str) {
|
||||
switch(type) {
|
||||
switch (type) {
|
||||
case DataType.Int:
|
||||
if (valueInHex) {
|
||||
try {
|
||||
Convert.ToInt32(str, 16);
|
||||
return true;
|
||||
} catch (Exception) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
int i;
|
||||
return int.TryParse(str, out i);
|
||||
case DataType.Float:
|
||||
@@ -39,9 +100,11 @@ namespace FalloutClient {
|
||||
}
|
||||
|
||||
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) {
|
||||
string str=(string)dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
|
||||
if(CheckInput(types[e.RowIndex], str)) values[e.RowIndex]=str;
|
||||
else dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value=values[e.RowIndex];
|
||||
string str = (string)dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
|
||||
if (str != null && CheckInput(((types != null) ? types[e.RowIndex] : DataType.Int), str))
|
||||
values[e.RowIndex] = str;
|
||||
else
|
||||
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = values[e.RowIndex];
|
||||
}
|
||||
|
||||
private void bCancel_Click(object sender, EventArgs e) {
|
||||
@@ -49,8 +112,16 @@ namespace FalloutClient {
|
||||
}
|
||||
|
||||
private void bSave_Click(object sender, EventArgs e) {
|
||||
save=true;
|
||||
save = true;
|
||||
Close();
|
||||
}
|
||||
|
||||
private void checkBox_Click(object sender, EventArgs e) {
|
||||
valueInHex = checkBox.Checked;
|
||||
ConvertValues(valueInHex);
|
||||
for (int i = 0; i < values.Length; i++) {
|
||||
dataGridView1.Rows[i].Cells[2].Value = values[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+14
-6
@@ -12,17 +12,25 @@ namespace FalloutClient {
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
|
||||
if(args.Length==1&&args[0]=="-debugedit") {
|
||||
if (args.Length == 1 && args[0] == "-debugedit") {
|
||||
Application.Run(new DebugEditor(new EditorConnection()));
|
||||
} else {
|
||||
throw new Exception("Multiplayer is no longer supported");
|
||||
MessageBox.Show("The debug editor can only be run from the game.",
|
||||
"sfall Debug Editor", MessageBoxButtons.OK, MessageBoxIcon.Stop);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enum DataTypeSend {
|
||||
Mouse=0, LMouseDown=1, LMouseUp=2, RMouseDown=3, RMouseUp=4, TakeChar=5, ReleaseChar=6,
|
||||
SetGlobal=0, SetMapVar=1, RetrieveCritter=2, SetCritter=3, SetSGlobal=4, GetArray=9, SetArray=10,
|
||||
Exit=254
|
||||
}
|
||||
SetGlobal = 0,
|
||||
SetMapVar = 1,
|
||||
RetrieveCritter = 2,
|
||||
SetCritter = 3,
|
||||
SetSGlobal = 4,
|
||||
GetArray = 9,
|
||||
SetArray = 10,
|
||||
GetLocal = 11,
|
||||
SetLocal = 12,
|
||||
Exit = 254
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,12 +5,12 @@ using System.Runtime.InteropServices;
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("FalloutClient")]
|
||||
[assembly: AssemblyTitle("sfall Debug Editor")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("FalloutClient")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2009")]
|
||||
[assembly: AssemblyProduct("sfall")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2019")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
[assembly: AssemblyVersion("4.1.9.0")]
|
||||
[assembly: AssemblyFileVersion("4.1.9.0")]
|
||||
|
||||
@@ -16,6 +16,21 @@
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>false</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@@ -33,6 +48,8 @@
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
@@ -62,6 +79,18 @@
|
||||
<DependentUpon>EditorWindow.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
@@ -71,6 +100,7 @@
|
||||
</Target>
|
||||
-->
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>copy "$(TargetPath)" "C:\Games\Fallout2\$(TargetName)$(TargetExt)"</PostBuildEvent>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -1,6 +1,6 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MPClient", "MPClient.csproj", "{80ED0DCE-100E-4EC9-A79D-2FBFA4CAD1E3}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SfallDebugEditor", "SfallDebugEditor.csproj", "{80ED0DCE-100E-4EC9-A79D-2FBFA4CAD1E3}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@@ -14,17 +14,18 @@ Part_0=1 ; Tell sfall that we want to modify the head entries
|
||||
|
||||
[c_00_0] ; The entries for the head table of the men critter type.
|
||||
e0_DamageMultiplier=100 ;First level critical
|
||||
e0_EffectFlags=0
|
||||
e0_EffectFlags=0 ; The value of the flags (see DAM_* in Define.h)
|
||||
; For multiple effects, use the sum of the flags (e.g. 2050 = knocked down + bypass armor)
|
||||
e0_StatCheck=0
|
||||
e0_StatMod=0
|
||||
e0_FailureEffect=0
|
||||
e0_Message=0 ; This is an index into the msg file, not a string
|
||||
e0_FailMessage=0
|
||||
e1_... ; Second level critical
|
||||
... ; And so on up to the hardest hitting level 5 critical
|
||||
e5_...
|
||||
;e1_... ; Second level critical
|
||||
;... ; And so on up to the hardest hitting level 5 critical
|
||||
;e5_...
|
||||
|
||||
;You can skip any entries from this section to leave them at their defaults
|
||||
;Any missing entries for critters 19-37 will be replaced by a 0, since they have no default
|
||||
;Note that the UOP fixes are included in the defaults, and do not need to be
|
||||
; added manually when using this override format, as opposed to the old one
|
||||
; added manually when using this override format, as opposed to the old one
|
||||
|
||||
@@ -7,8 +7,32 @@
|
||||
; have an additional NoHardcode option in this file which can
|
||||
; be used to remove their hardcoded effects, and add new stat/skill effects
|
||||
|
||||
[PerksTweak]
|
||||
;Change the penalty distance and distance bonus for 'Weapon Scope Range' weapon perk
|
||||
;0 - no penalty, 8 - default penalty
|
||||
WeaponScopeRangePenalty=8
|
||||
;2 - no bonus, 5 - default bonus
|
||||
WeaponScopeRangeBonus=5
|
||||
|
||||
;Changes the distance bonus for 'Weapon Long Range' weapon perk
|
||||
;2 - no bonus, 4 - default bonus
|
||||
WeaponLongRangeBonus=4
|
||||
|
||||
;Changes the hit chance bonus for 'Weapon Accurate' weapon perk
|
||||
;0 - no bonus, 200 - maximum bonus, 20 - default bonus
|
||||
WeaponAccurateBonus=20
|
||||
|
||||
;Changes the strength bonus for 'Weapon Handling' perk
|
||||
;0 - no bonus, 10 - maximum bonus, 3 - default bonus
|
||||
WeaponHandlingBonus=3
|
||||
|
||||
;##############################################################################
|
||||
[Perks]
|
||||
;Set to 1 to enable the modifications for perks
|
||||
Enable=0
|
||||
|
||||
;Name=The name of the perk (max 63 characters)
|
||||
;Desc=The description of the perk (max 1023 characters)
|
||||
;Desc=The description of the perk (max 255 characters)
|
||||
;Image=The line number (0-indexed) of the corresponding FRM in skilldex.lst
|
||||
;Ranks=The number of perk levels
|
||||
;Level=The minimum required level
|
||||
@@ -35,6 +59,7 @@
|
||||
|
||||
;If the value is set to -99999, the variable will be ignored (similar to comment out that line)
|
||||
|
||||
;##############################################################################
|
||||
;This is a modification to perk 119
|
||||
[119]
|
||||
Name=Example
|
||||
@@ -57,6 +82,11 @@ INT=0
|
||||
AGL=0
|
||||
LCK=0
|
||||
|
||||
;##############################################################################
|
||||
[Traits]
|
||||
;Set to 1 to enable the modifications for traits
|
||||
Enable=0
|
||||
|
||||
;This is a modification to trait 0
|
||||
[t0]
|
||||
NoHardcode=0
|
||||
|
||||
@@ -10,8 +10,9 @@ SaveSfallDataFail=ERROR saving extended savegame information! Check if other pro
|
||||
PartyLvlMsg=Lvl:
|
||||
PartyACMsg=AC:
|
||||
PartyAddictMsg=Addict
|
||||
NPCPickupFail=%s cannot pick up the item.
|
||||
|
||||
[AppearanceMod]
|
||||
RaceText=Race
|
||||
StyleText=Style
|
||||
MainButtonText=Appearance
|
||||
DoneBtn=Done
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
; Allows to reassign books to different object PIDs, text messages.
|
||||
; Maximum 30 books are allowed (25 if overrideVanilla is 0)
|
||||
; Allows to reassign books to different object PIDs, text messages, and skills.
|
||||
; Maximum 50 books are allowed
|
||||
|
||||
[main]
|
||||
; total number of books in this file
|
||||
count=5
|
||||
count=1
|
||||
|
||||
; set to 1 to override all vanilla books, so you will have to define ALL books in this file;
|
||||
; otherwise only new books are defined here
|
||||
; set to 1 to override all vanilla books, so you will have to define ALL the necessary books in this file;
|
||||
; otherwise only new books are defined here. To just override the text/skill of a vanilla book,
|
||||
; specify its PID in the new book and set the parameters
|
||||
overrideVanilla=0
|
||||
|
||||
; count starts from 1
|
||||
|
||||
+105
-64
@@ -1,12 +1,12 @@
|
||||
;sfall configuration settings
|
||||
;v3.8.14
|
||||
;v3.8.21
|
||||
|
||||
[Main]
|
||||
;Change to 1 if you want to use command line args to tell sfall to use another ini file.
|
||||
UseCommandLine=0
|
||||
|
||||
;Uncomment and point to a file to get alternate translations for some sfall messages
|
||||
;TranslationsINI=./Translations.ini
|
||||
;TranslationsINI=.\Translations.ini
|
||||
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[Sound]
|
||||
@@ -15,14 +15,14 @@ UseCommandLine=0
|
||||
NumSoundBuffers=0
|
||||
|
||||
;Set to 1 to allow attaching sound files to combat float messages
|
||||
AllowSoundForFloats=1
|
||||
AllowSoundForFloats=0
|
||||
|
||||
;Set to 1 to automatically search for alternative formats (mp3/wma/wav) when Fallout tries to play an acm
|
||||
;Set to 2 to play alternative music files even if original acm files are not present in the music folder
|
||||
;This does not effect the play_sfall_sound and stop_sfall_sound script functions
|
||||
AllowDShowSound=0
|
||||
|
||||
;Set to 1 to override the music path used by default if not present in the cfg
|
||||
;Set to 1 to override the music path used by default (i.e. data\sound\music\) if not present in the cfg
|
||||
;Set to 2 to overwrite all occurances of the music path
|
||||
OverrideMusicDir=2
|
||||
|
||||
@@ -34,18 +34,21 @@ Enable=1
|
||||
;The speeds corresponding to each slot in percent. (i.e. 100 is normal speed)
|
||||
SpeedMulti0=50
|
||||
SpeedMulti1=100
|
||||
SpeedMulti2=150
|
||||
SpeedMulti3=200
|
||||
SpeedMulti4=300
|
||||
SpeedMulti2=200
|
||||
SpeedMulti3=300
|
||||
SpeedMulti4=400
|
||||
SpeedMulti5=500
|
||||
SpeedMulti6=1000
|
||||
SpeedMulti7=100
|
||||
SpeedMulti8=100
|
||||
SpeedMulti9=100
|
||||
SpeedMulti6=600
|
||||
SpeedMulti7=700
|
||||
SpeedMulti8=800
|
||||
SpeedMulti9=900
|
||||
|
||||
;The initial speed at game startup
|
||||
SpeedMultiInitial=100
|
||||
|
||||
;Set to 1 to also affect the playback speed of mve video files without an audio track
|
||||
AffectPlayback=0
|
||||
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[Graphics]
|
||||
;Set to 0 for 8 bit fullscreen
|
||||
@@ -67,12 +70,15 @@ GraphicsHeight=0
|
||||
;GPU is faster, but requires v2.0 pixel shader support
|
||||
GPUBlt=0
|
||||
|
||||
;Set to 1 to allow using 32 bit graphics for talking heads
|
||||
;Requires graphics mode 4 or 5, and GPUBlt set to 1
|
||||
;Set to 1 to allow using 32-bit textures for talking heads
|
||||
;The texture files should be placed in art\heads\<name of the talking head FRM file>\ (w/o extension)
|
||||
;The files in the folder should be numbered according to the number of frames in the talking head FRM file (0.png, 1.png, etc.)
|
||||
;See the text file in the modders pack for a detailed description
|
||||
;Requires DX9 graphics mode and v2.0 pixel shader support (see GPUBlt option)
|
||||
Use32BitHeadGraphics=0
|
||||
|
||||
;Set to 1 to automatically search for alternative avi video files when Fallout tries to play the game movies
|
||||
;Requires graphics mode 4 or 5
|
||||
;Requires DX9 graphics mode 4 or 5
|
||||
AllowDShowMovies=0
|
||||
|
||||
;Fade effect time percentage modifier
|
||||
@@ -81,7 +87,7 @@ FadeMultiplier=100
|
||||
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[Input]
|
||||
;Set to 1 to enable the mouse scroll wheel to scroll through inventory, barter, and loot screens
|
||||
;Set to 1 to enable the mouse scroll wheel to scroll through the inventory, barter, and loot screens
|
||||
UseScrollWheel=1
|
||||
|
||||
;The mouse Z position is divided by this modifier to calculate the number of inventory
|
||||
@@ -172,12 +178,15 @@ DebugEditorKey=0
|
||||
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[Misc]
|
||||
;Changes some of Fallout 2 engine functions to Fallout 1 behavior:
|
||||
;- disables playing the final movie/credits after the endgame slideshow
|
||||
;- disables halving the weight for power armor items
|
||||
Fallout1Behavior=0
|
||||
|
||||
;Time limit in years. Must be between -3 and 13
|
||||
;Set to 0 if you want to die the instant you leave arroyo
|
||||
;Set to -1 to remove the time limit, and automatically reset the date back to 2241 each time you would have reached it
|
||||
;Set to -2 to remove the time limit without resetting the date. The game will lock up on 8th of March 2255
|
||||
;Set to -3 to remove the time limit, automatically reset the date, but override Fallout's GetDate function to return the correct year
|
||||
;Set to -2 or -3 to remove the time limit, automatically reset the date, but override Fallout's GetDate function to return the correct year
|
||||
TimeLimit=13
|
||||
|
||||
;World map travel time percentage modifier
|
||||
@@ -185,9 +194,6 @@ TimeLimit=13
|
||||
;100 is normal speed, 0 stops time from passing
|
||||
WorldMapTimeMod=100
|
||||
|
||||
;Set to 1 to enable functions relating to overriding the file system
|
||||
UseFileSystemOverride=0
|
||||
|
||||
;Set to 1 to use the Fallout 1 code to control world map speed
|
||||
WorldMapFPSPatch=1
|
||||
|
||||
@@ -214,17 +220,17 @@ WorldMapSlots=0
|
||||
;To use a config file other than fallout2.cfg, uncomment the next line and add the name of your new file
|
||||
;ConfigFile=
|
||||
|
||||
;Set to 1 to enable functions relating to overriding the file system
|
||||
UseFileSystemOverride=0
|
||||
|
||||
;To use a patch file other than patch000.dat, uncomment the next line and add your new file name
|
||||
;If you want to check for multiple patch files, you can include a %d in the file name (sprintf syntax)
|
||||
;By default, only the first patch file found will be used.
|
||||
;If you want to load multiple patch files (up to 1000) at once, uncomment the MultiPatches line and set it to 1
|
||||
;If you want to load multiple patch files (up to 1000) at once, you can include a %d in the file name (sprintf syntax)
|
||||
;PatchFile=patch%03d.dat
|
||||
;MultiPatches=0
|
||||
|
||||
;Set to 1 to use the modified data load order for the engine to find game data
|
||||
;Original: patchXXX.dat > critter_patches > critter_dat > f2_res_patches > f2_res_dat > master_patches > master_dat
|
||||
;Modified: master_patches > critter_patches > patchXXX.dat > critter_dat > f2_res_patches > f2_res_dat > master_dat
|
||||
DataLoadOrderPatch=0
|
||||
DataLoadOrderPatch=1
|
||||
|
||||
;To change the default and starting player models, uncomment the next four lines.
|
||||
;The default models can also be changed ingame via script
|
||||
@@ -254,13 +260,13 @@ Movie16=artimer4.mve
|
||||
Movie17=credits.mve
|
||||
|
||||
;To change the starting year, month or day, uncomment the next 3 lines
|
||||
;Both StartMonth and StartDay are 0-indexed
|
||||
;Both StartMonth and StartDay are 0-indexed (i.e. 0 is January or the first day of a month)
|
||||
;StartYear=-1
|
||||
;StartMonth=-1
|
||||
;StartDay=-1
|
||||
|
||||
;To change the limit of the distance away from the player to which you're allowed to scroll the local maps, uncomment the next two lines
|
||||
;Defaults are 0x1E0 in the x direction and 0x190 in the y direction.
|
||||
;Defaults are 480 in the x direction and 400 in the y direction.
|
||||
;Not compatible with the res patch!
|
||||
;LocalMapXLimit=480
|
||||
;LocalMapYLimit=400
|
||||
@@ -318,7 +324,7 @@ OverrideArtCacheSize=0
|
||||
;Set to 2 to block all saving in combat
|
||||
SaveInCombatFix=1
|
||||
|
||||
;Point at an ini file containing elevator data
|
||||
;Point to an ini file containing elevator data
|
||||
;ElevatorsFile=Elevators.ini
|
||||
|
||||
;Uncomment and set a comma delimited list of numbers to use a custom xp table.
|
||||
@@ -331,14 +337,17 @@ SaveInCombatFix=1
|
||||
AdditionalWeaponAnims=1
|
||||
|
||||
;Uncomment these lines to modify the default modifiers for aimed shots at specific bodyparts
|
||||
;Modifiers affect both NPCs and the player
|
||||
;BodyHit_Head=-40
|
||||
;BodyHit_Left_Arm=-30
|
||||
;BodyHit_Right_Arm=-30
|
||||
;BodyHit_Torso_Uncalled=0
|
||||
;BodyHit_Torso=0
|
||||
;BodyHit_Right_Leg=-20
|
||||
;BodyHit_Left_Leg=-20
|
||||
;BodyHit_Eyes=-60
|
||||
;BodyHit_Groin=-30
|
||||
;The modifier for unaimed shots
|
||||
;BodyHit_Torso_Uncalled=0
|
||||
|
||||
;Set to 1 to use a CriticalOverrides.ini file to override the default critical table
|
||||
;Set to 2 to use the default critical with bug fixes (doesn't require an ini)
|
||||
@@ -346,6 +355,8 @@ AdditionalWeaponAnims=1
|
||||
;If the ExtraKillTypes option is enabled, this should be set to 3, with containing entries for any new types
|
||||
;Must be non-zero to use the edit/get/reset_critical script functions
|
||||
OverrideCriticalTable=2
|
||||
;To change the path and filename of the critical table file, uncomment the next line
|
||||
;OverrideCriticalFile=CriticalOverrides.ini
|
||||
|
||||
;Set to 1 to get notification of karma changes in the notification window
|
||||
DisplayKarmaChanges=0
|
||||
@@ -356,8 +367,10 @@ AlwaysReloadMsgs=0
|
||||
;Set to 1 to force the player to play the idle animation when reloading their weapon
|
||||
PlayIdleAnimOnReload=0
|
||||
|
||||
;Set to 1 to prevent corpses from blocking line of fire
|
||||
CorpseLineOfFireFix=0
|
||||
;Changes the timer (in days) for deleting corpses on a map after you leave (valid range: 0..13)
|
||||
;The corpses of critters with 'Ages' flag or on maps with 'dead_bodies_age=No' set in maps.txt will not disappear
|
||||
;Default is 6. Set to 0 for a 12-hour timer
|
||||
CorpseDeleteTime=6
|
||||
|
||||
;Set a number of milliseconds to idle each input loop
|
||||
;Set to -1 to disable
|
||||
@@ -365,15 +378,13 @@ CorpseLineOfFireFix=0
|
||||
;Set to 1 (or some higher number if needed, the maximum is 127) to prevent 100% CPU use
|
||||
ProcessorIdle=-1
|
||||
|
||||
;Set a number of how many protos per type can be loaded into memory at once (valid range: 512..4096)
|
||||
;Set to -1 to let set_proto_data script function automatically increase the limit when needed
|
||||
LoadProtoMaxLimit=-1
|
||||
|
||||
;Set to 1 if using the hero appearance mod
|
||||
;You can add AppChCrt.frm and AppChEdt.frm files to art/intrface/ to set a custom background for the character screen
|
||||
;Set to 2 for backward compatibility with scripts that manually fix obj_art_fid/art_change_fid_num script functions for dude_obj
|
||||
;You can add AppChCrt.frm and AppChEdt.frm files to art\intrface\ to set a custom background for the character screen
|
||||
EnableHeroAppearanceMod=0
|
||||
|
||||
;Set to 1 to skip the 3 opening movies
|
||||
;Set to 2 to also skip the splash screen
|
||||
SkipOpeningMovies=0
|
||||
|
||||
;Causes NPCs who complete their combat turn with AP left over will try and find other ways to spend it.
|
||||
@@ -381,16 +392,17 @@ SkipOpeningMovies=0
|
||||
;Set to 0 to disable
|
||||
NPCsTryToSpendExtraAP=0
|
||||
|
||||
;Set to 1 to fix NPCs not checking weapon perks properly when searching for the best weapon
|
||||
;Note that enabling this option can significantly affect the weapon choice of some NPCs in combat
|
||||
;Set to 1 to fix NPCs not checking weapon perks properly when choosing the best weapon in combat
|
||||
;Set to 2 to change the priority multiplier for having weapon perk to 3x (the original is 5x)
|
||||
;Note that enabling this option can significantly affect the weapon of choice for some NPCs
|
||||
AIBestWeaponFix=0
|
||||
|
||||
;Set to 1 to fix NPCs not taking chem_primary_desire in AI.txt as drug use preference when using drugs in their inventory
|
||||
AIDrugUsePerfFix=0
|
||||
|
||||
;Allows the use of tiles over 80*36 in size. sfall will just split and resave them at startup
|
||||
;Allows the use of tiles over 80x36 in size. sfall will just split and resave them at startup
|
||||
;Set to 1 to check all tiles on started (slow)
|
||||
;Set to 2 if you provide a XLtiles.lst file in art/tiles/ containing a list of the tile ids that need checking
|
||||
;Set to 2 if you provide a XLtiles.lst file in art\tiles\ containing a list of the tile ids that need checking
|
||||
AllowLargeTiles=0
|
||||
|
||||
;Set to 1 to boost the maximum number of tile FRMs from 4096 to 16383
|
||||
@@ -417,12 +429,12 @@ UseScrollingQuestsList=1
|
||||
|
||||
;Uncomment these lines to control the premade characters offered when starting a new game
|
||||
;Multiple options should be separated by commas, and there must be the same number of entries in both lines
|
||||
;Each name in PremadePaths is limited to 11 characters
|
||||
;PremadePaths=combat,diplomat,stealth
|
||||
;PremadeFIDs=201,203,202
|
||||
|
||||
;Use this line to modify the list of cities and their associated global variables used for city reputations
|
||||
;Syntax is 'city id:global id', with each city/global pair separated by a comma.
|
||||
;CityRepsCount=19
|
||||
;CityRepsList=0:47,2:48,1:49,4:50,5:51,3:52,8:53,6:54,7:55,13:56,10:57,11:59,14:61,17:63,19:64,18:65,25:66,9:294,20:308
|
||||
|
||||
;Set this to a valid path to save a copy of the console contents
|
||||
@@ -438,7 +450,6 @@ SpeedInterfaceCounterAnims=0
|
||||
|
||||
;These lines allow you to control the karma FRMs displayed on the character screen
|
||||
;Number of KarmaPoints should be 1 less than number of KarmaFRMs
|
||||
;KarmaFRMsCount=3
|
||||
;KarmaFRMs=47,48,49
|
||||
;KarmaPoints=-100,100
|
||||
|
||||
@@ -449,8 +460,11 @@ ScienceOnCritters=0
|
||||
;Default is 166
|
||||
SpeedInventoryPCRotation=166
|
||||
|
||||
;Uncomment to set the text colour of the extra 5 interface boxes
|
||||
;The line must contain 5 digits, each either a 0 for green or 1 for red
|
||||
;Modify the number of the extra interface boxes available to modders. (Default is 5, and the maximum is 95)
|
||||
BoxBarCount=5
|
||||
|
||||
;Uncomment to set the text colour of the extra interface boxes
|
||||
;The line must contain the same number of digits as the value of BoxBarCount, each either a 0 for green or 1 for red
|
||||
;BoxBarColours=00000
|
||||
|
||||
;Set to 1 to fix the bug that caused bonus HtH damage to not be applied correctly.
|
||||
@@ -468,12 +482,11 @@ AnimationsAtOnceLimit=120
|
||||
;Set to 1 to remove the limits that stop the player rolling critical successes/misses in the first few days of game time
|
||||
RemoveCriticalTimelimits=0
|
||||
|
||||
;Set to 1 to enable party members with level 6 protos to reach level 6
|
||||
NPCStage6Fix=0
|
||||
|
||||
;Change the colour of the font used on the main menu for the Fallout/sfall version number
|
||||
;It's the last byte ('3c' by default) that picks the colour used. The first byte supplies additional flags
|
||||
;MainMenuFontColour=0x0600003c
|
||||
;Change the colour of the font used on the main menu for the Fallout/sfall version number and copyright text
|
||||
;It's the last byte ('3C' by default) that picks the colour used. The first byte supplies additional flags for this option
|
||||
;MainMenuFontColour=0x00003C
|
||||
;Change the colour of the font used on the main menu for the button text
|
||||
;MainMenuBigFontColour=0x3C
|
||||
|
||||
;Two alternate fixes to the interaction between HtH attacks and the fast shot trait
|
||||
;0 - Fallout 2 original behaviour
|
||||
@@ -481,13 +494,13 @@ NPCStage6Fix=0
|
||||
;2 - Restoring the -1 AP bonus for HtH attacks (i.e. Fallout 1 behaviour)
|
||||
FastShotFix=1
|
||||
|
||||
;Allows you to edit the skill tables
|
||||
;Point the next line at an ini file containing the replacement skill data
|
||||
;SkillsFile=Skills.ini
|
||||
|
||||
;Set to 1 to boost the maximum number of script names from 1450 to 10000
|
||||
BoostScriptDialogLimit=0
|
||||
|
||||
;Allows you to edit the skill tables
|
||||
;Point the next line to an ini file containing the replacement skill data
|
||||
;SkillsFile=Skills.ini
|
||||
|
||||
;To change the relationship between SPECIAL stats and derived stats, uncomment the next line
|
||||
;See the Stats.ini in the modders pack for an example file
|
||||
;DerivedStats=Stats.ini
|
||||
@@ -537,6 +550,13 @@ ObjCanHearObjFix=0
|
||||
;If the argument value is -1, the mood will be determined by the local variable 0 of the script (vanilla behavior)
|
||||
StartGDialogFix=0
|
||||
|
||||
;Set to 1 to fix and repurpose the unused called_shot/num_attacks arguments of attack_complex script function
|
||||
;This also changes the behavior of the result flags arguments
|
||||
;called_shot - additional damage, when the damage received by the target is above the specified minimum damage
|
||||
;num_attacks - the number of free action points on the first turn only
|
||||
;attacker_results - unused, must be 0 or not equal to the target_results argument when specifying result flags for the target
|
||||
AttackComplexFix=0
|
||||
|
||||
;Set to 1 to enable the balanced bullet distribution formula for burst attacks
|
||||
ComputeSprayMod=0
|
||||
|
||||
@@ -602,12 +622,9 @@ StackEmptyWeapons=0
|
||||
;If the amount of ammo boxes in the inventory is less than or equal to the reserve, only one box will be used
|
||||
ReloadReserve=-1
|
||||
|
||||
;Set to 1 to change the counter in the 'Move Items' window to start at the maximum number of items
|
||||
;Set to 1 to change the counter in the 'Move Items' window to start with maximum number, except in the barter screen
|
||||
ItemCounterDefaultMax=0
|
||||
|
||||
;Allows 9 options (lines of text) to be displayed correctly in a dialog window
|
||||
DialogOptions9Lines=1
|
||||
|
||||
;Set to 1 to leave the music playing in dialogue with talking heads
|
||||
EnableMusicInDialogue=0
|
||||
|
||||
@@ -618,13 +635,17 @@ DontTurnOffSneakIfYouRun=0
|
||||
;Set to 0 to disable switching. (Default is 3)
|
||||
UseWalkDistance=3
|
||||
|
||||
;Set to 1 to fix the bug that unable to sell used geiger counters or stealth boys
|
||||
;Set to 1 to fix the bug of being unable to sell used geiger counters or stealth boys
|
||||
CanSellUsedGeiger=1
|
||||
|
||||
;Set to 1 to fix the issue with being able to charge the car by using cells on other scenary/critters
|
||||
;Set to 1 to fix the issue with being able to charge the car by using cells on other scenery/critters
|
||||
;Set to 0 if another mod you're using has custom vehicles
|
||||
CarChargingFix=1
|
||||
|
||||
;Set to 1 to prevent the car from being lost when entering a location via the Town/World button and then leaving on foot
|
||||
;Note that the global variable 633 (GVAR_CAR_PLACED_TILE) will be set to -1 when the player leaves a location
|
||||
CarPlacedTileFix=1
|
||||
|
||||
;Set to 1 to skip weapon equip/unequip animations when performing various actions
|
||||
InstantWeaponEquip=0
|
||||
|
||||
@@ -638,7 +659,7 @@ NumbersInDialogue=0
|
||||
;Set to 1 to use Fallout's normal text font instead of DOS-like font on the world map
|
||||
WorldMapFontPatch=0
|
||||
|
||||
;Set to 1 to display full item description for weapon/ammo in barter screen
|
||||
;Set to 1 to display full item description for weapon/ammo in the barter screen
|
||||
FullItemDescInBarter=0
|
||||
|
||||
;Set to 1 to display experience points with the bonus from Swift Learner perk when gained from non-scripted situations
|
||||
@@ -650,6 +671,18 @@ PartyMemberExtraInfo=0
|
||||
;Set to 1 to prevent the inventory/loot/automap interfaces from being placed on top of other script-created windows
|
||||
InterfaceDontMoveOnTop=0
|
||||
|
||||
;Overrides the global variable number used to show the special death message of the Modoc toilet explosion
|
||||
;Set to -1 to disable the special death message when the global variable is set
|
||||
SpecialDeathGVAR=491
|
||||
|
||||
;Set to 1 to disable the special handling of map IDs 19 and 37 in the engine when entering the maps
|
||||
;Note that enabling this option can break the map changes in Modoc and Vault 15
|
||||
DisableSpecialMapIDs=0
|
||||
|
||||
;Changes the base value of the duration of the knockout effect (valid range: 35..100; default is 35)
|
||||
;The formula for the duration in ticks is: 10 * (value - 3 * EN)
|
||||
KnockoutTime=35
|
||||
|
||||
;Set to 1 to display sfall built-in credits at the bottom of credits.txt contents instead of at the top
|
||||
CreditsAtBottom=0
|
||||
|
||||
@@ -662,7 +695,8 @@ CreditsAtBottom=0
|
||||
Enable=0
|
||||
|
||||
;Fallout 2 Debug Patch
|
||||
;Set to 1 to send debug output to the screen, 2 to a debug.log file, or 3 to both the screen and a debug.log file
|
||||
;Set to 1 to send debug output to the screen, 2 to a debug.log file, or 3 to both the screen and debug.log
|
||||
;Does not require sfall debugging mode
|
||||
;While you don't need to create an environment variable, you do still need to set the appropriate lines in fallout2.cfg:
|
||||
;-------
|
||||
;[debug]
|
||||
@@ -677,6 +711,9 @@ Enable=0
|
||||
;-------
|
||||
DebugMode=0
|
||||
|
||||
;Set to 1 to hide error messages in debug output when a null value is passed to the function as an object
|
||||
HideObjIsNullMsg=0
|
||||
|
||||
;Change to 1 to skip the compatibility mode check
|
||||
SkipCompatModeCheck=0
|
||||
|
||||
@@ -689,15 +726,19 @@ SkipSizeCheck=0
|
||||
;Does not require sfall debugging mode
|
||||
;ExtraCRC=0x00000000,0x00000000
|
||||
|
||||
;Set to 1 to stop Fallout from deleting non readonly protos at startup
|
||||
;Set to 1 to stop Fallout from deleting non read-only protos at startup
|
||||
;Has pretty nasty side effects when saving/reloading, so don't use for regular gameplay
|
||||
DontDeleteProtos=0
|
||||
|
||||
;Set to 1 to give scripts direct access to Fallout's address space, and to make arbitrary calls into Fallout's code
|
||||
;Does not require sfall debugging mode
|
||||
AllowUnsafeScripting=0
|
||||
|
||||
;These options control what output is saved in the debug log (sfall-log.txt)
|
||||
;Set to 1 to force critters to display combat float messages
|
||||
;Requires AllowSoundForFloats to be enabled
|
||||
Test_ForceFloats=0
|
||||
|
||||
;These options control what output is saved in the debug log (sfall-log.txt)
|
||||
;Prints messages duing sfall initialization
|
||||
Init=0
|
||||
;Prints messages relating to hook scripts
|
||||
|
||||
@@ -0,0 +1,201 @@
|
||||
;Glovz's Damage Fix
|
||||
|
||||
; PID_EXPLOSIVE_ROCKET
|
||||
[1]
|
||||
pid=14
|
||||
ac_adjust=-10
|
||||
dr_adjust=0
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_10MM_JHP
|
||||
[2]
|
||||
pid=29
|
||||
ac_adjust=0
|
||||
dr_adjust=0
|
||||
dam_mult=2
|
||||
dam_div=1
|
||||
|
||||
; PID_10MM_AP
|
||||
[3]
|
||||
pid=30
|
||||
ac_adjust=-5
|
||||
dr_adjust=0
|
||||
dam_mult=1
|
||||
dam_div=2
|
||||
|
||||
; PID_44_MAGNUM_JHP
|
||||
[4]
|
||||
pid=31
|
||||
ac_adjust=0
|
||||
dr_adjust=-10
|
||||
dam_mult=2
|
||||
dam_div=1
|
||||
|
||||
; PID_FLAMETHROWER_FUEL
|
||||
[5]
|
||||
pid=32
|
||||
ac_adjust=-20
|
||||
dr_adjust=0
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_14MM_AP
|
||||
[6]
|
||||
pid=33
|
||||
ac_adjust=-5
|
||||
dr_adjust=-30
|
||||
dam_mult=1
|
||||
dam_div=2
|
||||
|
||||
; PID_223_FMJ
|
||||
[7]
|
||||
pid=34
|
||||
ac_adjust=-15
|
||||
dr_adjust=-15
|
||||
dam_mult=2
|
||||
dam_div=2
|
||||
|
||||
; PID_5MM_JHP
|
||||
[8]
|
||||
pid=35
|
||||
ac_adjust=0
|
||||
dr_adjust=-15
|
||||
dam_mult=2
|
||||
dam_div=1
|
||||
|
||||
; PID_5MM_AP
|
||||
[9]
|
||||
pid=36
|
||||
ac_adjust=-5
|
||||
dr_adjust=-15
|
||||
dam_mult=1
|
||||
dam_div=2
|
||||
|
||||
; PID_ROCKET_AP
|
||||
[10]
|
||||
pid=37
|
||||
ac_adjust=-10
|
||||
dr_adjust=0
|
||||
dam_mult=1
|
||||
dam_div=2
|
||||
|
||||
; PID_SMALL_ENERGY_CELL
|
||||
[11]
|
||||
pid=38
|
||||
ac_adjust=-20
|
||||
dr_adjust=0
|
||||
dam_mult=2
|
||||
dam_div=1
|
||||
|
||||
; PID_MICRO_FUSION_CELL
|
||||
[12]
|
||||
pid=39
|
||||
ac_adjust=-20
|
||||
dr_adjust=0
|
||||
dam_mult=2
|
||||
dam_div=1
|
||||
|
||||
; PID_SHOTGUN_SHELLS
|
||||
[13]
|
||||
pid=95
|
||||
ac_adjust=-15
|
||||
dr_adjust=0
|
||||
dam_mult=3
|
||||
dam_div=1
|
||||
|
||||
; PID_44_FMJ_MAGNUM
|
||||
[14]
|
||||
pid=111
|
||||
ac_adjust=-5
|
||||
dr_adjust=-10
|
||||
dam_mult=2
|
||||
dam_div=2
|
||||
|
||||
; PID_9MM_BALL
|
||||
[15]
|
||||
pid=121
|
||||
ac_adjust=0
|
||||
dr_adjust=0
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_BBS
|
||||
[16]
|
||||
pid=163
|
||||
ac_adjust=0
|
||||
dr_adjust=0
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_ROBO_ROCKET_AMMO
|
||||
[17]
|
||||
pid=274
|
||||
ac_adjust=-10
|
||||
dr_adjust=-10
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_45_CALIBER_AMMO
|
||||
[18]
|
||||
pid=357
|
||||
ac_adjust=0
|
||||
dr_adjust=-5
|
||||
dam_mult=2
|
||||
dam_div=1
|
||||
|
||||
; PID_2MM_EC_AMMO
|
||||
[19]
|
||||
pid=358
|
||||
ac_adjust=-25
|
||||
dr_adjust=-20
|
||||
dam_mult=1
|
||||
dam_div=3
|
||||
|
||||
; PID_4_7MM_CASELESS
|
||||
[20]
|
||||
pid=359
|
||||
ac_adjust=-5
|
||||
dr_adjust=-25
|
||||
dam_mult=1
|
||||
dam_div=2
|
||||
|
||||
; PID_9MM_AMMO
|
||||
[21]
|
||||
pid=360
|
||||
ac_adjust=0
|
||||
dr_adjust=0
|
||||
dam_mult=2
|
||||
dam_div=1
|
||||
|
||||
; PID_HN_NEEDLER_CARTRIDGE
|
||||
[22]
|
||||
pid=361
|
||||
ac_adjust=-20
|
||||
dr_adjust=-5
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_HN_AP_NEEDLER_CARTRIDGE
|
||||
[23]
|
||||
pid=362
|
||||
ac_adjust=-20
|
||||
dr_adjust=-5
|
||||
dam_mult=1
|
||||
dam_div=2
|
||||
|
||||
; PID_7_62MM_AMMO
|
||||
[24]
|
||||
pid=363
|
||||
ac_adjust=-10
|
||||
dr_adjust=-20
|
||||
dam_mult=2
|
||||
dam_div=2
|
||||
|
||||
; PID_FLAMETHROWER_FUEL_MK_II
|
||||
[25]
|
||||
pid=382
|
||||
ac_adjust=-20
|
||||
dr_adjust=-15
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
@@ -0,0 +1,201 @@
|
||||
;YAAM
|
||||
|
||||
; PID_EXPLOSIVE_ROCKET
|
||||
[1]
|
||||
pid=14
|
||||
ac_adjust=0
|
||||
dr_adjust=0
|
||||
dam_mult=3
|
||||
dam_div=2
|
||||
|
||||
; PID_10MM_JHP
|
||||
[2]
|
||||
pid=29
|
||||
ac_adjust=0
|
||||
dr_adjust=0
|
||||
dam_mult=3
|
||||
dam_div=2
|
||||
|
||||
; PID_10MM_AP
|
||||
[3]
|
||||
pid=30
|
||||
ac_adjust=0
|
||||
dr_adjust=4
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_44_MAGNUM_JHP
|
||||
[4]
|
||||
pid=31
|
||||
ac_adjust=0
|
||||
dr_adjust=0
|
||||
dam_mult=3
|
||||
dam_div=2
|
||||
|
||||
; PID_FLAMETHROWER_FUEL
|
||||
[5]
|
||||
pid=32
|
||||
ac_adjust=-20
|
||||
dr_adjust=0
|
||||
dam_mult=3
|
||||
dam_div=4
|
||||
|
||||
; PID_14MM_AP
|
||||
[6]
|
||||
pid=33
|
||||
ac_adjust=0
|
||||
dr_adjust=8
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_223_FMJ
|
||||
[7]
|
||||
pid=34
|
||||
ac_adjust=-20
|
||||
dr_adjust=5
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_5MM_JHP
|
||||
[8]
|
||||
pid=35
|
||||
ac_adjust=0
|
||||
dr_adjust=0
|
||||
dam_mult=3
|
||||
dam_div=2
|
||||
|
||||
; PID_5MM_AP
|
||||
[9]
|
||||
pid=36
|
||||
ac_adjust=0
|
||||
dr_adjust=4
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_ROCKET_AP
|
||||
[10]
|
||||
pid=37
|
||||
ac_adjust=0
|
||||
dr_adjust=20
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_SMALL_ENERGY_CELL
|
||||
[11]
|
||||
pid=38
|
||||
ac_adjust=0
|
||||
dr_adjust=0
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_MICRO_FUSION_CELL
|
||||
[12]
|
||||
pid=39
|
||||
ac_adjust=0
|
||||
dr_adjust=0
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_SHOTGUN_SHELLS
|
||||
[13]
|
||||
pid=95
|
||||
ac_adjust=-10
|
||||
dr_adjust=0
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_44_FMJ_MAGNUM
|
||||
[14]
|
||||
pid=111
|
||||
ac_adjust=0
|
||||
dr_adjust=5
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_9MM_BALL
|
||||
[15]
|
||||
pid=121
|
||||
ac_adjust=0
|
||||
dr_adjust=2
|
||||
dam_mult=3
|
||||
dam_div=2
|
||||
|
||||
; PID_BBS
|
||||
[16]
|
||||
pid=163
|
||||
ac_adjust=0
|
||||
dr_adjust=0
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_ROBO_ROCKET_AMMO
|
||||
[17]
|
||||
pid=274
|
||||
ac_adjust=0
|
||||
dr_adjust=10
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_45_CALIBER_AMMO
|
||||
[18]
|
||||
pid=357
|
||||
ac_adjust=0
|
||||
dr_adjust=0
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_2MM_EC_AMMO
|
||||
[19]
|
||||
pid=358
|
||||
ac_adjust=-30
|
||||
dr_adjust=9
|
||||
dam_mult=3
|
||||
dam_div=2
|
||||
|
||||
; PID_4_7MM_CASELESS
|
||||
[20]
|
||||
pid=359
|
||||
ac_adjust=-5
|
||||
dr_adjust=7
|
||||
dam_mult=3
|
||||
dam_div=2
|
||||
|
||||
; PID_9MM_AMMO
|
||||
[21]
|
||||
pid=360
|
||||
ac_adjust=0
|
||||
dr_adjust=2
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_HN_NEEDLER_CARTRIDGE
|
||||
[22]
|
||||
pid=361
|
||||
ac_adjust=-10
|
||||
dr_adjust=2
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_HN_AP_NEEDLER_CARTRIDGE
|
||||
[23]
|
||||
pid=362
|
||||
ac_adjust=-10
|
||||
dr_adjust=5
|
||||
dam_mult=2
|
||||
dam_div=1
|
||||
|
||||
; PID_7_62MM_AMMO
|
||||
[24]
|
||||
pid=363
|
||||
ac_adjust=-5
|
||||
dr_adjust=2
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
|
||||
; PID_FLAMETHROWER_FUEL_MK_II
|
||||
[25]
|
||||
pid=382
|
||||
ac_adjust=-20
|
||||
dr_adjust=0
|
||||
dam_mult=1
|
||||
dam_div=1
|
||||
Binary file not shown.
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
|
||||
Ammo INI Loader mod for Fallout 2 by NovaRain
|
||||
---------------------------------------------
|
||||
|
||||
- modifies ammo protos with data from an INI file:
|
||||
* AmmoGlovz.ini if DamageFormula=1 or 2 in ddraw.ini
|
||||
* AmmoYAAM.ini if DamageFormula=5 in ddraw.ini
|
||||
* AmmoMod.ini if not using any bulit-in damage formula
|
||||
|
||||
Requires sfall 3.5 or higher
|
||||
|
||||
*/
|
||||
|
||||
#include "..\headers\define_extra.h"
|
||||
|
||||
procedure set_ammo_mod;
|
||||
procedure start;
|
||||
procedure map_enter_p_proc;
|
||||
|
||||
variable ammoIni;
|
||||
variable enabled;
|
||||
|
||||
procedure set_ammo_mod begin
|
||||
variable pid, dmg_mod, i := 1;
|
||||
|
||||
while (i > 0) do begin
|
||||
pid := get_ini_setting(ammoIni + "|" + i + "|pid");
|
||||
if (pid < 1) then break;
|
||||
set_proto_data(pid, PROTO_AM_AC_MOD, get_ini_setting(ammoIni + "|" + i + "|ac_adjust"));
|
||||
set_proto_data(pid, PROTO_AM_DR_MOD, get_ini_setting(ammoIni + "|" + i + "|dr_adjust"));
|
||||
|
||||
// dam_mult and dam_div must be positive integers
|
||||
dmg_mod := get_ini_setting(ammoIni + "|" + i + "|dam_mult");
|
||||
if (dmg_mod < 1) then dmg_mod := 1;
|
||||
set_proto_data(pid, PROTO_AM_DMG_MULT, dmg_mod);
|
||||
dmg_mod := get_ini_setting(ammoIni + "|" + i + "|dam_div");
|
||||
if (dmg_mod < 1) then dmg_mod := 1;
|
||||
set_proto_data(pid, PROTO_AM_DMG_DIV, dmg_mod);
|
||||
|
||||
i++;
|
||||
end
|
||||
//debug_msg("AmmoMod: " + ammoIni + " - set " + (i - 1) + " ammo protos.");
|
||||
end
|
||||
|
||||
procedure start begin
|
||||
if game_loaded then begin
|
||||
ammoIni := get_ini_setting("ddraw.ini|Misc|DamageFormula");
|
||||
if (ammoIni == 1 or ammoIni == 2) then
|
||||
ammoIni := "AmmoGlovz.ini";
|
||||
else if (ammoIni == 5) then
|
||||
ammoIni := "AmmoYAAM.ini";
|
||||
else
|
||||
ammoIni := "AmmoMod.ini";
|
||||
|
||||
enabled := get_ini_setting(ammoIni + "|1|pid");
|
||||
if (enabled > 0) then call set_ammo_mod;
|
||||
end
|
||||
end
|
||||
|
||||
procedure map_enter_p_proc begin
|
||||
if (enabled > 0) then call set_ammo_mod;
|
||||
end
|
||||
@@ -0,0 +1,12 @@
|
||||
Ammo INI Loader mod for Fallout 2 by NovaRain
|
||||
---------------------------------------------
|
||||
|
||||
- modifies ammo protos with data from an INI file:
|
||||
* AmmoGlovz.ini if DamageFormula=1 or 2 in ddraw.ini
|
||||
* AmmoYAAM.ini if DamageFormula=5 in ddraw.ini
|
||||
* AmmoMod.ini if not using any bulit-in damage formula
|
||||
|
||||
|
||||
Requires sfall 3.5 or higher.
|
||||
|
||||
To use, copy gl_ammomod.int to your scripts folder, and copy the INI files to the same directory as sfall.
|
||||
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user