mirror of
https://github.com/sfall-team/sfall.git
synced 2026-07-27 16:52:34 -07:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0a5a4e569e | ||
|
|
69461516fe | ||
|
|
4e3d8a62ca | ||
|
|
c3f6b0ebb6 | ||
|
|
93b53081a7 | ||
|
|
4af68b612b | ||
|
|
1f44428fd6 | ||
|
|
b486b58dd1 | ||
|
|
1b579ad1d4 | ||
|
|
454c8d2a6d | ||
|
|
c609d79841 | ||
|
|
a392e5620a | ||
|
|
15c512ff7b | ||
|
|
4b6bc75814 | ||
|
|
3f2f3560ad | ||
|
|
29cd430b17 | ||
|
|
e84376351b | ||
|
|
2d97d24a39 | ||
|
|
4f89788dbd | ||
|
|
6df9dacc5f | ||
|
|
71bc2719c4 | ||
|
|
1c9866a693 | ||
|
|
a7e6365d84 | ||
|
|
0622a89978 | ||
|
|
41b4b773a3 | ||
|
|
0807a4ea02 | ||
|
|
a9f03544d5 | ||
|
|
03676d09ee | ||
|
|
e17ad5d11b | ||
|
|
b66cc42fbc | ||
|
|
6cf41401aa | ||
|
|
45e2037082 | ||
|
|
fc5863ac46 | ||
|
|
0a5ec8c70f | ||
|
|
937cff235e | ||
|
|
6bf967e877 | ||
|
|
f839c8374a | ||
|
|
3301ace580 | ||
|
|
247d4fae6c | ||
|
|
f30558b091 | ||
|
|
7c0adc558a | ||
|
|
5493ed38d3 | ||
|
|
16ad57806f | ||
|
|
adadf608e7 | ||
|
|
6faf71da66 | ||
|
|
40fa4a1336 | ||
|
|
8427ad657a | ||
|
|
5fbbeeb328 | ||
|
|
a30f640eb9 | ||
|
|
921db36478 | ||
|
|
74455db5a9 | ||
|
|
437e6bfaea | ||
|
|
eb0bd4dfd0 | ||
|
|
b0cc4352f7 | ||
|
|
df15a147d9 | ||
|
|
680284d785 | ||
|
|
3cc98fc15d | ||
|
|
317c462918 | ||
|
|
c7e46a6b84 | ||
|
|
92a24a6112 | ||
|
|
da5286eaa9 | ||
|
|
3022e96809 | ||
|
|
6ff73a513e | ||
|
|
53be017f0b | ||
|
|
095dfae544 | ||
|
|
3145d4e5dc | ||
|
|
5a18570bd9 | ||
|
|
fb8ca5317f | ||
|
|
bc8665b131 | ||
|
|
fee4720ef5 | ||
|
|
7553b7bfc0 | ||
|
|
26b3fac1e0 | ||
|
|
0ba69166b9 | ||
|
|
d94e68ba73 | ||
|
|
69cd1461f1 | ||
|
|
6ca5644e99 | ||
|
|
70da19e49b | ||
|
|
aa6f1cabec | ||
|
|
0a42db619d | ||
|
|
ccaacd72e4 | ||
|
|
6f08a50f9a | ||
|
|
98cc168288 | ||
|
|
81912b47ed | ||
|
|
5acdf37c80 | ||
|
|
f76c0dfe91 | ||
|
|
ba7773223a | ||
|
|
809cba44e8 | ||
|
|
1c3f3dbbd5 | ||
|
|
5265dd8ded | ||
|
|
7e65aa2c64 | ||
|
|
be4978324c | ||
|
|
1834fa3d18 | ||
|
|
ae05feee8c | ||
|
|
e7add0d1b4 | ||
|
|
5a61bb8fc3 | ||
|
|
281823e97d | ||
|
|
32924db37c | ||
|
|
cd3c220ef8 | ||
|
|
09813aeb86 | ||
|
|
f75214056e | ||
|
|
d4f011913c | ||
|
|
a543cd934c | ||
|
|
eb7aca6595 | ||
|
|
49cfe39038 | ||
|
|
163b9ed5d3 | ||
|
|
3846ec9b9d | ||
|
|
e35745353c | ||
|
|
d7647bca18 | ||
|
|
53278a090b | ||
|
|
a533943200 | ||
|
|
4385807cd3 | ||
|
|
17c73a81da | ||
|
|
f2bc04001e | ||
|
|
f1c087b3a3 | ||
|
|
3dea47c467 | ||
|
|
c5075aa478 | ||
|
|
8d58e6e3bb | ||
|
|
be4c73fd50 | ||
|
|
a19baedb96 | ||
|
|
43a8e84dee | ||
|
|
c9ce0aa0ce | ||
|
|
6c6f0be11b | ||
|
|
2d54e376c6 | ||
|
|
f48fce3274 | ||
|
|
b475bf91fb | ||
|
|
ecd574063a | ||
|
|
101238e125 | ||
|
|
2e97fe38ff | ||
|
|
583105a76a | ||
|
|
ac1bc19faa | ||
|
|
692e28262d | ||
|
|
e62803837b | ||
|
|
c19137bd1a | ||
|
|
5df3d7230f | ||
|
|
113324097c | ||
|
|
e725445ce9 | ||
|
|
9a5b38dfc3 | ||
|
|
edbfc055d0 | ||
|
|
dbe24d3ebd | ||
|
|
10a6176da2 | ||
|
|
7524aeba9b | ||
|
|
debbda0b3b | ||
|
|
2fe3ccd01d | ||
|
|
770fd7e63c | ||
|
|
827b96a7e0 | ||
|
|
d661067f2c | ||
|
|
e5687247f8 | ||
|
|
249815efd9 | ||
|
|
b46d1ab47b | ||
|
|
4a32aaf80e | ||
|
|
858a6c5343 | ||
|
|
c219ce183f | ||
|
|
1f6dbccb3d | ||
|
|
deae07ffec | ||
|
|
bb88830a5b | ||
|
|
f6c1e0f908 | ||
|
|
6c3dd72ea7 | ||
|
|
c5e226a279 | ||
|
|
0a8a28b80c | ||
|
|
c047402dc9 | ||
|
|
569bde5fab | ||
|
|
428cf42c7d | ||
|
|
dfd810c9e4 | ||
|
|
d9b7a714ec | ||
|
|
888269af92 | ||
|
|
a275fff434 | ||
|
|
3f0216d49b | ||
|
|
ce64f5d352 | ||
|
|
110facfada | ||
|
|
bb55b97d12 | ||
|
|
40538e26d3 | ||
|
|
3bc49e05d5 | ||
|
|
a6417069ad | ||
|
|
c6f17c5b7d | ||
|
|
cf028bcdfe | ||
|
|
478a522463 | ||
|
|
a186014895 | ||
|
|
3129e27737 | ||
|
|
94dd41f7ac | ||
|
|
e55db2b4da | ||
|
|
3a0e64e3ce | ||
|
|
638499b106 | ||
|
|
5ef12b60c5 | ||
|
|
34ae106fa5 | ||
|
|
a34aa64ced | ||
|
|
a26b7931a6 | ||
|
|
865adb7ee8 | ||
|
|
d9bcad0a11 | ||
|
|
b744dfeb1b | ||
|
|
42f909fcb4 | ||
|
|
6a95cdf3ca | ||
|
|
da3cdd4698 | ||
|
|
6402d616fa | ||
|
|
bd121c1dcd | ||
|
|
f9fa332b23 | ||
|
|
ec6d25da3d | ||
|
|
fc15a17d99 | ||
|
|
0a89ab4ceb | ||
|
|
ecb113fd54 | ||
|
|
e03d3f5963 | ||
|
|
dec97f22c7 | ||
|
|
5682d9b12a | ||
|
|
3177977927 | ||
|
|
44c988f306 | ||
|
|
f8dee32c16 | ||
|
|
f96b1776b5 | ||
|
|
38abea7fc1 | ||
|
|
ff324c304f | ||
|
|
7c55d37e57 | ||
|
|
069020da85 | ||
|
|
cf67e182b3 | ||
|
|
fb74f37372 | ||
|
|
96de6c0bfd | ||
|
|
415b3a8b17 | ||
|
|
7b02efad58 | ||
|
|
a19a9eae10 | ||
|
|
443a423081 | ||
|
|
b665c904f1 | ||
|
|
a9a8088775 | ||
|
|
dbe2de310c | ||
|
|
1a40aceea3 | ||
|
|
09ab715687 | ||
|
|
5e3f1eeaad | ||
|
|
1b37ed5d7c | ||
|
|
0b242a770d | ||
|
|
4d1371b540 | ||
|
|
cb70bc78a3 | ||
|
|
e8abb99d0e | ||
|
|
aee6ed1195 | ||
|
|
6b368e6a69 | ||
|
|
9ce3a42102 | ||
|
|
73a9128369 | ||
|
|
dd4ad75e4e | ||
|
|
9497fae442 | ||
|
|
16f8f1b92b | ||
|
|
6b7e83ab15 | ||
|
|
fc53df5a16 | ||
|
|
35649839cf | ||
|
|
4f22b5a9fa | ||
|
|
f3f8321415 | ||
|
|
183b74a8fa | ||
|
|
6d88f21028 | ||
|
|
db0b8eddba | ||
|
|
2985c2866b | ||
|
|
eeab5065da | ||
|
|
2e337d246b | ||
|
|
7df0407798 | ||
|
|
52af67ad3d | ||
|
|
b72b26d292 | ||
|
|
99c95b2154 | ||
|
|
0cd2aa4f83 | ||
|
|
460bc045b9 | ||
|
|
83eee2ba1e | ||
|
|
c855c6db19 | ||
|
|
edd60379c5 | ||
|
|
45faa184d8 | ||
|
|
fbd997e8bc | ||
|
|
df45450394 | ||
|
|
ea9037e38a | ||
|
|
2eefeb4f23 | ||
|
|
278bfdc841 | ||
|
|
acf859bebf | ||
|
|
0fbc29e8fd | ||
|
|
990587b145 | ||
|
|
4dc5012ea5 | ||
|
|
16faac8cad | ||
|
|
69633e96d5 | ||
|
|
f90c613107 | ||
|
|
4244ebd8c5 | ||
|
|
b37b5a2e76 | ||
|
|
454e9bde73 | ||
|
|
59a1332af5 | ||
|
|
a7b95e0948 | ||
|
|
78d8f46af6 | ||
|
|
d56de64913 | ||
|
|
561632fdca | ||
|
|
1cc978c0b1 | ||
|
|
438bc6f78f | ||
|
|
9657731441 | ||
|
|
a343e5d6e1 | ||
|
|
bdebed85b7 | ||
|
|
d76f513873 | ||
|
|
e99fe09137 | ||
|
|
21ff9238a0 | ||
|
|
4d04cae5a6 | ||
|
|
d95e43956d | ||
|
|
6b49c0dbaf | ||
|
|
f8447ba3b1 | ||
|
|
af90444f9b | ||
|
|
db94b8e6a7 | ||
|
|
1f5871fdb7 | ||
|
|
5f0c5ae1fa | ||
|
|
5b3a83df91 | ||
|
|
797de4bc0e | ||
|
|
cf8981b267 | ||
|
|
146cf4e08b | ||
|
|
9d640de1ca | ||
|
|
80a0c410e1 | ||
|
|
da9432a33a | ||
|
|
5bd820f357 | ||
|
|
95174b238e | ||
|
|
2efa4a91fb | ||
|
|
fb84e557fe | ||
|
|
3567ec791c | ||
|
|
7e82313cf2 | ||
|
|
fe33dc2834 | ||
|
|
7c6f9df404 | ||
|
|
c86d816119 | ||
|
|
4b7d901275 |
@@ -0,0 +1 @@
|
||||
*.ssl linguist-language=Pascal
|
||||
@@ -0,0 +1,51 @@
|
||||
name: Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'develop'
|
||||
- 'github-action'
|
||||
paths:
|
||||
- '.github/workflows/build.yml'
|
||||
- 'action.yml'
|
||||
- 'sfall/**'
|
||||
|
||||
jobs:
|
||||
Build:
|
||||
name: sfall
|
||||
runs-on: windows-2019
|
||||
steps:
|
||||
|
||||
- name: Clone sfall
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Action is used twice for self-testing only
|
||||
# DevXP build results are intentionally *not* included in artifact
|
||||
|
||||
- name: ReleaseXP build
|
||||
id: build
|
||||
uses: ./
|
||||
with:
|
||||
release-xp: true
|
||||
|
||||
- name: DevXP build
|
||||
uses: ./
|
||||
with:
|
||||
dev-xp: true
|
||||
|
||||
- name: Prepare artifact
|
||||
run: |
|
||||
:
|
||||
mkdir -p sfall-build
|
||||
|
||||
cp artifacts/ddraw.ini sfall-build
|
||||
cp artifacts/sfall.dat sfall-build
|
||||
cp "${{ steps.build.outputs.release-xp }}" sfall-build
|
||||
shell: bash
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: sfall-build
|
||||
path: sfall-build
|
||||
retention-days: 14
|
||||
@@ -0,0 +1,34 @@
|
||||
name: github pages
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: '3.x'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt -y -qq install bundler python3-pip
|
||||
pip3 install ruamel.yaml --user
|
||||
|
||||
- name: Build
|
||||
run: ./docs/generate.sh
|
||||
|
||||
- name: Deploy
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./docs/_site
|
||||
user_name: 'github-actions[bot]'
|
||||
user_email: 'github-actions[bot]@users.noreply.github.com'
|
||||
@@ -55,8 +55,10 @@ nb-configuration.xml
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Dd]evXP/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
[Rr]eleaseXP/
|
||||
x64/
|
||||
x86/
|
||||
build/
|
||||
@@ -222,3 +224,9 @@ FakesAssemblies/
|
||||
# Visual Studio 6 workspace options file
|
||||
*.opt
|
||||
sfall/postbuild.cmd
|
||||
|
||||
# jekyll build files
|
||||
docs/_site
|
||||
docs/.sass-cache
|
||||
docs/.jekyll-metadata
|
||||
docs/pages/*.md
|
||||
|
||||
Generated
+8
@@ -23,6 +23,7 @@
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent() {
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.dataGridView1 = new System.Windows.Forms.DataGridView();
|
||||
this.Column0 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
@@ -34,6 +35,7 @@
|
||||
this.bSGlobals = new System.Windows.Forms.Button();
|
||||
this.bArrays = new System.Windows.Forms.Button();
|
||||
this.bEdit = new System.Windows.Forms.Button();
|
||||
this.redrawTimer = new System.Windows.Forms.Timer(this.components);
|
||||
this.bCrittersLvar = new System.Windows.Forms.Button();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
@@ -154,6 +156,11 @@
|
||||
this.bEdit.UseVisualStyleBackColor = true;
|
||||
this.bEdit.Click += new System.EventHandler(this.bEdit_Click);
|
||||
//
|
||||
// redrawTimer
|
||||
//
|
||||
this.redrawTimer.Interval = 200;
|
||||
this.redrawTimer.Tick += new System.EventHandler(this.timer1_Tick);
|
||||
//
|
||||
// bCrittersLvar
|
||||
//
|
||||
this.bCrittersLvar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
@@ -202,6 +209,7 @@
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column1;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column2;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Column3;
|
||||
internal System.Windows.Forms.Timer redrawTimer;
|
||||
private System.Windows.Forms.Button bCrittersLvar;
|
||||
|
||||
}
|
||||
|
||||
@@ -137,6 +137,7 @@ namespace FalloutClient {
|
||||
sr.Close();
|
||||
}
|
||||
Redraw();
|
||||
redrawTimer.Start();
|
||||
}
|
||||
|
||||
private void DebugEditor_FormClosing(object sender, FormClosingEventArgs e) {
|
||||
@@ -188,6 +189,7 @@ namespace FalloutClient {
|
||||
default:
|
||||
return;
|
||||
}
|
||||
redrawTimer.Stop();
|
||||
if (e.ColumnIndex == 2) {
|
||||
string str = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
|
||||
int val;
|
||||
@@ -211,11 +213,13 @@ namespace FalloutClient {
|
||||
connection.WriteInt(converter.GetAsInt(val));
|
||||
}
|
||||
}
|
||||
redrawTimer.Start();
|
||||
}
|
||||
|
||||
private void bEdit_Click(object sender, EventArgs e) {
|
||||
if (dataGridView1.SelectedRows.Count == 0) return;
|
||||
int i = (int)dataGridView1.SelectedRows[0].Tag;
|
||||
redrawTimer.Stop();
|
||||
switch (mode) {
|
||||
case Mode.Arrays: {
|
||||
DataType[] types = new DataType[connection.ArrayLengths[i]];
|
||||
@@ -333,6 +337,7 @@ namespace FalloutClient {
|
||||
}
|
||||
break;
|
||||
}
|
||||
redrawTimer.Start();
|
||||
}
|
||||
|
||||
private void bCrittersLvar_Click(object sender, EventArgs e) {
|
||||
@@ -381,5 +386,9 @@ namespace FalloutClient {
|
||||
private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) {
|
||||
dataGridView1.Rows[e.RowIndex].Tag = e.RowIndex;
|
||||
}
|
||||
|
||||
private void timer1_Tick(object sender, EventArgs e) {
|
||||
connection.WriteDataType(DataTypeSend.RedrawGame);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,4 +129,7 @@
|
||||
<metadata name="Column3.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="redrawTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -48,8 +48,10 @@ namespace FalloutClient {
|
||||
}
|
||||
|
||||
public static string[] ShowEditor(DebugEditor form, string[] names, DataType[] types, string[] values, bool isMap = false) {
|
||||
form.redrawTimer.Start();
|
||||
EditorWindow editor = new EditorWindow(names, types, values, isMap);
|
||||
editor.ShowDialog();
|
||||
form.redrawTimer.Stop();
|
||||
if (editor.save) {
|
||||
if (valueInHex) editor.ConvertValues(false);
|
||||
return editor.values;
|
||||
@@ -70,8 +72,10 @@ namespace FalloutClient {
|
||||
}
|
||||
|
||||
public static string[] ShowEditor(DebugEditor form, string[] lvalues) {
|
||||
form.redrawTimer.Start();
|
||||
EditorWindow editor = new EditorWindow(lvalues);
|
||||
editor.ShowDialog();
|
||||
form.redrawTimer.Stop();
|
||||
if (editor.save) {
|
||||
if (valueInHex) editor.ConvertValues(false);
|
||||
return editor.values;
|
||||
|
||||
@@ -32,6 +32,7 @@ namespace FalloutClient {
|
||||
SetArray = 10,
|
||||
GetLocal = 11,
|
||||
SetLocal = 12,
|
||||
Exit = 254
|
||||
Exit = 254,
|
||||
RedrawGame = 255
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("sfall")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2019")]
|
||||
[assembly: AssemblyCopyright("Copyright (C) 2022")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("4.1.9.0")]
|
||||
[assembly: AssemblyFileVersion("4.1.9.0")]
|
||||
[assembly: AssemblyVersion("4.1.9.1")]
|
||||
[assembly: AssemblyFileVersion("4.1.9.1")]
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
# sfall
|
||||
|
||||
A set of engine modifications for the classic game Fallout 2 in form of a DLL, which modifies executable in memory without changing anything in EXE file itself.
|
||||
[](https://www.gnu.org/licenses/gpl-3.0)
|
||||
[](https://github.com/phobos2077/sfall/actions/workflows/build.yml)
|
||||
[](https://github.com/phobos2077/sfall/actions/workflows/gh-pages.yml)
|
||||
|
||||
A set of engine modifications for the classic game Fallout 2 in the form of a DLL, which modifies executable in memory without changing anything in EXE file itself.
|
||||
|
||||
**Engine modifications include:**
|
||||
- Better support for modern operating systems
|
||||
@@ -10,7 +14,10 @@ A set of engine modifications for the classic game Fallout 2 in form of a DLL, w
|
||||
- Extended scripting capabilities for modders (many new opcodes to control sfall features as well as previously unavailable vanilla engine functions)
|
||||
|
||||
|
||||
Original author: timeslip
|
||||
Original author: **Timeslip**
|
||||
|
||||
Original description: A set of engine modifications for the classic game Fallout 2 by Interplay. Includes fixes for bugs in the original engine, allows fallout to run correctly on modern operating systems, and adds additional features for modders.
|
||||
|
||||
---
|
||||
#### Fallout Engine IDA Database
|
||||
**[Download](https://www.dropbox.com/s/tm0nyx0lnk4yui0/Fallout_1_and_2_IDA68.rar "Download from Dropbox")** (comments are in Russian)
|
||||
|
||||
+139
@@ -0,0 +1,139 @@
|
||||
name: 'sfall'
|
||||
description: 'Builds sfall binaries'
|
||||
author: '@wipe2238'
|
||||
|
||||
###
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# - name: Build sfall
|
||||
# id: sfall
|
||||
# uses: phobos2077/sfall@develop
|
||||
# with:
|
||||
# release-xp: true
|
||||
#
|
||||
# - name: Copy sfall to mod directory
|
||||
# run: copy "${{ steps.sfall.outputs.release-xp }}" "my/mod/directory/ddraw.dll"
|
||||
#
|
||||
###
|
||||
|
||||
# While both inputs are marked as required, users needs to set only one of them (at minimum) to 'true' for action to work
|
||||
inputs:
|
||||
|
||||
release-xp:
|
||||
description: 'Set to true to enable building with ReleaseXP configuration'
|
||||
required: true
|
||||
|
||||
dev-xp:
|
||||
description: 'Set to true to enable building with DevXP configuration'
|
||||
required: true
|
||||
|
||||
# Outputs are always using Windows directory separator (`\`)
|
||||
outputs:
|
||||
|
||||
release-xp:
|
||||
description: 'Full path to ddraw.dll built with ReleaseXP configuration'
|
||||
value: ${{ steps.build-release-xp.outputs.ddraw-dll }}
|
||||
|
||||
dev-xp:
|
||||
description: 'Full path to ddraw.dll built with DevXP configuration'
|
||||
value: ${{ steps.build-dev-xp.outputs.ddraw-dll }}
|
||||
dev-xp-pdb:
|
||||
description: 'Full path to ddraw.pdb built with DevXP configuration'
|
||||
value: ${{ steps.build-dev-xp.outputs.ddraw-pdb }}
|
||||
|
||||
runs:
|
||||
using: 'composite'
|
||||
steps:
|
||||
|
||||
# Quick check for things which should never happen
|
||||
- name: Sanity checks
|
||||
run: |
|
||||
if [[ "${{ runner.os }}" != "Windows" ]]; then
|
||||
echo "[ERROR] This action can only be used on Windows"
|
||||
exit 1
|
||||
elif [[ "${{ inputs.release-xp }}" != "true" ]] && [[ "${{ inputs.dev-xp }}" != "true" ]]; then
|
||||
echo "[ERROR] At least one of following inputs must be set to 'true' -- 'release-xp', 'dev-xp'"
|
||||
exit 1
|
||||
#
|
||||
elif [[ ! -d "$(cygpath --unix "$GITHUB_ACTION_PATH/sfall/")" ]]; then
|
||||
echo "[ERROR] Solution directory not found -- 'sfall\\'"
|
||||
exit 1
|
||||
elif [[ ! -f "$(cygpath --unix "$GITHUB_ACTION_PATH/sfall/ddraw.sln")" ]]; then
|
||||
echo "[ERROR] Solution file not found -- 'sfall\\ddraw.sln'"
|
||||
exit 1
|
||||
fi
|
||||
#
|
||||
shell: bash
|
||||
|
||||
# DXSDK directory must be prepared only once, in case action is used N times
|
||||
# Using `.lib` suffix to make sure directory is ignored by git in exotic scenarios
|
||||
# Using `::set-output` to make sure workflow environment remains unchanged
|
||||
- name: Prepare DXSDK directory
|
||||
id: dxsdk
|
||||
run: |
|
||||
DXSDK_DIR="$GITHUB_ACTION_PATH/sfall/DXSDK.lib"
|
||||
if [[ ! -d "$DXSDK_DIR" ]]; then
|
||||
echo "::group::Prepare DXSDK directory"
|
||||
#
|
||||
git clone --quiet https://github.com/NovaRain/DXSDK_Collection.git "$DXSDK_DIR"
|
||||
cp "$DXSDK_DIR/DXSDK_Aug2007/Lib/x86/dinput.lib" "$DXSDK_DIR/DXSDK_Jun2010/Lib/x86/"
|
||||
cp "$DXSDK_DIR/DXSDK_Feb2010/Lib/x86/ddraw.lib" "$DXSDK_DIR/DXSDK_Jun2010/Lib/x86/"
|
||||
#
|
||||
echo "::endgroup::"
|
||||
fi
|
||||
echo "::set-output name=dir::$(cygpath --windows "$DXSDK_DIR/DXSDK_Jun2010/")"
|
||||
shell: bash
|
||||
|
||||
# MSBuild is not in PATH on Windows machines
|
||||
# Using `::set-output` to make sure workflow environment remains unchanged
|
||||
- name: Prepare MSBuild
|
||||
id: msbuild
|
||||
run: |
|
||||
echo "::group::Prepare MSBuild"
|
||||
|
||||
MSBUILD_EXE="$("/c/Program Files (x86)/Microsoft Visual Studio/Installer/vswhere.exe" -latest -requires Microsoft.Component.MSBuild -find MSBuild/**/Bin/MSBuild.exe)"
|
||||
echo "::set-output name=exe::$MSBUILD_EXE"
|
||||
|
||||
echo "::endgroup::"
|
||||
shell: bash
|
||||
|
||||
# Creating empty `PostBuild.cmd` to avoid false-positive build error
|
||||
- name: Build ReleaseXP
|
||||
id: build-release-xp
|
||||
run: |
|
||||
if [[ "${{ inputs.release-xp }}" == "true" ]]; then
|
||||
echo ::group::Build ReleaseXP
|
||||
|
||||
#
|
||||
echo "@echo off" > "$GITHUB_ACTION_PATH/sfall/PostBuild.cmd"
|
||||
"${{ steps.msbuild.outputs.exe }}" "$GITHUB_ACTION_PATH/sfall/ddraw.sln" -p:Configuration=ReleaseXP -p:Platform=Win32 -p:PlatformToolset=v140_xp
|
||||
#
|
||||
echo "::set-output name=ddraw-dll::$(cygpath --windows "$GITHUB_ACTION_PATH/sfall/ReleaseXP/ddraw.dll")"
|
||||
|
||||
echo "::endgroup::"
|
||||
fi
|
||||
env:
|
||||
DXSDK_DIR: ${{ steps.dxsdk.outputs.dir }}
|
||||
shell: bash
|
||||
|
||||
# Creating empty `PostBuild.cmd` to avoid false-positive build error
|
||||
- name: Build DevXP
|
||||
id: build-dev-xp
|
||||
run: |
|
||||
:
|
||||
if [[ "${{ inputs.dev-xp }}" == "true" ]]; then
|
||||
echo "::group::Build DevXP"
|
||||
|
||||
#
|
||||
echo "@echo off" > "$GITHUB_ACTION_PATH/sfall/PostBuild.cmd"
|
||||
"${{ steps.msbuild.outputs.exe }}" "$GITHUB_ACTION_PATH/sfall/ddraw.sln" -p:Configuration=DevXP -p:Platform=Win32 -p:PlatformToolset=v140_xp
|
||||
#
|
||||
echo "::set-output name=ddraw-dll::$(cygpath --windows "$GITHUB_ACTION_PATH/sfall/DevXP/ddraw.dll")"
|
||||
echo "::set-output name=ddraw-pdb::$(cygpath --windows "$GITHUB_ACTION_PATH/sfall/DevXP/ddraw.pdb")"
|
||||
|
||||
echo "::endgroup::"
|
||||
fi
|
||||
env:
|
||||
DXSDK_DIR: ${{ steps.dxsdk.outputs.dir }}
|
||||
shell: bash
|
||||
@@ -11,7 +11,7 @@ TagSkillBonus=20
|
||||
;Set to 3 to use both modes
|
||||
TagSkillMode=0
|
||||
|
||||
;Set to 1 to base skill costs on spent points instead of current level
|
||||
;Set to 1 to base skill costs on the number of additional points in a skill instead of the current level
|
||||
BasedOnPoints=0
|
||||
|
||||
;Examples
|
||||
|
||||
@@ -4,7 +4,7 @@ KarmaGain=You gained %d karma.
|
||||
KarmaLoss=You lost %d karma.
|
||||
HighlightFail1=You aren't carrying a motion sensor.
|
||||
HighlightFail2=Your motion sensor is out of charge.
|
||||
SuperStimExploitMsg=You cannot use a super stim on someone who is not injured!
|
||||
SuperStimExploitMsg=You cannot use this item on someone who is not injured!
|
||||
BlockedCombat=You cannot enter combat at this time.
|
||||
SaveSfallDataFail=ERROR saving extended savegame information! Check if other programs interfere with savegame files/folders and try again.
|
||||
PartyLvlMsg=Lvl:
|
||||
@@ -16,7 +16,26 @@ PartyOrderAttackHuman=I'll take care of it.|Okay, I got it.|Sounds like a plan.
|
||||
PartyOrderAttackCreature=::Growl::
|
||||
PartyOrderAttackRobot=::Beep::
|
||||
|
||||
HiResInfo=This version of sfall has its own integrated High Resolution Patch mode, which is compatible with the settings of the High Resolution Patch by Mash.\n\nIf you want to continue using the Hi-Res Patch by Mash without seeing this message, disable the 'HiResMode' option in ddraw.ini.\nOr you can disable the external Hi-Res Patch to get new graphics improvements from sfall.\n\nDo you want to disable the High Resolution Patch by Mash?
|
||||
|
||||
[AppearanceMod]
|
||||
RaceText=Race
|
||||
StyleText=Style
|
||||
DoneBtn=Done
|
||||
|
||||
;Custom names for player's unarmed attacks (max 16 characters)
|
||||
[Unarmed]
|
||||
;Punch=Punch:
|
||||
;Kick=Kick:
|
||||
;StrongPunch=Strong Punch:
|
||||
;HammerPunch=Hammer Punch:
|
||||
;Haymaker=Haymaker:
|
||||
;Jab=Jab:
|
||||
;PalmStrike=Palm Strike:
|
||||
;PiercingStrike=Piercing Strike:
|
||||
;StrongKick=Strong Kick:
|
||||
;SnapKick=Snap Kick:
|
||||
;PowerKick=Power Kick:
|
||||
;HipKick=Hip Kick:
|
||||
;HookKick=Hook Kick:
|
||||
;PiercingKick=Piercing Kick:
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
;Game engine tweaks
|
||||
|
||||
[Main]
|
||||
|
||||
|
||||
[Items]
|
||||
;Override the PIDs of the standard healing drugs that AI will use in combat
|
||||
;Set to -1 if you don't want AI to identify this item as a healing drug
|
||||
;Note: Starting from sfall 4.3.1/3.8.31, you can set a new flag (FlagsExt: 0x04000000)
|
||||
;in the proto for other items, so AI will use them for healing in combat as well
|
||||
STIMPAK=40
|
||||
SUPER_STIMPAK=144
|
||||
HEALING_POWDER=237
|
||||
@@ -0,0 +1,66 @@
|
||||
; This file lets you configure the requirements and effects of unarmed attacks
|
||||
|
||||
; You can leave the value empty or omit the parameter to use the engine default value
|
||||
|
||||
; Strong Punch
|
||||
[8]
|
||||
ReqLevel=1 ; required player level
|
||||
SkillLevel=55 ; required Unarmed skill level
|
||||
|
||||
; Required stats
|
||||
Stat0=0 ; ST
|
||||
Stat1=0 ; PE
|
||||
Stat2=0 ; EN
|
||||
Stat3=0 ; CH
|
||||
Stat4=0 ; IN
|
||||
Stat5=6 ; AG
|
||||
Stat6=0 ; LK
|
||||
|
||||
MinDamage=1
|
||||
MaxDamage=2
|
||||
BonusDamage=3 ; bonus damage added to the minimum and maximum damage
|
||||
BonusCrit=0 ; value of the critical hit chance
|
||||
APCost=
|
||||
|
||||
Penetrate=0 ; set to 1 to make the attack reduce target's armor DT (the formula is determined by the engine or a hook script)
|
||||
Secondary=0 ; set to 1 to assign the attack to the secondary mode (be careful when setting this parameter)
|
||||
|
||||
; Hammer Punch
|
||||
[9]
|
||||
|
||||
; Haymaker
|
||||
[10]
|
||||
|
||||
; Jab
|
||||
[11]
|
||||
|
||||
; Palm Strike
|
||||
[12]
|
||||
|
||||
; Piercing Strike
|
||||
[13]
|
||||
|
||||
; Strong Kick
|
||||
[14]
|
||||
|
||||
; Snap Kick
|
||||
[15]
|
||||
|
||||
; Power Kick
|
||||
[16]
|
||||
|
||||
; Hip Kick
|
||||
[17]
|
||||
|
||||
; Hook Kick
|
||||
[18]
|
||||
|
||||
; Piercing Kick
|
||||
[19]
|
||||
|
||||
; Default attacks (any requirements are ignored)
|
||||
; Punch
|
||||
[4]
|
||||
|
||||
; Kick
|
||||
[5]
|
||||
@@ -4,10 +4,10 @@
|
||||
Key=42
|
||||
|
||||
; Set to 1 to also highlight containers
|
||||
Containers=1
|
||||
Containers=0
|
||||
|
||||
; Set to 1 to also highlight lootable corpses
|
||||
Corpses=1
|
||||
Corpses=0
|
||||
|
||||
; Set to 1 to only highlight objects in the player's line-of-sight
|
||||
CheckLOS=0
|
||||
|
||||
+149
-111
@@ -1,32 +1,37 @@
|
||||
;sfall configuration settings
|
||||
;v4.2.9
|
||||
;v4.3.4
|
||||
|
||||
[Main]
|
||||
;Change to 1 if you want to use command line args to tell sfall to use another ini file.
|
||||
;Set to 1 to enable the built-in High Resolution Patch mode that is similar to the hi-res patch by Mash
|
||||
;The required settings will be read from the f2_res.ini configuration file of the original hi-res patch
|
||||
HiResMode=1
|
||||
|
||||
;Set to 1 if you want to use command line arguments to tell sfall to use another ini file
|
||||
;This option is always enabled in 4.3.3/3.8.33 or later. The information is left for reference only
|
||||
UseCommandLine=0
|
||||
|
||||
;Uncomment and point to a file to get alternate translations for some sfall messages
|
||||
;This file can be placed in text\<language>\ for sfall to get the translations depending on the game language
|
||||
;TranslationsINI=sfall\Translations.ini
|
||||
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[ExtraPatches]
|
||||
;This section allows you to set multiple paths to folders containing mods or patches that will be loaded by the game
|
||||
;The priority of read files will be higher than the files in patchXXX.dat
|
||||
;If DataLoadOrderPatch is enabled, the data load order will be:
|
||||
;master_patches > critter_patches > PatchFile99 - PatchFile0 > patchXXX.dat > ...
|
||||
;Paths to folders and Fallout .dat files are supported. The available range for PatchFile option names is from 0 to 99
|
||||
;The greater numbers take precedence over lesser numbers
|
||||
;If DataLoadOrderPatch is enabled, the data load order is:
|
||||
;master_patches > critter_patches > [extra patches] > patchXXX.dat > sfall.dat > critter_dat > f2_res_patches > f2_res_dat > master_dat
|
||||
;Paths to folders and Fallout .dat files are supported
|
||||
;The PatchFile## options are available from 0 to 99. Larger numbers take precedence over smaller numbers (same as patchXXX.dat)
|
||||
;PatchFile0=mods\RP_data
|
||||
|
||||
;Path to the folder in which the game will automatically search and load custom files (by *.dat mask, including folders)
|
||||
;The data load order of the files in the folder will be in reverse alphabetical order of the filenames
|
||||
;The files placed in this folder will have higher priority than the PatchFileXX options
|
||||
;This option has no effect in v4.2.6 or later. The default path is <GameRoot>\mods\
|
||||
;The files placed in this folder will have higher priority than the PatchFile## options
|
||||
;This option has no effect in 4.2.6 or later. The path is fixed to <GameRoot>\mods\
|
||||
;AutoSearchPath=mods
|
||||
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[Speed]
|
||||
;Set to 0 to disable everything in this section
|
||||
;Set to 1 to enable options related to the game speed adjustment (SpeedMulti#, SpeedKey#, SpeedModKey, and SpeedToggleKey)
|
||||
Enable=1
|
||||
|
||||
;The speeds corresponding to each slot in percent. (i.e. 100 is normal speed)
|
||||
@@ -44,9 +49,6 @@ 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
|
||||
@@ -64,8 +66,8 @@ GraphicsWidth=0
|
||||
GraphicsHeight=0
|
||||
|
||||
;Window position data. Do not modify
|
||||
;Set to 0 to reset if the window position is incorrect
|
||||
WindowData=0
|
||||
;Set to -1 or 0 to reset if the window position is incorrect
|
||||
WindowData=-1
|
||||
|
||||
;Uncomment the option to use a hardware shader (requires DX9 graphics mode)
|
||||
;The shader file <name>.fx must be placed in <GameRoot>\<master_patches>\shaders\ and must contain one technique with one or more passes
|
||||
@@ -93,6 +95,7 @@ Use32BitHeadGraphics=0
|
||||
;Set to 1 to automatically search for alternative AVI video files when Fallout tries to play the game movies
|
||||
;Set to 2 to force AVI videos to fit the screen width
|
||||
;Requires DX9 graphics mode
|
||||
;The recommended video codec is Xvid
|
||||
AllowDShowMovies=0
|
||||
|
||||
;Fade effect time percentage modifier
|
||||
@@ -110,13 +113,13 @@ ActionPointsBar=0
|
||||
;Set to 2 to skip correcting the position of entrance markers on town maps
|
||||
;You can use resized FRMs in 700x682 for town maps in the expanded world map interface
|
||||
;Requires High Resolution Patch v4.1.8 and a new WORLDMAP.frm file in art\intrface\ (included in sfall.dat)
|
||||
;The resolution of hi-res patch must be set to at least 890x720
|
||||
;The resolution of the hi-res patch must be set to at least 890x720
|
||||
ExpandWorldMap=0
|
||||
|
||||
;Set to 1 to draw a dotted line while traveling on the world map (similar to Fallout 1)
|
||||
WorldMapTravelMarkers=0
|
||||
;Uncomment these lines to change the appearance of the markers
|
||||
;The color index in Fallout default palette (valid range: 1..255; default is 134)
|
||||
;The color index in Fallout default palette (valid range: 1..228; default is 134)
|
||||
;TravelMarkerColor=134
|
||||
;The length and spacing of the dots in pixels for each type of terrain in worldmap.txt
|
||||
;Syntax is 'length:spacing', with each pair separated by a comma (valid range: 1..10; default is 2)
|
||||
@@ -143,13 +146,18 @@ AllowDShowSound=0
|
||||
;Set to 2 to overwrite all occurrences of the music path
|
||||
OverrideMusicDir=1
|
||||
|
||||
;Set to 1 to automatically search for new SFX sound files at game startup
|
||||
;Note: With this option enabled, you will no longer need to use the utility regsnd.exe to register new SFX sounds
|
||||
;This will slightly increase the startup time of the game on older computers
|
||||
AutoSearchSFX=1
|
||||
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[Input]
|
||||
;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
|
||||
;slots to scroll. My mouse moves 120 pixel in the z direction for one click of the mouse
|
||||
;slots to scroll. My mouse moves 120 pixels in the z direction for one click of the mouse
|
||||
;wheel, but this may vary depending on your mouse manufacturer and windows settings.
|
||||
;Set to 0 to only ever scroll 1 click
|
||||
ScrollMod=0
|
||||
@@ -159,9 +167,9 @@ ScrollMod=0
|
||||
MouseSensitivity=100
|
||||
|
||||
;DX scancode of a key to press when the middle mouse button is clicked
|
||||
;The default of 0x30 toggles between your two weapons
|
||||
;The default of 48 ('B' key) toggles between your active items
|
||||
;Set to 0 to disable
|
||||
MiddleMouse=0x30
|
||||
MiddleMouse=48
|
||||
|
||||
;Set to 1 to reverse the left and right mouse buttons
|
||||
ReverseMouseButtons=0
|
||||
@@ -179,7 +187,7 @@ BackgroundMouse=0
|
||||
SpeedModKey=-1
|
||||
|
||||
;A key to press to toggle the speed tweak on or off
|
||||
;Specify 0 if you don't want a toggle key, or a DX scancode otherwise
|
||||
;Set to 0 if you don't want a toggle key, or a DX scancode otherwise
|
||||
SpeedToggleKey=0
|
||||
|
||||
;The keys corresponding to the 10 speed slots
|
||||
@@ -226,7 +234,7 @@ DebugEditorKey=0
|
||||
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 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 or -3 to remove the time limit, automatically reset the date, but override Fallout's GetDate function to return the correct year
|
||||
TimeLimit=13
|
||||
@@ -240,6 +248,7 @@ WorldMapTimeMod=100
|
||||
WorldMapFPSPatch=1
|
||||
|
||||
;Controls the world map speed if WorldMapFPSPatch is 1. Higher values cause slower movement
|
||||
;Default is 66 milliseconds
|
||||
WorldMapDelay2=66
|
||||
|
||||
;Set to 1 to enable Ray's patch to make world map encounter rate independent of your travel speed
|
||||
@@ -248,8 +257,8 @@ WorldMapEncounterFix=0
|
||||
WorldMapEncounterRate=5
|
||||
|
||||
;The number of slots available in the locations list panel of the world map
|
||||
;Set to 0 to leave unchanged. 17 is default.
|
||||
;Setting this greater than 17 requires a replacement background FRM, or you'll get glitched graphics
|
||||
;Set to 0 to leave the default unchanged (i.e. 17). The maximum is 127
|
||||
;Setting this greater than 17 requires a replacement WMTABS.frm file in art\intrface\, or you'll get glitched graphics
|
||||
WorldMapSlots=0
|
||||
|
||||
;To start a new game somewhere other than artemple.map, uncomment the next line and set it to the map you want to load
|
||||
@@ -262,7 +271,7 @@ 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
|
||||
;Set to 1 to enable script 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
|
||||
@@ -272,6 +281,7 @@ UseFileSystemOverride=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
|
||||
;This option is always enabled in 4.3/3.8.30 or later. The information is left for reference only
|
||||
DataLoadOrderPatch=1
|
||||
|
||||
;Set to 1 to load alternative dialog msg files from text\<language>\dialog_female\ for female PC
|
||||
@@ -319,7 +329,7 @@ Movie17=credits.mve
|
||||
|
||||
;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 480 in the x direction and 400 in the y direction.
|
||||
;Not compatible with the res patch!
|
||||
;Does not work with the hi-res patch by Mash!
|
||||
;LocalMapXLimit=480
|
||||
;LocalMapYLimit=400
|
||||
|
||||
@@ -365,11 +375,11 @@ ViewYPos=-1
|
||||
;Set to 1 to force Fallout not to use multiple processor cores even if they are available
|
||||
SingleCore=1
|
||||
|
||||
;Set to 1 to override the art_chache_size setting in fallout2.cfg
|
||||
;Set to 1 to override the art_cache_size setting in fallout2.cfg
|
||||
OverrideArtCacheSize=0
|
||||
|
||||
;Prevents you from saving in combat except at the start of your turn to avoid a few bugs
|
||||
;Note that even with this option enabled, it is still not advisable to save in combat at all (obsolete information)
|
||||
;Note that even with this option enabled, it is still not advisable to save in combat
|
||||
;Set to 2 to block all saving in combat
|
||||
SaveInCombatFix=1
|
||||
|
||||
@@ -377,7 +387,7 @@ SaveInCombatFix=1
|
||||
;Player's level is capped once the highest specified level is reached
|
||||
;XPTable=50,100,200
|
||||
|
||||
;Set to 1 to enable additional weapon animation codes from o to t
|
||||
;Set to 1 to enable additional weapon animation codes from 'o' to 't'
|
||||
;The 4 byte value at 0x39 of weapon protos may range from 0 to 15 rather than 0 to 10
|
||||
;Since the letters 'n' and 'r' are in use for other animations, an animation code of 11 corresponds to 's' and 15 to 't'
|
||||
AdditionalWeaponAnims=1
|
||||
@@ -419,7 +429,7 @@ CorpseDeleteTime=6
|
||||
;Set a number of milliseconds to idle each input loop
|
||||
;Set to -1 to disable
|
||||
;Set to 0 to idle only if other processes are waiting for processor time (WinXP/2000: if processes have equal priority)
|
||||
;Set to 1 (or some higher number if needed) to prevent 100% CPU use. The maximum is 127
|
||||
;Set to 1 (or some higher number if needed) to prevent 100% CPU use. The maximum is 30
|
||||
ProcessorIdle=-1
|
||||
|
||||
;Set to 1 if using the hero appearance mod
|
||||
@@ -436,17 +446,9 @@ SkipOpeningMovies=0
|
||||
;Set to 0 to disable
|
||||
NPCsTryToSpendExtraAP=0
|
||||
|
||||
;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 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
|
||||
;Allows the use of tiles over 80x36 in size. sfall will just split and resave them to art\tiles\zzz####.frm at startup
|
||||
;Set to 1 to check all tiles on started (slow, but can also be useful for checking the correct size of your new tiles)
|
||||
;Set to 2 if you provide a XLtiles.lst file in art\tiles\ containing a list of the tile indexes that need checking
|
||||
AllowLargeTiles=0
|
||||
|
||||
;Set to 1 to boost the maximum number of tile FRMs from 4096 to 16383
|
||||
@@ -462,9 +464,6 @@ Doctor=293
|
||||
Science=293
|
||||
Repair=293
|
||||
|
||||
;Set to 1 to remove window position rounding for script-created windows
|
||||
RemoveWindowRounding=1
|
||||
|
||||
;Set to 1 to add scroll buttons to the pipboy quest list, and remove the quests per area limit
|
||||
;Set to 2 to use a different set of scroll buttons
|
||||
UseScrollingQuestsList=1
|
||||
@@ -491,12 +490,13 @@ UseScrollingQuestsList=1
|
||||
ExtraSaveSlots=0
|
||||
|
||||
;To use more than one save slot for quick saving (F6 key) without picking a slot beforehand, set the next two lines
|
||||
;AutoQuickSave sets how many save slots on a page you want to use for quick saving (valid range: 1..10)
|
||||
;AutoQuickSavePage is the page number to use (valid range: 1..1000) if ExtraSaveSlots is enabled
|
||||
;The quick saves will be rotated from the first slot on the page to the n-th slot
|
||||
;Set to 0 to disable. AutoQuickSave will use the current selected page if AutoQuickSavePage is disabled
|
||||
;Quick save will cyclically overwrite saves from the first slot on the specified page to the last slot on the n-th page
|
||||
;AutoQuickSave sets how many pages you want to use for quick saving (valid range: 1..10)
|
||||
;Set to 0 to disable
|
||||
AutoQuickSave=0
|
||||
AutoQuickSavePage=0
|
||||
;AutoQuickSavePage is the page number to start at if ExtraSaveSlots is enabled (valid range: 0..999)
|
||||
;Set to -1 to use the current selected page (not recommended)
|
||||
AutoQuickSavePage=1
|
||||
|
||||
;Set to 1 to speed up the HP/AC counter animations
|
||||
;Set to 2 to update the HP/AC counters instantly
|
||||
@@ -541,11 +541,11 @@ RemoveCriticalTimelimits=0
|
||||
;MainMenuBigFontColour=0x3C
|
||||
|
||||
;Alternative behaviors to the Fast Shot trait
|
||||
;0 - Fallout 2 original behavior: -1 AP cost for ranged weapons; aimed attacks are disabled
|
||||
;1 - Haenlomal's fix: aimed attacks are enabled for melee/unarmed weapons and HtH attacks
|
||||
;0 - Fallout 2 original behavior: -1 AP cost for ranged weapons. Aimed attacks are disabled
|
||||
;1 - Haenlomal's tweak: aimed attacks are enabled for melee/unarmed weapons and HtH attacks
|
||||
;2 - Alternative behavior: apply -1 AP cost to melee/unarmed weapons and HtH attacks
|
||||
;3 - Fallout 1 original behavior: -1 AP cost for all weapons; aimed attacks are disabled
|
||||
FastShotFix=1
|
||||
;3 - Fallout 1 original behavior: -1 AP cost for all weapons. Aimed attacks are disabled
|
||||
FastShotFix=0
|
||||
|
||||
;Set to 1 to fix the carry weight penalty of the Small Frame trait not being applied to bonus Strength points
|
||||
SmallFrameFix=0
|
||||
@@ -559,7 +559,7 @@ BoostScriptDialogLimit=0
|
||||
;Add 4 to the mode to limit the weight check to used items only
|
||||
;You can use message number 542/543 in proto.msg and message number 35 in inventry.msg to set up custom messages for item size
|
||||
CritterInvSizeLimitMode=0
|
||||
CritterInvSizeLimit=100
|
||||
CritterInvSizeLimit=200
|
||||
|
||||
;Some bit flags to alter behaviour of the motion sensor
|
||||
;1 - Allow sensor use on automap when motion sensor is in pack rather than hands
|
||||
@@ -588,27 +588,6 @@ SuperStimExploitFix=0
|
||||
InventoryApCost=4
|
||||
QuickPocketsApCostReduction=2
|
||||
|
||||
;Set to 1 to fix obj_can_see_obj script function to allow critters to see through objects with 'ShootThru' flag set and other critters in front of them
|
||||
;Note that enabling this option can cause unexpected NPC behavior in some cases, e.g. initiating combat or dialogue when the player is behind certain obstacles
|
||||
ObjCanSeeObj_ShootThru_Fix=0
|
||||
|
||||
;Set to 1 to fix the broken obj_can_hear_obj script function
|
||||
ObjCanHearObjFix=0
|
||||
|
||||
;Set to 1 to enable the mood argument of start_gdialog script function to be available for talking heads
|
||||
;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 attacker_results/target_results arguments and repurpose the unused called_shot/num_attacks arguments of attack_complex script function
|
||||
;New behavior of the arguments:
|
||||
;called_shot - additional damage when hitting the target
|
||||
;num_attacks - the number of free action points on the first turn only
|
||||
AttackComplexFix=0
|
||||
|
||||
;Set to 1 to fix the issue with the division operator treating negative integers as unsigned
|
||||
;Note: To perform the unsigned integer division, use the new 'div' operator
|
||||
DivisionOperatorFix=1
|
||||
|
||||
;Set to 1 to enable the balanced bullet distribution formula for burst attacks
|
||||
ComputeSprayMod=0
|
||||
|
||||
@@ -638,11 +617,9 @@ ExplosionsEmitLight=0
|
||||
;MovieTimer_artimer3=270
|
||||
;MovieTimer_artimer4=360
|
||||
|
||||
;Set to 1 to enable the new arrays behavior (default behavior)
|
||||
;Set to 0 for backward compatibility with pre-3.4 scripts
|
||||
arraysBehavior=1
|
||||
|
||||
;Set to 1 to add proper checks if there is enough ammo to use weapons that use multiple ammo per shot
|
||||
;Set to 1 to add proper check for ammo before attacking and proper calculation of the number of burst rounds
|
||||
;By default, weapons can make attacks when at least one ammo is left, regardless of ammo cost calculations
|
||||
;Note that enabling this option will prevent super cattle prods and mega power fists from attacking with only one ammo left
|
||||
CheckWeaponAmmoCost=0
|
||||
|
||||
;Controls the speed of combat panel animations (lower - faster; valid range: 0..65535)
|
||||
@@ -672,7 +649,7 @@ EnableMusicInDialogue=0
|
||||
DontTurnOffSneakIfYouRun=0
|
||||
|
||||
;Changes the distance at which the player will switch to walking when trying to use objects (valid range: 0..3)
|
||||
;Set to 0 to disable switching. (Default is 3)
|
||||
;Default is 3. Set to 0 to disable switching
|
||||
UseWalkDistance=3
|
||||
|
||||
;Changes the displayed message when you recover from the negative effects of radiation exposure
|
||||
@@ -685,14 +662,6 @@ ActiveGeigerMsgs=1
|
||||
;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 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
|
||||
|
||||
@@ -722,25 +691,10 @@ DisplaySwiftLearnerExp=1
|
||||
;Set to 1 to display party member's current level/AC/addict flag on the combat control panel
|
||||
PartyMemberExtraInfo=0
|
||||
|
||||
;Set to 1 to fix the bug of using First Aid/Doctor skills when using them on the player
|
||||
;This will cause the party member to apply his/her skills when you use First Aid/Doctor skills on the player, but only if
|
||||
;the player is standing next to the party member
|
||||
;Note that because the related engine function is not fully implemented, enabling this option without a global script
|
||||
;that overrides First Aid/Doctor functions has very limited usefulness
|
||||
PartyMemberSkillFix=0
|
||||
|
||||
;Set to 1 to skip loading all game settings except the game/combat difficulty from saved games
|
||||
;Set to 2 to also skip loading the game/combat difficulty settings
|
||||
SkipLoadingGameSettings=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
|
||||
@@ -748,6 +702,79 @@ 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
|
||||
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
; Critical modding options - the following options should be changed with caution
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
|
||||
;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 fix obj_can_see_obj script function to allow critters to see through objects with 'ShootThru' flag set and other critters in front of them
|
||||
;Note that enabling this option can cause unexpected NPC behavior in some cases, e.g. initiating combat or dialogue when the player is behind certain obstacles
|
||||
ObjCanSeeObj_ShootThru_Fix=0
|
||||
|
||||
;Set to 1 to fix the broken obj_can_hear_obj script function
|
||||
ObjCanHearObjFix=0
|
||||
|
||||
;Set to 1 to enable the 'mood' argument of start_gdialog script function for talking heads
|
||||
;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 attacker_results/target_results arguments and repurpose the unused called_shot/num_attacks arguments of attack_complex script function
|
||||
;New behavior of the arguments:
|
||||
;called_shot - additional damage when hitting the target
|
||||
;num_attacks - the number of free action points on the first turn only
|
||||
AttackComplexFix=0
|
||||
|
||||
;Set to 1 to make the create_object_sid script function run the 'start' procedure of attached script upon object creation
|
||||
;By default, the 'start' procedure of attached script is executed after the current script procedure is finished
|
||||
;Note that enabling this option may cause unexpected results with some existing game scripts
|
||||
CreateObjectSidFix=0
|
||||
|
||||
;Set to 1 to fix the execution of the 'use_p_proc' procedure for grave type containers when they are in the open state
|
||||
;By default, using open graves does not run the 'use_p_proc' procedure of attached script like other containers
|
||||
;Note that enabling this option will cause problems for existing grave scripts
|
||||
GraveContainersFix=0
|
||||
|
||||
;Set to 1 to fix the issue with the division operator treating negative integers as unsigned
|
||||
;Note: To perform the unsigned integer division, use the new 'div' operator
|
||||
DivisionOperatorFix=1
|
||||
|
||||
;Set to 1 to fix the priority score calculation for choosing the best weapon for NPCs
|
||||
;Note that enabling this option can affect the weapon of choice for some NPCs
|
||||
AIBestWeaponFix=1
|
||||
|
||||
;Set to 1 to fix NPCs not taking chem_primary_desire in AI.txt as a preference list when using drugs in their inventory
|
||||
;Set to 2 to allow NPCs to use only the drugs listed in chem_primary_desire and healing drugs (stimpaks and healing powder)
|
||||
;Note: chem_primary_desire w/o fixes prevents the specified item PID from being consumed if all three values in the list are the same PID
|
||||
;chem_primary_desire also works as a priority list of drug items the NPC will try to pick up in combat when they are on the ground
|
||||
AIDrugUsePerfFix=0
|
||||
|
||||
;Set to 1 to fix the bug of using First Aid/Doctor skills when using them on the player
|
||||
;This will cause the party member to apply his/her skills when you use First Aid/Doctor skills on the player, but only if
|
||||
;the player is standing next to the party member
|
||||
;Note that because the related engine function is not fully implemented, enabling this option without a global script
|
||||
;that overrides First Aid/Doctor functions has very limited usefulness
|
||||
PartyMemberSkillFix=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 will break the map changes in Modoc and Vault 15 in Fallout 2
|
||||
DisableSpecialMapIDs=0
|
||||
|
||||
;Set to 1 to disable the special handling of city areas 45 and 46 in the engine when visiting Area 45:
|
||||
;Area 45 automatically disappears from the world map, and Area 46 appears on the world map
|
||||
;Note that enabling this option will break the location change of the 'Fake Vault 13' in Fallout 2
|
||||
DisableSpecialAreas=0
|
||||
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
; Configuration ini files
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
@@ -763,7 +790,8 @@ CreditsAtBottom=0
|
||||
;Point the next line to an ini file containing the replacement skill data
|
||||
;SkillsFile=sfall\Skills.ini
|
||||
|
||||
;To add additional perks to the game, uncomment the next line and set it to point to a file containing perk information
|
||||
;To add additional perks to the game, uncomment the next line and point to a file containing perk information
|
||||
;See the Perks.ini in the modders pack for an example file
|
||||
;PerksFile=sfall\Perks.ini
|
||||
|
||||
;To add additional books to the game, uncomment the next line and point to a file containing book information
|
||||
@@ -777,6 +805,13 @@ CreditsAtBottom=0
|
||||
;Point to an ini file containing elevator data
|
||||
;ElevatorsFile=sfall\Elevators.ini
|
||||
|
||||
;Allows you to change the requirements and effects of unarmed attacks
|
||||
;See the Unarmed.ini in the modders pack for an example file
|
||||
;UnarmedFile=sfall\Unarmed.ini
|
||||
|
||||
;To change some engine parameters for the game mechanics, uncomment the next line
|
||||
;TweaksFile=sfall\Tweaks.ini
|
||||
|
||||
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
[Scripts]
|
||||
;Comma-separated list of masked paths to load global scripts from
|
||||
@@ -808,11 +843,8 @@ AllowUnsafeScripting=0
|
||||
;Does not require sfall debugging mode
|
||||
;ExtraCRC=0x00000000,0x00000000
|
||||
|
||||
;Set to 1 to skip the executable file size check
|
||||
;Set to 1 to skip the compatibility mode check
|
||||
;Does not require sfall debugging mode
|
||||
SkipSizeCheck=0
|
||||
|
||||
;Change to 1 to skip the compatibility mode check
|
||||
SkipCompatModeCheck=0
|
||||
|
||||
;Fallout 2 Debug Patch
|
||||
@@ -835,6 +867,10 @@ 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
|
||||
|
||||
;A key to press to toggle the display of the hex grid on the map on or off
|
||||
;Set to 0 to disable, or a DX scancode otherwise
|
||||
MapGridToggleKey=0
|
||||
|
||||
;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
|
||||
@@ -851,10 +887,12 @@ Test_ForceFloats=0
|
||||
|
||||
;These options control what output is saved in the debug log (sfall-log.txt)
|
||||
;Prints messages duing sfall initialization
|
||||
Init=0
|
||||
Init=1
|
||||
;Prints messages relating to hook scripts
|
||||
Hook=0
|
||||
;Prints messages relating to scripting
|
||||
Script=0
|
||||
;Prints messages relating to the critical table
|
||||
Criticals=0
|
||||
Criticals=1
|
||||
;Prints messages relating to engine fixes
|
||||
Fixes=1
|
||||
|
||||
Binary file not shown.
@@ -1,14 +1,14 @@
|
||||
/*
|
||||
|
||||
Ammo INI Loader mod for Fallout 2 by NovaRain
|
||||
---------------------------------------------
|
||||
Ammo INI Loader mod v1.1 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
|
||||
Requires sfall 4.0/3.8.29 or higher
|
||||
|
||||
*/
|
||||
|
||||
@@ -23,7 +23,7 @@ variable ammoData;
|
||||
variable enabled;
|
||||
|
||||
procedure start begin
|
||||
variable i := 1, ammo, ammoPid, dmgMod;
|
||||
variable i := 1, ammo, ammoSection, dmgMod;
|
||||
if game_loaded then begin
|
||||
enabled := get_ini_setting("ddraw.ini|Misc|DamageFormula");
|
||||
if (enabled == 1 or enabled == 2) then
|
||||
@@ -37,19 +37,19 @@ procedure start begin
|
||||
if (enabled <= 0) then return;
|
||||
|
||||
ammoData := create_array_map;
|
||||
ammoPid := enabled; // pid from the first section
|
||||
while (ammoPid > 0) do begin
|
||||
ammoSection := get_ini_section(ammoIni, "" + i);
|
||||
while (ammoSection.pid > 0) do begin
|
||||
ammo := create_array_map; // create permanent arrays
|
||||
ammo.ac_adjust := get_ini_setting(ammoIni + "|" + i + "|ac_adjust");
|
||||
ammo.dr_adjust := get_ini_setting(ammoIni + "|" + i + "|dr_adjust");
|
||||
ammo.ac_adjust := atoi(ammoSection.ac_adjust);
|
||||
ammo.dr_adjust := atoi(ammoSection.dr_adjust);
|
||||
// dam_mult and dam_div must be positive integers
|
||||
dmgMod := get_ini_setting(ammoIni + "|" + i + "|dam_mult");
|
||||
dmgMod := atoi(ammoSection.dam_mult);
|
||||
ammo.dam_mult := dmgMod if (dmgMod > 0) else 1;
|
||||
dmgMod := get_ini_setting(ammoIni + "|" + i + "|dam_div");
|
||||
dmgMod := atoi(ammoSection.dam_div);
|
||||
ammo.dam_div := dmgMod if (dmgMod > 0) else 1;
|
||||
ammoData[ammoPid] := ammo;
|
||||
ammoData[atoi(ammoSection.pid)] := ammo;
|
||||
i++;
|
||||
ammoPid := get_ini_setting(ammoIni + "|" + i + "|pid");
|
||||
ammoSection := get_ini_section(ammoIni, "" + i);
|
||||
end
|
||||
call map_enter_p_proc;
|
||||
debug_msg("Ammo INI Loader mod: " + ammoIni + " - set " + (i - 1) + " ammo protos.");
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user