Compare commits

...
345 Commits
Author SHA1 Message Date
NovaRain 8ae705d591 Merge branch 'develop' 2017-10-18 19:42:16 +08:00
NovaRain 94fdfb49ef Fix crash when calling partyMemberGetCurLevel_ on a critter that has no data in party.txt.
Updated version number.
2017-10-18 14:54:53 +08:00
NovaRain ee67b9b59d Merge branch 'develop'. sfall is now updated to 4.0. 2017-10-14 23:03:07 +08:00
NovaRain 74d496845b Added compiled gl_partycontrol script from the previous commit. 2017-10-02 10:04:56 +08:00
NovaRain 1bde433a16 Added Gecko Skinning perk to controlled critters if player has the perk, to make geckos killed by controlled critters also have gecko skins in their inventory. 2017-10-02 09:54:47 +08:00
NovaRain f0f4948856 Added LoadHeroAppearance() back to NewGame_After in LoadGameHook.cpp. 2017-09-19 23:04:35 +08:00
NovaRain b4168fe934 Reverted LoadGame_hook to previous revision and changed EndLoadHook to only call LoadHeroAppearance (attempted to fix issue #117 and #94)
Removed redundant LoadHeroAppearance calling.
2017-09-19 11:58:41 +08:00
NovaRain 848f29b468 Added descriptions for the variables in Perks.ini. 2017-09-12 15:38:07 +08:00
NovaRain bf1da72def Implemented script procedures: combat_is_starting_p_proc/combat_is_over_p_proc (from Crafty) #107 2017-09-01 09:58:25 +08:00
NovaRain 75909e688e Fixed the double damage effect of Silent Death perk not being applied to critical hits (from Crafty) 2017-08-21 22:56:06 +08:00
NovaRain 394000fa2a Merge branch 'feature/cursor_mode' into develop 2017-08-21 21:39:47 +08:00
NovaRain ad17773ace Fixed incorrect argument description for get/set_proto_data in sfall opcode list.txt.
Removed incorrect PROTO_CR_FLAGS value in define_extra.h (was actually critter's IN), and renamed PROTO_CR_ACTION_FLAGS to its correct name #112
2017-08-21 11:33:04 +08:00
NovaRain 85cdd8973e Fixed the incorrect description in HOOK_COMBATDAMAGE. 2017-08-19 08:49:16 +08:00
NovaRain 85bcf82c1e Unified the indent style (3 spaces) in SSL library and removed trailing spaces. 2017-08-18 09:53:17 +08:00
NovaRain 6c65d8fe79 Added descriptions for get/set_cursor_mode.
Added defines for cursor modes.
2017-08-17 23:54:29 +08:00
NovaRain 34eaddebb8 Added script functions get/set_cursor_mode #108
Removed "beta" from version string.
2017-08-14 11:49:41 +08:00
NovaRain 7989da8bfa Added missing define and description for item_weight. 2017-08-13 11:45:12 +08:00
NovaRain 012418cd59 Two bug fixes from Crafty:
1. Fixed the displayed message when the attack randomly hits a target that is not a critter and has a script attached.
2. Fixed damage_p_proc being called for misses if the target is not a critter.
2017-08-07 13:21:13 +08:00
NovaRain 0a4e0cb755 Fixed Bonus Move APs being replenished when you save and load the game in combat (from Crafty) 2017-07-26 21:49:30 +08:00
NovaRain fc930ff7fb Added a note for argnum in set_sfall_arg().
Fixed incorrect set_sfall_arg usage in the example.
Removed a redundant line in sfall opcode list.txt.
2017-07-25 23:10:14 +08:00
NovaRain 6a0a93836e Added the description for real_dude_obj. 2017-07-11 12:08:46 +08:00
NovaRain e7e286013f Replaced hs_*.int scripts in example mods with normal global scripts with register_hook. 2017-07-06 21:01:35 +08:00
NovaRain f0e93450f6 Minor format edits to sfall.h and LoadGameHook.cpp. 2017-06-22 09:44:14 +08:00
NovaRain 46ea2fb265 Added Attack Type argument for HOOK_COMBATDAMAGE (from Crafty) #100 2017-06-14 12:39:33 +08:00
NovaRain 35d8052098 Minor edits to ddraw.ini. 2017-06-02 11:49:54 +08:00
NovaRain abb71a1a1f Fixed incorrect info in sfall function notes.txt. 2017-05-31 09:25:44 +08:00
NovaRain 35d397c891 Added DontTurnOffSneakIfYouRun option to prevent the player from running while sneaking without Silent Running perk (from Crafty)
Added sfall log text for DisablePipboyAlarm.
2017-05-26 10:36:14 +08:00
NovaRain 92b010f362 Added check for sfall version for gl_partycontrol and gl_npcarmor.
Changed version string because sfall 4.0 will be released in 'beta' stage first.
Minor edits to some documents.
2017-05-23 22:28:42 +08:00
phobos2077 c2e6d743a3 Changed LoadGame_after to be called before LoadGame state is ended #94 2017-05-20 18:10:59 +07:00
NovaRain 579cbd7543 Re-removed CityRepsCount and KarmaFRMsCount from ddraw.ini (they got added back by accident.) 2017-05-08 21:22:05 +08:00
NovaRain 34db527f45 Merge branch '3.8-maintenance' 2017-05-08 09:53:44 +08:00
NovaRain 475503d632 Added a check for OutlineColor in gl_highlighting, in case player set it to negative values.
Split the push/pop instructions in ItemCountFix() into individual lines.
2017-05-07 21:20:17 +08:00
NovaRain 31834fdfea Added OutlineColor option to set the color of outlines for items/containers. 2017-05-07 20:27:30 +08:00
NovaRain 7405e3cb52 Updated version number in ddraw.ini. 2017-05-07 01:22:00 +08:00
NovaRain 771230f9b4 Fixed a crash when calling destroy_object or destroy_mult_objs.
Updated some structs, using commit 75c7ab647f as the reference.
Updated version number.
2017-05-07 01:08:28 +08:00
phobos2077 0486192c3c Updated rebracer.xml 2017-05-03 22:47:40 +07:00
phobos2077 83f2d48668 Fix hero appearance bug (#92) and broken sfall global variables
- Changed LoadGame_before function to be called AFTER GameReset when loading the game
- Don't set appearance globals in RefreshPCArt function
- Moved functions for saving/loading appearance globals into HeroAppearance.cpp
2017-04-24 16:37:53 +07:00
VladislavKolosovsky 7b333ca458 Fixed hero appearance style and race not being loaded properly from savegames #94 2017-04-24 16:10:20 +07:00
phobos2077 fd4fe5fd0e HeroAppearance: Fixed AppStyle and AppRace frms not being loaded and drawn #94 2017-04-24 13:41:05 +07:00
NovaRain 2255d9e947 Fixed skills being capped at 95% when starting a new game.
Changed PipBoyAvailableAtGameStart=1 to be executed before the game starts, so player will be in vault suit at the beginning, instead of first in tribal appearance then switching to vault suit after changing maps.
Added a separator line for the new [Scripts] section in ddraw.ini.
2017-04-19 10:37:04 +08:00
phobos2077 85020d66f2 Added new functions into docs #90 2017-04-15 22:17:42 +07:00
phobos2077 629641eb96 Added new HOOK_CARTRAVEL #90 2017-04-15 21:59:18 +07:00
phobos2077 0af8010861 Added scripting function "set_car_intface_art" #90 2017-04-15 02:04:21 +07:00
phobos2077 addccd2bc6 Added rebracer.xml 2017-04-12 00:35:25 +07:00
phobos2077 8a0ac2082e Fixed some override structs not being initialized on starting the game, leading to min/max skills/stats/hit chances being wrong #92 2017-04-12 00:35:10 +07:00
NovaRain a5599e1942 Simplified ToggleHighlightObject in gl_highlighting. 2017-04-10 00:57:17 +08:00
NovaRain 43e2ddeeef Enabled highlighting corpses and containers by default in sfall-mods.ini. 2017-04-09 22:51:56 +08:00
NovaRainandGitHub 0c5e6af119 Merge pull request #93 from phobos2077/highlighting_options
Added options for toggling corpse highlighting and LOS check in item highlighting mod.
2017-04-09 22:45:40 +08:00
NovaRain dc785d010e Added options for toggling corpse highlighting and LOS check.
Changed default settings in sfall-mod.ini to be in line with the default  ddraw.ini in previous versions of sfall.
2017-04-09 20:58:36 +08:00
phobos2077 d484be45c8 Added function car_gas_amount #90
- Sorted some defines
- Minor code formatting fixes
2017-04-08 13:48:14 +07:00
VladandGitHub ae3634779c Merge pull request #91 from FakelsHub/develop-highlighting
Change behavior in Highlighting mod
2017-04-08 13:08:46 +07:00
Mr.Stalin 18644f37fd Deleted duplicate code in the script. Added check for sfall version. 2017-04-07 23:58:26 +03:00
Mr.Stalin bb52a6d9cb Change in Highlighting mod, items with set flag 'NO_HIGHLIGHT' will no longer be highlighted. 2017-04-07 21:54:57 +03:00
phobos2077 e34a00148f Fixed path do Delegate.h in Inventory.h 2017-04-05 00:40:24 +07:00
phobos2077 478684f8ef Enabled Elevators module and fixed incorrect loading from Elevators.ini 2017-04-05 00:16:30 +07:00
phobos2077 e2a383511d Refactor opcodes in Objects.cpp
- Added missing argument type checks
- Replace asm blocks with wrapper function calls
- Use GameObject instead of DWORD
2017-04-03 23:27:33 +07:00
phobos2077 116c522bdc Moved hard-coded "ControlCombat" mod from sfall into a global script #87
- Exactly the same functionality and settings
- Mod settings are now in sfall-mods.ini
2017-04-01 21:11:19 +07:00
phobos2077 9531fcbebd Added new hook script HOOK_COMBATTURN - runs before and after every turn in combat 2017-04-01 20:31:19 +07:00
phobos2077 76a946c72e Moved all combat-related hook scripts into separate unit 2017-04-01 16:09:34 +07:00
phobos2077 20bc5b9fd6 Make modules interfaces public 2017-04-01 16:01:53 +07:00
phobos2077 dcc471fc47 Reorganize HookScripts.cpp
- Moved most hook script implementations into several separate files
- Group HS implementations together by their category
2017-04-01 15:57:25 +07:00
phobos2077 d881dc9e89 Make Metarule.cpp more accessible
- Improve comments
- Rename metaruleTable and move it on top of the file
- Use C++ style iteration
2017-04-01 03:28:50 +07:00
phobos2077 fef690c2c2 Merge branch 'feature/armor-appearance' into develop 2017-04-01 02:21:58 +07:00
phobos2077 5bbdcbd2db Added final version of NPC armor appearance script, compatible with both HeroAppearance mod and set_dude_obj (NPC control) function #82 2017-04-01 02:21:12 +07:00
phobos2077 24e9dde577 Add missing code for real_dude_obj 2017-04-01 02:15:09 +07:00
phobos2077 029419db3d Added real_dude_obj scripting function, useful for checking if currently controlling NPC or "real" character 2017-04-01 02:14:27 +07:00
phobos2077 6e0fe881df Added new hook script for controlling FID of character figure on inventory screen 2017-04-01 02:12:20 +07:00
phobos2077 203dcdf6be Refactor adjust_fid function, make it compatible with NPC control, Hero Appearance and NPC Armor appearance mods 2017-04-01 00:20:00 +07:00
phobos2077 34500d9dd5 Replace adjust_fid engine function with C++ implementation 2017-03-31 20:55:45 +07:00
phobos2077 cbe987df25 First prototype of armor appearance mod (hook-based)
- Add test version of gl_npcarmor script with config file for FO2 RP
- Add some useful scripting headers
- Add new scripting functions to sfall.h
2017-03-30 01:20:44 +07:00
NovaRain 7dcef6f4b2 Replaced some address hacks with simplified ones (e.g. using jumps in stead of multiple NOPs), to be in line with the changes in 3.8 branch (commit 16be32d284) 2017-03-28 10:11:38 +08:00
phobos2077 5dadba6e56 Better solution for NPC inventory FID: skip reading from proto, use existing art instead (partially fixes incompatibility with armor appearance mod);
Fixed conflict with HeroAppearance mod (assumed adjust_fid was always called for "real" Dude)
2017-03-28 02:49:55 +07:00
phobos2077 b592d6bdbe PartyControl: added fix for displaying proper NPC art in inventory screens (not taking armor into account - like vanilla game); removed redundant SetInventoryCheck function; minor refactoring (not compatible with current scripted implementation of NPC armor appearance mod) 2017-03-28 01:26:40 +07:00
phobos2077 0fe6c2a426 Fixed crash after barter 2017-03-27 23:42:34 +07:00
phobos2077 32564d64d1 Added scripting functions for reading INI sections 2017-03-27 04:07:16 +07:00
phobos2077 897f1ab323 Fixed bug and added description for new scripting function #17 2017-03-27 00:58:06 +07:00
phobos2077 4e3168e2e3 Added function set_dude_obj to take control of any critter at any time [EXPERIMENTAL] #17 2017-03-27 00:18:27 +07:00
phobos2077 8a65172927 Minor refactoring of PartyControl 2017-03-27 00:17:37 +07:00
phobos2077 778230dde1 Added item_weight script function;
Return -1 on metarule argument validation error (to match normal opcodes) #63
2017-03-26 23:16:35 +07:00
phobos2077 6a78206c2e Added SafeWriteBatch function for writing the same value to a list of addresses;
Rewrite AnimationsAtOnceLimit: get rid of redundant loops and unsafe heap allocations
2017-03-26 22:06:27 +07:00
phobos2077 c519fb6fb6 Replaced all usages of MakeCall with 3 arguments with either MakeJump or MakeCall (2 arguments) - code readability. 2017-03-26 20:10:44 +07:00
phobos2077 96fa2668cc Reduce duplication in HookScripts's hooking code using HookCalls; Added function MakeJump to improve code readability 2017-03-26 20:00:49 +07:00
phobos2077 c32dc7664e Added new modes for get_game_mod to match Crafty's; implemented HookCalls function to reduce code duplication #66 2017-03-26 19:41:04 +07:00
NovaRain 2c14d5dd57 Merge branch '3.8-maintenance' 2017-03-25 21:34:34 +08:00
NovaRain 945f4696d7 Fixed anim_set_end_hack() only gets called when applying AnimationsAtOnceLimit patch. It should be always called regardless of AnimationsAtOnceLimit setting. 2017-03-23 20:46:14 +08:00
NovaRain e7d03fc60a Fixed a bug that caused the game to crash upon entering combat mode if AnimationsAtOnceLimit is set to negative values by accident.
Used static const for the value of animation record size.
2017-03-23 13:03:20 +08:00
NovaRainandGitHub 61615930b6 Merge pull request #75 from FakelsHub/3.8-anim_fix
Fixed the game hanging in the combat mode when using reg_anim_animate() inside damage_p_proc (from Crafty, #75)
2017-03-23 07:43:57 +08:00
NovaRainandGitHub 62e5559aea Merge branch '3.8-maintenance' into 3.8-anim_fix 2017-03-23 07:30:36 +08:00
phobos2077 f2243f2874 Added definitions for AnimationSet structures (based on Crafty's work); refactor Proto struct definitions, added a couple of static asserts for safety 2017-03-23 01:57:06 +07:00
phobos2077 52e24a4dd4 Added a hack from Crafty that allows to use reg_anim_animate() inside combat_p_proc without game hanging in eternal loop #75 2017-03-23 01:13:49 +07:00
NovaRain 50c91db5ea Moved part of AnimationsAtOnceInit code from main.cpp to AnimationsAtOnceLimit.cpp.
Changed the if condition for ProcessorIdle to make sure out-of-bounds values not resulting in unexpected but valid values.
2017-03-21 21:05:44 +08:00
NovaRain b1624e5acf Fixed vanilla to-hit calculation being broken by the previous TOHIT hook commit. 2017-03-20 13:57:11 +08:00
NovaRain 1644ca437c Fixed vanilla to-hit calculation being broken by the previous TOHIT hook commit. 2017-03-20 13:56:03 +08:00
NovaRain 4482630f9a Updated credits.
Unified the wording of some log entries.
2017-03-19 08:32:47 +08:00
NovaRain 024b1dbf6f Backported the fix for TOHIT hook from 4.0 development branch (commit 7bbe84feef)
Updated credits.
2017-03-19 08:29:27 +08:00
phobos2077 7bbe84feef Fixed TOHIT hook issues: added 3 missing hook arguments, fixed incorrect attack type argument being passed to vanilla function, thus potentially breaking vanilla to hit calculations, even when not using any scripts at all 2017-03-18 21:45:28 +07:00
NovaRain 659da227f4 Fixed incorrect "\r\r\n" being printed in sfall-log.txt.
Simplified Jet Antidote fix.
Unified the wording of some log entries.
Changed sprintf to _snprintf_s for SimplePatch.
2017-03-18 22:42:19 +08:00
phobos2077 c83fe0690b Merge branch 'develop' of https://github.com/phobos2077/sfall into develop 2017-03-18 20:26:11 +07:00
phobos2077 76e32e1bef InputFuncs: added OnMouseClick delegate, moved debug editor related code into new module;
HookScripts: added check for map being loaded in MouseClick hook, minor renaming.
2017-03-18 20:23:34 +07:00
NovaRain 92c599e1a2 Fixed incorrect "\r\r\n" being printed in sfall-log.txt.
Simplified Jet Antidote fix.
Changed sprintf with _snprintf_s for SimplePatch to prevent warning  C4995 when compiling with v140_xp toolset.
2017-03-18 21:12:28 +08:00
phobos2077 1f74aa5c22 Refactor LoadGameHook: replaced MainMenuLoop hook with separate game_reset and main_init_system hooks #83 2017-03-18 18:24:08 +07:00
phobos2077andNovaRain b48549b524 Fixed 0 prices in all shops when not using barter mods
(cherry picked from commit 2d278bf4c7)
2017-03-18 10:34:01 +08:00
phobos2077 2525e8a005 Prevent crashes due to global scripts being executed during game closing 2017-03-18 03:21:50 +07:00
phobos2077 7c661ce408 Merge branch 'develop' of https://github.com/phobos2077/sfall into develop 2017-03-18 02:59:04 +07:00
phobos2077 2d278bf4c7 Fixed 0 prices in all shops when not using barter mods 2017-03-18 02:58:41 +07:00
NovaRain fc99baa0c6 Changed SkipSizeCheck and ExtraCRC to not require enabling sfall debugging mode. 2017-03-16 22:52:58 +08:00
NovaRain bf61051887 Updated documentation on hook scripts.
Minor edits to missing d3dx9 dll message.
2017-03-16 22:03:33 +08:00
NovaRain 0b739b7d77 Fixed inconsistent behavior of motion sensor flag 2; now motion sensor truly does not require any charges to work. 2017-03-16 07:38:43 +08:00
phobos2077 2fbf4a0518 Add notes for new scripting functions 2017-03-16 02:01:29 +07:00
phobos2077 9514602f91 Removed CommonTypes.h, it's redundant because with precompiled header, Windows.h defines are available everywhere 2017-03-16 01:33:11 +07:00
phobos2077 adf8dd13dd Moved highlighting-related settings into new "sfall-mods.ini", dedicated for scripted sfall mods;
Reverted description for MotionScannerFlags 1 and 2, it was actually correct before.
2017-03-16 01:21:20 +07:00
NovaRain 943561ea65 Fixed header path in MainLoopHook.h and Worldmap.h.
Replaced Win2K project config with ReleaseXP (using v140_xp toolset) because using VS2008 to target Win2000 is no longer possible with current sfall 4.0 codebase.
2017-03-15 22:14:17 +08:00
NovaRain 158234438b Fixed inconsistent behavior of motion sensor flag 2; now motion sensor truly does not require any charges to work. 2017-03-14 22:56:19 +08:00
NovaRain eb4998ced6 Fixed an error in the previous commit. 2017-03-14 22:02:52 +08:00
NovaRain 9631e08db4 ExplosionEmitLight: Skip setting light level if object was already lit #78 (from commit b0dc6ff182) 2017-03-14 14:07:26 +08:00
phobos2077 c5698d74ce Update documentation on hook scripts 2017-03-14 02:24:30 +07:00
phobos2077 afadbb71c4 Refactor highlighting mod script, added check for outlined_object (via new scripting function), updated ddraw.ini to reflect the actual meaning of highighting-related settings (they way it worked for a long time); #53
HighlightMod is permanently removed from sfall code, it is now only a script.
2017-03-14 00:20:34 +07:00
phobos2077 a74bab42e8 Full implementation of highlight mod with motion scanner interaction; #53
Fixed incorrect string lookup failsafe in Inventory.cpp
2017-03-13 23:54:54 +07:00
phobos2077 c411ced286 Merge branch 'develop' of https://github.com/phobos2077/sfall into develop 2017-03-13 22:15:16 +07:00
phobos2077 b0dc6ff182 ExplosionEmitLight: Skip setting light level if object was already lit #78 2017-03-13 22:13:21 +07:00
NovaRain 52072e29c0 Removed the obsolete WorldMapFPS, ForceLowResolutionTimer, and WorldMapDelay.
Fixed global scripts not running on the world map (mode 2) when disabling the world map speed patch.
2017-03-13 13:37:46 +08:00
NovaRain 28c18c1925 Updated hook script document for new arguments of hs_barterprice.
Changed BarterPriceHook() to be in line with the version in 4.0 branch.
Fixed incorrect GlobalVar struct size leading to load game crashes and corrupted saves (from 4.0 development branch)
2017-03-13 13:08:15 +08:00
NovaRain cbcc0e4a86 Fixed Sequence stat value not being printed correctly when using "print to file" option. 2017-03-13 11:29:56 +08:00
NovaRain 133d092d02 Fixed bugs for negative SPECIAL values in character creation (from Crafty)
Updated credits.
2017-03-13 10:47:53 +08:00
NovaRain 77349cbaec Fixed Sequence stat value not being printed correctly when using "print to file" option.
Updated credits.
2017-03-13 10:33:31 +08:00
phobos2077 fa583d41d7 Added scripting functions: get/set_flags. This allows, for example, to turn character into a ghost dynamically from script. 2017-03-13 04:12:52 +07:00
phobos2077 c63ddf3e9c Fixed incorrect GlobalVar struct size leading to load game crashes and corrupted saves 2017-03-13 03:54:23 +07:00
phobos2077 6152615ce5 Implemented highlighting mod as a stand-alone global script with LOS and NoHighlight flag checks #53 2017-03-13 03:36:02 +07:00
phobos2077 a379e1f998 Added ability to load global scripts from different paths with new GlobalScriptPaths option 2017-03-13 02:26:02 +07:00
phobos2077 b3d5d38cc4 Remove dependency on Explosions from ScriptExtender by introducing onAfterCombatAttack delegate 2017-03-13 00:52:40 +07:00
phobos2077 ede1bacf2b Added new arguments to barter price hook from Crafty (slightly modified) #76 2017-03-13 00:17:50 +07:00
VladandGitHub 85845a2d80 Merge pull request #76 from FakelsHub/3.8-barterhook
New arguments to hook_barterprice.
2017-03-13 00:05:57 +07:00
phobos2077 4823b71d96 Encapsulated delegate variables into functions 2017-03-12 23:27:00 +07:00
phobos2077 aa77d82a23 Removed all WorldmapSpeed patches except the default one, fixed global worldmap scripts not working when speed patch is disabled 2017-03-12 23:14:35 +07:00
phobos2077 0a3745f8f5 Moved main loop hooks from ScriptExtender to separate module (with new hooks);
Moved HighlightingMod into separate module;
Removed direct reference to ScriptExtender from InputFuncs using delegate
2017-03-12 21:48:10 +07:00
NovaRain d8e2e6f1ca Added a missing function to prevent the player starting the game with zero or negative SPECIAL values (from Crafty)
Added a log entry for the bag/backpack fix.
2017-03-12 21:02:19 +08:00
NovaRainandGitHub dd00e130a9 Merge pull request #80 from FakelsHub/3.8-PCStat_fix
Fixed bugs for negative SPECIAL values in character creation (from Crafty)
2017-03-12 20:53:53 +08:00
Mr.Stalin 6cb8700df5 Correcting bug for negative values SPECIAL parameters. (from Crafty) 2017-03-12 00:38:23 +03:00
phobos2077 685914dafa Improved outline function by redrawing only necessary portion of screen #54;
Renamed some sfall structs;
Minor refactoring.
2017-03-11 23:21:44 +07:00
phobos2077 2d4ce73664 Initial implementation of set_outline function (need to find better solution) #54 2017-03-11 21:48:59 +07:00
phobos2077 7b5e730f72 Moved some more wrappers out from HeroAppearance 2017-03-11 19:18:10 +07:00
NovaRain ec0baf3065 Greatly increased compilation speed using precompiled header (from 4.0 development branch)
Changed SkipSizeCheck and ExtraCRC to not require enabling sfall debugging mode.
2017-03-11 20:14:25 +08:00
phobos2077 10bc859892 Use precompiled header for all configurations; removed useless check for VS version 2017-03-11 18:39:54 +07:00
phobos2077 2e064580ed Refactor HeroAppearance and related code - moved wrapper functions into Functions_def.h, replaced usages, corrected some structs 2017-03-11 18:35:57 +07:00
phobos2077 8357465e9c Removed file-specific compile settings for Worldmap.cpp and TalkingHeads.cpp 2017-03-11 15:45:24 +07:00
phobos2077 81d3479bff Greatly increase compilation speed using precompiled header 2017-03-11 15:43:28 +07:00
phobos2077 89f92f9676 Replaced NULL with nullptr 2017-03-11 15:11:38 +07:00
phobos2077 5888b76afb Merge branch 'feature/namespace-changes' into develop 2017-03-11 15:07:52 +07:00
phobos2077 e1db0550b1 Removed ExtraSaveSlots dependency on HeroAppearance - moved some functions to EngineUtils, others replaced with wrappers 2017-03-11 14:51:56 +07:00
phobos2077 d0f05e4efe Rewrite Proto structures - mapped most of proto offsets into one big struct 2017-03-11 14:07:08 +07:00
phobos2077 b18b5a340c Renamed most used engine structs;
Rename struct fields and map previously unknown fields;
Replace sElevator with proper two-dimensional array of simple structs;
Fix build errors.
2017-03-11 02:15:27 +07:00
Mr.Stalin 5265100425 Combat animation fix: fixes a hang in the handler damage_p_proc after the animation completes in the combat mode. (from Crafty) 2017-03-09 21:59:16 +03:00
Mr.Stalin c095e54b62 Add new get arguments(arg7/arg8/arg9) to HOOK_BARTERPRICE (from Crafty) 2017-03-09 19:26:13 +03:00
NovaRain 6e5b811b87 Fix a crash when clicking on empty space in the inventory list opened by "Use Inventory Item On" (backpack) action icon (from Crafty)
Improved the functionality of ScrollMod: now the minimum is scrolling 1 inventory slot per click; before setting ScrollMod too high or negative values will result in scrolling not working.
Changed BodyHit_Torso to BodyHit_Torso_Uncalled because it sets both body_torso and body_uncalled hit modifiers.
2017-03-09 13:56:37 +08:00
NovaRain 229a5516e0 Unified the style of merged code. 2017-03-09 10:18:16 +08:00
NovaRainandGitHub f056c53739 Merge pull request #73 from FakelsHub/3.8-inventory-fix
Fix a crash when clicking on empty space in the inventory list opened by "Use Inventory Item On" (backpack) action icon (from Crafty)
2017-03-09 10:11:13 +08:00
NovaRain cb84700bfc Fixed metarule2_explosions not being reset properly. 2017-03-09 09:10:21 +08:00
NovaRain e71d1962b5 Fixed metarule2_explosions not being reset properly. 2017-03-09 09:07:58 +08:00
phobos2077 a4de59dac4 Put all engine function offsets into fo::funcoffs:: namespace; refactor the definition of functions to reduce lines of code; renamed some headers #56 2017-03-09 02:48:48 +07:00
phobos2077 67c3ba7caf Renamed VARPTR_ to FO_VAR_ prefix #56 2017-03-09 01:12:20 +07:00
phobos2077 4b261febfd Put all FO variables and function wrappers to fo:: namespace; fix all build errors; other minor refactoring #56 2017-03-09 00:27:54 +07:00
Mr.Stalin 0f722a50fd Fix crash when clicking on empty space in the inventory with the cursor using an item from the backpack (from Crafty) 2017-03-08 19:27:29 +03:00
NovaRain 6b7a10130d Improved the functionality of ScrollMod: now the minimum is scrolling 1 inventory slot per click; before setting ScrollMod too high or negative values will result in scrolling not working. 2017-03-08 22:56:48 +08:00
phobos2077 6b6da17610 Updated TGameObj struct with separate sub-structs for items and critters; Put game enums and structs into fo namespace (broken build) #56 2017-03-06 02:20:22 +07:00
phobos2077 8ed93e8cf7 Replaced DATATYPE_* constants with enum class 2017-03-06 00:50:15 +07:00
phobos2077 31520d6f65 Fixed crash when using Graphic patch due to conflict between Movie patch and SkipOpeningMovies patch 2017-03-06 00:28:59 +07:00
NovaRain 061302585b Updated version number. 2017-03-06 00:43:39 +08:00
phobos2077 033221398e Fixed Sfall not working :)
Separated sfall initialization from WinAPI-specific code in main.cpp and InputFuncs.cpp
2017-03-05 22:41:19 +07:00
phobos2077 3a4b7fe3f5 Moved all files to sfall namespace 2017-03-05 21:49:21 +07:00
phobos2077 a016e4a236 Replaced all direct references to ini and translationIni with GetConfig*() 2017-03-05 18:25:33 +07:00
phobos2077 6f0901f980 Replaced more INI reading with new functions;
Removed CityRepsCount setting (redundant)
2017-03-05 01:52:33 +07:00
NovaRain c3acd1af3e Changed ExtraGameMsgFileList to read its setting from generic INI file, which can be set by UseCommandLine, instead of the fixed ddraw.ini.
Added a comment to karma frm options to explain things better.
2017-03-05 00:31:35 +08:00
phobos2077 fbb643bfa8 Fix and refactor loading of ExtraGameMsgFileList 2017-03-04 20:23:03 +07:00
phobos2077 32c1de3a34 Added functions for reading from sfall INI files more easily;
Refactor Karma module init: use new INI functions, get rid of hacky string split code, removed KarmaFRMsCount (it's redundant)
2017-03-04 19:55:37 +07:00
phobos2077 b5a85fd57c Merge branch 'feature/module-system' into develop 2017-03-04 17:57:33 +07:00
phobos2077 c0906521aa Reduce external dependencies in LoadGameHook using the delegates for various events;
Renamed some variables and functions;
Moved Input patch into separate module;
Moved Graphics patch initialization into Graphics module;
Moved PipboyAvailableAtStart and DisableHorrigan patches into MiscPatches;
#69 #9
2017-03-04 17:51:24 +07:00
NovaRain 411c0a6e98 Backported the fix for a crash when pressing reload weapon key while in the main menu from 4.0 development branch (commit 5b10d9e786) 2017-03-03 11:45:06 +08:00
phobos2077 5b10d9e786 Fixed crash on pressing Reload hotkey while on the main menu; move some dependencies from LoadGameHook 2017-03-03 01:07:57 +07:00
phobos2077 75c7ab647f Renamed some macros to avoid names reserved by C++ standart;
Replaced fixed-bit types with simple types in Enums and Struct definitions (because sfall is 32-bit exclusive by design).
2017-03-01 03:02:18 +07:00
phobos2077 38e0f21e93 Reorganize hooks in LoadGameHook: don't hook main menu loop, instead added "before new game" hook. 2017-03-01 02:50:27 +07:00
NovaRain 4cc1235dbc Backported the fix for bug #70 from 4.0 development branch (commit 72bde84d92)
Fixed a minro typo in Inventory.cpp.
2017-02-28 21:22:00 +08:00
phobos2077 02658a3801 Moved fix patch to more appropriate place #70 2017-02-28 00:39:05 +07:00
phobos2077 72bde84d92 Fixed bug #70 by replacing item_count engine function 2017-02-28 00:32:47 +07:00
phobos2077 f3f9186ce7 Removed Cpp11_emu file. Goodbye, Windows 9x :'(
Added delegates to LoadGameHook.
2017-02-27 02:04:18 +07:00
phobos2077 be0cc2f3d5 Switch to Visual Studio 2015 compiler. Test some features with Delegate class 2017-02-27 01:48:54 +07:00
phobos2077 826c3eb021 Added Module classes for every sfall module; #9
Moved all patches out from main.cpp;
Fixed all build errors.
2017-02-27 01:27:04 +07:00
NovaRain bf70cadc02 Merge branch '3.8-maintenance' 2017-02-27 00:02:50 +08:00
phobos2077 8284eb50f0 Moved more stuff out from main.cpp;
Added module manager class with example usage; #9
Attempted to implement Delegate class.
2017-02-26 22:53:32 +07:00
phobos2077 160c11043f Moved SpeedPatch to separate unit; moved Karma FRMs patch to Karma.cpp #7 2017-02-26 02:59:08 +07:00
phobos2077 6e5a0fd085 Moved DisplayKarmaChange patch into separate unit #7 2017-02-26 02:48:16 +07:00
phobos2077 57ef099e97 Moved LoadOrder patch into separate unit #7 2017-02-26 02:43:19 +07:00
phobos2077 944b95d796 Move all Worldmap-related patches into separate unit #7 2017-02-26 02:35:53 +07:00
phobos2077 dfa9534bd1 Move more patches away from main.cpp to Misc module 2017-02-26 02:17:39 +07:00
phobos2077 c186ed5ee0 Added Module base-class and example subclass for HeroAppearance 2017-02-26 02:17:03 +07:00
phobos2077 4dc2aaa046 Merge branch 'feature/opcode-handling' into develop 2017-02-24 17:25:33 +07:00
phobos2077 b3e1837cfc Moved several more functionsto opcodeInfoArray.
Removed AsmMacros.h to reduce the number of ways to write new scripting function. #58
2017-02-24 17:24:15 +07:00
phobos2077 94c00f12f7 Moved all array-related opcodes to new table #58 2017-02-24 17:01:02 +07:00
phobos2077andNovaRain 70a742db81 Added note about possible issue when using hs_invenwield incorrectly
(cherry picked from commit df5c81164f)
2017-02-24 15:48:06 +08:00
NovaRain 00d4e188d6 Fixed a crash if calling reg_anim_obj_run_to_tile after reg_anim_combat_check.
Implemented some changes of Explosions.cpp from commit ce21fdab79 to make the code a bit more understandable.
2017-02-24 15:47:37 +08:00
phobos2077 df5c81164f Added note about possible issue when using hs_invenwield incorrectly 2017-02-24 13:57:00 +07:00
phobos2077 17df8deb86 Moved all "Utils" opcodes to new table (gotten rid of op_* functions) #58 2017-02-24 13:56:02 +07:00
phobos2077 54f9fc4bcd Introduced much simpler way to add engine functions wrappers (one line in 1 file); changed anim functions to use new wrappers 2017-02-24 03:12:36 +07:00
phobos2077 6d88cd03f7 Fixed crash if calling regn_anim_obj_run_to_tile after reg_anim_combat_check 2017-02-24 03:11:06 +07:00
phobos2077 a30464cfae Fixed bug in metarule2_explosions, possible fix for #67 2017-02-24 01:32:32 +07:00
phobos2077 ce21fdab79 Rewrite all anim-related opcode handlers, fixed bug in metarule2_explosions function (damage type change) #58, #67 2017-02-24 01:29:46 +07:00
phobos2077 bac748a525 Use Enum of pseudo-types for argument validation instead of struct #58 2017-02-24 00:30:26 +07:00
phobos2077 d9b8d18a67 Replaced bitmask-based argument validation system with more simple solution;
Refactor OpcodeContext::handleOpcode method;
Moved register_hook_* functions to new opcodeInfo table #58
2017-02-23 23:45:15 +07:00
phobos2077 15b51eaa6d Converted all object-related opcodes to new format #58 2017-02-23 20:02:19 +07:00
phobos2077 ae1aa27d13 Implemented more convenient way to define sfall opcodes, rewritten key_pressed handler, moved some opcodes to new opcodeInfoArray #58 2017-02-23 19:07:22 +07:00
phobos2077 f150163bc5 Fixed game_loaded scripting function 2017-02-23 19:05:17 +07:00
phobos2077 142264d6b6 Added opcode number getter to OpcodeContext. This way it's possible to use single naked function for many opcodes.
Fixed MetaruleTable not being filled.
2017-02-22 02:27:55 +07:00
phobos2077 a69b1b92b2 Fix build after merging changes from 3.8 branch. 2017-02-22 02:08:59 +07:00
NovaRain 38438d1e9c More minor edits to ddraw.ini. 2017-02-21 23:15:26 +08:00
NovaRain 94e4a2043a Some minor edits to ddraw.ini. 2017-02-21 23:01:21 +08:00
NovaRain 42f70f920e Removed unused code in LoadGame().
Revert the change of OverrideArtCacheSize.
2017-02-21 14:37:18 +08:00
phobos2077 214e405c32 Set the valid range of NPCsTryToSpendExtraAP to be non-0 positive values, and removed a redundant/unused constant.
Changed the valid range of EncounterTableSize.
2017-02-21 01:46:02 +07:00
NovaRainandphobos2077 99d6ff332f Added a fix for the engine not checking player's inventory properly when putting items into the bag/backpack in the hands (from Crafty)
Removed BagBackpackFix from ddraw.ini.
2017-02-21 01:43:43 +07:00
NovaRainandphobos2077 2d726de3f0 Fixed a crash when trying to open bag/backpack on the table in the bartering interface (from Crafty)
Added a tweak to move items to player's main inventory instead of the opened bag/backpack when confirming a trade.
2017-02-21 01:43:29 +07:00
NovaRainandphobos2077 212118ba8c Added a fix to ignore player's equipped items when opening bag/backpack (from Crafty) 2017-02-21 01:43:17 +07:00
NovaRainandphobos2077 2383d8d507 Added the ability to move items out of bag/backpack and back into the main inventory list by dragging them to character's image (similar to Fallout 1 behavior) (derived from Crafty's code)
Added a fix for losing items from inventory when you try to drag them to bag/backpack in the inventory list and are overloaded (from Crafty)
Removed gdBarterDispFix from ddraw.ini.
2017-02-21 01:43:06 +07:00
phobos2077 94f138f64b Replaced PID number in ScannerAutomapHook() with its define name for better understandability. 2017-02-21 01:39:22 +07:00
phobos2077 a5ffbe3a5f Replaced hex addresses with proper engine defines for ViewXPos and ViewYPos, and replaced two instances of SafeWrite32 with HookCall. 2017-02-21 01:33:03 +07:00
NovaRainandphobos2077 7a5a54ab5e Limited the range of values for StartYear/Month/Day to prevent errors when setting them to negative values, and added a clarification in ddraw.ini. 2017-02-21 01:28:40 +07:00
phobos2077 b5f3addae5 Fixed OverrideMusicDir not using the correct path string.
Updated the year showed in the credits and file properties.
2017-02-21 01:21:09 +07:00
phobos2077 2db071d0ca Fixed broken call_offset_* functions. 2017-02-21 01:17:31 +07:00
NovaRainandphobos2077 5b59c9e54d Added more details to the description of WorldMapEncounterFix/Rate, and changed the default value of WorldMapEncounterRate to its internal default. 2017-02-21 01:15:22 +07:00
NovaRainandphobos2077 60fb21cd1b Fixed display issues when calling gdialog_mod_barter with critters with no "Barter" flag set (from Crafty) 2017-02-21 01:13:20 +07:00
NovaRainandphobos2077 0f1072c302 Made WorldMapEncounterFix/Rate independent from WorldMapFPSPatch. (#62, with the simplified code from Crafty) 2017-02-21 01:05:45 +07:00
VladandGitHub 8069d925fe Merge pull request #61 from Vennor/early_sfall_save_game_loading
Early sfall save game loading
2017-02-21 00:56:16 +07:00
phobos2077 69905b633b Replace deprecated hash_map with std::unordered_map 2017-02-21 00:51:28 +07:00
phobos2077 1aba89e810 Attempt to fix build error in VS2015. 2017-02-21 00:44:07 +07:00
phobos2077 2548e6ea8f Merge branch 'feature/opcode-handling' into develop 2017-02-21 00:31:52 +07:00
phobos2077 0026590058 Refactor OpcodeContext class to make more sense. 2017-02-21 00:26:42 +07:00
NovaRain f56af79c16 Set the valid range of NPCsTryToSpendExtraAP to be non-0 positive values, and removed a redundant/unused constant.
Changed the valid range of EncounterTableSize.
2017-02-21 00:15:24 +08:00
NovaRain 955733270c Added a fix for the engine not checking player's inventory properly when putting items into the bag/backpack in the hands (from Crafty)
Removed BagBackpackFix from ddraw.ini.
2017-02-20 12:23:51 +08:00
NovaRain 9804902af6 Fixed a crash when trying to open bag/backpack on the table in the bartering interface (from Crafty)
Added a tweak to move items to player's main inventory instead of the opened bag/backpack when confirming a trade.
2017-02-17 00:21:16 +08:00
NovaRain cfb546ce8a Added a fix to ignore player's equipped items when opening bag/backpack (from Crafty) 2017-02-15 22:39:31 +08:00
NovaRain de2549eeaa Added the ability to move items out of bag/backpack and back into the main inventory list by dragging them to character's image (similar to Fallout 1 behavior) (derived from Crafty's code)
Added a fix for losing items from inventory when you try to drag them to bag/backpack in the inventory list and are overloaded (from Crafty)
Removed gdBarterDispFix from ddraw.ini.
2017-02-15 12:56:37 +08:00
NovaRain cc00a2c162 Replaced PID number in ScannerAutomapHook() with its define name for better understandability. 2017-02-13 15:46:49 +08:00
NovaRain 16be32d284 Replaced some address hacks with simplified ones (e.g. using jumps instead of multiple NOPs)
Changed code style in main.cpp with Astyle.
2017-02-13 14:02:28 +08:00
NovaRain 16f19824d1 Replaced hex addresses with proper engine defines for ViewXPos and ViewYPos, and replaced two instances of SafeWrite32 with HookCall. 2017-02-12 22:28:37 +08:00
NovaRain 535b7edc55 Limited the range of values for StartYear/Month/Day to prevent errors when setting them to negative values, and added a clarification in ddraw.ini. 2017-02-12 00:11:21 +08:00
NovaRain 573e5324f4 Updated ddraw.ini for the change in previous commit.
Updated version number.
2017-02-07 15:59:59 +08:00
NovaRain e17b722f16 Changed BodyHit_Torso to BodyHit_Torso_Uncalled because it sets both body_torso and body_uncalled hit modifiers. 2017-02-04 21:20:33 +08:00
NovaRain 7a6e15bae1 Fixed OverrideMusicDir not using the correct path string.
Updated the year showed in the credits and file properties.
2017-01-31 13:03:09 +08:00
NovaRain df34f6c994 Fixed broken call_offset_* functions. 2017-01-24 22:24:53 +08:00
NovaRain 26874a709e Edited the format of LoadGameHook.cpp to be more in line with the one in 4.0 branch, and replaced a hex address with proper engine function. 2017-01-20 00:28:09 +08:00
NovaRain 45724aa6b3 Moved sfall additional save game file reading from LoadGame2_After to LoadGame2_Before to make saved arrays available in start functions of ssl scripts.
(cherry picked from commit 6bd7d4f05c)
2017-01-19 23:59:05 +08:00
NovaRain b477a43bd0 Added more details to the description of WorldMapEncounterFix/Rate, and changed the default value of WorldMapEncounterRate to its internal default. 2017-01-12 00:08:10 +08:00
NovaRain ca86b5f930 Fixed display issues when calling gdialog_mod_barter with critters with no "Barter" flag set (from Crafty) 2017-01-09 16:35:03 +08:00
NovaRain f05ec714e7 Made WorldMapEncounterFix/Rate independent from WorldMapFPSPatch. (#62, with the simplified code from Crafty) 2016-12-27 14:19:54 +08:00
Vennor 6bd7d4f05c Moved sfall additional save game file reading from LoadGame2_After to LoadGame2_Before to make saved arrays available in start functions of ssl scripts. 2016-12-15 20:18:43 +01:00
phobos2077 c26c2ad8f6 Moved core opcode handlers and opcode list into separate translation units. 2016-11-14 22:43:04 +07:00
phobos2077 ae4193d6f9 Renamed OpcodeHandler to OpcodeContext to avoid confusion with actual handler functions (sf_*). 2016-11-14 21:57:44 +07:00
phobos2077 3fed492a5b Get rid of opHandler global variable by passing instance to every scripting function handler. 2016-11-14 21:50:27 +07:00
NovaRain 3e3f6f92ed Merge branch '3.8-maintenance' 2016-11-14 10:20:26 +08:00
NovaRain ad1f08378b Fixed issue #57.
Updated version number.
2016-11-14 09:40:01 +08:00
phobos2077 b026f8eadd Split opcode handler categories into separate translation units. 2016-11-14 02:07:08 +07:00
phobos2077 adcf3be520 Renamed all opcode handlers for consistent naming. 2016-11-13 20:53:40 +07:00
phobos2077 728e18b344 Fixes #57 2016-11-12 03:35:40 +07:00
phobos2077 65bb7d4de7 Simplify some calls in asm and replaced few addresses with constants. 2016-11-12 03:08:00 +07:00
phobos2077 1472902de4 Removed unnecessary includes. 2016-11-11 02:58:13 +07:00
phobos2077 dd1474c8d3 Moved some code from DllMain2 into separate functions in new cpp file. 2016-11-11 02:54:03 +07:00
phobos2077 830309b544 Merge with master branch, resolved conflicts. 2016-11-11 01:46:16 +07:00
phobos2077 84a60128a2 More code style fixes and some wrappers. 2016-11-11 01:27:38 +07:00
phobos2077 ec34df50ac Missing changes from previous commit. 2016-11-11 00:43:29 +07:00
phobos2077 9edf6e6cc3 Fixed several bugs due to incorrect pointer arithmetic.
Added/updated some structs.
2016-11-11 00:42:39 +07:00
phobos2077 99ddda2848 - Change the way engine variables are used in C++ code. No need to use asterix anymore, as they are declared as references.
- Implemented solution to interact with static engine arrays (like critical tables).
2016-11-10 23:11:18 +07:00
phobos2077 f351faa422 EXPERIMENTAL: declared references to engine variables in addition to pointers. This will allow to work with variables directly without additional operator! See PartyControl.cpp for example (naming is temporary). 2016-11-10 15:13:14 +07:00
phobos2077 a4dee3dbca Use recursion for _WRAP_WATCOM_CALL macros. 2016-11-10 14:28:42 +07:00
NovaRain 9be861a84b Merge branch '3.8-maintenance' 2016-11-10 09:14:49 +08:00
phobos2077 726aff686b Fixed code style for last modules. Moved some more structs/wrappers to FalloutEngine. Removed duplicate wrappers in Tiles.cpp. 2016-11-10 02:54:59 +07:00
phobos2077 34b0b7269f Fix some code styles and move Perk and Trait structs into Structs.h 2016-11-10 02:08:18 +07:00
phobos2077 2ac60d66f5 Adopted most functions from Imports h/cpp to Wrappers. 2016-11-10 01:50:13 +07:00
phobos2077 77cc151455 Simplify definition of engine variables using X-Macros pattern. Now only need to add in 2 places instead of 3. 2016-11-10 01:26:34 +07:00
phobos2077 d63392aea2 Refactor Message-related code: removed duplicate functions and structs, moved engine-related stuff to one place, other stuff. 2016-11-09 23:57:58 +07:00
phobos2077 07b5f78318 Fixing code style. 2016-11-09 20:39:14 +07:00
phobos2077 37e159dd21 Fixing code style. 2016-11-09 19:45:38 +07:00
phobos2077 cd1c756e24 Added some VS2015 temp files to gitignore 2016-11-09 14:09:36 +07:00
NovaRain 11dfb3e94a Added MainMenuOffsetX/Y and MainMenuCreditsOffsetX/Y settings back to ddraw.ini.
Corrected document file name in README.txt.
2016-11-08 10:25:41 +08:00
phobos2077 66ea6a7609 Simplify function wrapper definitions using macros.
Moved all non-wrapper functions to Utils.
Added basic structs for some prototypes.
2016-11-07 22:13:28 +07:00
phobos2077 0efdf7096b Fixed build errors. 2016-11-07 20:49:39 +07:00
phobos2077 80dad0d5d0 Refactor ScriptExtender: replaced some engine function calls with wrappers, fix code style. 2016-11-07 18:55:13 +07:00
NovaRain 3668a1c94f Improved the functionality of ProcessorIdle (from Crafty) 2016-11-07 15:04:55 +08:00
NovaRain 5cb3ca2a59 Removed queue9x and vector9x.
Disabled ComputeSprayMod by default.
Updated version number.
2016-11-07 10:16:57 +08:00
phobos2077 10ec39ab60 Refactoring ScriptExtender module. 2016-11-07 03:44:25 +07:00
phobos2077 bd7518ca33 Fixed mistake of using constant pointer variables in ASM blocks (resulted in incorrect references in most cases).
Now each variable has preprocessor constant with prefix VARPTR_ .
2016-11-07 01:34:35 +07:00
phobos2077 8b264db28a Moved all engine variable pointers to separate namespace.
Replaced all usages of variable defines with variable pointers.
2016-11-07 00:09:12 +07:00
phobos2077 c44ca6adc1 Add some FO enums and tidy up existing ones.
Removed accidentally added sublime workspace from repo.
2016-11-06 21:54:28 +07:00
phobos2077 96db48626a Renamed all engine function wrappers to their original names and moved to separate namespace for code clarity. 2016-11-06 21:20:23 +07:00
phobos2077 7705e43ce4 Moved all function offsets to separate namespace. 2016-11-06 20:33:54 +07:00
phobos2077 8da65a92e9 Merge branch '3.8-maintenance' into develop 2016-11-06 19:43:25 +07:00
phobos2077 4ef88959e3 Moved argument validation to opcodeMetaTable. Now old-style opcode and sfall_funcX scripting functions work almost identical and their handlers can be interchanged.
Fixed some bugs with sfall_funcX.
2016-11-06 17:37:25 +07:00
phobos2077 4cc9cb0b83 - Refactor opcode handling.
- Made new-style "sfall_funcX" functions compatible with old-style opcodes, this allows to use one handler function to act as both metarule and normal opcode.
- Added table of opcode meta-data.
2016-11-06 16:52:09 +07:00
phobos2077 6eb9a37a07 Simplify function definitions 2016-11-06 15:39:45 +07:00
phobos2077 363d7a1cc5 Rename types in function references for consistency and clarity. 2016-11-06 00:56:59 +07:00
phobos2077 d9d86e3fe4 Added macros for new scripting functions 2016-11-06 00:32:28 +07:00
phobos2077 6290effd93 Merge branch '3.8-maintenance' into develop 2016-11-06 00:16:28 +07:00
phobos2077 ce1fd719cf Limit maximum string length for arrays to prevent certain strange crashes 2016-11-06 00:15:25 +07:00
phobos2077 1595d75f7c Added docs for new opcodes and scripting functions 2016-11-06 00:14:25 +07:00
phobos2077 f3209d282d Removed fallout2.cpp 2016-11-05 23:35:52 +07:00
phobos2077 a05d440ad6 Get rid of warnings in Movie.cpp 2016-11-05 23:35:13 +07:00
phobos2077 87e28277ad Moved engine Functions, Variables and Wrappers into separate files;
Added most function offsets from Fallout2.exe
2016-11-05 22:19:21 +07:00
phobos2077 935f7ead89 Removed queue9x and vector9x 2016-11-05 20:20:12 +07:00
phobos2077 84042f1736 New folder and project structure #7;
Removed vector9x and queue9x;
Reorganized some includes.
2016-11-05 20:19:34 +07:00
phobos2077 6287eefd7c Merge branch 'feature/issue-55-metarule' into develop 2016-11-05 18:07:30 +07:00
phobos2077 3bc84a0040 Refactor: encapsulated opcode-related functions and variables into classes 2016-11-05 03:34:09 +07:00
phobos2077 18b34767b6 Added new scripting functions to show/hide/redraw main interface and to exec map_update_p_proc for all map objects #51 2016-11-05 01:17:42 +07:00
phobos2077 af4bad36d4 Added validation for null arguments #55;
Added scripting function "spatial_radius";
Added scripting function "critter_inven_obj2" #38.
2016-11-04 17:22:05 +07:00
phobos2077 1a40c40cd3 Added full definitions for metarules and automatic argument validation of with detailed error messages 2016-11-04 03:37:30 +07:00
phobos2077 9367139957 Remove condition for vsnprintf_s - always use long variant 2016-11-03 21:04:46 +07:00
phobos2077 87f45d26db Merge remote-tracking branch 'origin/feature/issue-55-metarule' into feature/issue-55-metarule 2016-11-03 20:57:09 +07:00
phobos2077 bd2f83d6a8 Refactor opcode handling;
Write metarule errors to debug.log (added reusable function);
Fixed some warnings
2016-11-03 20:55:59 +07:00
phobos2077 d29b51d5ea Implemented new way of handling sfall opcodes - now almost without any ASM code
Added bunch of engine function wrappers
2016-11-03 19:30:42 +07:00
NovaRain d276da3d68 Added VS2008 compatibility (vsnprintf_s uses 4 args by C11 standard, which is supported in VS2010 but not VS2008) 2016-11-03 14:56:32 +08:00
phobos2077 502897cb6f Fixed a nasty bug in dlog_f function that only shows when compiling w/o optimization 2016-11-03 04:43:10 +07:00
NovaRain e3739ba7aa Initialized scriptDialog pointer properly and deleted it on game exit. 2016-11-02 08:59:02 +08:00
phobos2077 02beff2b04 Implemented sfall_funcX opcodes 2016-11-02 04:10:50 +07:00
phobos2077 cf82440753 Testing implementation for universal opcode #55 2016-11-01 03:53:07 +07:00
NovaRain e78e76e35d Edited a couple of log entries.
Simplified the memory address edits of MultiPatches.
2016-10-31 15:56:19 +08:00
NovaRain 47783c802e Added a C++11 emulator for compiling with VS2008. 2016-10-26 11:38:57 +08:00
phobos2077 ce72ef51f8 Bug fix 2016-10-24 20:23:43 +07:00
phobos2077 dbc0ebd36f Do not allow to save game on Party-Controlled turn regardless of SaveInCombatFix value 2016-10-24 20:21:52 +07:00
phobos2077 db89f5760c Do not allow to use sneak when controlling party members 2016-10-24 20:16:02 +07:00
phobos2077 e864f1f961 Added DelayedExperience feature for party control 2016-10-24 19:32:05 +07:00
phobos2077 fafc4a317f Bug fixing 2016-10-24 18:38:09 +07:00
phobos2077 5d689c0641 Improve party control by temporarily changing more dude-related properties 2016-10-24 17:59:04 +07:00
phobos2077 4a65a6753f Remove some duplicated variables, use consistent naming 2016-10-24 12:49:12 +07:00
phobos2077 5dec063c1c Add more game global variable pointers to FalloutEngine 2016-10-24 12:36:02 +07:00
NovaRain dbdf414cd9 Tweaked the style of global/hook script log entries a bit. 2016-10-18 11:45:00 +08:00
NovaRain 3e2a22fad8 Fixed bugs in set*_stat_min functions that set max values instead of min.
Unified the style of global/hook script log entries.
Updated the code of "reading global/hook scripts from DAT files" with Crafty's newer code base.
2016-10-18 10:59:10 +08:00
NovaRain 13ee06dee2 Improved the 'print to file' fix and added the ability to use long filenames in dat files (from Crafty) 2016-10-17 11:58:22 +08:00
NovaRain 2d3031e583 sfall can now load global/hook scripts from dat files (from Crafty's mod) 2016-10-14 13:57:20 +08:00
NovaRain de5c12484d Added DataLoadOrderPatch option to use a modified data load order for the engine to find game data (from Crafty's mod)
Updated version number.
2016-10-11 11:58:17 +08:00
NovaRain c880ae93a9 Removed unused code in ScriptExtender.cpp and rename obj_outline_all_items_* functions slightly to prevent using the same names as game engine functions.
Minor edits on main.cpp and Bugs.cpp.
2016-10-07 10:31:46 +08:00
NovaRain 295a5d1437 Replaced NumberPatchLoop with a simple toggleable MultiPatches. Reason: While NumberPatchLoop allows even larger patch numbers, the built-in valid range of patch numbers of 000 ~ 999 is more than enough already. 2016-10-05 16:09:22 +08:00
NovaRain e726ee54ba Tweaked set_bodypart_hit_modifier function to follow the removal of BodyHit_Uncalled from ddraw.ini, e.g. setting modifier for torso (3) will also set for uncalled (8), and vice versa. 2016-10-04 10:23:17 +08:00
NovaRain 712eafc241 Now sfall loads global/hook scripts, shaders, 32-bit talking heads images, and avi movies according to the paths variables in the cfg file, instead of from the fixed "Data\".
Removed GainStatPerkFix from ddraw.ini.
Removed BodyHit_Uncalled from ddraw.ini. Now "uncalled" shares the same modifier with "torso", because separating them would result in some illogical setups.
2016-10-03 14:46:51 +08:00
NovaRain d1bf22ec8d Expanded DisableHorrigan to also skip the forced encounter check, to compatible with old saves that are not started with DisableHorrigan=1.
Changed the description of PipBoyAvailableAtGameStart=2 to be more precise.
Simplified the skipping code in PerkSetup(), because it's redundant to change two bytes that the same effect can be done with changing the conditional jump next to them.
2016-09-29 13:37:58 +08:00
NovaRain 21d496f392 Added a new setting to PipBoyAvailableAtGameStart to skip the vault suit movie check and make the PipBoy always available.
Improved the functionality of PipBoyAvailableAtGameStart (from Crafty's mod)
2016-09-26 16:05:18 +08:00
NovaRain 07948206fb Removed CarryWeightLimit option, because it can be scripted with set_stat_max function. 2016-09-21 09:33:11 +08:00
NovaRain 6a71bf086d Added a partial fix for incorrect positioning after exiting small locations (e.g. Ghost Farm) (from Crafty's mod) 2016-09-19 13:15:57 +08:00
NovaRain ec585529c8 Changed BodypartHitMod# to BodyHit_(part names) in ddraw.ini, to make them easier for users to understand. 2016-08-31 10:27:03 +08:00
NovaRain e6aad27e44 Moved ImportedProcedureFix to Bugs.cpp and added comments to it.
Added more descriptions to options in ddraw.ini, especially DebugMode,  to make things clearer and save the trouble to look up debug patch readme.
2016-08-30 13:11:06 +08:00
NovaRain f0528740a4 Removed the redundant loop in the unlimited ammo exploit fix. 2016-08-22 09:42:01 +08:00
256 changed files with 33152 additions and 22138 deletions
+2
View File
@@ -46,6 +46,8 @@ nb-configuration.xml
*.user
*.userosscache
*.sln.docstates
*.VC.db
*.VC.opendb
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
+29 -1
View File
@@ -7,6 +7,34 @@
; have an additional NoHardcode option in this file which can
; be used to remove their hardcoded effects, and add new stat/skill effects
;Name=The name of the perk
;Desc=The description of the perk
;Image=The line number (0-indexed) of the corresponding FRM in skilldex.lst
;Ranks=The number of perk levels
;Level=The minimum required level
;Type=If 0, the perk checks only Skill1 for skill requirements; if 1, it checks
; Skill1 or Skill2; if 2, it checks both Skill1 and Skill2
;Stat=The modified stat or -1 if you don't want to change any stats
;StatMag=The increased/decreased value to the modified stat
;Skill1=The first skill (or -1 for none) to check, but if you set a specific bit
; (67108864 or 0x4000000), it checks GVAR. For example, if Skill1=67108864, then
; the perk will check GVAR_PLAYER_REPUTATION (67108864 + 0) on Skill1Mag value
;Skill1Mag=Positive value is used as the minimum requirements of the first
; skill/GVAR, and a negative value is interpreted as the maximum requirement.
; For example, with Skill1=0 and Skill1Mag=100, if player has small guns skill
; >= 100 and meets all other requirements, the perk will be available in the
; selection window; with Skill1=1 and Skill1Mag=-120, the perk will not be
; available if player has big guns skill >= 120
;Skill2=The second skill/GVAR (or -1 for none) to check
;Skill2Mag=Same as Skill1Mag, but for Skill2
;STR-LCK=Positive values are used as minimum requirements of SPECIAL stats, and
; negative values are interpreted as maximum requirements. For some special
; perks processed by the engine (e.g. PERK_armor_powered and PERK_armor_combat),
; the values are not used as requirements but to add to corresponding SPECIAL
; stats
;If the value is set to -99999, the variable will be ignored (similar to comment out that line)
;This is a modification to perk 119
[119]
Name=Example
@@ -36,4 +64,4 @@ Name=Example
Desc=This is an example trait
Image=72
StatMod=0|-1 ;Subtract 1 from strength
SkillMod=0|20|1|-5 ;Add 20 to the players small guns skill and subtract 5 from big guns
SkillMod=0|20|1|-5 ;Add 20 to the player's small guns skill and subtract 5 from big guns
+1 -1
View File
@@ -11,4 +11,4 @@ SaveSfallDataFail=ERROR saving extended savegame information! Check if other pro
[AppearanceMod]
RaceText=Race
StyleText=Style
MainButtonText=Appearance
MainButtonText=Appearance
+73
View File
@@ -0,0 +1,73 @@
; This section maps 7 armor types to corresponding armor item PIDs
[ArmorTypes]
Jacket = 74,265
Leather = 1,379
Metal = 2,240,380
Power = 3,232
AdvPower = 348,349
Combat = 17,239,381
Robe = 113,524
; Default armor FIDs (the same for all NPCs)
[Default]
Power=16777217
AdvPower=16777287
Robe=16777218
; Sulik
[1]
PID=16777313
Default=16777280
Leather=16777325
Power=16777324
Metal=16777323
Jacket=16777321
Combat=16777322
; Vic
[2]
PID=16777278
Default=16777307
Jacket=16777329
Combat=16777330
Metal=16777331
Power=16777332
Leather=16777333
; Cassidy
[3]
PID=16777305
Default=16777354
Leather=16777260
Power=16777328
Metal=16777327
Jacket=16777351
Combat=16777326
; Myron
[4]
PID=16777376
Default=16777304
Leather=
Power=16777349
Combat=16777350
; Cat Jules
[5]
PID=16777734
Default=16777353
Leather=16777347
Metal=16777348
Jacket=16777346
Combat=16777226
; Kitsune
[6]
PID=16777724
Default=16777222
Leather=16777221
Metal=16777223
Jacket=16777222
Combat=16777219
+40
View File
@@ -0,0 +1,40 @@
[Highlighting]
; DX scandode of a key to press to highlight items on the ground
; 42 - SHIFT key
Key=42
; Set to 1 to also highlight containers
Containers=1
; Set to 1 to also highlight corpses
Corpses=1
; Set to 1 to only highlight objects in the player's line-of-sight
CheckLOS=0
; Set the color of outlines, available colors:
; 1 - glowing red
; 2 - red
; 4 - grey
; 8 - glowing green
; 16 - bright yellow
; 32 - dark yellow
; 64 - purple
OutlineColor=16
; Motion Scanner mode:
; 0 - ignored
; 1 - requires Motion Scanner present in player inventory to activate highlighting
; 2 - requires Motion Scanner and also requires 1 charge on every use (depleted scanner will not work anymore)
MotionScanner=0
[CombatControl]
;Allows you to directly control other critters in combat
;Set to 0 to disable
;Set to 1 to control all critters in combat
;Set to 2 to control all party members
;If you want to control only specific critters, uncomment the PIDList line and set a comma delimited list of PIDs
Mode=0
;PIDList=62,89,97,107,160,161
+82 -83
View File
@@ -1,5 +1,5 @@
;sfall configuration settings
;v3.7.3
;v4.0.1
[Main]
;Change to 1 if you want to use command line args to tell sfall to use another ini file.
@@ -48,26 +48,26 @@ SpeedMultiInitial=100
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[Graphics]
;Set to 0 for 8 bit fullscreen
;Set to 4 for dx9 fullscreen
;Set to 5 for dx9 windowed
;A dx9 mode is required for any graphics related script extender functions to work (i.e. fullscreen shaders)
;Set to 4 for DX9 fullscreen
;Set to 5 for DX9 windowed
;A DX9 mode is required for any graphics related script extender functions to work (i.e. fullscreen shaders)
;Modes 1, 2 and 3 are no longer supported
Mode=0
;If using a dx9 mode, this changes the resolution
;If using a DX9 mode, this changes the resolution
;The graphics are simply stretched to fit the new window; this does _not_ let you see more of the map
;If set to 0, use Fallout's native resolution
GraphicsWidth=0
GraphicsHeight=0
;Set to 1 to do the palette conversion on the gpu
;Set to 2 to do the palette conversion on the cpu
;Set to 1 to do the palette conversion on the GPU
;Set to 2 to do the palette conversion on the CPU
;Set to 0 to pick automatically
;GPU is faster, but requires v2.0 pixel shader support
GPUBlt=0
;Set to 1 to allow using 32 bit graphics for talking heads
;Requires graphics mode 4 or 5, and gpublt set to 1
;Requires graphics mode 4 or 5, and GPUBlt set to 1
Use32BitHeadGraphics=0
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
@@ -98,7 +98,7 @@ ReverseMouseButtons=0
BackgroundKeyboard=0
BackgroundMouse=0
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;The modifier key you have to hold down to change any speed settings
;Set to 0 if you don't want to use a modifier key, or a DX scancode otherwise
@@ -127,20 +127,13 @@ SpeedKey9=0x00
;Set to -1 for either ctrl key, -2 for either alt key or -3 for either shift key
WindowScrollKey=0
;A key to press to toggle the highlighting of all items on the ground on the current map
ToggleItemHighlightsKey=42
;Set to 1 to also highlight containers
;Set to 2 for purple outlines
HighlightContainers=0
;A key to press to reload your currently equipped weapon
ReloadWeaponKey=0
;A key to press to open a debug game editor
DebugEditorKey=0
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[Misc]
;Time limit in years. Must be between -3 and 13
@@ -164,24 +157,10 @@ WorldMapFPSPatch=1
;Controls the world map speed if WorldMapFPSPatch is 1. Higher values cause slower movement
WorldMapDelay2=66
;XX OBSOLETE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;XX
;XX ;This will change the physical speed at which you move across the map
;XX ;Set to 0 to leave at the default. (i.e. limited by vwait in windowed mode, or by processor speed in fullscreen)
;XX ;If set to something other than 0, it enforces a maximum fps on the world map screen.
;XX ;Changing this to something other than 0 is not recommended if you've already applied a world map speed patch to your Fallout exe.
;XX WorldMapFPS=0
;XX
;XX ;Only set to 1 if your systems high performance timer is unreliable for some reason
;XX ForceLowResolutionTimer=0
;XX
;XX ;Set to 1 to enable Ray's patch to make world map encounter rate independent of your travel speed
;XX WorldMapEncounterFix=0
;XX WorldMapEncounterRate=6
;XX
;XX ;Obsolete, but can still be used if you know what it does.
;XX ;WorldMapDelay=0
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;Set to 1 to enable Ray's patch to make world map encounter rate independent of your travel speed
;Higher values of WorldMapEncounterRate cause a slower encounter rate
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.
@@ -201,9 +180,14 @@ WorldMapSlots=0
;To use a patch file other than patch000.dat, uncomment the next line and add your new file name
;If you want to check for multiple patch files, you can include a %d in the file name (sprintf syntax)
;By default, only the first patch file found will be used.
;If you want to load multiple patch files at once, uncomment the NumberPatchLoop line and set it to the number of files to check for
;If you want to load multiple patch files (up to 1000) at once, uncomment the MultiPatches line and set it to 1
;PatchFile=patch%03d.dat
;NumberPatchLoop=100
;MultiPatches=0
;Set to 1 to enable the modified data load order for the engine to find game data
;Original: patchXXX.dat > critter_patches > critter_dat > f2_res_patches > f2_res_dat > master_patches > master_dat
;Modified: master_patches > critter_patches > patchXXX.dat > critter_dat > f2_res_patches > f2_res_dat > master_dat
DataLoadOrderPatch=0
;To change the default and starting player models, uncomment the next four lines.
;The default models can also be changed ingame via script
@@ -233,6 +217,7 @@ Movie16=artimer4.mve
Movie17=credits.mve
;To change the starting year, month or day, uncomment the next 3 lines
;Both StartMonth and StartDay are 0-indexed
;StartYear=-1
;StartMonth=-1
;StartDay=-1
@@ -247,11 +232,12 @@ Movie17=credits.mve
;PerksFile=Perks.ini
;Set to 1 if you want the pipboy to be available at the start of the game
;Set to 2 to make the pipboy available by only skipping the vault suit movie check
PipBoyAvailableAtGameStart=0
;Set to 1 to double the number of available kill types
;If you use this, you need to provide the extra descriptions in proto.msg (entries from 1450 to 1487 are names and 1488 to 1525 are descriptions)
;Changing this option mid game will not invalidate old save games, but the players kill counters will be completely screwed.
;Changing this option mid game will not invalidate old save games, but the player's kill counters will be completely screwed.
;Setting this to 1 may cause problems if the player kills more than 32767 of any one critter type
;Additional kill types must have their new critical tables set! (See the OverrideCriticalTable option)
ExtraKillTypes=0
@@ -273,8 +259,8 @@ TownMapHotkeysFix=1
;Set to 1 to disable the horrigan encounter
DisableHorrigan=0
;Set to 1 to disable the random element in npc levelling.
;This will cause all npc party members to automatically level up as soon as the player reaches the requirements
;Set to 1 to disable the random element in NPC levelling.
;This will cause all NPC party members to automatically level up as soon as the player reaches the requirements
NPCAutoLevel=0
;Change the initial starting location and world map viewport
@@ -290,9 +276,6 @@ SingleCore=1
;Set to 1 to override the art_chache_size setting in fallout2.cfg
OverrideArtCacheSize=0
;Set to 1 to fix issues with the GainXXX perks not giving all the bonuses that they should
GainStatPerkFix=1
;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.
;Set to 2 to block all saving in combat
@@ -302,7 +285,7 @@ SaveInCombatFix=1
;ElevatorsFile=Elevators.ini
;Uncomment and set a comma delimited list of numbers to use a custom xp table.
;Players 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
;Set to 1 to enable additional weapon animations codes from o-t
@@ -311,15 +294,14 @@ SaveInCombatFix=1
AdditionalWeaponAnims=1
;Uncomment these lines to modify the default modifiers for aimed shots at specific bodyparts
;BodypartHitMod0=-40
;BodypartHitMod1=-30
;BodypartHitMod2=-30
;BodypartHitMod3=0
;BodypartHitMod4=-20
;BodypartHitMod5=-20
;BodypartHitMod6=-60
;BodypartHitMod7=-30
;BodypartHitMod8=0
;BodyHit_Head=-40
;BodyHit_Left_Arm=-30
;BodyHit_Right_Arm=-30
;BodyHit_Torso_Uncalled=0
;BodyHit_Right_Leg=-20
;BodyHit_Left_Leg=-20
;BodyHit_Eyes=-60
;BodyHit_Groin=-30
;Set to 1 to use a CriticalOverrides.ini file to override the default critical table
;Set to 2 to use the default critical with bug fixes (doesn't require an ini)
@@ -343,7 +325,7 @@ CorpseLineOfFireFix=0
;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
;Set to 1 (or some higher number if needed) to prevent 100% cpu use
;Set to 1 (or some higher number if needed, the maximum is 127) to prevent 100% CPU use
ProcessorIdle=-1
;Set to 1 if using the hero appearance mod
@@ -352,17 +334,17 @@ EnableHeroAppearanceMod=0
;Set to 1 to skip the 3 opening movies
SkipOpeningMovies=0
;Causes npc's who complete their combat turn with ap left over will try and find other ways to spend it.
;Only npcs with ap left equal to or greater than the value given here will be considered.
;Causes NPCs who complete their combat turn with ap left over will try and find other ways to spend it.
;Only NPCs with ap left equal to or greater than the value given here will be considered.
;Set to 0 to disable
NPCsTryToSpendExtraAP=0
;Allows the use of tiles over 80*36 in size. sfall will just split and resave them at startup
;Set to 1 to check all tiles on started (slow)
;set to 2 if you provide a XLtiles.lst file in art/tiles/ containing a list of the tile ids that need checking
;Set to 2 if you provide a XLtiles.lst file in art/tiles/ containing a list of the tile ids that need checking
AllowLargeTiles=0
;Change the skilldex cursor frm numbers
;Change the Skilldex cursor frm numbers
;Default is 293 for all skills
Lockpick=293
Steal=293
@@ -384,8 +366,7 @@ UseScrollingQuestsList=1
;PremadeFIDs=201,203,202
;Use this line to modify the list of cities and their associated global variables used for city reputations
;Syntax is 'city id : global id',with each city/global pair separated by a comma.
;CityRepsCount=19
;Syntax is 'city id : global id', with each city/global pair separated by a comma.
;CityRepsList=0:47,2:48,1:49,4:50,5:51,3:52,8:53,6:54,7:55,13:56,10:57,11:59,14:61,17:63,19:64,18:65,25:66,9:294,20:308
;Set this to a valid path to save a copy of the console contents
@@ -394,19 +375,19 @@ UseScrollingQuestsList=1
;Set to 1 to add additional pages of save slots
ExtraSaveSlots=0
;Set to 1 to speed up the hp/ac counter animations
;Set to 2 to update the hp/ac counters instantly
;Set to 1 to speed up the HP/AC counter animations
;Set to 2 to update the HP/AC counters instantly
SpeedInterfaceCounterAnims=0
;These lines allow you to control the karma frm's displayed on the character screen
;KarmaFRMsCount=3
;Number of KarmaPoints should be 1 less than number of KarmaFRMs
;KarmaFRMs=47,48,49
;KarmaPoints=-100,100
;Set to 1 to allow science and repair to be used on the player, or 2 for all critters. (Rather than only brahmin/robots)
ScienceOnCritters=0
;Modify this value to change the players speed of rotation on the inventory and character screens
;Modify this value to change the player's speed of rotation on the inventory and character screens
;Default is 166
SpeedInventoryPCRotation=166
@@ -420,7 +401,7 @@ BonusHtHDamageFix=1
;Set to 1 to display additional points of damage from Bonus HtH/Ranged Damage perks in the inventory
DisplayBonusDamage=0
;Modify the maximum number of animations allowed to run on a map. (Default is 32)
;Modify the maximum number of animations allowed to run on a map. (Default is 32, and the maximum is 127)
AnimationsAtOnceLimit=120
;Set to 1 to remove the limits that stop the player rolling critical successes/misses in the first few days of game time
@@ -430,7 +411,7 @@ RemoveCriticalTimelimits=0
NPCStage6Fix=0
;Change the colour of the font used on the main menu for the Fallout/sfall version number
;It's the last byte ('3c' by default,) that picks the colour used. The first byte supplies additional flags
;It's the last byte ('3c' by default) that picks the colour used. The first byte supplies additional flags
;MainMenuFontColour=0x0600003c
;Two alternate fixes to the interaction between HtH attacks and the fast shot trait
@@ -451,7 +432,7 @@ BoostScriptDialogLimit=0
;DerivedStats=Stats.ini
;These options modify the checks to see if a critter can carry an additional item, changing which items are counted towards the weight limit and adding an additional size check
;Set the mode to 0 to disable the size check, 1 to apply to pc only, 2 to apply to the pc and party members, or 3 to apply to all critters
;Set the mode to 0 to disable the size check, 1 to apply to the PC only, 2 to apply to the PC and party members, or 3 to apply to all critters
;Only the PC uses CritterInvSizeLimit. Other critters will use the extra unused stat (STAT_unused = 10)
;Add 4 to the mode to limit the weight check to used items only
CritterInvSizeLimitMode=0
@@ -460,7 +441,6 @@ 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
;2 - Motion sensor doesn't require charges
;4 - Motion sensor is required to use the item highlight feature
MotionScannerFlags=1
;Set to non-0 to adjust the maximum encounter table size
@@ -470,6 +450,12 @@ EncounterTableSize=0
;Set to 1 to disable the pipboy alarm button
DisablePipboyAlarm=0
;Uncomment the next four lines to move the main menu buttons and credit text (the 'Copyright(c)' line on the main menu)
;MainMenuOffsetX=0
;MainMenuOffsetY=0
;MainMenuCreditsOffsetX=0
;MainMenuCreditsOffsetY=0
;Prevents you from using super stims on a critter who is at full health.
SuperStimExploitFix=0
@@ -480,8 +466,8 @@ QuickPocketsApCostReduction=2
;Set to 1 to allow objects seeing through other objects with their ShootThru flag set
ObjCanSeeObj_ShootThru_Fix=0
;Set to 1 to use the balanced bullet distribution formula for burst attacks
ComputeSprayMod=1
;Set to 1 to enable the balanced bullet distribution formula for burst attacks
ComputeSprayMod=0
;These options modify the bullet distribution of burst attacks if ComputeSprayMod is 1
;All the bullets are divided into three groups: central, left and right
@@ -527,14 +513,6 @@ DialogPanelAnimDelay=33
;Controls the speed of pipboy alarm clock animations (lower - faster; valid range: 0..127)
PipboyTimeAnimDelay=50
;Allows you to directly control other critters in combat
;Set to 0 to disable
;Set to 1 to control all critters in combat
;Set to 2 to control all party members
;If you want to control only specific critters, uncomment the ControlCombatPIDList line and set a comma delimited list of PIDs
ControlCombat=0
;ControlCombatPIDList=62,89,97,107,160,161
;Set to 1 to stack empty identical weapons, no matter what type of ammo was loaded before
StackEmptyWeapons=0
@@ -551,6 +529,9 @@ DialogOptions9Lines=1
;Set to 1 to leave the music playing in dialogue with talking heads
EnableMusicInDialogue=0
;Set to 1 to prevent the player from running while sneaking without Silent Running perk
DontTurnOffSneakIfYouRun=0
;Set to 1 to fix the bug that unable to sell used geiger counters or stealth boys
CanSellUsedGeiger=1
@@ -560,9 +541,6 @@ CarChargingFix=1
;Set to 1 to skip weapon equip/unequip animations when performing various actions
InstantWeaponEquip=0
;To change the carry weight limit, uncomment the next line (Default is 999)
;CarryWeightLimit=999
;To add additional game msg files, uncomment the next line and set a comma delimited list of filenames without .msg extension
;You need to use the message_str_game script function to get messages from the files
;ExtraGameMsgFileList=
@@ -573,6 +551,13 @@ NumbersInDialogue=0
;Set to 1 to display sfall built-in credits at the bottom of credits.txt contents instead of at the top
CreditsAtBottom=0
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[Scripts]
;Comma-separated list of masked paths to load global scripts from
;Only use single slash \ as directory separator
;Paths outside of scripts folder are supported
GlobalScriptPaths=scripts\gl*.int,scripts\sfall\gl*.int
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[Debugging]
;Extra sfall configuration settings that can be used by modders
@@ -581,18 +566,32 @@ CreditsAtBottom=0
;Set to 1 to enable sfall debugging mode
Enable=0
;Fallout 2 Debug Patch
;Set to 1 to enable debugging output to screen or 2 to create a debug.log file
;While you don't need to create an environment variable, you do still need to set the appropriate lines in fallout2.cfg
;-------
;[debug]
;mode=environment
;output_map_data_info=1
;show_load_info=1
;show_script_messages=1
;show_tile_num=1
;[sound]
;debug=1
;debug_sfxc=1
;-------
DebugMode=0
;Change to 1 to skip the compatibility mode check
SkipCompatModeCheck=0
;Set to 1 to skip the executable file size check
;Does not require enabling sfall debugging mode
SkipSizeCheck=0
;If you're testing changes to the Fallout exe, you can override the crc that sfall looks for here
;If you're testing changes to the Fallout exe, you can override the CRC that sfall looks for here
;You can use several hex values, separated by commas
;Does not require enabling sfall debugging mode
;ExtraCRC=0x00000000,0x00000000
;Set to 1 to stop Fallout from deleting non readonly protos at startup
@@ -602,7 +601,7 @@ DontDeleteProtos=0
;Set to 1 to give scripts direct access to Fallout's address space, and to make arbitrary calls into Fallout's code
AllowUnsafeScripting=0
;These options control what output is saved in the debug log
;These options control what output is saved in the debug log (sfall-log.txt)
;Prints messages duing sfall initialization
Init=0
Binary file not shown.
@@ -1,22 +1,24 @@
procedure start;
procedure start;
// adjust include paths if needed
#include "..\..\scripting_docs\headers\sfall.h"
#include "..\..\scripting_docs\headers\sfall.h"
#define RESULT_SUCCESS (1)
#define RESULT_FAIL (0)
procedure start begin
if not init_hook then begin
procedure start begin
if game_loaded then begin
register_hook(HOOK_STEAL);
end else begin
variable
thief := get_sfall_arg,
target := get_sfall_arg,
item := get_sfall_arg,
action := get_sfall_arg,
result := RESULT_SUCCESS;
if (thief == dude_obj) then begin
display_msg(sprintf(mstr_skill(570 + result + action*2), obj_name(item)));
set_sfall_return(result);
end
end
if (thief == dude_obj) then begin
display_msg(sprintf(mstr_skill(570 + result + action*2), obj_name(item)));
set_sfall_return(result);
end
end
end
Binary file not shown.
@@ -0,0 +1,20 @@
procedure start;
// adjust include paths if needed
#include "..\..\scripting_docs\headers\sfall.h"
#include "..\..\scripting_docs\headers\dik.h"
procedure start begin
if game_loaded then begin
register_hook(HOOK_KEYPRESS);
end else begin
variable
event := get_sfall_arg,
keyDX := get_sfall_arg;
if (event == 1) and (keyDX == DIK_SEMICOLON) then begin
tap_key(DIK_CAPITAL);
tap_key(DIK_A);
tap_key(DIK_CAPITAL);
end
end
end
Binary file not shown.
@@ -1,16 +0,0 @@
procedure start;
#include ".\HEADERS\dik.h"
procedure start begin
variable event, keyDX;
if not init_hook then begin
event := get_sfall_arg;
keyDX := get_sfall_arg;
if ((event == 1) and (keyDX == DIK_SEMICOLON)) then begin
tap_key(DIK_CAPITAL);
tap_key(DIK_A);
tap_key(DIK_CAPITAL);
end
end
end
@@ -2,8 +2,8 @@
----------------------------------------
- makes pressing the semicolon key send an uppercase A after a semicolon.
- the uppercase A (shift + A if Caps Lock is off) is the built-in hotkey for the TAKE ALL button on the loot screen.
- Note: the uppercase A (shift + A if Caps Lock is off) is the built-in hotkey for the TAKE ALL button on the loot screen.
To use, copy hs_keypress.int file to your scripts folder.
To use, copy *.int file to your scripts folder.
This mod is a simple example of how you can use HOOK_KEYPRESS hooks.
Binary file not shown.
+114
View File
@@ -0,0 +1,114 @@
/**
Item Highlight mod.
Previously was part of sfall itself, now a separate mod.
Features:
- highlighting items, containers (optional) and dead bodies (optional) on the ground
- configurable hotkey is used to trigger highlight
- only objects in direct line-of-sight of player are highlighted (optional)
- motion scanner is required to enable highlight (optional)
- motion scanner charges are decreased on each use (optional)
NOTE: this script requires compiler from sfall modderspack with -s option
(short circuit evaluation)
version 1.0
**/
#include "main.h"
//#include "..\..\..\!SRC\headers\define.h"
#define CRITTER_IS_DEAD (1)
#define PID_MOTION_SENSOR (59)
#define NO_HIGHLIGHT(obj) (get_flags(obj) bwand FLAG_NOHIGHLIGHT)
variable configSection := "Highlighting";
variable highlightKey;
variable alsoContainer;
variable alsoCorpse;
variable checkLOS;
variable outlineColor;
variable motionScanner;
variable highlightFailMsg1;
variable highlightFailMsg2;
procedure ToggleHighlightObject(variable obj, variable enable) begin
if obj and (not enable or not checkLOS or not obj_blocking_line(dude_obj, tile_num(obj), BLOCKING_TYPE_SHOOT)) then begin
if (alsoContainer and obj_item_subtype(obj) == item_type_container) or (not NO_HIGHLIGHT(obj)) then begin
if (enable) then set_outline(obj, outlineColor);
else set_outline(obj, 0);
end
end
end
procedure ToggleHighlight(variable enable) begin
variable obj;
foreach obj in list_as_array(LIST_GROUNDITEMS) begin
if obj != outlined_object then begin
call ToggleHighlightObject(obj, enable);
end
end
if (alsoCorpse) then begin
foreach obj in list_as_array(LIST_CRITTERS) begin
if critter_state(obj) == CRITTER_IS_DEAD then begin
call ToggleHighlightObject(obj, enable);
end
end
end
tile_refresh_display;
end
procedure KeyPressHandler begin
variable pressed := get_sfall_arg,
scanCode := get_sfall_arg,
scanner, charges;
if scanCode == highlightKey then begin
if pressed then begin
if motionScanner then begin
scanner := obj_carrying_pid_obj(dude_obj, PID_MOTION_SENSOR);
if scanner then begin
if motionScanner >= 2 then begin
charges := get_weapon_ammo_count(scanner);
if charges > 0 then begin
set_weapon_ammo_count(scanner, charges - 1);
intface_redraw;
call ToggleHighlight(true);
end else begin
display_msg(highlightFailMsg2);
end
end else begin
call ToggleHighlight(true);
end
end else begin
display_msg(highlightFailMsg1);
end
end else begin
call ToggleHighlight(true);
end
end else begin
call ToggleHighlight(false);
end
end
end
procedure start begin
if game_loaded and (sfall_ver_major >= 4) then begin
call InitConfigs;
highlightKey := GetConfig(configSection, "Key", 0);
alsoContainer := GetConfig(configSection, "Containers", 0);
alsoCorpse := GetConfig(configSection, "Corpses", 0);
checkLOS := GetConfig(configSection, "CheckLOS", 0);
outlineColor := GetConfig(configSection, "OutlineColor", 16);
if (outlineColor < 1) then outlineColor := 64;
motionScanner := GetConfig(configSection, "MotionScanner", 0);
highlightFailMsg1 := Translate("HighlightFail1", "You aren't carrying a motion sensor.");
highlightFailMsg2 := Translate("HighlightFail2", "Your motion sensor is out of charge.");
register_hook_proc(HOOK_KEYPRESS, KeyPressHandler);
end
end
Binary file not shown.
+114
View File
@@ -0,0 +1,114 @@
/*
NPC Armor Appearance mod
Used to replace the scripted part of B-Team mod.
Appropriate graphics are required for this mod to work.
Can be adopted to any mod by adjusting armor PIDs, NPC PIDs and NPC FIDs in INI file.
NOTE: this script requires compiler from sfall modderspack with -s option
(short circuit evaluation)
version 1.0
*/
#include "main.h"
#define IS_ARMOR(item) (obj_type(item) == OBJ_TYPE_ITEM and obj_item_subtype(item) == item_type_armor)
variable
modIni := "npcarmor.ini",
defaultFids,
armorPidMap, // maps armor PID to it's "type" - leather armor, metal, power armor, etc.
npcMap;
procedure check_armor_change(variable critter, variable item, variable isWorn) begin
variable npc, armorType, fid;
if (npcMap[obj_pid(critter)]) then begin
npc := npcMap[obj_pid(critter)];
if (not isWorn) then begin
// display_msg("No armor fid: " + npc["Default"]);
return npc["Default"];
end else if (item) then begin
armorType := armorPidMap[obj_pid(item)];
fid := npc[armorType] or defaultFids[armorType];
if (fid == 0 or fid == -1) then fid := npc["Default"];
// display_msg("Change fid: " + fid + ", npc: " + npc[armorType] + ", default:" + defaultFids[armorType]);
return fid;
end
end
return -1;
end
// for NPCs when they change armor themselves
procedure invenwield_handler begin
variable critter, item, fid, slot, isWorn;
critter := get_sfall_arg;
item := get_sfall_arg;
slot := get_sfall_arg;
isWorn := get_sfall_arg;
if (critter and item and slot == INVEN_TYPE_WORN) then begin
fid := check_armor_change(critter, item, isWorn);
if (fid != -1) then begin
art_change_fid_num(critter, fid);
end
end
end
// when changing armor from inventory while controlling other NPCs
procedure adjustfid_handler begin
variable fid, armor;
if (dude_obj != real_dude_obj) then begin
armor := critter_inven_obj(dude_obj, INVEN_TYPE_WORN);
fid := check_armor_change(dude_obj, armor, armor != 0);
if (fid != -1) then begin
set_sfall_return(fid);
end
end
end
procedure start begin
variable sect, sects, armorTypes, armorType, npc, pid, pids, i;
if game_loaded and (sfall_ver_major >= 4) then begin
register_hook_proc(HOOK_INVENWIELD, invenwield_handler);
register_hook_proc(HOOK_ADJUSTFID, adjustfid_handler);
defaultFids := get_ini_section(modIni, "Default");
fix_array(defaultFids);
foreach (armorType: i in defaultFids) begin
defaultFids[armorType] := atoi(i);
end
armorPidMap := create_array_map;
armorTypes := get_ini_section(modIni, "ArmorTypes");
foreach (armorType: pids in armorTypes) begin
pids := string_split(pids, ",");
foreach (pid in pids) begin
armorPidMap[atoi(pid)] := armorType;
end
end
npcMap := create_array_map;
i := 1;
sect := get_ini_section(modIni, ""+i);
while (sect.PID) do begin
npc := create_array_map;
npc["Default"] := atoi(sect["Default"]);
foreach (armorType: pids in armorTypes) begin
if (sect[armorType]) then begin
npc[armorType] := atoi(sect[armorType]);
end
end
npcMap[atoi(sect.PID)] := npc;
i += 1;
sect := get_ini_section(modIni, ""+i);
end
end
end
Binary file not shown.
+55
View File
@@ -0,0 +1,55 @@
/*
NPC Combat Control
Allows to take control of your party member or other NPCs during combat
NOTE: this script requires compiler from sfall modderspack with -s option
(short circuit evaluation)
version 1.0
*/
#include "..\headers\define.h"
#include "main.h"
variable
configSection := "CombatControl",
controlMode,
pidList,
hasGeckoSkinning := false;
procedure combatturn_handler begin
variable
status := get_sfall_arg,
critter := get_sfall_arg,
arg3 := get_sfall_arg,
pid;
// display_msg("Combat Turn: " + status + ", by " + obj_name(critter) + ", arg3: " + arg3);
pid := obj_pid(critter);
if (status == 1
and (len_array(pidList) == 0 or scan_array(pidList, pid bwand 0xFFFFFF) != -1)
and (controlMode == 1 or party_member_obj(pid))) then begin
set_dude_obj(critter);
if hasGeckoSkinning then critter_add_trait(critter, TRAIT_PERK, PERK_gecko_skinning_perk, 1);
end else begin
set_dude_obj(real_dude_obj);
end
end
procedure start begin
if game_loaded and (sfall_ver_major >= 4) then begin
controlMode := GetConfig("CombatControl", "Mode", 0);
if (controlMode > 2) then controlMode := 0;
if (controlMode > 0) then begin
pidList := GetConfigListInt("CombatControl", "PIDList");
fix_array(pidList);
if has_trait(TRAIT_PERK, dude_obj, PERK_gecko_skinning_perk) then hasGeckoSkinning := true;
register_hook_proc(HOOK_COMBATTURN, combatturn_handler);
end
end
end

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