Compare commits

..
491 Commits
Author SHA1 Message Date
NovaRain 1b3b5dc523 Fixed premature assignment of arguments before the beginning of the hooks in InventoryHs.cpp. (#173)
(cherry picked from commit fff48407c3)
Updated version number.
2018-06-24 12:36:01 +08:00
NovaRain 8c2483a289 Merge branch 'develop' 2018-06-12 21:01:12 +08:00
NovaRain e14ac89463 Added more info to the comments of various keys in [Input] section of ddraw.ini. 2018-06-12 20:52:03 +08:00
Mr.StalinandNovaRain d5a38eb3aa Fix for inventory moving hook - an item drop into container when it is in the slot of the hands. (#167) 2018-06-12 12:13:42 +08:00
NovaRain 177137f2ee Edited the description in hookscripts.txt for changes to HOOK_INVENTORYMOVE and HOKK_INVENWIELD.
Fixed a bug in DisplaySecondWeaponRange that didn't display correct weapon range when the secondary mode is aimed (e.g. spear and throwing knife)
Removed trilling spaces in previous commit.
2018-06-11 13:40:09 +08:00
Mr.StalinandNovaRain 76f88eae18 Added new events to HOOK_INVENTORYMOVE. Added possible to get a pointer to an weapon item in HOOK_INVENWIELD before unweld it. (#163)
Refactoring the hooks code of the inventory.
2018-06-11 13:14:52 +08:00
NovaRain 28962f428f Added ItemFastMoveKey and ItemCounterDefaultMax options to ddraw.ini.
Set ReloadReserve to be disabled by default.
2018-06-06 06:33:46 +08:00
Mr.StalinandNovaRain aaa76cb3d1 Quickly moving items in inventory. (#162)
* Added an option for quickly moving items (w/o dialog box) in inventory.

* An separate option is added to set the counter of maximum number of items when moving items.
2018-06-06 06:23:07 +08:00
NovaRain ea1c00ec91 Added the ability to define allowed weapon animations for NPCs to NPC armor appearance mod (#159) 2018-06-05 22:08:39 +08:00
NovaRain 410c7ab417 Minor edits to documents. 2018-06-04 21:21:32 +08:00
VladandNovaRain ab3ddc68b6 Retarget project to use VS2017 build tools, fix deprecation warnings (#161) 2018-06-03 16:35:08 +08:00
NovaRain 1652072391 Fixed a bug that critters killed in combat by scripting still being able to move in their combat turn if the distance parameter in their AI packages is set to stay_close/charge, or NPCsTryToSpendExtraAP is enabled (from Mr.Stalin) 2018-06-02 18:15:53 +08:00
NovaRain 051b1c98aa Edited the added comments in AnimationsAtOnceLimit.cpp.
Renamed obj_move_hack to object_move_hack because it hooks on object_move_ engine function.
2018-06-01 23:36:56 +08:00
Mr.StalinandNovaRain 56945c7437 Fixed crash game when playing animation when the critter/pc goes through the door. Refactoring code. (#158) 2018-06-01 23:30:37 +08:00
NovaRain 2f6f0d8b28 Added the description of new metarule2_explosions mode to function notes.txt.
Fixed a typo in metarule2_explosions error message.
2018-05-30 21:07:51 +08:00
Mr.StalinandNovaRain 0e715236bf Added an additional mode to the function 'metarule2_explosions', sets a constant radius of the explosion grenades and rockets. (#146) 2018-05-30 21:02:35 +08:00
NovaRain b24a860d40 Renamed WorldMapFont to WorldMapFontPatch and changed its description in ddraw.ini. 2018-05-30 09:27:58 +08:00
NovaRain 120a8cd964 Added WorldMapFont option to use Fallout font on the world map instead of system font. (#48) 2018-05-29 16:22:58 +08:00
Mr.StalinandNovaRain 62d4577152 Adding to the function get_mouse_buttons the return of pressing the middle mouse button (#114). (#157)
Change the type of argument checking for the len_array function to remove an unwanted error message (# 128).
2018-05-29 09:29:11 +08:00
NovaRain 2d8ea2b44c Added description of HOOK_GAMEMODECHANGE to hookscripts.txt.
Fixed the line break for debug.log message of GameReset.
Minor edits to Tiles.cpp code format.
2018-05-28 23:37:45 +08:00
Mr.StalinandNovaRain 4ef20c3526 Added new hook for function get_game_mode, when the game mode changes. (#86) (#153) 2018-05-28 23:32:14 +08:00
NovaRain 5e0e8dd2f1 Added MoreTiles option to ddraw.ini.
Changed MoreTiles to work independently of HRP 4.1.8 and removed the redundant define.
Added sfall log messages to both options in Tiles.cpp.
Implemented HookCalls in TimeLimitPatch().
Fixed a minor typo in function notes.txt.
2018-05-28 09:27:53 +08:00
Mr.StalinandNovaRain 04bd88cdc2 Added MoreTiles option to increase the limit of FRM images for tiles from 4096 to 16383 (from Crafty) (#156) 2018-05-28 09:18:55 +08:00
NovaRain 839e86ed26 Added the description and setting for the previous commit to ddraw.ini.
Improved DisablePipboyAlarm so that when the player press Z key they won't see a blank Pipboy screen.
2018-05-27 15:08:46 +08:00
Mr.StalinandNovaRain eeef8759d3 Display statistics of the weapon's range for the second attack mode in player inventory. (#154) 2018-05-27 14:48:09 +08:00
NovaRain c4903abd4c Added the description of set_iface_tag_text to notes.txt.
Fixed compilation error in BarBoxes.cpp.
Updated version number.
2018-05-21 10:51:12 +08:00
Mr.StalinandNovaRain e0c0b9ba19 Added function 'set_iface_tag_text' - sets custom text and color to bar boxes. (#152) 2018-05-21 10:41:59 +08:00
NovaRain b9c7f5ea82 Fixed commit 470a0b3386. 2018-05-15 20:20:07 +08:00
NovaRain 56fdec8b37 Reverted the previous changes of ASM code due to the bug that AppChCrt.frm overwrites AppChEdt.frm. 2018-05-14 21:14:50 +08:00
NovaRain 470a0b3386 Simplified the code from previous commit. 2018-05-14 20:52:26 +08:00
NovaRain 279c524da9 Added support for adding custom background image to the character creation/screen of the hero appearance mod (From Mr.Stalin)
AppChCrt.frm (for the character creation) and AppChEdt.frm (for the character screen) should be in art/intrface, and the image size must be 640x480.
2018-05-14 10:05:49 +08:00
NovaRain 57c4c0bd5d Merge branch 'develop' 2018-05-11 20:01:53 +08:00
NovaRain 3ff0e77c26 Added the description of attack_is_aimed to notes.txt.
Removed unnecessary function declaration in Misc.h.
2018-05-09 10:07:11 +08:00
mr.StalinandNovaRain 15909dbb5b Fixed function "get_attack_type" and new function "attack_is_aimed". (#145)
* Fixed broken function 'get_attack_type'. Adding a new function 'attack_is_aimed'.
2018-05-09 10:03:07 +08:00
NovaRain ee9010217e Added description of HOOK_RESTTIMER, set_rest_heal_time, and set_rest_mode to documents.
Renamed the bit flags for set_rest_mode.
Fixed compilation error in Worldmap.cpp.
2018-05-08 12:30:53 +08:00
mr.StalinandNovaRain 9fa59a0d75 Rest hook and functions (#144)
* Added new HOOK_RESTTIMER (#89)

* Added "set_rest_mode" and "set_rest_heal_time" script functions.
2018-05-08 12:18:44 +08:00
NovaRain 371a299640 Added new HOOK_SETGLOBALVAR (#34) (from Mr.Stalin) 2018-05-02 11:14:02 +08:00
NovaRain 31f42128e1 Added "floor2" script function to work with ceil (#109)
Added the missing description of ceil to notes.txt.
Disabled ceil marco in lib.math.h.
Removed duplications in Utils.h.
2018-04-28 11:07:37 +08:00
NovaRain 57225bbd38 Fixed max tile number for set_map_enter_position and compilation error in Worldmap.cpp.
Added the description of get/set_map_enter_position to function notes.
2018-04-27 19:40:23 +08:00
mr.StalinandNovaRain 310d029801 New *_map_enter_position functions. (#141)
Added "get/set_map_enter_position" script functions (#101)
2018-04-27 19:35:29 +08:00
NovaRain b52f4544c0 Fixed the last additional notification boxes to the interface being missing (#140) 2018-04-26 10:01:15 +08:00
NovaRain 0950efec8c Changed the upper limit of set_unjam_locks_time to 127.
Added set_unjam_locks_time to documents.
2018-04-25 20:00:49 +08:00
NovaRain d86794be3a Added "set_unjam_locks_time" script function (from Mr.Stalin) 2018-04-24 09:20:16 +08:00
NovaRain d6aff61607 Added "lock_is_jammed" and "unjam_lock" script functions. 2018-04-24 08:13:26 +08:00
NovaRain 0eeab768bd Fixed a bug in item highlighting that caused items to be kept highlighted when entering combat while holding the highlight key. 2018-04-22 11:06:36 +08:00
NovaRain e474ba1660 Updated README.txt for info about additional headers/libraries. 2018-04-21 09:18:51 +08:00
NovaRain 3abebb8486 Added a new script function: set_ini_setting (from Mr.Stalin) (#85)
Added set_ini_setting to documents, and updated info for get_ini_setting.
Updated credits.
Replacing a couple of strcpy usages with strcpy_s.
2018-04-21 09:01:27 +08:00
NovaRain 29910e98bf Revert "Fixed a bug when using HOOK_ITEMDAMAGE and calling item_w_damage_ engine function at the same time. It would result in player self-damaging when attacking targets."
This reverts commit 4194feafdf.
2018-04-13 20:42:09 +08:00
NovaRain 4194feafdf Fixed a bug when using HOOK_ITEMDAMAGE and calling item_w_damage_ engine function at the same time. It would result in player self-damaging when attacking targets.
Set DataLoadOrderPatch to be enabled by default, for preventing partial of a game crash issue due to unusual game folder setup. #136
2018-04-13 11:06:21 +08:00
NovaRain 1c6729a25f Added a fix for being at incorrect hex after map change when the exit hex in source map is at the same position as some exit hex in destination map (from Crafty) #134 2018-04-02 23:19:07 +08:00
NovaRain 39388fd927 Rewrote the fix for player's base EMP DR as an engine-level fix (from Crafty) 2018-04-01 12:45:30 +08:00
NovaRain 72093079c5 Fixed a bug in NPC combat control that caused Gecko Skinning to appear in the perk selection window. 2018-03-28 21:29:22 +08:00
NovaRain 5141ca4ebb Fixed typos in hookscripts.txt. 2018-03-23 23:08:42 +08:00
NovaRain 78e9f08682 Fixed typos in sfall function notes.txt. 2018-03-23 22:01:22 +08:00
NovaRain ce779b4764 Fixed the long existing slotdat.ini function in ExtraSaveSlots.
Reduced duplication in ExtraSaveSlots code using MakeCalls.
Unified the indent style in ExtraSaveSlots.cpp.
2018-03-16 12:25:12 +08:00
NovaRain 1a108cade5 Implemented MakeCalls function to reduce code duplication.
Updated version number.
2018-03-16 11:32:23 +08:00
NovaRain cc875291d1 Merge branch 'develop' 2018-02-13 09:50:43 +08:00
NovaRain 9e28f8bdfd Lined up some code in MiscPatches.cpp. 2018-02-12 21:07:02 +08:00
NovaRain b2894268f6 Reverted item highlighting mod to the previous status (commit 90485a205a). #132 2018-01-28 18:15:35 +08:00
NovaRain b3e2b8b5b8 Rearranged and simplified gl_highlighting.ssl from the previous commit a bit. 2018-01-17 21:22:37 +08:00
burner1024andNovaRain 3227966767 More highlighting (#130)
* allow to highlight alive critters

* allow to ignore NO_HIGHLIGHT flag

* don't highlight while in loot screen, so that it's not constantly toggled by shift-A ("Take All" hotkey)
2018-01-17 13:55:22 +08:00
NovaRain 9475b8c482 Fixed add_mult_objs_to_inven only adding 500 of an object when the value of "count" argument is over 99999. #129 2018-01-17 07:36:05 +08:00
NovaRain 8b356b1213 Fixed broken ExtraGameMsgFileList option. #127 2018-01-11 07:42:50 +08:00
NovaRain 90485a205a Changed item highlighting mod to only highlight lootable corpses. #126 2018-01-07 21:37:26 +08:00
NovaRain d5be2fdc9b Made sure the value of player's base EMP DR is set correctly. 2018-01-02 23:22:45 +08:00
NovaRain a705341e02 Updated version number and the year. 2018-01-02 10:16:32 +08:00
NovaRain ca3f59ad1e Fixed a bug in NPC combat control that kept increasing the perk rank of Gecko Skinning after the combat ended.
Condensed the code in ApplyHeaveHoFix a bit.
2018-01-02 09:58:30 +08:00
NovaRain 4d0c056e72 Merge branch 'develop' 2017-12-24 21:35:52 +08:00
NovaRain d388a5c3bb Fixed player's base EMP DR isn't properly initialized when creating a new character and then starting the game. 2017-12-15 07:32:18 +08:00
NovaRain 9b808cd008 Changed sneak_success to call is_pc_sneak_working_ engine function, which takes player's current sneaking status into account as well, instead of only returning the result of last sneak attempt. 2017-12-05 10:22:35 +08:00
NovaRain fd91be7ea2 Replaced data type hex values with proper VAR_TYPE_* defines for code readability. 2017-12-03 23:54:39 +08:00
NovaRain 4fdd1d3cd8 Added missing entry of block_combat script function in opcode list. 2017-12-03 02:36:00 +08:00
NovaRain 9cb2d3df3e Added the damage type offset of weapon proto to define_extra.h. 2017-11-27 14:14:31 +08:00
NovaRain 08242d77d5 Fixed a typo in hookscripts.txt. 2017-11-27 12:24:22 +08:00
NovaRain 68d0a3e894 Changed the if condition for ProcessorIdle to make sure out-of-bounds values not resulting in unexpected but valid values (ref. commit 50c91db5ea) 2017-11-26 02:08:09 +08:00
NovaRain 16ff0e9ca6 Added a new example mod gl_autodoors (by Mr.Stalin) to modderspack. #19 2017-11-08 21:23:15 +08:00
NovaRain 218ba3004c Tweaked the way DebugMode works, now only DebugMode=2 sends debug output to a debug.log file. Any other non-0 value sends debug output to the screen. #123 2017-11-07 10:46:24 +08:00
NovaRain 8473ce5210 Replaced some SafeWrite* usages in old code with corresponding HookCall/MakeCall/MakeJump for code readability. 2017-11-06 15:13:05 +08:00
NovaRain 38a3dba476 Added description and define of display_stats to notes.txt and sfall.h. 2017-11-06 14:03:22 +08:00
NovaRain 9c1d439153 Added "display_stats" script function #113 2017-11-06 10:16:02 +08:00
NovaRain bc38a02508 Enabled mouse scroll control in barter and loot screens when the cursor is hovering over other lists, also enabled scrolling through the display monitor (from Crafty) #120
Rearraged the code style in dinput.cpp.
Updated version number.
2017-10-25 11:50:37 +08:00
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
NovaRain bfd8b38547 Merge branch 'develop', preparing for 3.7.3 release. 2016-08-15 14:54:40 +08:00
NovaRain e6086f984e Merge branch 'Vennor-feature/extra_msg'
Feature tested/verified.
2016-08-15 14:38:53 +08:00
NovaRain 2e766cd3c9 Merge branch 'feature/extra_msg' of https://github.com/Vennor/sfall into Vennor-feature/extra_msg
# Conflicts:
#	sfall/Message.cpp
#	sfall/Message.h
2016-08-15 14:38:18 +08:00
NovaRain 48f53388fd Fixed checking the horizontal position on the y-axis instead of x when setting coordinates on the world map.
Added more item flag defines in define_extra.h.
2016-08-15 10:32:53 +08:00
NovaRain 6199f95c38 Fixed incorrect death animations being used when killing critters with kill_critter_type function, e.g. ghouls die standing. (from Crafty) 2016-08-04 12:19:00 +08:00
NovaRain a6d84bd470 Fixed incorrect savegame path detection when reading/writing sfallgv.sav and sfallfs.sav under certain circumstances. (from Crafty) 2016-08-01 16:45:12 +08:00
NovaRain a11228a5ec Fixed get_screen_width/height functions not returning correct values when using older versions of hi-res patch.
Corrected the parameter for intface_update_ac_ in wield_obj_critter fix.
Update the unlimited ammo exploit fix from Crafty's mod.
Removed unnecessary engine-related defines and constants that were added since 3.7b.
2016-07-28 17:05:40 +08:00
NovaRain 7784e199af Integrated NumbersInDialogue option from Crafy's mod.
Moved NPCLevelFix to Bugs.cpp.
Used "push retn" instead of "mov jmp" for some jumps, to skip using registers (at least in logic).
Changed the displayed version number to the same as the internal version number.
2016-07-26 11:03:56 +08:00
NovaRain 53895a4af2 Added CreditsAtBottom option to display sfall built-in credits at the bottom of credits.txt contents.
Unified log message format in main.cpp and bugs.cpp.
2016-07-18 16:54:13 +08:00
phobos2077 354b938d60 Added optional function to show additional sfall credits at the bottom of CREDITS.TXT contents 2016-07-17 23:11:43 +07:00
NovaRain 643d8d3886 Added fix for destroy_p_proc not being called if the critter is killed by explosives when you leave the map.
Integrated Crafty's explosives crash fix.
Updated the link of NMA forum post in the comment.
2016-07-13 15:59:14 +08:00
NovaRain 924c35d011 Improved the unlimited ammo exploit fix to prevent crashes during map transition in RP new areas. (from Crafty)
Updated set_new_results_hack with Crafty's newer code base.
2016-07-12 09:47:26 +08:00
NovaRain 86163bf94c Changed the script procs defines in ScriptExtender.h to their real procedure names in SSL. 2016-07-06 17:15:05 +08:00
NovaRain 21b2d34432 Added some new engine-related defines and constants. 2016-06-03 09:38:31 +08:00
NovaRain 98508a9c76 Added a bug fix for incorrect initialization of action points at the beginning of each turn (from Crafty's mod)
Removed unused code in Bugs.cpp.
2016-05-27 10:37:12 +08:00
NovaRain f8b232cc09 Changed how SpeedInterfaceCounterAnims=2 works (from Crafty's mod). Now it updates the hp/ac counter instantly no matter what.
Fixed get_screen_width/height functions not returning correct values when using the windowed mode in the hi-res patch.
Added some new engine-related defines and constants.
2016-05-17 12:20:22 +08:00
NovaRain 394b4b9967 Edited the description of ExtraGameMsgFileList a bit. 2016-05-11 15:33:01 +08:00
NovaRain 1bea84eb3c Added ExtraGameMsgFileList setting to ddraw.ini, and updated message_str_game reference in sfall function notes.txt.
Added a couple of new engine-related defines.
Updated version number. (Need to consider changing to semantic versioning for 3.8.)
2016-05-10 17:18:31 +08:00
NovaRain 26159138e0 Removed the duplicated include from HeroAppearance.cpp. 2016-05-10 12:48:17 +08:00
NovaRain 1883009930 Cleaned up some artifacts in codes. 2016-05-10 12:42:34 +08:00
NovaRain f1289c1e7d Merge branch 'feature/extra_msg' of https://github.com/Vennor/sfall into Vennor-feature/extra_msg
# Conflicts:
#	sfall/Message.cpp
#	sfall/Message.h
2016-05-10 12:33:44 +08:00
Vennor c3e4894243 Moved opening brace to the same line as the function prototype. 2016-05-09 19:34:07 +02:00
Vennor 2330dd97bb Refactored op_message_str_game2 function to always return a valid string value. Now an "Error" string will be returned on error instead of an uninitialized char pointer or an integer value. 2016-05-09 19:10:25 +02:00
Vennor 90b718122d Added string header inclusion to Message.cpp. 2016-05-08 20:15:37 +02:00
Vennor 5ca7ed0dc5 - Renamed ClearExtraGameMsgFiles function to ClearReadExtraGameMsgFiles.
- Moved ClearReadExtraGameMsgFiles function to Message.cpp.
- Added map clearing to ClearReadExtraGameMsgFiles.
- Changed formatting.
2016-05-08 20:13:13 +02:00
Vennor 9bd03bfb76 Changed std::unordered_map to std::tr1::unordered_map for compatibility with older compilers. 2016-05-08 20:09:56 +02:00
Vennor 07b7e270b8 - Encapsulated and moved ReadExtraGameMsgFiles function call from NewGame2 to MainMenu. 2016-05-08 16:11:51 +02:00
Vennor f9dbbcdca2 - Tidied up extra game message getter a bit.
- Removed unnecessary function call.
2016-05-08 15:53:05 +02:00
NovaRain fcdb5633d4 Edited the description of InstantWeaponEquip a bit. 2016-04-21 09:21:12 +08:00
NovaRain 4e2bfd6b08 Some minor document edits: fixing typos, removing double/trailing spaces, unifying space/tab usages, and lining up some lines. 2016-04-20 10:20:05 +08:00
NovaRain 8c0fab1f6b Added an example mod of hs_keypress. 2016-04-19 17:18:26 +08:00
NovaRain 05f15f0262 Removed incorrect information from sfall function notes.
Edited the description in ddraw.ini with less self-advertising.
Added a few new engine-related defines and constants.
2016-04-18 10:28:12 +08:00
NovaRain 147cb50a66 Moved existing msg file reading functions and structs from HeroAppearance.cpp to a dedicated Message.h/.cpp file pair, for preparing to merge with Vennor's new feature.
Enabled ComputeSprayMod by default (reason: more reasonable bullet distribution than vanilla logic, even with default ratios.)
Fixed a minor typo in sfall function list document.
2016-04-07 12:04:24 +08:00
Vennor b8968c5334 - Added extra msg file reading based on names given in ddraw.ini.
- Added fetching strings from extra msg files.
2016-04-02 18:43:52 +02:00
Vennor 4f6b68ca93 - Moved existing msg file reading functions and structs from HeroAppearance.cpp to a dedicated Message.h/.cpp file pair.
- Added extern map to hold read extra msg files.
2016-04-02 18:41:59 +02:00
NovaRain 0ff6157b42 Added a few new engine-related defines and constants. 2016-03-31 09:43:15 +08:00
NovaRain 2bbb92420f Simplified the code of inventory drag and drop fix a bit (from Crafty's mod)
Added a few new engine-related defines and constants.
Updated credits.
2016-03-28 11:21:43 +08:00
phobos2077 4678f41b5a Merge remote-tracking branch 'origin/master' into develop 2016-03-26 23:59:41 +07:00
Vlad 7439ba2634 Merge pull request #40 from Oppen/master
Precompute CRC table.
2016-03-26 23:58:23 +07:00
Mario J. Rugiero 4c047bf8a3 Precompute CRC table. 2016-03-26 12:20:09 -03:00
NovaRain 694b699f15 Changed the order of script array element data removal from C++ containers. Without this std::unordered_map's keys were modified before erasure which lead to undefined behavior.
(cherry picked from commit bdffc061d3)

Added keyHash map clearing after each for loop pass. Without this arrays could load hashed indices of elements they don't actually contain, which in turn could lead to crashes if certain conditions are met.

(cherry picked from commit 25094253e5)

Updated credits.
2016-03-25 09:51:18 +08:00
Vlad 25b408816a Merge pull request #39 from Vennor/master
Script array fixes
2016-03-25 01:12:39 +07:00
phobos2077 b819423d2a added check for invalid array index in GetArray() 2016-03-25 01:10:56 +07:00
NovaRain 720f937b4f Integrated Crafty's updated fix to prevent the game with old (pre-3.0) versions of f2_res from crashing/hanging while trying to use drag&drop to reload weapons in the inventory list.
Added a few new engine-related defines and constants.
2016-03-21 11:58:56 +08:00
Vennor 25094253e5 Added keyHash map clearing after each for loop pass. Without this arrays could load hashed indices of elements they don't actually contain, which in turn could lead to crashes if certain conditions are met. 2016-03-12 17:08:15 +01:00
Vennor bdffc061d3 Changed the order of script array element data removal from C++ containers. Without this std::unordered_map's keys were modified before erasure which lead to undefined behavior. 2016-03-12 17:05:20 +01:00
NovaRain dfe4b6b2e0 Re-added CarChargingFix option back in ddraw.ini for other mods with custom vehicles. 2016-03-11 11:32:24 +08:00
phobos2077 972d978882 #37 fixed sfall_ver_* functions 2016-03-08 22:21:32 +07:00
NovaRain e99cca2b87 Added a few new engine-related defines and constants. 2016-03-07 11:41:04 +08:00
NovaRain 108719ac83 Added rounding calculation to ComputeSprayMod to give roundsCenter & roundsMainTarget some advantages.
Added CarryWeightLimit option for changing the carry weight limit. (max value: 2^31 − 1, probably an overkill.)
2016-03-07 11:29:26 +08:00
NovaRain 6feda61424 Added a check for old (pre-3.0) versions of f2_res to prevent the game from crashing/hanging while trying to use drag&drop to reload weapons in the inventory list. 2016-02-26 11:13:58 +08:00
NovaRain 19c94b8513 Simplified the code of Haenlomal's MultiHexFix a bit. 2016-02-24 09:47:26 +08:00
NovaRain af7b5cbb6b Condensed a few block of code in main.cpp with constant arrays, also made the DLL a bit smaller in size.
Added new engine-related defines and constants.
2016-02-19 11:08:00 +08:00
NovaRain 56009e1634 Moved the code of MultiHexFix to Bugs.cpp, and removed it from ddraw.ini.
Optimized AnimationsAtOnceLimit.cpp using Crafty's method, which made the DLL about 10KB less in size.
2016-02-18 15:25:56 +08:00
NovaRain 7bd3bd4128 Integrated InstantWeaponEquip option from Crafty's mod.
Added PipboyTimeAnimDelay option to allow player to control the speed of pipboy alarm clock animations in certain degree.
2016-02-16 16:44:24 +08:00
NovaRain 696be7fac5 Integrated the expanded SpeedInterfaceCounterAnims from Crafty's mod.
Added new engine-related defines and constants.
2016-02-15 13:13:31 +08:00
NovaRain 66dd966d8a Made a minor edit on ddraw.ini 2015-12-15 14:05:04 +08:00
NovaRain 8ce9ae89eb Removed TooManyItemsBugFix, InventoryDragIssuesFix, NPCDrugAddictionFix, ArmorCorruptsNPCStatsFix, NPCTurnsIntoContainerFix, CarChargingFix, NPCWeightFix from ddraw.ini
Updated version number.
2015-12-15 12:45:42 +08:00
NovaRain 361e961b38 Merge remote-tracking branch 'origin/master' into develop 2015-12-14 12:33:41 +08:00
Vlad f8c1bf1ebb Merge pull request #32 from burner1024/master
fix usage notes for set_critter_burst_disable
2015-12-14 10:47:01 +07:00
Ilya Ivanov 748cbb030a fix usage notes for set_critter_burst_disable 2015-12-14 10:21:46 +07:00
NovaRain 473fbf81b4 Integrated ReloadReserve setting from Crafty's mod for skipping the 'Move Items' window when using drap and drop to reload weapons in the inventory.
Partially refactored HeroAppearance.cpp to use proper engine function/variable names and unified the indent style across the code.
2015-11-17 12:56:03 +08:00
NovaRain 225f36808d Added an optional bug fix for not counting in the weight of equipped items on NPC when stealing or bartering.
Added an additional fix to InventoryDragIssuesFix for only using one box of ammo when the weapon is before the ammo.
Partially refactored Credits.cpp and QuestList.cpp to use proper engine function/variable names.
2015-11-16 15:07:24 +08:00
NovaRain 879315b4d0 Partially refactored most of the source code to use proper engine function/variable names. 2015-11-16 10:40:26 +08:00
NovaRain 971be61d95 Integrated two bug fixes and a minor feature based on Crafty's code:
1. Added CanSellUsedGeiger to fix the issue that unable to sell used geiger counters or stealth boys.
2. Added TownMapHotkeysFix to prevent players from using number keys to enter unknown areas on a town map. (original DisableHotkeysForUnknownAreasInCity is a bit too long IMO.)
3. Added EnableMusicInDialogue to leave the music playing in dialogue with talking heads.
Removed WieldObjCritterFix from ddraw.ini (was planning to do so in 3.7 but forgot)
Set DialogOptions9Lines enabled by default.
2015-11-03 16:14:27 +08:00
268 changed files with 39391 additions and 27341 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
+2 -2
View File
@@ -1,5 +1,5 @@
[sfall]
SaveInCombat=Cannot save at this time
SaveInCombat=Cannot save at this time.
KarmaGain=You gained %d karma.
KarmaLoss=You lost %d karma.
HighlightFail1=You aren't carrying a motion sensor.
@@ -11,4 +11,4 @@ SaveSfallDataFail=ERROR saving extended savegame information! Check if other pro
[AppearanceMod]
RaceText=Race
StyleText=Style
MainButtonText=Appearance
MainButtonText=Appearance
+79
View File
@@ -0,0 +1,79 @@
; 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
WeaponAnims=1,3,4,6
Default=16777280
Leather=16777325
Power=16777324
Metal=16777323
Jacket=16777321
Combat=16777322
; Vic
[2]
PID=16777278
WeaponAnims=1,5,7
Default=16777307
Jacket=16777329
Combat=16777330
Metal=16777331
Power=16777332
Leather=16777333
; Cassidy
[3]
PID=16777305
WeaponAnims=4,5,7
Default=16777354
Leather=16777260
Power=16777328
Metal=16777327
Jacket=16777351
Combat=16777326
; Myron
[4]
PID=16777376
WeaponAnims=1,5
Default=16777304
Leather=
Power=16777349
Combat=16777350
; Cat Jules
[5]
PID=16777734
WeaponAnims=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
Default=16777353
Leather=16777347
Metal=16777348
Jacket=16777346
Combat=16777226
; Kitsune
[6]
PID=16777724
WeaponAnims=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
Default=16777222
Leather=16777221
Metal=16777223
Jacket=16777222
Combat=16777219
+40
View File
@@ -0,0 +1,40 @@
[Highlighting]
; DX scancode of a key to press to highlight items on the ground
; 42 - SHIFT key
Key=42
; Set to 1 to also highlight containers
Containers=0
; Set to 1 to also highlight lootable corpses
Corpses=0
; 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
+141 -113
View File
@@ -1,5 +1,5 @@
;sfall configuration settings
;v3.7
;v4.0.6
[Main]
;Change to 1 if you want to use command line args to tell sfall to use another ini file.
@@ -48,31 +48,31 @@ 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
[Input]
;Set to 1 to enable the mouse scroll wheel to scroll through your inventory
;Set to 1 to enable the mouse scroll wheel to scroll through inventory, barter, and loot screens
UseScrollWheel=1
;The mouse Z position is divided by this modifier to calculate the number of inventory
@@ -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
@@ -107,7 +107,7 @@ SpeedModKey=-1
;A key to press to toggle the speed tweak on or off
;Specify 0 if you don't want a toggle key, or a DX scancode otherwise
SpeedToggleKey=0x00
SpeedToggleKey=0
;The keys corresponding to the 10 speed slots
;Set to 0 to disable a slot, otherwise specify the DX scancode of the key you want to use
@@ -127,20 +127,19 @@ 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
;Set to 0 if you don't want a reload key, or a DX scancode otherwise
ReloadWeaponKey=0
;A key to press to open a debug game editor
;A key to hold down to let you move/drop a whole stack of items at once without the 'Move Items' window
;Set to 0 if you don't want to use a modifier key, or a DX scancode otherwise
ItemFastMoveKey=0x1d
;A key to press to open a debug game editor (requires FalloutClient.exe from the modders pack)
;Set to 0 to disable, or a DX scancode otherwise
DebugEditorKey=0
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[Misc]
;Time limit in years. Must be between -3 and 13
@@ -164,28 +163,14 @@ 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.
;Setting this greater than 17 requires a replacement background frm, or you'll get glitched graphics
;Setting this greater than 17 requires a replacement background FRM, or you'll get glitched graphics
WorldMapSlots=0
;To start a new game somewhere other than artemple.map, uncomment the next line and set it to the map you want to load
@@ -201,9 +186,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 use the modified data load order for the engine to find game data
;Original: patchXXX.dat > critter_patches > critter_dat > f2_res_patches > f2_res_dat > master_patches > master_dat
;Modified: master_patches > critter_patches > patchXXX.dat > critter_dat > f2_res_patches > f2_res_dat > master_dat
DataLoadOrderPatch=0
;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 +223,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 +238,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
@@ -267,11 +259,14 @@ DamageFormula=0
;Prevents you from using 0 to escape from dialogue at any time.
DialogueFix=1
;Prevents you from using number keys to enter unvisited areas on a town map
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
@@ -287,9 +282,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
@@ -298,25 +290,24 @@ SaveInCombatFix=1
;Point at an ini file containing elevator data
;ElevatorsFile=Elevators.ini
;Uncomment and set to a comma delimited list of numbers to use a custom xp table.
;Players level is capped once the highest specified level is reached
;Uncomment and set a comma delimited list of numbers to use a custom xp table.
;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
;Set to 1 to enable additional weapon animation codes from o-t
;The 4 byte value at 0x39 of weapon protos may range from 0 to 15 rather than 0 to 10
;Since the letters 'n' and 'r' are in use for other animations, an animation code of 11 corrisponds to 's' and 15 to 't'
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)
@@ -340,7 +331,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
@@ -349,17 +340,20 @@ 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
;Set to 1 to boost the maximum number of tile FRMs from 4096 to 16383
MoreTiles=0
;Change the Skilldex cursor FRM numbers
;Default is 293 for all skills
Lockpick=293
Steal=293
@@ -381,8 +375,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
@@ -391,18 +384,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 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
;These lines allow you to control the karma FRMs displayed on the character screen
;Number of KarmaPoints should be 1 less than number of KarmaFRMs
;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
@@ -416,11 +410,11 @@ 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)
AnimationsAtOnceLimit=120
;Set to 1 to display the range of the second attack mode in the inventory when you switch weapon modes in active item slots
DisplaySecondWeaponRange=1
;Set to 1 to fix issues with the wield_obj_critter script function.
WieldObjCritterFix=1
;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
RemoveCriticalTimelimits=0
@@ -428,11 +422,8 @@ RemoveCriticalTimelimits=0
;Set to 1 to enable party members with level 6 protos to reach level 6
NPCStage6Fix=0
;Set to 1 to fix the problem with melee weapon equiped npcs being unable to attack multi-hex critters
MultiHexPathingFix=1
;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
@@ -453,7 +444,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
@@ -462,7 +453,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
@@ -472,6 +462,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
@@ -482,13 +478,15 @@ QuickPocketsApCostReduction=2
;Set to 1 to allow objects seeing through other objects with their ShootThru flag set
ObjCanSeeObj_ShootThru_Fix=0
;These options change the bullet distribution of burst attacks
;All the bullets are divided into three groups: central, left and right. These three groups will then travel along three parallel tracks, trying to hit targets on the way
;Set the mod to 1 to enable the next four lines
;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
;These three groups will then travel along three parallel tracks, trying to hit targets on the way
;CenterMult/Div set the ratio of how many bullets go to the central group, and remaining bullets are divided equally to left and right sides
;TargetMult/Div set the ratio of how many bullets in the central group will attack the primary target directly
;Multipliers are capped at divisor values.
ComputeSprayMod=0
;Multipliers are capped at divisor values
ComputeSpray_CenterMult=1
ComputeSpray_CenterDiv=3
ComputeSpray_TargetMult=1
@@ -524,43 +522,59 @@ CheckWeaponAmmoCost=0
CombatPanelAnimDelay=1000
;Controls the speed of dialog panel animations (lower - faster; valid range: 0..255)
DialogPanelAnimDelay=33
;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 it to a comma delimited list of PIDs
ControlCombat=0
;ControlCombatPIDList=62,89,97,107,160,161
;Controls the speed of pipboy alarm clock animations (lower - faster; valid range: 0..127)
PipboyTimeAnimDelay=50
;Set to 1 to stack empty identical weapons, no matter what type of ammo was loaded before
StackEmptyWeapons=0
;Changes the way weapon reloading works when you drag ammo onto a weapon in the inventory
;Set to -1 to disable (vanilla behavior with the 'Move Items' window)
;Set to 0 to use all the ammo boxes to reload
;Set to 1 or more to reserve the specified amount of ammo boxes and use all the rest to reload
;If the amount of ammo boxes in the inventory is less than or equal to the reserve, only one box will be used
ReloadReserve=-1
;Set to 1 to change the counter in the 'Move Items' window to start at the maximum number of items
ItemCounterDefaultMax=0
;Allows 9 options (lines of text) to be displayed correctly in a dialog window
DialogOptions9Lines=0
DialogOptions9Lines=1
;Set to 1 to leave the music playing in dialogue with talking heads
EnableMusicInDialogue=0
;Prevents 'Too Many Items' bug from corrupting game saves
TooManyItemsBugFix=1
;Set to 1 to prevent the player from running while sneaking without Silent Running perk
DontTurnOffSneakIfYouRun=0
;Set to 1 to fix a minor visual glitch when picking up a solo item from the top of inventory with a stack of multiple items at the bottom
;Also fixes the inability to reload weapons by dragging ammo onto weapons in the inventory list
InventoryDragIssuesFix=1
;Set to 1 to fix the bug that unable to sell used geiger counters or stealth boys
CanSellUsedGeiger=1
;Set to 1 to add proper checks for NPC's addiction instead of always using global variables
;Also fixes Jet Antidote not working on NPCs
NPCDrugAddictionFix=1
;Set to 1 to fix issues with NPC stats being dropped unreasonably if one has mutiple of the same armor in inventory and equips the armor,
;And either you order NPC to remove the armor through dialog or one levels up
ArmorCorruptsNPCStatsFix=1
;Set to 1 to fix the bug that NPCs become unresponsive and act like walking containers if you move to another map while they are under 'lost next turn' critical miss effect
NPCTurnsIntoContainerFix=1
;Set to 1 to fix issues with being able to charge the car with using cells on scenary/critters and cells getting consumed even when the car is already fully charged
;Set to 1 to fix the issue with being able to charge the car by using cells on other scenary/critters
CarChargingFix=1
;Set to 1 to skip weapon equip/unequip animations when performing various actions
InstantWeaponEquip=0
;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=
;Set to 1 to display numbered dialogue options
NumbersInDialogue=0
;Set to 1 to use Fallout's normal text font instead of DOS-like font on the world map
WorldMapFontPatch=0
;Set to 1 to display 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]
@@ -570,18 +584,32 @@ CarChargingFix=1
;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
@@ -591,7 +619,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.
@@ -0,0 +1,77 @@
/*
Auto Doors mod for Fallout 2 by Mr.Stalin
-----------------------------------------
- allows the player to automatically open/walk through unlocked doors when not in combat
Requires sfall 3.7b or higher
NOTE: this script requires compiler from sfall modderspack with -s option
(short circuit evaluation)
*/
#include "..\headers\define.h"
#include "..\headers\command.h"
#include "..\headers\sfall\sfall.h"
#include "..\headers\sfall\define_extra.h"
procedure start;
procedure map_enter_p_proc;
procedure set_door_flag(variable state);
procedure combatturn_handler;
#define PORTAL (0)
#define DOOR_FLAGS (0x24)
variable only_once := 0;
procedure start begin
if game_loaded then begin
if (sfall_ver_major >= 4) then
register_hook_proc(HOOK_COMBATTURN, combatturn_handler);
else
set_global_script_repeat(60);
call map_enter_p_proc;
end else begin
if (only_once == 1 and combat_is_initialized) then begin
only_once := 2;
call set_door_flag(false);
end else if (only_once == 2 and not(combat_is_initialized)) then begin
only_once := 1;
if (sfall_ver_major >= 4) then
set_global_script_repeat(0);
call set_door_flag(FLAG_WALKTHRU);
end
end
end
procedure map_enter_p_proc begin
only_once := 1;
call set_door_flag(FLAG_WALKTHRU);
end
procedure set_door_flag(variable state) begin
variable objectMap, obj, objPid, arrayPid, i;
objectMap := list_as_array(LIST_SCENERY);
arrayPid := temp_array(1, 0);
foreach (obj in objectMap) begin
objPid := obj_pid(obj);
if (proto_data(objPid, sc_type) != PORTAL) or is_in_array(objPid, arrayPid) then
continue;
arrayPid[i] := objPid;
i++;
resize_array(arrayPid, i + 1);
set_proto_data(objPid, DOOR_FLAGS, state);
end
end
procedure combatturn_handler begin
if (only_once == 1) then
set_global_script_repeat(60);
end
@@ -0,0 +1,9 @@
Auto Doors mod for Fallout 2 by Mr.Stalin
-----------------------------------------
- allows the player to automatically open/walk through unlocked doors when not in combat
Requires sfall 3.7b or higher.
To use, copy gl_autodoors.int to your scripts folder.
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
@@ -0,0 +1,9 @@
"Take All" Hotkey mod for Fallout 2 by NovaRain
----------------------------------------
- makes pressing the semicolon key send an uppercase A after a semicolon.
- 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 *.int file to your scripts folder.
This mod is a simple example of how you can use HOOK_KEYPRESS hooks.
Binary file not shown.
+126
View File
@@ -0,0 +1,126 @@
/**
Item Highlight mod.
Previously was part of sfall itself, now a separate mod.
Features:
- highlighting items, containers (optional) and lootable corpses (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)
#define NO_STEAL(obj) (get_proto_data(obj_pid(obj), PROTO_CR_FLAGS) bwand CFLG_NOSTEAL)
variable configSection := "Highlighting";
variable highlightKey;
variable isHighlight;
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 and not NO_STEAL(obj) 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
isHighlight := true;
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
isHighlight := false;
call ToggleHighlight(false);
end
end
end
procedure CombatTurnHandler begin
if isHighlight then begin
isHighlight := false;
call ToggleHighlight(false);
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);
register_hook_proc(HOOK_COMBATTURN, CombatTurnHandler);
end
end
Binary file not shown.
+154
View File
@@ -0,0 +1,154 @@
/*
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, allowed weapon anim codes, NPC PIDs and NPC FIDs in INI file.
NOTE: this script requires compiler from sfall modderspack with -s option
(short circuit evaluation)
version 1.1
*/
#include "main.h"
#define IS_ARMOR(item) (obj_type(item) == OBJ_TYPE_ITEM and obj_item_subtype(item) == item_type_armor)
#define IS_WEAPON(item) (obj_type(item) == OBJ_TYPE_ITEM and obj_item_subtype(item) == item_type_weapon)
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
procedure check_weapon_change(variable critter, variable item, variable isWield) begin
variable npc, newWeaponAnim, weaponAnimList, i;
if (npcMap[obj_pid(critter)]) then begin
npc := npcMap[obj_pid(critter)];
if isWield then begin
newWeaponAnim := get_proto_data(obj_pid(item), PROTO_WP_ANIM);
weaponAnimList := string_split(npc["WeaponAnims"], ",");
if newWeaponAnim then begin
foreach (i in weaponAnimList) begin
if (newWeaponAnim == atoi(i)) then return -1;
end
end else begin // anim code 0 - none/unarmed
return -1;
end
end
end
return 0;
end
// for NPCs when they change armor/weapon themselves
procedure invenwield_handler begin
variable critter, item, fid, slot, isWorn, canWield;
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
if (critter and item and (slot == INVEN_TYPE_RIGHT_HAND or slot == INVEN_TYPE_LEFT_HAND)) then begin
canWield := check_weapon_change(critter, item, isWorn);
set_sfall_return(canWield);
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
// when changing weapon from inventory while controlling other NPCs
procedure inventorymove_handler begin
variable slot, item, canWield;
slot := get_sfall_arg;
item := get_sfall_arg;
if (dude_obj != real_dude_obj) then begin
if (IS_WEAPON(item) and (slot == INVEN_TYPE_RIGHT_HAND or slot == INVEN_TYPE_LEFT_HAND)) then begin
canWield := check_weapon_change(dude_obj, item, item != 0);
set_sfall_return(canWield);
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);
register_hook_proc(HOOK_INVENTORYMOVE, inventorymove_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["WeaponAnims"] := sect["WeaponAnims"];
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.

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