Commit Graph
100 Commits
Author SHA1 Message Date
NovaRain 50f4885407 Fixed obj_art_fid for dude_obj when the hero appearance mod is enabled 2019-08-11 23:46:26 +08:00
NovaRain f59d104975 Fixed create_message_window script function
* prevent it from creating multiple message windows.

Capped StartMonth/StartDay in case people didn't notice "0-indexed".
Minor fix for assigning an ID to objects when loading a map.
Small optimization for sfall gl/hs scripts.
2019-08-11 10:58:32 +08:00
NovaRain 744213dea1 Fixed unable to reach the specified max level in XPTable
Fixed the AP cost display issue in NPC combat control mod.
Added a tweak for weapon perk modifier to AIBestWeaponFix.
Minor edits to code/documents.
Updated version number.
2019-08-09 11:47:33 +08:00
NovaRain 839e8d2636 Minor edits to ddraw.ini 2019-07-18 09:26:47 +08:00
NovaRain 01bbd111d3 Fixed elevation check in get/set_can_rest_on_map
Changed DebugMode to not require enabling sfall debugging mode.
Changed version to 4.1.9.1 as maintenance release.
2019-07-17 10:02:20 +08:00
NovaRain 16fbc0f93f Changed "add_extra_msg_file" script function (#249)
* added auto ID assignment for the message file.
2019-07-16 12:45:22 +08:00
NovaRain 2bfb886ece Fixed two issues in party control code
* perks picked in combat disappeared after switching control to other
critters.

* player's selected weapon mode was not saved.
2019-07-16 10:51:26 +08:00
NovaRain b33277c35a Fixed the error handling on loading sfallgv.sav
* to improve backward compatibility with older saved games.
2019-07-15 20:49:55 +08:00
NovaRain e127be29e8 Fixed key_pressed function not working in KEYPRESS hook (#248)
Minor text edits to CombatHs.cpp.
Updated version number.
2019-07-15 09:54:41 +08:00
NovaRain 361ebbe939 Added PerksList option to gl_partycontrol 2019-07-14 10:38:17 +08:00
NovaRain b41a870f3b Fixed flickering when switching control in gl_partycontrol 2019-07-12 07:36:47 +08:00
NovaRain 9a5ea216c4 Excluded barter mode for ItemCounterDefaultMax
Minor edits to document/code.
2019-07-10 10:47:25 +08:00
NovaRain 8d1b959f20 Added assignment of unique IDs to items/critters for event queue
* to prevent event queue being added to the incorrect object on the map.
2019-07-09 21:47:27 +08:00
NovaRain c3080a2db9 Changed the implementation of the bug fix in commit 02a3bbd
Added additional fix for "NPC turns into a container" bug.
2019-07-09 10:45:53 +08:00
NovaRain 32ecdcfdd9 Fixed bugs related to knockout/knockdown critters
Fixed knocked down critters not playing stand up animation after the
combat ends.

Fixed dead NPCs reloading their weapons after the combat ends.
2019-07-06 22:27:06 +08:00
NovaRain 914655085a Fixed the execution of functions before exiting map in commit 045926c 2019-07-06 01:53:46 +08:00
NovaRain cde3157153 Added KnockoutTime option to change the duration of the knockout effect.
Renamed WorldMapInterface option to ExpandWorldMap.

Fixed op_lookup_string_proc_ engine function not searching the last
procedure in a script.
2019-07-04 13:49:11 +08:00
NovaRain e2865b751b Added reassignment of IDs for critters upon first loading a map
* for fixing mapper not checking existing object IDs and generating
duplicated ones for new critters added on a map.
2019-07-03 15:08:26 +08:00
NovaRain 274e141277 Added a check for the DAM_KNOCKED_OUT flag
to wield_obj_critter/inven_unwield script functions.

Added climbing ladders to "interrupted player's movement in combat" fix.
2019-07-03 12:09:39 +08:00
NovaRain d8d3bade94 Fixed XP stealing bug in gl_partycontrol.
* if the combat ends automatically after a controlled critter's turn,
it would get the player's combat xp and "level up".
2019-07-01 13:06:32 +08:00
NovaRain ff2ebdc82a Added "combat ends normally" event to HOOK_COMBATTURN
Fixed a crash in COMBATTURN hook when loading in combat mode while
controlling critters.

Fixed critter control algorithm in PartyControl.cpp and set_dude_obj
not accepting a null argument.
2019-07-01 12:15:32 +08:00
NovaRain 2ffdc43869 Added a memory conflict warning to the log. 2019-07-01 06:34:00 +08:00
NovaRain 9f585ba7e6 Added SkipOpeningMovies=2 to also skip the splash screen 2019-06-29 20:01:41 +08:00
NovaRain 3f96e42730 Added ActionPointsBar option to [Interface] in INI
Added a new Interface module.
Moved WorldMapInterface to the new [Interface] section.
Moved some code from Worldmap.cpp to Interface.cpp.
Updated sfall.dat with new IFACE_E.frm and HR_IFACE_800E.frm files.
2019-06-28 21:40:57 +08:00
NovaRain d3f7e2a79a Moved unlisted FRM functions and structure from HeroAppearance.cpp to EngineUtils.cpp/Structs.h.
Tweaked the formate of some text in sfall log.
2019-06-28 07:33:47 +08:00
NovaRain f9ca201741 Fixed combat not ending automatically when there are no hostiles. 2019-06-26 06:10:47 +08:00
NovaRain 06a115070b Added AutoSearchPath option to [ExtraPatches].
* this provides a simpler way to load assorted .dat files without the
need of adding/editing PatchFileXX options in ddraw.ini.
2019-06-25 22:53:15 +08:00
NovaRain 56764c86c7 Changed DataLoadOrderPatch to be 1 by default. 2019-06-24 12:18:00 +08:00
NovaRain b8b16d5449 Fixed get/set_critter_*_stat not accepting a pointer to the player.
* for the compatibility with earlier versions.
2019-06-23 08:18:34 +08:00
NovaRain 1020851bcd Corrected the position of entrances on town maps for WorldMapInterface. 2019-06-19 10:56:14 +08:00
NovaRain e790178e66 Fixed fade in/out of the screen in DX9 mode. 2019-06-18 09:25:53 +08:00
NovaRain 28059ce890 Fixed Scout perk being taken into account for mark_area_known function.
* technically it should only effect the visibility of tiles when you're
exploring on the world map.

Fixed the incorrect coordinates for small/medium location circles when
highlighting their sub-tiles (one of bugs listed in #228)

Slightly adjusted the position/size for Local variables button in debug
editor.
2019-06-17 11:19:40 +08:00
NovaRain 04d06a8167 Added viewing and modifying local vars for critters to the debug editor. 2019-06-15 09:57:14 +08:00
NovaRain ddda559898 Added "add_extra_msg_file" and "metarule_exist" script functions. 2019-06-14 11:05:42 +08:00
NovaRain 88438edbc5 Code correction to previous two commits. 2019-06-12 09:10:29 +08:00
NovaRain 1e9dd57224 Party Control: added saving selected weapon mode.
* before weapon mode got reset when switching control between critters.
2019-06-11 10:10:00 +08:00
NovaRain 7826a937db Rewrote get_attack_type script function in C++. 2019-06-11 09:37:49 +08:00
NovaRain 480de50f88 Fixed the interrupted player's movement in combat.
* it happens when the player try to use objects with Bonus Move APs
available. The distance has to be greater than remaining normal APs.

Replaced calling db_dir_entry_ with db_access_ in some code.
2019-06-10 09:43:49 +08:00
NovaRain a64268a88a Fixed the position of the target maker for location circles.
Improved WorldMapInterface option, now the game won't crash when
WorldMap.frm is not found.
2019-06-09 11:33:04 +08:00
NovaRain fcd5e8475b Fixed the reserve movement fix in commit 02a3bbd.
* before the reserve movement didn't work correctly if the player has
free move AP (yellow, from Bonus Move) left.
2019-06-09 07:22:47 +08:00
NovaRain 808ba05a0b Added WorldMapInterface option to expand the world map interface.
Fixed the up/down button images in the world map interface.
Added loading sfall.dat resource file, which contains new WorldMap.frm
and AppHeroWin.frm.
2019-06-08 23:53:56 +08:00
NovaRain 02a3bbd536 Fixed anim_move_to_tile_ ignoring the distance argument.
* this also fixes the broken "reserve movement" feature.
2019-06-08 09:45:01 +08:00
NovaRain 137644aa72 Fixed a few bugs in WorldMapSlots option.
Updated version number.
2019-06-06 10:18:10 +08:00
NovaRain 229911336b Fixed a bug in knockback modifier functions that could crash the game (#237)
Updated version number.
Improved compatibility with older processors (pre-SSE2)
2019-06-03 09:14:45 +08:00
NovaRain e5e2ef5ab0 Minor edit to gl_ammomod example script. 2019-05-31 09:10:36 +08:00
NovaRain 8778d1c695 Improved the fix for the removal of PM corpses.
* to prevent save file corruption (one of bugs listed in #228). Now
party member's corpse is removed in the same way as all other critter
corpses.

Simplified the ASM code of combat_ai_hack (take 2).
2019-05-30 10:30:25 +08:00
NovaRain 4ee20e06b4 Fixed the code for removal of party member's corpse when loading the map. 2019-05-29 09:35:38 +08:00
NovaRain aa5bd95dfe Fixed AI not checking min HP properly for using stims.
Edited the code of InventoryApCost in Inventory.cpp.
Minor edits to some other code.
2019-05-28 13:51:40 +08:00
NovaRain aa221adea3 Fix for fake perks related functions.
* now fake perks are no longer added to all controlled critters.

Added alternative functions that allow to add fake perks to party
member NPC.

Rewrote set_fake_perk/trait, set_selectable_perk, has_fake_perk/trait
functions in C++.
2019-05-27 12:01:09 +08:00
NovaRain 22cdc32d26 Simplified the ASM code of combat_ai_hack. 2019-05-24 20:00:07 +08:00
NovaRain fca3307bd9 Rewrote the fix to allow fleeing NPC to use drugs.
Code edits to Perks.cpp.
2019-05-24 10:35:50 +08:00
NovaRain 04d7f4aefa Removed LoadProtoMaxLimit option from ddraw.ini.
* now the proto limit is always handled by set_proto_data function when
needed, since the related issue was originally from using it to process
lots of protos at once.
2019-05-23 17:04:51 +08:00
NovaRain f5317ad5ee Rewrote NPC fleeing fix.
Removed DialogOptions9Lines option from ddraw.ini.
2019-05-22 10:41:37 +08:00
NovaRain 119b0afacd Fixed getting perks and traits of real_dude_obj while controlling other NPCs.
* When switching control to party members, their own table of perks is
copied into player's current perk table.

Fixed the position of the items in active item slots after ending the
NPC control (NPC's wielded weapon should always be in the right slot).
2019-05-22 10:32:43 +08:00
NovaRain 10a6b76d5b Increased the max text width of the info card in the char screen.
* the increased the width is according to the max width of one char in
font (uppercase A seems to be the widest with 8 px).
2019-05-20 11:25:42 +08:00
NovaRain 3a86f1d134 Added two fixes for NPC fleeing in combat.
* added fix to allow fleeing NPC to use drugs.
* fixed NPC stuck in fleeing mode when the hit chance of a target was
too low.
2019-05-19 15:38:54 +08:00
NovaRain 30ac2a9690 Slightly simplified the code of NPCStage6Fix.
Moved NPCsTryToSpendExtraAP to AI.cpp.
2019-05-19 08:15:45 +08:00
NovaRain 16a0ef3bdf Improved the fix in previous commit.
* now ignoring the inv capacity only happens in combat for preventing
AI inf loop. The vanilla behavior still applies outside of combat.
* added a correct message for NPC not being able to pick up an item.
2019-05-18 10:55:38 +08:00
NovaRain 58d5271d49 Fixed two item pickup issues for NPC.
* message for the player is displayed when the NPC cannot pick up item.
* if in combat, NPC will also be stuck in a loop of picking up item.

Fixed HideObjIsNullMsg option.
2019-05-17 09:55:09 +08:00
NovaRain 6a226aef34 Added a tweak to op_use_obj_on_obj_hack in BugFixes (from Mr.Stalin)
Minor edits to code/documents.
2019-05-14 07:16:23 +08:00
NovaRain 6ac9949feb Added "dropping item on the character portrait" event to HOOK_INVENTORYMOVE.
Rewrote get_ini_setting/string script functions in C++.
Rewrote Ray's combat_p_proc fix.
Minor code edits.
2019-05-13 11:29:24 +08:00
NovaRain d2cf728131 Refactored code in Tiles.cpp and EngineUtils.cpp.
Moved RegAnimCombatCheck code from ScriptExtender.cpp to Anims.cpp.
2019-05-11 09:56:58 +08:00
NovaRain a63ea24572 Added aspect ratio scaling to draw_image_scaled.
Rewrote create_message_window script function in C++.
2019-05-11 08:49:30 +08:00
NovaRain 4b221b5367 Improved the error handling for previous commit.
Reverted the change in Tiles.cpp from commit 4bc1a422c3.
2019-05-10 10:38:51 +08:00
NovaRain 02c2df50ac Added "draw_image" and "draw_image_scaled" script functions. 2019-05-09 22:22:02 +08:00
NovaRain 4bc1a422c3 Changed the names of FRM structures.
Added some functions for later use.
Fixed get FID type.
2019-05-09 10:11:26 +08:00
NovaRain 88cf6dcd32 Moved Test_ForceFloats to [Debugging] section.
* Since it's never mentioned anywhere, should be OK moving it before
the formal release.
2019-05-07 23:04:00 +08:00
NovaRain 943cd5d2dc Code edits on ScriptShaders & OpcodeContext.cpp.
Minor edits on some other code.
Added the missing Test_ForceFloats option to ddraw.ini.
2019-05-07 13:49:26 +08:00
NovaRain bc47c87583 Moved script shader functions code from Graphics.cpp to a separate module. 2019-05-05 10:53:50 +08:00
NovaRain 0f98591b77 Code refactoring in Arrays.cpp.
Added a new example mod gl_ammomod to modderspack.
2019-05-05 08:47:08 +08:00
NovaRain 42cf5ded97 Unset the read-only attribute for party member's .sav proto files 2019-05-02 14:23:02 +08:00
NovaRain edac0ba393 Fixed the issue with read-only party member base protos.
* the protos being placed in the proto\critters\ directory will cause
party member's stats reset after loading a saved game.
2019-05-01 20:56:35 +08:00
NovaRain 045926c860 Reordered the execution of functions before exiting the map
* partyMemberSaveProtos and queue_leaving_map are now called after
executing map_exit_p_proc procedure.

Replaced some obsolete implementation in ScriptExtender/Worldmap.
2019-05-01 09:45:51 +08:00
NovaRain c65e1ec6d3 Fixed the argument value of dialogue_reaction script function 2019-04-30 11:17:37 +08:00
NovaRain 6a38fd0794 Replaced opcode/metarule names in error messages
* before they are explicitly specified in text. Now the names are taken
from the opcode/metarule tables.
2019-04-30 10:09:34 +08:00
NovaRain f788246283 Reordered sfall modules to fix the issue #235
Unified the directory separator in documents.
Updated version number.
2019-04-30 06:45:22 +08:00
NovaRain 1b1b85c3b4 Rewrote Force Encounter script function code.
Added two functions to Utils.cpp.
Minor edits to BugFixes.cpp and ddraw.ini.
2019-04-24 10:05:47 +08:00
NovaRain 28493432db Replaced ASM code in various opcodes with macros (from Mr.Stalin)
* The two macros are from sfall 3.x.
2019-04-23 11:38:21 +08:00
NovaRain 1d6150e341 Fixed the previous TalkingHeads.cpp commit.
* Now textures for all animation sets will be displayed correctly.

Some code edits to AI.cpp, MainMenu.cpp, Movies.cpp.
2019-04-22 10:37:34 +08:00
NovaRain 3798e5239d Fixed and improved Use32BitHeadGraphics option:
* Fixed the position of the talking head texture when the game res is
larger than 640x480.

* Added the support to use textures without the need of patching
talking head FRM files.

Fixed a bug in item highlighting that item keeps its outline if player
picked it up while holding the highlight key.
2019-04-20 22:49:02 +08:00
NovaRain 533020cd8b Renamed AmmoMod module to DamageMod. 2019-04-19 09:10:31 +08:00
NovaRain 69e3faeb7d Reverted some changes in previous commit.
* Now weapons with knockback modifiers applied still stack with others
in the inventory.

Rewrote the code of set/remove_*_knockback functions in C++.
2019-04-17 10:28:14 +08:00
NovaRain 4cdc028cb7 Further implementation of unique ID.
* weapons with knockback modifiers applied will have a special ID
(negative value) that work as a temporary UID for the current game
session.

Added checks on object types to functions in Combat module.
Added the second argument to set_unique_id script function.
2019-04-16 20:33:00 +08:00
NovaRain e92b8021c0 Fixed the start procedure not being called correctly
* If the required standard script procedure is missing, the procedure
above the start proc is called instead of the start (from Crafty)

Added a id reversion mechanism to remove_weapon_knockback.
2019-04-15 12:57:44 +08:00
NovaRain 601d25be97 Fixed adding fake perks to the player (#232) 2019-04-14 07:36:57 +08:00
NovaRain 7a2b7dee6a Added "picking up item" event to HOOK_INVENTORYMOVE.
Added "set_unique_id" script function.
2019-04-12 12:15:55 +08:00
NovaRain dcf0561653 Added new HOOK_SNEAK (from Mr.Stalin) 2019-04-10 17:13:00 +08:00
NovaRain 5c3f10db91 Edited/reorganized some code.
Updated proto offsets in define_extra.h.
2019-04-10 09:46:31 +08:00
NovaRain 3e49922898 Extended the number of simultaneously displayed notification boxes
(now it depends on on the resolution of the game.)
2019-04-09 11:03:17 +08:00
NovaRain 564202f225 Re-fixed CheckWeaponAmmoCost option. 2019-04-08 00:32:04 +08:00
NovaRain 143f6895a4 Fixed a bug in CheckWeaponAmmoCost (from Mr.Stalin)
It caused NPCs to not switch to other weapons when there is not enough
ammo to shoot.
Moved CheckWeaponAmmoCost code from Inventory.cpp to Combat.cpp.
Now the debug editor starts at the center of the screen.
Updated the previous fix in NPC combat control mod.
2019-04-07 10:59:02 +08:00
NovaRain d946850af4 Fixed the weapon duplication bug in NPC combat control mod. 2019-04-06 09:33:27 +08:00
NovaRain ae7245579e Fixed setting array values in the debug editor.
Some code corrections.
2019-04-06 08:24:49 +08:00
NovaRain 563fdddc7e Added setting array values for the debug editor. 2019-04-05 12:03:25 +08:00
NovaRain 06bbe3ceb5 Updates to sfall debug editor (part 1) 2019-04-05 09:17:43 +08:00
NovaRain 56083c3bc6 Updated sfall debug editor (from Mr.Stalin)
Formatted the code of sfall debug editor.
2019-04-04 10:22:02 +08:00
NovaRain dee0065863 Removed PipBoyAutomaps from ddraw.ini.
* By default nothing will change with the option enabled, because all
data is copied from the vanilla map list, and modders still need to add
the new 'automap' parameter to override the engine values to add/remove
areas in the automap list. Basically the option itself is redundant.
2019-04-03 22:01:53 +08:00
NovaRain 3614ee355f Added an option to add support for the new 'automap=yes/no' parameter to maps.txt (from Mr.Stalin)
Fixed "out of bounds" bug when printing the automap list.
2019-04-02 10:31:08 +08:00
NovaRain 7c05a0fea9 Fixed a duplicate obj_dude script being created when loading a saved game.
Added a fix to prevent the reserved object IDs of the player and party members from being generated for other objects.
Removed a redundant line in MiscPatches.cpp.
2019-03-31 22:50:48 +08:00
NovaRain dd87a83025 Added DisableSpecialMapIDs option (from Mr.Stalin)
Fixed the overflow of the automap tables when the number of maps in maps.txt is more than 160.
2019-03-30 11:07:16 +08:00