Compare commits

..
126 Commits
Author SHA1 Message Date
NovaRain c427604d8d Edited code comment in the previous commit
Code format edits to BugFixes.cpp.
2022-04-07 20:45:05 +08:00
NovaRain e7e6175084 Fixed item planting for non-biped critters with the "barter" flag set
(BGforgeNet/Fallout2_Unofficial_Patch#95)

Updated version number.
2022-04-04 21:34:01 +08:00
NovaRain 73e1faae92 Removed commented code in the previous commit
Edits to documents and README.md.
2022-03-28 14:57:37 +08:00
NovaRain bdb95c80ec Edits to hookscripts.md
Corrected a typo in arrays.md.
Removed redundant compiler txt files.
2022-03-21 22:51:57 +08:00
NovaRain a9a5627b83 Removed FadeBackgroundMusic option (cur. disabled)
* because the fix code doesn't work on all supported systems.
2022-03-21 08:45:38 +08:00
NovaRain e566db91bb Updated Ammo INI Loader example script mod
Updated version number.
2022-03-15 13:02:33 +08:00
NovaRain 8d6e6874ee Added .gitattributes with ssl syntax highlighting
Minor code edits to the built-in item highlighting function.
2022-03-11 20:32:55 +08:00
NovaRain 7cc25efb01 Code edits converge with 4.x 2022-02-20 08:56:43 +08:00
NovaRain b1323fc07a Code edits to Graphics.cpp & Logging.cpp
Minor edits to other code/documents.
Updated version number.
2022-02-17 10:26:42 +08:00
NovaRain 5fcf4aae50 Reverted the palette update method for DX9 mode to pre-3.8.31
* moving the processing to GPU (commit 932a9f3)

Improved the functionality of AllowDShowMovies:
now can take screenshots and press any key to skip AVI movies.

Code edits to Logging.cpp.
2022-02-14 12:49:10 +08:00
NovaRain 42afaa46ed Fixed the game printing an incorrect item name in some cases
Minor fixes in Graphics.cpp and InputFuncs.cpp.
2022-02-13 07:46:55 +08:00
NovaRain 8b858b6cb9 Reverted the limit on hit chance (commit 024e8b1)
* reason: the text length is depend on the frm.
2022-02-13 07:40:33 +08:00
NovaRain e8c952d082 Code correction on DX9 initialization
Some minor code edits.
2022-02-12 11:02:58 +08:00
NovaRain 024e8b1777 Added minimum and maximum limits to the hit chance
* to prevent display glitches (BGforgeNet/Fallout2_Unofficial_Patch#85)

Lowered the max number of PNG screenshots to 10K.
2022-02-11 15:07:20 +08:00
NovaRain 6b14d4f86e Fixed the screenshot for sfall DX9 mode
* Now the screenshots are saved in PNG format.

[TEST] Changed the DirectX 9 device creation mode.
2022-02-10 13:39:31 +08:00
NovaRain 6e10f624a3 Backported the code injection system for game hooks from 4.1
Split HookScripts.cpp/h to multiple sets in HookScripts\ as 4.x.

Reverted tile_num to stdcall (commit a5f57d4)
2022-02-08 22:30:06 +08:00
NovaRain bc380b978d Fixed the copyright line in the credits
Code edits to main.cpp and Graphics.cpp to converge with 4.x.
2022-02-01 09:40:33 +08:00
NovaRain d2b3529ed0 Fixed the music not playing after loading a saved game (#422)
* if the save is on the same map, and while in the game.
2022-01-20 07:13:50 +08:00
NovaRain f77cd85f95 Minor code edits 2022-01-19 09:43:05 +08:00
NovaRain 39c5ab3674 Removed unused code in Graphics.cpp 2022-01-18 10:16:53 +08:00
NovaRain 7d75023b81 Added HLSL source files and compiled shader files
* this should remove the hidden dependency on d3dcompiler_xx.dll.
2022-01-18 09:05:40 +08:00
NovaRain bd629b5460 Added a new warning message on shader effects to Graphics.cpp 2022-01-17 12:50:19 +08:00
NovaRain 5b180286d1 Added a redraw timer to the debug editor
* redraws the background game screen when moving the editor window.
* works for sfall DX9 mode.
2022-01-17 09:52:29 +08:00
NovaRain 814c280432 Updated the year for version info
Added GamePids.h from develop branch.
2022-01-17 08:55:21 +08:00
NovaRain c5f52105ec Code correction to DebugEditor.cpp 2022-01-15 12:00:01 +08:00
NovaRain 18cc3f7aa9 Increased the width of the mouse drop area for inv on the barter screen 2022-01-15 09:57:28 +08:00
NovaRain fda97ffefb Edits to the arrays document 2022-01-13 21:31:33 +08:00
NovaRain 00508adfb1 Fixed a bug in 3.8.31 that caused AI to be unable to use some weapons
Code edits regarding AIpref in Enums.h.
2022-01-13 10:26:36 +08:00
NovaRain e906be67ab Updated documents for the removal of ArraysBehavior option
Some other minor edits to documents.
2022-01-12 09:43:04 +08:00
NovaRain abe2430495 Fixed crash in the previous commit 2022-01-11 11:54:47 +08:00
NovaRain de51b6838b Redid the idle implementation for ProcessorIdle
Renamed RunGlobalScripts# functions to the same as 4.x.
2022-01-11 10:03:35 +08:00
NovaRain 52126bf62d Removed ArraysBehavior and RemoveWindowRounding from ddraw.ini
* both are now always enabled
2022-01-07 06:47:49 +08:00
NovaRain be7c1210a0 Changed the "Radiated" on the char screen to be highlighted in gray
* when the player still has an impending radiation effect

Unified the naming style for color variables.
2022-01-06 14:19:47 +08:00
NovaRain 08a96bc27e Code edits to Graphics.cpp for device lost state 2022-01-04 07:04:13 +08:00
NovaRain f94085be93 Fixed black screen after restoring DX9 device
Minor code edits.
2022-01-03 23:59:27 +08:00
NovaRain 89a49b4f32 Improved the message box for CRC mismatch
Changed SkipCompatModeCheck to not require sfall debugging mode.
Minor code edits.
2021-12-28 12:48:41 +08:00
NovaRain cf5952c031 Removed SkipSizeCheck from ddraw.ini
* the executable file size check is also removed (mostly).
2021-12-27 10:18:14 +08:00
NovaRain ac058ee4d7 Code correction/edits to the previous commit
Added a debug message for the open file limit being exceeded.
2021-12-26 11:43:51 +08:00
NovaRain b31f29a324 Fixed the broken fix for addicted party members
(BGforgeNet/Fallout2_Restoration_Project#131, #420)

Improved the duplicate path removal in LoadOrder.cpp.
Backported additional fixes to FadeBackgroundMusic from 4.x.
2021-12-25 21:25:24 +08:00
NovaRain 750d88ea9a Code edits to CRC.cpp for displayed messages
Code edits to ScriptExtender.cpp for duplicate code.
2021-12-24 14:35:29 +08:00
NovaRain 68389d9474 Added MapGridToggleKey debug option from 4.x
Fixed db_init function wrapper.
Minor edits to ddraw.ini.
2021-12-21 09:51:09 +08:00
NovaRain 97f3d3eb5f Code cleanup and edits according to dev branch 2021-12-19 08:45:26 +08:00
NovaRain b187c8359b Changed the load order of sfall.dat to after patchXXX.dat
Code edits to Interface.cpp due to the previous commit.
2021-12-18 21:37:48 +08:00
NovaRain 93f6131592 Added fixed call point for sfall initialization 2021-12-17 09:57:41 +08:00
NovaRain 5a9edb9723 Minor code edits to Graphics.cpp 2021-12-16 12:40:46 +08:00
NovaRain d14e7ccd9f Code changes to Graphics.cpp & main.cpp
* from HRP test branch
2021-12-12 10:31:51 +08:00
NovaRain c5baecfdad Fixed a crash bug in FadeBackgroundMusic
(when trying to mute the master audio volume in the preferences screen)

Minor code edits.
2021-12-10 10:01:31 +08:00
NovaRain c1dc31a919 Added a tweak to allow printing new floating messages when their limit is exceeded (#388)
Fixed incorrect value of the limit number of floating messages.
2021-11-28 12:40:42 +08:00
NovaRain 8e3e49b281 Removed UseCommandLine from ddraw.ini (always enabled)
Updated version number.
2021-11-27 06:44:06 +08:00
NovaRain 44411309f8 Removed unnecessary stdcall modifier as in 4.x 2021-11-25 09:22:27 +08:00
NovaRain a35a4e034b Added optimization for the save/load game screens
Edited the description of args for HOOK_TOHIT.
2021-11-23 20:44:00 +08:00
NovaRain 21c85b298b Refactored ScriptExtender and all function code
* in the same way as 4.x, to improve the error handling.
2021-11-22 22:05:09 +08:00
NovaRain 5151ea312a Code edits to the previous commit 2021-11-20 20:47:25 +08:00
NovaRain def3e52302 Added centering screen on the controlled critter 2021-11-19 09:48:04 +08:00
NovaRain 06f35e10fb Minor code edits to Graphics.cpp from HRP branch 2021-11-17 10:07:00 +08:00
NovaRain 588abd2a4b Added class to HookScripts module 2021-11-16 21:00:51 +08:00
NovaRain c6813bdd74 Fixed the redrawing of windows with "DontMoveTop" flag
* if one is not topmost, it's not redrawn after calling show function.
2021-11-16 15:04:18 +08:00
NovaRain 53c0517268 Added class to most of modules
Added missing ReplacementFuncs.h.
2021-11-15 22:03:40 +08:00
NovaRain 81f112063e Fixed a minor bug in HeroAppearance.cpp
Fixed incorrect display of name and damage values for unarmed attacks
in some cases.
2021-11-15 10:57:45 +08:00
NovaRain 87eeeeaa95 Reverted make_pair changes in commit 5c1ccca 2021-11-10 08:43:30 +08:00
NovaRain a5f57d400b Changed the option name of grave containers fix
Edited the code of tile_num function wrapper.
Reorganized the options in ddraw.ini.
2021-11-09 10:06:13 +08:00
NovaRain df983e0d25 Optimized the calculation loop in Glovz's ASM code
Renamed enums in Interface.cpp
2021-11-08 14:13:09 +08:00
NovaRain c9c9d1f35f Code edits to ScriptExtender.cpp/SpeedPatch.cpp
Minor edits to some files.
2021-11-08 13:48:52 +08:00
NovaRain 5e8269d171 Changed the fix in commit 93c6cf5 to an option
Changed the title bar text for DX9 windowed mode.
Renamed some enums in Movies/QuestList/Sound.cpp.
2021-11-06 23:42:01 +08:00
NovaRain e510f30120 Optimized the calculation loop in YAAM's ASM code
Minor edits to Glovz's formula code.
2021-10-31 20:17:26 +08:00
NovaRain 326610e66d Separated MainLoopHook.cpp/h from ScriptExtender 2021-10-30 23:21:13 +08:00
NovaRain c8de86d58f Improved the ASM code of Glovz's formula and YAAM
Changed OverrideArtCacheSize to set the art cache size to 261.
Fixed typo in ddraw.ini.
2021-10-27 22:05:29 +08:00
NovaRain 29e52703f4 Renamed some enums to be the same as 4.x 2021-10-26 20:50:33 +08:00
NovaRain a4ae8d47f0 Rewrote the text hook for main_menu_create_ in C++
Changed the description of CheckWeaponAmmoCost in ddraw.ini.

Replaced <br> html tag with backslash in markdown documents.
(CommonMark spec)

Updated version number.
2021-10-25 10:59:22 +08:00
NovaRain 80c9dd533f Finished implementing fo namespace.
Renamed some structs to converge with 4.x.
Splitted ReplacementFuncs.cpp/h to multiple sets in Game\ as 4.x.
Added sfall/game namespaces (except for ScriptExtender).
2021-10-21 11:38:07 +08:00
NovaRain 338a45cf5e Added fo::funcoffs/func/util/ptr/var namespaces 2021-10-19 14:20:47 +08:00
NovaRain 8c697054c0 Re-organized project structure to 4.x-like
Separated ScriptShaders.cpp/h from Graphics.cpp/h.
2021-10-18 21:49:58 +08:00
NovaRain e9662f49dd Updated define_extra.h 2021-10-16 07:25:26 +08:00
NovaRain eecf763ab7 Forgot to commit main.cpp in 1209b7e 2021-10-15 12:30:48 +08:00
NovaRain b9b7e24c1a Fixed a rounding error in Glovz's damage formula
Updated Russian and Germen translations.
2021-10-15 10:24:08 +08:00
NovaRain 09fe57a099 Updated translation ini files 2021-10-14 09:31:58 +08:00
NovaRain 1209b7efc1 Code edits converge with 4.x
* improved the behavior of SpeedInterfaceCounterAnims=3.

* now sfall will always create sfall-log.txt, still won't write any
unless debug options are enabled in ddraw.ini.
2021-10-13 14:12:23 +08:00
NovaRain 4bcf96dfe8 Simplified the code in the previous commit 2021-10-10 10:28:41 +08:00
NovaRain 93c6cf5222 Fixed the execution of use_p_proc handler for grave type containers
* "grave type" is a container with only two frames (open/closed)
* in vanilla code, using a grave type container in the open state does
not execute use_p_proc in its script like other containers do.
2021-10-08 11:06:57 +08:00
NovaRain 0ab0a592b4 Reverted the previous commit and added "obj_is_openable" function
* the previous commit conflicts with BIS document.
2021-10-08 09:41:25 +08:00
NovaRain dfcc698c7a Fixed the return value of obj_is_open function
* for containers with only one frame (e.g. shelves)

Minor edits to the previous commit.
2021-10-07 13:46:30 +08:00
NovaRain 4137e6e977 Added loading sfall.dat resource file
* localized sfall_XX.dat is also supported.

Minor code refactoring in ScriptExtender.cpp.
Minor edit to sfall function notes.
2021-10-06 21:28:12 +08:00
NovaRain 5c1cccae8f Backported "set_scr_name" script function from 4.x
Updated documents for the function.
Changed some make_pair to bare pair for map insertion.
2021-10-05 22:04:12 +08:00
NovaRain e3cb0bbaf5 Fixed crash at the end of DS sound playback
* revert to the previous implementation.
2021-10-05 13:42:52 +08:00
NovaRain 9db8736033 Code corrections converge with 4.x 2021-10-04 13:06:13 +08:00
NovaRain 932a9f37a3 Improved the rendering performance of DX9 modes
Code edits and preparation.
2021-10-01 12:28:33 +08:00
NovaRain 95a10758ae Added the ability to set custom names for unarmed attacks
Updated Translations.ini template.
Commented out empty exit function in some modules.
2021-09-27 10:38:00 +08:00
NovaRain b6f559755f Minor code edits to the previous commit 2021-09-26 07:35:55 +08:00
NovaRain 759ef35432 Added the display of actual damage for unarmed attacks in inven 2021-09-25 20:19:48 +08:00
NovaRain 334957d458 Backported Unarmed module and UnarmedFile option from 4.x 2021-09-23 10:43:38 +08:00
NovaRain 76e78fb2be Minor edits to code and project file 2021-09-22 11:20:10 +08:00
NovaRain 1ee2e5eeda Added a tweak to keep the selected attack mode for unarmed attacks
* was reset when the inventory is closed or the combat ends.
2021-09-20 11:20:14 +08:00
NovaRain b7ef4a6aed Added Polish translation (from JaidenIsPink) 2021-09-17 21:57:19 +08:00
NovaRain 73e17ddbef Some code edits and preparation 2021-09-17 10:55:54 +08:00
NovaRain 4ed512855e Added a fix to display the color index 255 of the palette correctly
* in DX9 mode when using the hi-res patch

Some minor code corrections.
2021-09-12 14:41:08 +08:00
NovaRain 95a03d7429 Code corrections 2021-09-07 06:38:42 +08:00
NovaRain 7d7cb9d84e Added missing sounds for the buttons on the world map interface (#373)
Changed the game speed tweak to be active only during the game.
2021-09-06 10:57:10 +08:00
NovaRain d498c86d65 Fixed key repeat delay/rate for game speed tweak (#406)
Removed AffectPlayback option.
2021-09-06 08:12:58 +08:00
NovaRain 806cc765bb Added an additional '"Can't Use" flag to misc flags in item objects
* it makes the weapon object unusable in combat.

Updated gl_npcarmor script.
Edits to header files and hookscripts.md.
2021-09-03 21:30:12 +08:00
NovaRain edc2755ef6 Fixed the Jet addiction was not removed when using the antidote (#405)
(BGforgeNet/Fallout2_Restoration_Project#118)
2021-08-29 10:27:52 +08:00
NovaRain 8ab0e57e58 Replaced *(TYPE*)FO_VAR with new inline functions 2021-08-27 22:26:50 +08:00
NovaRain cb73f4da47 Moved some patches/functions between Interface.cpp and MiscPatches.cpp
* And Graphics.cpp and InputFuncs.cpp.

Tweaked the buffer flush (actually print to file) rate in Console.cpp.
2021-08-27 21:11:13 +08:00
NovaRain be9aeae57a Code edits to Console.cpp 2021-08-25 12:42:23 +08:00
NovaRain 0d0f105ff2 Added support for the newline character '\n' in pro_*.msg files (#401)
(from Crafty)
2021-08-25 09:54:28 +08:00
NovaRain fc1e4e2ac4 Some code edits 2021-08-24 14:22:47 +08:00
NovaRain 4f9fec281e Changed SingleCore to set CPU affinity to the second core if available
Added missing code changes from the previous commit.
2021-08-23 16:15:15 +08:00
NovaRain c7e29b5d01 Replaced HRP addresses with the define values
Refactored get_attack_type opcode.
2021-08-23 15:10:27 +08:00
NovaRain c0737d9bea Fully implemented the new ai_check_drugs function
Added an additional 'Healing Item' flag to ext flags for item protos.
Added new EngineTweaks files and TweaksFile option.
Internal fix for HOOK_REMOVEINVENOBJ.
2021-08-23 10:15:51 +08:00
NovaRain 42d79aec0b Fixed ai_check_drugs for AIDrugUsePerfFix=1 (unimpl.) 2021-08-21 07:53:41 +08:00
NovaRain 90a7b20f9d Fixed a crash when opening a file whose name contains the '%' char
Code edits to ai_check_drugs implementation to converge with 4.x
2021-08-19 13:41:28 +08:00
NovaRain 9091690fdd [Untested] Added a fixed implementation of ai_check_drugs_ function
* which has all fixes/hook built-in.
2021-08-17 12:36:49 +08:00
NovaRain a4b7ac76a0 Added FadeBackgroundMusic option 2021-08-13 20:13:36 +08:00
NovaRain 6b34303268 Code edits to ExtraSaveSlots.cpp
* the page numbering is now 0-indexed, to better align with the macros.

Re-numbered save slot control metarules.
2021-08-13 10:58:55 +08:00
NovaRain cc29d548fe Changed the implementation of AutoQuickSave
* now it sets the number of pages used for quick saving.

Added related macros for controlling the save slot with scripts.
2021-08-12 15:24:13 +08:00
NovaRain 25b8933d7b Improved the page control for ExtraSaveSlots
Minor edits to ddraw.ini.
2021-08-11 14:11:59 +08:00
NovaRain e3b524dd3c Added AutoSearchSFX option for automatic search of SFX files
Excluded ANIM_walk from the debug log about missing critter art files.
2021-08-08 22:42:56 +08:00
NovaRain 077774fad0 Minor edits to the previous commit 2021-08-06 00:55:28 +08:00
NovaRain 7f8356a5c1 Fixed the main menu music stopped when entering load game screen
Added the ability to continuously play the music when moving to another
map that uses the same music.

Updated version number.
2021-08-05 14:18:20 +08:00
NovaRain cabb98949e Removed the extra AP check when AI reloads a weapon
(reloading is possible if there are not enough action points.)
2021-08-01 07:13:46 +08:00
NovaRain 8b0913c36b Updated the documents in the previous commit 2021-07-07 09:28:53 +08:00
NovaRain 3bac160395 Added markdown version of compiler documents 2021-07-05 10:02:58 +08:00
NovaRain fa694be6ac Added Brazilian Portuguese translation
(from Felipefpl)
2021-06-28 12:17:18 +08:00
NovaRain f51e9c8ef5 Updated french.ini (from HawK-EyE) 2021-06-26 23:09:12 +08:00
NovaRain 82539365a8 Fixed the algorithm for sorting the quest list (#397) 2021-06-21 06:09:32 +08:00
NovaRain a6b555bafc Fixed black screen after starting a new game w/o HRP (#395) 2021-06-20 08:40:03 +08:00
NovaRain f3e30ea0d5 Fixed item duplication bug in HOOK_INVENTORYMOVE (#396)
Code edits to Animations.cpp regarding locking anim slots.
Updated version number.
2021-06-20 02:07:07 +08:00
296 changed files with 27346 additions and 21085 deletions
+1
View File
@@ -0,0 +1 @@
*.ssl linguist-language=Pascal
+2
View File
@@ -46,6 +46,8 @@ nb-configuration.xml
*.user *.user
*.userosscache *.userosscache
*.sln.docstates *.sln.docstates
*.VC.db
*.VC.opendb
# User-specific files (MonoDevelop/Xamarin Studio) # User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs *.userprefs
+8
View File
@@ -23,6 +23,7 @@
/// the contents of this method with the code editor. /// the contents of this method with the code editor.
/// </summary> /// </summary>
private void InitializeComponent() { private void InitializeComponent() {
this.components = new System.ComponentModel.Container();
this.dataGridView1 = new System.Windows.Forms.DataGridView(); this.dataGridView1 = new System.Windows.Forms.DataGridView();
this.Column0 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column0 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -34,6 +35,7 @@
this.bSGlobals = new System.Windows.Forms.Button(); this.bSGlobals = new System.Windows.Forms.Button();
this.bArrays = new System.Windows.Forms.Button(); this.bArrays = new System.Windows.Forms.Button();
this.bEdit = 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(); this.bCrittersLvar = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
@@ -154,6 +156,11 @@
this.bEdit.UseVisualStyleBackColor = true; this.bEdit.UseVisualStyleBackColor = true;
this.bEdit.Click += new System.EventHandler(this.bEdit_Click); this.bEdit.Click += new System.EventHandler(this.bEdit_Click);
// //
// redrawTimer
//
this.redrawTimer.Interval = 200;
this.redrawTimer.Tick += new System.EventHandler(this.timer1_Tick);
//
// bCrittersLvar // bCrittersLvar
// //
this.bCrittersLvar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); 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 Column1;
private System.Windows.Forms.DataGridViewTextBoxColumn Column2; private System.Windows.Forms.DataGridViewTextBoxColumn Column2;
private System.Windows.Forms.DataGridViewTextBoxColumn Column3; private System.Windows.Forms.DataGridViewTextBoxColumn Column3;
internal System.Windows.Forms.Timer redrawTimer;
private System.Windows.Forms.Button bCrittersLvar; private System.Windows.Forms.Button bCrittersLvar;
} }
+9
View File
@@ -137,6 +137,7 @@ namespace FalloutClient {
sr.Close(); sr.Close();
} }
Redraw(); Redraw();
redrawTimer.Start();
} }
private void DebugEditor_FormClosing(object sender, FormClosingEventArgs e) { private void DebugEditor_FormClosing(object sender, FormClosingEventArgs e) {
@@ -188,6 +189,7 @@ namespace FalloutClient {
default: default:
return; return;
} }
redrawTimer.Stop();
if (e.ColumnIndex == 2) { if (e.ColumnIndex == 2) {
string str = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); string str = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
int val; int val;
@@ -211,11 +213,13 @@ namespace FalloutClient {
connection.WriteInt(converter.GetAsInt(val)); connection.WriteInt(converter.GetAsInt(val));
} }
} }
redrawTimer.Start();
} }
private void bEdit_Click(object sender, EventArgs e) { private void bEdit_Click(object sender, EventArgs e) {
if (dataGridView1.SelectedRows.Count == 0) return; if (dataGridView1.SelectedRows.Count == 0) return;
int i = (int)dataGridView1.SelectedRows[0].Tag; int i = (int)dataGridView1.SelectedRows[0].Tag;
redrawTimer.Stop();
switch (mode) { switch (mode) {
case Mode.Arrays: { case Mode.Arrays: {
DataType[] types = new DataType[connection.ArrayLengths[i]]; DataType[] types = new DataType[connection.ArrayLengths[i]];
@@ -333,6 +337,7 @@ namespace FalloutClient {
} }
break; break;
} }
redrawTimer.Start();
} }
private void bCrittersLvar_Click(object sender, EventArgs e) { private void bCrittersLvar_Click(object sender, EventArgs e) {
@@ -381,5 +386,9 @@ namespace FalloutClient {
private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) { private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) {
dataGridView1.Rows[e.RowIndex].Tag = e.RowIndex; dataGridView1.Rows[e.RowIndex].Tag = e.RowIndex;
} }
private void timer1_Tick(object sender, EventArgs e) {
connection.WriteDataType(DataTypeSend.RedrawGame);
}
} }
} }
+3
View File
@@ -129,4 +129,7 @@
<metadata name="Column3.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="Column3.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </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> </root>
+4
View File
@@ -48,8 +48,10 @@ namespace FalloutClient {
} }
public static string[] ShowEditor(DebugEditor form, string[] names, DataType[] types, string[] values, bool isMap = false) { 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); EditorWindow editor = new EditorWindow(names, types, values, isMap);
editor.ShowDialog(); editor.ShowDialog();
form.redrawTimer.Stop();
if (editor.save) { if (editor.save) {
if (valueInHex) editor.ConvertValues(false); if (valueInHex) editor.ConvertValues(false);
return editor.values; return editor.values;
@@ -70,8 +72,10 @@ namespace FalloutClient {
} }
public static string[] ShowEditor(DebugEditor form, string[] lvalues) { public static string[] ShowEditor(DebugEditor form, string[] lvalues) {
form.redrawTimer.Start();
EditorWindow editor = new EditorWindow(lvalues); EditorWindow editor = new EditorWindow(lvalues);
editor.ShowDialog(); editor.ShowDialog();
form.redrawTimer.Stop();
if (editor.save) { if (editor.save) {
if (valueInHex) editor.ConvertValues(false); if (valueInHex) editor.ConvertValues(false);
return editor.values; return editor.values;
+2 -1
View File
@@ -32,6 +32,7 @@ namespace FalloutClient {
SetArray = 10, SetArray = 10,
GetLocal = 11, GetLocal = 11,
SetLocal = 12, SetLocal = 12,
Exit = 254 Exit = 254,
RedrawGame = 255
} }
} }
+3 -3
View File
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")] [assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("sfall")] [assembly: AssemblyProduct("sfall")]
[assembly: AssemblyCopyright("Copyright © 2019")] [assembly: AssemblyCopyright("Copyright (C) 2022")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number // Build Number
// Revision // Revision
// //
[assembly: AssemblyVersion("4.1.9.0")] [assembly: AssemblyVersion("4.1.9.1")]
[assembly: AssemblyFileVersion("4.1.9.0")] [assembly: AssemblyFileVersion("4.1.9.1")]
+7 -2
View File
@@ -1,6 +1,8 @@
# sfall # 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. [![License](https://img.shields.io/badge/License-GPL--3.0-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
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:** **Engine modifications include:**
- Better support for modern operating systems - Better support for modern operating systems
@@ -10,7 +12,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) - 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. 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)
+1 -1
View File
@@ -11,7 +11,7 @@ TagSkillBonus=20
;Set to 3 to use both modes ;Set to 3 to use both modes
TagSkillMode=0 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 BasedOnPoints=0
;Examples ;Examples
+18 -1
View File
@@ -4,7 +4,7 @@ KarmaGain=You gained %d karma.
KarmaLoss=You lost %d karma. KarmaLoss=You lost %d karma.
HighlightFail1=You aren't carrying a motion sensor. HighlightFail1=You aren't carrying a motion sensor.
HighlightFail2=Your motion sensor is out of charge. 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. 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. SaveSfallDataFail=ERROR saving extended savegame information! Check if other programs interfere with savegame files/folders and try again.
PartyLvlMsg=Lvl: PartyLvlMsg=Lvl:
@@ -16,3 +16,20 @@ NPCPickupFail=%s cannot pick up the item.
RaceText=Race RaceText=Race
StyleText=Style StyleText=Style
DoneBtn=Done 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:
+13
View File
@@ -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
+66
View File
@@ -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]
+111 -90
View File
@@ -1,8 +1,9 @@
;sfall configuration settings ;sfall configuration settings
;v3.8.30 ;v3.8.34
[Main] [Main]
;Change to 1 if you want to use command line args to tell sfall to use another ini file. ;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 UseCommandLine=0
;Uncomment and point to a file to get alternate translations for some sfall messages ;Uncomment and point to a file to get alternate translations for some sfall messages
@@ -11,7 +12,7 @@ UseCommandLine=0
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[Speed] [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 Enable=1
;The speeds corresponding to each slot in percent. (i.e. 100 is normal speed) ;The speeds corresponding to each slot in percent. (i.e. 100 is normal speed)
@@ -29,9 +30,6 @@ SpeedMulti9=900
;The initial speed at game startup ;The initial speed at game startup
SpeedMultiInitial=100 SpeedMultiInitial=100
;Set to 1 to also affect the playback speed of MVE video files without an audio track
AffectPlayback=0
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[Graphics] [Graphics]
;Set to 0 for 8 bit fullscreen ;Set to 0 for 8 bit fullscreen
@@ -49,8 +47,8 @@ GraphicsWidth=0
GraphicsHeight=0 GraphicsHeight=0
;Window position data. Do not modify ;Window position data. Do not modify
;Set to 0 to reset if the window position is incorrect ;Set to -1 or 0 to reset if the window position is incorrect
WindowData=0 WindowData=-1
;Uncomment the option to use a hardware shader (requires DX9 graphics mode) ;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 ;The shader file <name>.fx must be placed in <GameRoot>\<master_patches>\shaders\ and must contain one technique with one or more passes
@@ -78,6 +76,7 @@ Use32BitHeadGraphics=0
;Set to 1 to automatically search for alternative AVI video files when Fallout tries to play the game movies ;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 ;Set to 2 to force AVI videos to fit the screen width
;Requires DX9 graphics mode ;Requires DX9 graphics mode
;The recommended video codec is Xvid
AllowDShowMovies=0 AllowDShowMovies=0
;Fade effect time percentage modifier ;Fade effect time percentage modifier
@@ -116,6 +115,11 @@ AllowDShowSound=0
;Set to 2 to overwrite all occurrences of the music path ;Set to 2 to overwrite all occurrences of the music path
OverrideMusicDir=1 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 ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[Input] [Input]
;Set to 1 to enable the mouse scroll wheel to scroll through the inventory, barter, and loot screens ;Set to 1 to enable the mouse scroll wheel to scroll through the inventory, barter, and loot screens
@@ -152,7 +156,7 @@ BackgroundMouse=0
SpeedModKey=-1 SpeedModKey=-1
;A key to press to toggle the speed tweak on or off ;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 SpeedToggleKey=0
;The keys corresponding to the 10 speed slots ;The keys corresponding to the 10 speed slots
@@ -178,10 +182,10 @@ WindowScrollKey=0
ToggleItemHighlightsKey=42 ToggleItemHighlightsKey=42
;Set to 1 to also highlight containers ;Set to 1 to also highlight containers
HighlightContainers=1 HighlightContainers=0
;Set to 1 to also highlight lootable corpses ;Set to 1 to also highlight lootable corpses
HighlightCorpses=1 HighlightCorpses=0
;Set the color of outlines, available colors: ;Set the color of outlines, available colors:
;1 - glowing red ;1 - glowing red
@@ -220,7 +224,7 @@ DebugEditorKey=0
Fallout1Behavior=0 Fallout1Behavior=0
;Time limit in years. Must be between -3 and 13 ;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 -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 ;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 TimeLimit=13
@@ -243,8 +247,8 @@ WorldMapEncounterFix=0
WorldMapEncounterRate=5 WorldMapEncounterRate=5
;The number of slots available in the locations list panel of the world map ;The number of slots available in the locations list panel of the world map
;Set to 0 to leave unchanged. 17 is default. ;Set to 0 to leave the default unchanged (i.e. 17). The maximum is 127
;Setting this greater than 17 requires a replacement background FRM, or you'll get glitched graphics ;Setting this greater than 17 requires a replacement WMTABS.frm file in art\intrface\, or you'll get glitched graphics
WorldMapSlots=0 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 ;To start a new game somewhere other than artemple.map, uncomment the next line and set it to the map you want to load
@@ -257,7 +261,7 @@ WorldMapSlots=0
;To use a config file other than fallout2.cfg, uncomment the next line and add the name of your new file ;To use a config file other than fallout2.cfg, uncomment the next line and add the name of your new file
;ConfigFile= ;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 UseFileSystemOverride=0
;To use a patch file other than patch000.dat, uncomment the next line and add your new file name ;To use a patch file other than patch000.dat, uncomment the next line and add your new file name
@@ -268,7 +272,7 @@ UseFileSystemOverride=0
;Original: patchXXX.dat > critter_patches > critter_dat > f2_res_patches > f2_res_dat > master_patches > master_dat ;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 ;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 ;This option is always enabled in 4.3/3.8.30 or later. The information is left for reference only
;DataLoadOrderPatch=1 DataLoadOrderPatch=1
;Set to 1 to load alternative dialog msg files from text\<language>\dialog_female\ for female PC ;Set to 1 to load alternative dialog msg files from text\<language>\dialog_female\ for female PC
;Set to 2 to also load subtitle files from text\<language>\cuts_female\ for female PC ;Set to 2 to also load subtitle files from text\<language>\cuts_female\ for female PC
@@ -315,7 +319,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 ;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. ;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 ;LocalMapXLimit=480
;LocalMapYLimit=400 ;LocalMapYLimit=400
@@ -361,7 +365,7 @@ ViewYPos=-1
;Set to 1 to force Fallout not to use multiple processor cores even if they are available ;Set to 1 to force Fallout not to use multiple processor cores even if they are available
SingleCore=1 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 OverrideArtCacheSize=0
;Prevents you from saving in combat except at the start of your turn to avoid a few bugs ;Prevents you from saving in combat except at the start of your turn to avoid a few bugs
@@ -373,7 +377,7 @@ SaveInCombatFix=1
;Player's level is capped once the highest specified level is reached ;Player's level is capped once the highest specified level is reached
;XPTable=50,100,200 ;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 ;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' ;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 AdditionalWeaponAnims=1
@@ -432,16 +436,6 @@ SkipOpeningMovies=0
;Set to 0 to disable ;Set to 0 to disable
NPCsTryToSpendExtraAP=0 NPCsTryToSpendExtraAP=0
;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 drug use preference 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
;Allows the use of tiles over 80x36 in size. sfall will just split and resave them to art\tiles\zzz####.frm at startup ;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 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 ;Set to 2 if you provide a XLtiles.lst file in art\tiles\ containing a list of the tile indexes that need checking
@@ -460,9 +454,6 @@ Doctor=293
Science=293 Science=293
Repair=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 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 ;Set to 2 to use a different set of scroll buttons
UseScrollingQuestsList=1 UseScrollingQuestsList=1
@@ -489,12 +480,13 @@ UseScrollingQuestsList=1
ExtraSaveSlots=0 ExtraSaveSlots=0
;To use more than one save slot for quick saving (F6 key) without picking a slot beforehand, set the next two lines ;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) ;Quick save will cyclically overwrite saves from the first slot on the specified page to the last slot on the n-th page
;AutoQuickSavePage is the page number to use (valid range: 1..1000) if ExtraSaveSlots is enabled ;AutoQuickSave sets how many pages you want to use for quick saving (valid range: 1..10)
;The quick saves will be rotated from the first slot on the page to the n-th slot ;Set to 0 to disable
;Set to 0 to disable. AutoQuickSave will use the current selected page if AutoQuickSavePage is disabled
AutoQuickSave=0 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 1 to speed up the HP/AC counter animations
;Set to 2 to update the HP/AC counters instantly ;Set to 2 to update the HP/AC counters instantly
@@ -557,7 +549,7 @@ BoostScriptDialogLimit=0
;Add 4 to the mode to limit the weight check to used items only ;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 ;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 CritterInvSizeLimitMode=0
CritterInvSizeLimit=100 CritterInvSizeLimit=200
;Some bit flags to alter behaviour of the motion sensor ;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 ;1 - Allow sensor use on automap when motion sensor is in pack rather than hands
@@ -587,32 +579,6 @@ SuperStimExploitFix=0
InventoryApCost=4 InventoryApCost=4
QuickPocketsApCostReduction=2 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 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 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 ;Set to 1 to enable the balanced bullet distribution formula for burst attacks
ComputeSprayMod=0 ComputeSprayMod=0
@@ -642,11 +608,9 @@ ExplosionsEmitLight=0
;MovieTimer_artimer3=270 ;MovieTimer_artimer3=270
;MovieTimer_artimer4=360 ;MovieTimer_artimer4=360
;Set to 1 to enable the new arrays behavior (default behavior) ;Set to 1 to add proper check for ammo before attacking and proper calculation of the number of burst rounds
;Set to 0 for backward compatibility with pre-3.4 scripts ;By default, weapons can make attacks when at least one ammo is left, regardless of ammo cost calculations
arraysBehavior=1 ;Note that enabling this option will prevent super cattle prods and mega power fists from attacking with only one ammo left
;Set to 1 to add proper checks to see if there is enough ammo to attack with weapons that use multiple ammo per shot
CheckWeaponAmmoCost=0 CheckWeaponAmmoCost=0
;Controls the speed of combat panel animations (lower - faster; valid range: 0..65535) ;Controls the speed of combat panel animations (lower - faster; valid range: 0..65535)
@@ -684,7 +648,7 @@ EnableMusicInDialogue=0
DontTurnOffSneakIfYouRun=0 DontTurnOffSneakIfYouRun=0
;Changes the distance at which the player will switch to walking when trying to use objects (valid range: 0..3) ;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 UseWalkDistance=3
;Changes the displayed message when you recover from the negative effects of radiation exposure ;Changes the displayed message when you recover from the negative effects of radiation exposure
@@ -697,14 +661,6 @@ ActiveGeigerMsgs=1
;Set to 1 to fix the bug of being 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 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 ;Set to 1 to skip weapon equip/unequip animations when performing various actions
InstantWeaponEquip=0 InstantWeaponEquip=0
@@ -738,6 +694,66 @@ PartyMemberExtraInfo=0
;Set to 2 to also skip loading the game/combat difficulty settings ;Set to 2 to also skip loading the game/combat difficulty settings
SkipLoadingGameSettings=0 SkipLoadingGameSettings=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
;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
;Overrides the global variable number used to show the special death message of the Modoc toilet explosion ;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 ;Set to -1 to disable the special death message when the global variable is set
SpecialDeathGVAR=491 SpecialDeathGVAR=491
@@ -751,13 +767,6 @@ DisableSpecialMapIDs=0
;Note that enabling this option will break the location change of the 'Fake Vault 13' in Fallout 2 ;Note that enabling this option will break the location change of the 'Fake Vault 13' in Fallout 2
DisableSpecialAreas=0 DisableSpecialAreas=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
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
; Configuration ini files ; Configuration ini files
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
@@ -773,7 +782,8 @@ CreditsAtBottom=0
;Point the next line to an ini file containing the replacement skill data ;Point the next line to an ini file containing the replacement skill data
;SkillsFile=sfall\Skills.ini ;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 ;PerksFile=sfall\Perks.ini
;To add additional books to the game, uncomment the next line and point to a file containing book information ;To add additional books to the game, uncomment the next line and point to a file containing book information
@@ -783,6 +793,13 @@ CreditsAtBottom=0
;Point to an ini file containing elevator data ;Point to an ini file containing elevator data
;ElevatorsFile=sfall\Elevators.ini ;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 ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[Debugging] [Debugging]
;Extra sfall configuration settings that can be used by modders ;Extra sfall configuration settings that can be used by modders
@@ -801,11 +818,8 @@ AllowUnsafeScripting=0
;Does not require sfall debugging mode ;Does not require sfall debugging mode
;ExtraCRC=0x00000000,0x00000000 ;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 ;Does not require sfall debugging mode
SkipSizeCheck=0
;Change to 1 to skip the compatibility mode check
SkipCompatModeCheck=0 SkipCompatModeCheck=0
;Fallout 2 Debug Patch ;Fallout 2 Debug Patch
@@ -828,10 +842,17 @@ DebugMode=0
;Set to 1 to hide error messages in debug output when a null value is passed to the function as an object ;Set to 1 to hide error messages in debug output when a null value is passed to the function as an object
HideObjIsNullMsg=0 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 ;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 ;Has pretty nasty side effects when saving/reloading, so don't use for regular gameplay
DontDeleteProtos=0 DontDeleteProtos=0
;Set to 1 to force sfall to inject all hooks code into the game, even if corresponding hook scripts don't exist
InjectAllGameHooks=0
;Set to 1 to force sfall to search for global/hook scripts every time the game loads rather than only the first time ;Set to 1 to force sfall to search for global/hook scripts every time the game loads rather than only the first time
AlwaysFindScripts=0 AlwaysFindScripts=0
Binary file not shown.
+12 -12
View File
@@ -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: - modifies ammo protos with data from an INI file:
* AmmoGlovz.ini if DamageFormula=1 or 2 in ddraw.ini * AmmoGlovz.ini if DamageFormula=1 or 2 in ddraw.ini
* AmmoYAAM.ini if DamageFormula=5 in ddraw.ini * AmmoYAAM.ini if DamageFormula=5 in ddraw.ini
* AmmoMod.ini if not using any bulit-in damage formula * 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; variable enabled;
procedure start begin procedure start begin
variable i := 1, ammo, ammoPid, dmgMod; variable i := 1, ammo, ammoSection, dmgMod;
if game_loaded then begin if game_loaded then begin
enabled := get_ini_setting("ddraw.ini|Misc|DamageFormula"); enabled := get_ini_setting("ddraw.ini|Misc|DamageFormula");
if (enabled == 1 or enabled == 2) then if (enabled == 1 or enabled == 2) then
@@ -37,19 +37,19 @@ procedure start begin
if (enabled <= 0) then return; if (enabled <= 0) then return;
ammoData := create_array_map; ammoData := create_array_map;
ammoPid := enabled; // pid from the first section ammoSection := get_ini_section(ammoIni, "" + i);
while (ammoPid > 0) do begin while (ammoSection.pid > 0) do begin
ammo := create_array_map; // create permanent arrays ammo := create_array_map; // create permanent arrays
ammo.ac_adjust := get_ini_setting(ammoIni + "|" + i + "|ac_adjust"); ammo.ac_adjust := atoi(ammoSection.ac_adjust);
ammo.dr_adjust := get_ini_setting(ammoIni + "|" + i + "|dr_adjust"); ammo.dr_adjust := atoi(ammoSection.dr_adjust);
// dam_mult and dam_div must be positive integers // 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; 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; ammo.dam_div := dmgMod if (dmgMod > 0) else 1;
ammoData[ammoPid] := ammo; ammoData[atoi(ammoSection.pid)] := ammo;
i++; i++;
ammoPid := get_ini_setting(ammoIni + "|" + i + "|pid"); ammoSection := get_ini_section(ammoIni, "" + i);
end end
call map_enter_p_proc; call map_enter_p_proc;
debug_msg("Ammo INI Loader mod: " + ammoIni + " - set " + (i - 1) + " ammo protos."); debug_msg("Ammo INI Loader mod: " + ammoIni + " - set " + (i - 1) + " ammo protos.");
+3 -3
View File
@@ -1,5 +1,5 @@
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: - modifies ammo protos with data from an INI file:
* AmmoGlovz.ini if DamageFormula=1 or 2 in ddraw.ini * AmmoGlovz.ini if DamageFormula=1 or 2 in ddraw.ini
@@ -7,6 +7,6 @@ Ammo INI Loader mod for Fallout 2 by NovaRain
* AmmoMod.ini if not using any bulit-in damage formula * 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.
To use, copy gl_ammomod.int to your scripts folder, and copy the INI files to the same directory as sfall. To use, copy gl_ammomod.int to your scripts folder, and copy the INI files to the same directory as sfall.
@@ -4,10 +4,10 @@
Key=42 Key=42
; Set to 1 to also highlight containers ; Set to 1 to also highlight containers
Containers=1 Containers=0
; Set to 1 to also highlight lootable corpses ; 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 ; Set to 1 to only highlight objects in the player's line-of-sight
CheckLOS=0 CheckLOS=0
@@ -11,7 +11,7 @@
Requires sfall 3.8.29 or higher Requires sfall 3.8.29 or higher
version 1.1 version 1.4
*/ */
@@ -79,13 +79,13 @@ procedure check_weapon_change(variable critter, variable weapon, variable isWiel
end end
/* /*
Finds the first weapon which can be used by the party member in the inventory Finds the first weapon that can be used by the party member in the inventory
*/ */
procedure search_alt_weapon(variable critter) begin procedure search_alt_weapon(variable critter) begin
variable obj, res, i := 0; variable obj, res, i := 0;
obj := inven_ptr(critter, 0); obj := inven_ptr(critter, 0);
while (obj) do begin while (obj) do begin
if (obj_item_subtype(obj) == item_type_weapon) then begin if (obj_item_subtype(obj) == item_type_weapon and weapon_is_unusable(obj) == false) then begin
if (unWieldWeapon == 0 or unWieldWeapon != obj_pid(obj)) then begin if (unWieldWeapon == 0 or unWieldWeapon != obj_pid(obj)) then begin
res := check_weapon_change(critter, obj, 1); res := check_weapon_change(critter, obj, 1);
if (res == -1) then begin if (res == -1) then begin

Some files were not shown because too many files have changed in this diff Show More