Compare commits

...
Author SHA1 Message Date
google-labs-jules[bot] a59d88f9f5 feat: Implement interface tag functions
I've implemented new sfall script functions to control interface tags (boxes appearing above the interface like SNEAK, LEVEL).

New functions:
- `add_iface_tag()`: Adds a new custom interface tag box. Returns the ID of the new tag (5 to 130) or -1 if the limit (126 custom tags) is reached.
- `show_iface_tag(tag_id)`: Activates a specified tag.
  - For predefined tags: 0 (SNEAK), 3 (LEVEL), 4 (ADDICT), modifies player state.
  - For custom tags (5+): Activates the custom box.
- `hide_iface_tag(tag_id)`: Deactivates a specified tag.
  - For predefined tags: Clears player state.
  - For custom tags: Deactivates the custom box.
- `is_iface_tag_active(tag_id)`: Returns 1 if the tag is active, 0 otherwise.
  - Checks game state for predefined tags: 0 (SNEAK), 1 (POISONED), 2 (RADIATED), 3 (LEVEL), 4 (ADDICT).
  - Checks status for custom tags (5+).
- `set_iface_tag_text(tag_id, text, color)`: Sets the display text (max 19 chars) and color for a custom interface tag.

I've made changes to `interface.h`, `interface.cc`, `sfall_opcodes.cc`, and `sfall_metarules.cc` to implement these features. I also created a new file `sfall_testing/gl_test_iface_tags.ssl` to test all the new functionalities.
2025-06-22 04:43:38 +00:00
Vasilii Rogin 7767aabdce Merge pull request #197 from fallout2-ce/change_stencil_option
Change high resolution stencil option
2025-06-08 09:46:34 +03:00
Vasilii Rogin 9cb2b83db1 Merge pull request #185 from fallout2-ce/improve_tests_report
Use global variables and arrays to show tests summary
2025-06-07 20:45:11 +03:00
Vasilii Rogin 75ca12e07c Improve tests reporting 2025-06-07 19:06:48 +03:00
Vasilii Rogin f85e8ba67b Use lowercase for test results 2025-06-07 18:54:56 +03:00
Vasilii Rogin 07876ddaf9 Use arrays for sharing data between tests 2025-06-07 18:51:56 +03:00
Vasilii Rogin 7288f8eeb7 Merge remote-tracking branch 'fallout2-ce/main' into improve_tests_report 2025-06-07 18:27:45 +03:00
Vasilii Rogin 1a46d0f59f Make EnableHighResolutionStencil enabled by default in proper place 2025-06-07 17:40:11 +03:00
Vasilii Rogin 7c2dfa9af1 Change HiResMode into EnableHighResolutionStencil 2025-06-07 17:38:12 +03:00
Vasilii Rogin d681e7be69 Merge pull request #192 from fallout2-ce/toggle-active-hand
Add `toggle_active_hand` (sfall)
2025-06-07 12:23:06 +03:00
Mike Klaas 8294e15d3c Default to 800px interface bar (#181)
(still can be overriden by config)

Will fall back to 640px version if screen is narrower than 800px or asset doesn't exist
2025-06-06 21:07:11 -07:00
Mike Klaas 4278d1a1d0 fix crash 2025-06-06 20:54:24 -07:00
Mike Klaas b2675ad1ac Add toggle_active_hand (sfall) 2025-06-06 00:34:36 -07:00
Vasilii Rogin 5dafa019c9 Merge pull request #190 from fallout2-ce/all-opcodes
Reformat sfall opcode list to contain all opcodes
2025-06-03 20:10:25 +03:00
Mike Klaas 8888fc46d6 Reformat sfall opcode list to contain all opcodes
This pulls in every sfall opcode, including param types and returnval.  It is grouped in a more "natural" order (i.e. what the sfall doc lists) instead of numeric order, which helps see which opcodes from a logical group are missing
2025-06-03 08:56:16 -07:00
Mike Klaas 001bdbee5c Add all remaining sfall math functions (#187)
* Add all remaining sfall math functions

* Fix op_round
2025-06-03 08:06:29 -07:00
Vasilii Rogin 40471e5a0b Merge pull request #186 from fallout2-ce/experiment_with_gh-pages_cleanup
Add single-commit option for preview deployments
2025-06-02 21:00:24 +03:00
Vasilii Rogin ad776876a1 Add check that it is gh-pages branch 2025-06-02 20:53:30 +03:00
Vasilii Rogin 224f1088f2 Also force-push to gh-pages on PR cleanup 2025-06-02 20:52:46 +03:00
Vasilii Rogin 05b692f403 Add single-commit option for preview deployments 2025-06-02 20:43:56 +03:00
Vasilii Rogin 190906bb5f Use global variables to show tests summary 2025-06-02 18:31:40 +03:00
Mike Klaasandgithub-actions[bot] 41dd2ccd81 Implement all remaining sfall string functions (#184)
Implement string_to_case, and add comments for missing metarules/opcodes
    string_find
    string_compare
    charcode

This should complete all string functions listed here that aren't deprecated.


* chore: auto-format with clang-format

* PR feedback

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-02 10:12:25 +03:00
Vasilii Rogin 04e93cabd7 Merge pull request #183 from fallout2-ce/add_sprintf
Add sprintf, add test utils
2025-06-01 20:03:04 +03:00
Vasilii Rogin a31af0671d Use .h for test utils 2025-06-01 19:54:25 +03:00
Vasilii Rogin 72df28f53a Use const to reduce warnings 2025-06-01 17:07:13 +03:00
github-actions[bot] 7e3bd36f86 chore: auto-format with clang-format 2025-06-01 14:03:26 +00:00
Vasilii Rogin 94ce0fbe11 Merge remote-tracking branch 'fallout2-ce/main' into add_sprintf 2025-06-01 17:01:28 +03:00
Vasilii Rogin a368f27ad4 Add one more byte to be safe 2025-06-01 16:56:12 +03:00
Vasilii Rogin d8d411e847 Add test for big strings 2025-06-01 16:53:29 +03:00
Vasilii Rogin 5eef9af7a9 Add one more test 2025-06-01 16:46:20 +03:00
Vasilii Rogin 0419efad8f Add sprintf 2025-06-01 16:42:42 +03:00
Vasilii Rogin 21f432afbb Register opcode 2025-06-01 16:13:37 +03:00
Vasilii Rogin aed05c0daf Initial implemenation of sprintf 2025-06-01 16:10:12 +03:00
Vasilii Rogin 8a8b54d4b7 Increase metarules params to 8 2025-06-01 15:30:13 +03:00
Vasilii Rogin 8ee543ec16 Add tests for metarules with multiple params 2025-06-01 15:27:42 +03:00
Vasilii Rogin 161bb82f30 Slightly better output for tests 2025-06-01 14:08:18 +03:00
Vasilii Rogin 22bd1ffbba Small cleanup in tests 2025-06-01 13:57:29 +03:00
Vasilii Rogin f46f1c78d4 Add test for string_format 2025-06-01 13:15:58 +03:00
Vasilii Rogin 3d0e206825 Add tests for float 2025-06-01 13:01:14 +03:00
Vasilii Rogin 47a9891e0e Add test for %c 2025-06-01 12:58:51 +03:00
Vasilii Rogin f1e5cde84f Add tests for sprintf 2025-06-01 12:56:45 +03:00
Vasilii Rogin 015909fdef Use lowercase for scripts 2025-06-01 12:47:30 +03:00
Vasilii Rogin 1e91b401f1 Fix stats test 2025-06-01 12:31:23 +03:00
Vasilii Rogin 29a0be50f4 Update stats test 2025-06-01 12:28:23 +03:00
Vasilii Rogin 9e3ce4cd8d Fix stats test 2025-06-01 12:22:33 +03:00
Vasilii Rogin 592882b7b8 Adding tests 2025-06-01 12:18:12 +03:00
Vasilii Rogin cbd7b45736 Merge pull request #182 from fallout2-ce/add_test_script_for_sfall_opcodes
Add test for derived stats
2025-06-01 10:47:45 +03:00
Vasilii Rogin 220fb8e190 Add test for derived stats 2025-06-01 10:39:43 +03:00
Vasilii Rogin 5a29fc1815 Merge pull request #180 from fallout2-ce/make-sfall-opcodes-consistent
Rename sfall opcodes to use underscores for consistency.
2025-06-01 09:36:53 +03:00
Mike Klaas a083779fb2 Rename sfall opcodes to use underscores for consistency.
This also makes them significantly easier to find in the codebase
2025-05-31 14:11:32 -07:00
Vasilii Rogin 95d254cd45 Merge pull request #179 from fallout2-ce/add_test_script_for_sfall_opcodes
Add critter stats opcodes
2025-05-31 23:32:22 +03:00
Vasilii Rogin 0d8f4cc711 Merge branch 'main' into add_test_script_for_sfall_opcodes 2025-05-31 23:11:27 +03:00
Vasilii Rogin aabc971dd5 Merge pull request #176 from fallout2-ce/update_windows_runner
Update windows runner
2025-05-31 23:11:06 +03:00
Vasilii Rogin b069e3b941 Update testing script 2025-05-31 20:06:25 +03:00
Vasilii Rogin 823f72492f Implement critter stat opcodes 2025-05-31 20:06:16 +03:00
Vasilii Rogin e5f3734e08 Add opcodes 2025-05-31 19:57:52 +03:00
Vasilii Rogin e37522d388 Add test for critter stats set/get 2025-05-31 19:51:37 +03:00
Vasilii Rogin 07a361f63a Add float_msg 2025-05-31 19:32:01 +03:00
Vasilii Rogin 515bec4c82 Adding simple test for stats 2025-05-31 18:34:56 +03:00
Vasilii Rogin 42bfdc7343 Update testing docs to use global scripts 2025-05-31 16:57:51 +03:00
Vasilii Rogin 0fd5e59575 Remove choco cache because it does not work properly 2025-05-31 15:01:02 +03:00
Vasilii Rogin 0d0578f111 Revert "Add --force flag to re-install in case of used cache"
This reverts commit dacda99b98.
2025-05-31 14:59:33 +03:00
Vasilii Rogin dacda99b98 Add --force flag to re-install in case of used cache 2025-05-31 14:56:39 +03:00
Vasilii Rogin dfb0463b02 Add arch into choco cache 2025-05-31 14:34:53 +03:00
Vasilii Rogin 1903e04c6e Update release workflow too 2025-05-31 14:25:49 +03:00
Vasilii Rogin abec3681b0 Use win2025 with vs2019 2025-05-31 14:14:18 +03:00
cambragol 5a9f8fb46c Merge pull request #164 from fallout2-ce/character-screen-button-fix
Character Screen Button Fix
2025-05-31 10:03:03 +09:00
cambragol 3659c834ae Merge pull request #166 from fallout2-ce/animations-behind-worldmap-fix
Animations behind worldmap fix
2025-05-31 09:54:19 +09:00
Mike Klaas 196553ec46 Don't crash if game resolution is <800 with custom interface bar (#174)
* Don't crash if game resolution is <800 with custom interface bar
2025-05-29 22:52:26 -07:00
Mike Klaas 57f1229a51 Add click when using a to Take all or move All (#169)
Most other button make a sound when you use the keyboard shortcut, and so ought these
2025-05-29 15:22:34 -07:00
Mike Klaasandgithub-actions[bot] 413c843ff5 Fix bug that stopped music when reloading on the same map (#168)
* Fix bug that stopped music when reloading on the same map

If you have GaplessMusic=1 and load a saved game on the same map you're currently on, we erroneously skip playing music.  This fixes that problem.

Also, still playing loading sound if no background music is playing (not sure there can actually happen).  I still want to get the loading sound back in eventually.

Finally, added a bit of decyption.  It's not complete yet but has some deciphering

* chore: auto-format with clang-format

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-05-29 00:21:29 -07:00
cambragol 995102d515 Update worldmap.h
removed unneeded global
2025-05-29 16:08:38 +09:00
cambragol dd867446ea Update worldmap.cc
removed unneeded global
2025-05-29 16:07:48 +09:00
cambragol 4f91e38cc0 Update animation.cc 2025-05-29 16:05:53 +09:00
cambragol 016c83bc48 Inventory Item not Disappearing Fix (#161)
Fixes #160 

Conditional was incorrect.
2025-05-28 21:58:23 -07:00
cambragol d8dc05597b Update worldmap.cc
Fixed placement of  inWorldMap = true; and inWorldMap = false; Was preventing animations outside of worldmp.
2025-05-27 19:49:44 +09:00
github-actions[bot] 7d9e1612c6 chore: auto-format with clang-format 2025-05-27 08:42:47 +00:00
cambragol 848bd97e42 Update animation.cc
Check for 'isWorldMapActive', so we know to turn off fidget animation behind the map.
2025-05-27 17:39:08 +09:00
cambragol 5c5512277d Update worldmap.cc
Adding global for inWorldMap - so we know if the world map is active or not.
2025-05-27 17:37:22 +09:00
cambragol 016f853c0a Update worldmap.h
Adding a bool for 'inWorldMap' to fix animations behind worldmap
2025-05-27 17:32:01 +09:00
cambragol 9edbf0dd72 Update character_editor.cc
Adjusted the correct button x coordinates. Previously had adjusted the x coordinates of the button labels.
2025-05-27 14:25:28 +09:00
cambragol 36af4b2ea8 Update character_editor.cc
Moved 3 bottom buttons 1 pixel to right. Affects both screens, and aligns them better to the baked in buttons.
2025-05-26 21:33:45 +09:00
Vasilii Rogin 145cf6bbcc Merge pull request #157 from fallout2-ce/deobfus-window-2
More deobfuscation in `window.cc,h`
2025-05-25 08:59:40 +03:00
Mike Klaas 5b39307f61 More deobfuscation in window.cc,h
As usualy, no logic changes
2025-05-24 22:45:21 -07:00
Vasilii Rogin 547cabc42d Merge pull request #153 from roginvs/auto-fix-formatting-on-main-branch
Auto fix formatting on main branch or PR branch
2025-05-24 17:34:47 +03:00
Vasilii Rogin d2a3d61dcb Trying auto-format 2025-05-24 14:16:53 +03:00
Vasilii Rogin 2d1966f0af Adding manual workflow 2025-05-24 13:56:48 +03:00
Vasilii Rogin a406c5f019 CI fixes 2025-05-24 13:43:31 +03:00
Vasilii Rogin 9ca540f05e Auto-format only PRs from the same repo 2025-05-24 13:32:12 +03:00
Vasilii Rogin 4678e19edd Add formatter for PR too 2025-05-24 13:31:06 +03:00
Vasilii Rogin 485d2253f4 Add auto-formatting workflow 2025-05-24 13:29:16 +03:00
Mike Klaas 72309fc9dc Deobfuscate some parameters in window.h,cc (#152)
Note: no logic changes

Removed a parameter which was never used
2025-05-23 23:45:05 -07:00
cambragol fda6fd0646 Update game_dialog.cc (#139)
* Update game_dialog.cc

* Update game_dialog.cc

* Update game_dialog.cc
2025-05-23 21:24:59 -07:00
Mike Klaas 2126e23161 QoL: Add Ctrl-click to move items in inventory, barter, looting/stealing (#133)
* Add Ctrl-click to move items in inventory, barter, looting/stealing

Barter: move from table (offer) to inventory, on both merchant and pc.
Looting/stealing: move from one side to the other.
Inventory: ctrl-click to unequip armor or item in hand.

Modeled after the SFALL feature.

* skip quantity selection when quick moving

* Add `a` to inventory quantity select screen as a quick way to select ALL

* format

* Add Readme changes, and `a` to `Take All`

* try to format

* fmt
2025-05-24 13:06:41 +09:00
Vasilii Rogin 0fa90a1a00 Merge pull request #140 from fallout2-ce/add_test_script_for_sfall_opcodes
Add test script for sFall opcodes
2025-05-23 22:43:21 +03:00
Vasilii Rogin 9bfc3e83cd Add fix_formatting script 2025-05-23 22:34:41 +03:00
Vasilii Rogin 2f974aefed Fix formatting 2025-05-23 22:29:47 +03:00
Vasilii Rogin b27093b7ac Merge remote-tracking branch 'fallout2-ce/main' into add_test_script_for_sfall_opcodes 2025-05-23 22:29:26 +03:00
Vasilii Rogin 6f240acf0a Fix typo 2025-05-23 21:35:20 +03:00
cambragol 5dbcfd997c Fixes slightly misaligned buttons in the pipboy (#147) 2025-05-22 23:17:07 -07:00
cambragol 88205ded62 Merge pull request #129 from fallout2-ce/Locations-Scroll-Menu
Update worldmap.cc
2025-05-20 20:40:37 +09:00
Vasilii Rogin a3d37e11c1 Update README 2025-05-18 22:49:32 +03:00
Vasilii Rogin 0e18e77901 Fix formatting 2025-05-18 18:43:07 +03:00
Vasilii Rogin 9d2db5b36a Remove note 2025-05-18 16:17:25 +03:00
Vasilii Rogin b88230426d Update README 2025-05-18 16:14:40 +03:00
Vasilii Rogin bbf52f6b2d Add testing information 2025-05-18 15:51:25 +03:00
Vasilii Rogin 89a9d1ae12 Add initial version of test scripts 2025-05-18 15:15:28 +03:00
cambragol 3216fd02b0 Merge pull request #90 from fallout2-ce/cambragol-patch-3
Update game_dialog.cc to fix Combat Control buttons/sounds
2025-05-18 16:20:59 +09:00
cambragol b4ea465acb Merge pull request #135 from fallout2-ce/default-hires
Turn on hires stencils by default
2025-05-18 10:26:56 +09:00
Mike Klaas 6178149b07 Turn on hires stencils by default
I can't think of a reason why someone would want to do hires without the stencils.  Nevertheless it's still turn off-able using `HiResMode=0` if desired.

In addition, updated the Readme to not mention it (since only very few people would care about turning it off), and fixed the link to the sample ddraw.ini
2025-05-17 16:20:37 -07:00
Mike Klaas 942d88476a Update inventory.cc to fix button click sounds for 'Move Items'
Update inventory.cc to fix button click sounds for 'Move Items'
2025-05-17 16:02:56 -07:00
cambragol b72808a0d3 Update inventory.cc
removed erroneous click sound
2025-05-16 15:44:54 +09:00
cambragol 43fdd520cd Merge pull request #127 from fallout2-ce/mainmenu
Readme adjustments
2025-05-15 20:05:29 +09:00
cambragolandMike Klaas 004eb67b1f Apply suggestions from code review
Co-authored-by: Mike Klaas <mike.klaas@gmail.com>
2025-05-15 14:40:44 +09:00
cambragol 3cdd477df8 Update worldmap.cc
Reduced scrolling from 7! lines at a time, to 1. This also makes mouse scrolling actually work as it should as well.
2025-05-14 20:47:08 +09:00
sherief 9cd309b263 Merge pull request #128 from fallout2-ce/gapless-music
Gapless music.
2025-05-14 01:51:24 -07:00
cambragol aa96478d69 Update ddraw.ini
Settings: commented out or set to zero/Fallout 2
2025-05-14 16:02:47 +09:00
Mike Klaas de7f12f3ca Merge pull request #125 from fallout2-ce/remove-text-on-wm-transition
Remove floaters when moving to a new world map location
2025-05-13 23:20:51 -07:00
Sherief Farouk 7a2edd5677 The clang-format gods are fickle. 2025-05-13 04:02:05 -07:00
Sherief Farouk 66b68f84dc Pleasing the code formatting gods. 2025-05-13 03:57:59 -07:00
Sherief Farouk fef49692e1 _gsound_background_play_level_music() skips rewind when asked to play same track and gapless is on. 2025-05-13 03:37:02 -07:00
Sherief Farouk 6c3c0d34c2 Skipping loading sound when gapless music is enabled. 2025-05-13 03:34:01 -07:00
Sherief Farouk 42e016e4f9 Declared SFall config flag for gapless music. 2025-05-13 03:33:00 -07:00
cambragol 683091b456 Update README.md 2025-05-13 17:41:42 +09:00
cambragol c2c5a1c80a Update f2_res.ini 2025-05-13 17:23:04 +09:00
cambragol 1aeca09c39 Delete files/test.rtf 2025-05-13 17:12:28 +09:00
cambragol 0bbb594511 Add files via upload 2025-05-13 17:11:39 +09:00
cambragol 822a3d9bd4 Create test.rtf
trying to add/make a folder.
2025-05-13 17:07:46 +09:00
Mike Klaas 66542dc28a Merge pull request #121 from fallout2-ce/deobfuscate-item
Deobfuscate item.h,cc
2025-05-12 23:20:10 -07:00
Mike Klaas 5270cf0d55 Merge pull request #124 from fallout2-ce/mikeklaas-update-readme
Update README.md
2025-05-12 23:19:27 -07:00
Vasilii Rogin e598d06c4a Merge pull request #86 from roginvs/test_winxp_support
Linking stdlib statically for win32
2025-05-13 08:34:32 +03:00
Mike Klaas 66f7137f74 Remove floaters when moving to a new world map location
Fixes #115
2025-05-12 21:35:13 -07:00
Mike Klaas cf59439352 Update README.md 2025-05-12 16:51:40 -07:00
Mike Klaas 02ee5cba5d Update README.md
Update README with a pointer to the right release url, updated f2_res.ini support, and mention that this is a fork.
2025-05-12 16:50:37 -07:00
sherief 218fd20700 Merge pull request #51 from cambragol/patch-11
Update pipboy.cc for full pagination
2025-05-12 01:26:12 -07:00
Mike Klaas 7e18a6980a Deobfuscate item.h,cc
As always, no logic changes, only variable/field renames
2025-05-11 23:05:44 -07:00
Vasilii Rogin 66c0218741 Merge pull request #117 from fallout2-ce/fix_crash_on_game_load
Load pipboy messages when rendering saveslots
2025-05-11 14:05:01 +03:00
Vasilii Rogin 8fc789d6f9 Merge pull request #118 from fallout2-ce/add_pr_template
Add pull request template
2025-05-11 12:50:01 +03:00
Vasilii Rogin ddc5be3b6d Add PR template 2025-05-11 12:49:03 +03:00
Vasilii Rogin 833b6d8213 Fix formatting using this command:
docker run --rm \
  -v $(pwd):/app --workdir /app  \
  --user $(id -u):$(id -g) silkeh/clang:18 \
  bash -c 'find src -type f -name \*.cc -o -name \*.h | xargs clang-format -i'
2025-05-11 12:37:42 +03:00
Vasilii Rogin 4f117678ee Fix func declaration 2025-05-11 12:35:16 +03:00
Vasilii Rogin 499f994c37 Use struct initializer 2025-05-11 12:34:40 +03:00
Vasilii Rogin d6c17c1876 Emit warning if message is not found 2025-05-11 12:32:26 +03:00
Vasilii Rogin 347bf8b135 Load and unload pipboy messages for loadsave 2025-05-11 12:30:01 +03:00
Vasilii Rogin faf6439293 Load pipboy messages when rendering saveslots 2025-05-11 12:17:00 +03:00
Vasilii Rogin a259a3318e Merge pull request #114 from fallout2-ce/fix-skill-oob-access
Fix for #76 (occasional crash when using skills on scenery objects).
2025-05-11 08:58:14 +03:00
sherief 50e9fab544 Merge pull request #112 from fallout2-ce/deobfus-animation
Deobfuscate animation.cc
2025-05-10 17:42:42 -07:00
sherief 54a3b0c05c Merge pull request #111 from fallout2-ce/sherief-fix-ai-reload
Fixed AI loading single-rounds in magazines (duplicate with preview)
2025-05-10 13:11:21 -07:00
Sherief Farouk 0873eaab37 Fix for #76 (occasional crash when using skills on scenery objects). 2025-05-10 12:48:27 -07:00
Mike Klaas dff92e56fc Rename AnimationSequence.field_0 -> step 2025-05-10 12:31:28 -07:00
Mike Klaas 34748a2894 Deobfuscate animation.cc
Almost entirely renaming three struct fields of "AnimationSad" (an in-progress movement) and adding constants.

As usual, there are zero functional changes in this PR.
2025-05-10 00:02:03 -07:00
Vasilii Rogin 39160992ef Merge pull request #77 from sherief/asan-builds
Added CMake option for Address Sanitizer builds.
2025-05-10 09:27:24 +03:00
Vasilii Rogin eaa53b3e8e Merge pull request #108 from fallout2-ce/tmp_fix_web_ui_hash_until_fixed
Temp workaround: add commit hash for web interface
2025-05-09 18:39:43 +03:00
Vasilii Rogin 39bcb9875d Fix action parameter name 2025-05-09 18:33:30 +03:00
Vasilii Rogin 9097c2e76d Add commit hash to fix web builds until web ui is fixed 2025-05-09 18:28:49 +03:00
Vasilii Rogin 50db3587e4 Merge pull request #107 from mikeklaas/deobfus-action
Deobfucate action.h,cc
2025-05-09 17:49:50 +03:00
Mike Klaas 9e5a440895 typo 2025-05-08 22:52:12 -07:00
Mike Klaas 61ca374c03 Deobfuscate function parameters in action.{h,cc}
Zero functional changes were made.  This PR renames function parameters only
2025-05-08 22:49:15 -07:00
Vasilii Rogin 8f2b3a10dd Merge pull request #104 from fallout2-ce/IronKing24-code-decryption
Update tile.cc (duplicate)
2025-05-05 21:29:36 +03:00
Vasilii Rogin bbc4f44845 Merge pull request #99 from fallout2-ce/roginvs-use-webinterface-from-organization
Use web interface from organization
2025-05-05 20:30:32 +03:00
Vasilii Rogin 5367eba4f2 Add export 2025-05-05 20:12:34 +03:00
Vasilii Rogin 2d617883d3 Provide env as yml option 2025-05-05 20:07:30 +03:00
Vasilii Rogin 34f666fe55 Empty to trigger re-build 2025-05-05 20:03:26 +03:00
Vasilii Rogin 5ae46be317 Add debug info 2025-05-05 19:44:35 +03:00
Vasilii Rogin a4f9d7b940 Use env variables for debug info 2025-05-05 19:36:04 +03:00
Vasilii Rogin 251656e15b Merge pull request #102 from fallout2-ce/cambragol-patch-12-with-pipboy-text
Update loadsave with pipboy texts
2025-05-05 18:00:15 +03:00
Vasilii Rogin e1a8dc7adc Remove delay_ms 2025-05-05 17:55:06 +03:00
Vasilii Rogin ca029b3412 Merge pull request #103 from mikeklaas/deobfus-1
Deobfuscate several function parameters in art, game, game_mouse, reaction
2025-05-05 17:52:19 +03:00
Vasilii Rogin 70c3035cde Merge branch 'main' into cambragol-patch-12-with-pipboy-text 2025-05-05 07:53:08 +03:00
Mike Klaas 57b6b0caed Deobfuscate several function parameters
Some were already deobfuscated in the .c and I copied over to .h.  Others are new.

There are no semantic changes here.  Variable renames only
2025-05-04 16:21:04 -07:00
Vasilii Rogin 37ec7b1874 Merge pull request #98 from fallout2-ce/cambragol-patch-12
Update loadsave.cc (duplicate)
2025-05-05 01:58:27 +03:00
Vasilii Rogin 2395a6da3f Fix formatting 2025-05-04 20:34:02 +03:00
Vasilii Rogin 7338c2f428 Fix pipboy messages memory leak 2025-05-04 20:25:05 +03:00
Vasilii Rogin 2e2655ee1a Fix formatting 2025-05-04 20:09:31 +03:00
Vasilii Rogin 43c633bb89 Use messages from pipboy 2025-05-04 20:08:27 +03:00
Vasilii Rogin d5b4486d6e Revert back to pipboy text 2025-05-04 20:02:47 +03:00
Vasilii Rogin 590b832ba7 Use static texts, add comment 2025-05-04 20:00:42 +03:00
Vasilii Rogin cc7d9ed866 Revert "Use messages from pipboy"
This reverts commit 2f40ce663c.
2025-05-04 19:59:56 +03:00
Vasilii Rogin 8ad2cb7e2e Revert "Fix dependency"
This reverts commit e638c4cf0d.
2025-05-04 19:59:52 +03:00
Vasilii Rogin e638c4cf0d Fix dependency 2025-05-04 19:39:01 +03:00
Vasilii Rogin 2f40ce663c Use messages from pipboy 2025-05-04 19:36:24 +03:00
Vasilii Rogin 7b1a99a706 Merge remote-tracking branch 'fallout2-ce/main' into cambragol-patch-12 2025-05-04 19:27:50 +03:00
Vasilii Rogin 398c7adb9a Do not use designated initializers 2025-05-04 19:27:33 +03:00
Vasilii Rogin 424f2ffecc Use texts from proto 2025-05-04 19:21:51 +03:00
Vasilii Rogin d4c4022f55 Use color variables 2025-05-04 19:17:01 +03:00
Vasilii Rogin 1d0212ef5a Rename variables, use pages as config option 2025-05-04 19:11:51 +03:00
Vasilii Rogin c7417bb7e5 Merge pull request #101 from fallout2-ce/do_not_check_labels_if_it_is_main_push
Do not check PR labels if it is not a pull request
2025-05-04 19:06:58 +03:00
Vasilii Rogin 4d05fc1c4a Do not read PR labels if it is not a PR 2025-05-04 18:57:13 +03:00
Vasilii Rogin aa70a28509 Merge pull request #100 from roginvs/show_formatting_warnings_if_label_is_present
Show formatting warnings if label is present but do not raise error
2025-05-04 18:44:42 +03:00
Vasilii Rogin 49471a6154 Show formatting warnings if label is present but do not raise error 2025-05-04 17:50:02 +03:00
Vasilii Rogin 1b65466d44 Use web interface from organization 2025-05-04 16:44:21 +03:00
Vasilii Rogin 8416008b0f Merge branch 'main' into cambragol-patch-3 2025-05-04 16:08:48 +03:00
Vasilii Rogin aed6c37c67 Merge remote-tracking branch 'fallout2-ce/main' into cambragol-patch-12 2025-05-04 15:48:21 +03:00
Vasilii Rogin 1d48fb35b2 Merge pull request #97 from fallout2-ce/add_preview_builds
Add preview builds (from this repo branch)
2025-05-04 15:35:28 +03:00
Vasilii Rogin 1d4171727b Empty 2025-05-04 14:58:19 +03:00
Vasilii Rogin af046127e9 Add forgotten permission for auto-remove of previews 2025-05-04 14:48:41 +03:00
Vasilii Rogin 5a2c429956 Add hash info into auto comment 2025-05-04 14:47:25 +03:00
Vasilii Rogin ff5fa993f2 Add sudo for rsync 2025-05-04 14:39:38 +03:00
Vasilii Rogin 5a0507200b fix emsdk setup 2025-05-04 14:36:05 +03:00
Vasilii Rogin 54442f0cfe Install emsdk as step 2025-05-04 14:32:37 +03:00
Vasilii Rogin ae9912b7ea Add github hash 2025-05-04 14:09:03 +03:00
Vasilii Rogin f6da491246 Add gh cli 2025-05-04 14:02:06 +03:00
Vasilii Rogin 5fa6ec679d Do not make preview build if PR is from fork 2025-05-04 13:55:32 +03:00
Vasilii Rogin d029bf3cd0 Revert rsync step 2025-05-03 19:05:29 +03:00
Vasilii Rogin f81e1f7ba7 Use previous action for pushing to gh-pages 2025-05-03 19:04:14 +03:00
Vasilii Rogin f672ba4ddf Log GITHUB_OUTPUT for debugging 2025-05-03 18:57:15 +03:00
Vasilii Rogin 14cd1844d0 Add remove PR job 2025-05-03 18:53:04 +03:00
Vasilii Rogin 2b8f18ff0c Add github preview builds 2025-05-03 18:52:15 +03:00
cambragol 25fbb8e5c3 Update game_dialog.cc
Forgot to set the button code
2025-05-02 14:48:35 +09:00
cambragol ca9eaf16a9 Update game_dialog.cc
fixed small red button clicks to use proper format - now give click on press, and release. Return gives click, and Cancel does not (standard behavior)
2025-05-02 07:09:41 +09:00
cambragol a1237ee387 Update inventory.cc
small fix
2025-05-01 20:00:53 +09:00
cambragol d7a5c64cdb Update inventory.cc
fixing borked submit
2025-05-01 19:44:54 +09:00
cambragol 313991b1d4 Update inventory.cc
New approach, following the pattern found elsewhere in the code.
Cancel has no sound effect when using ESC (as found elsewhere)
2025-05-01 19:38:26 +09:00
Vasilii Rogin 07b52e0b76 Merge pull request #54 from cambragol/patch-14
Update loadsave.cc to fit longer location names in Infobox
2025-04-29 19:43:47 +03:00
cambragol 20e3810b9b Update game_dialog.cc
Forgot one function to exit (lock) frms

This fixes #94
2025-04-29 21:02:52 +09:00
cambragol 33dae201fe Update game_dialog.cc
Small updates fixes button layering with background - fixes #93
2025-04-29 13:07:49 +09:00
cambragol c79696326d Update loadsave.cc
missed other x value
2025-04-29 09:15:00 +09:00
cambragol 132626912a Update loadsave.cc
should fix the artifacts
2025-04-29 02:26:09 +09:00
cambragol 62108938f5 Update game_dialog.cc to fix using keyboard
Fixed to make buttons work when clicked, or when using key commands.

This makes an imperfect button sound (misses the click release), however, the game is littered with this compromise.

Fixes #90
2025-04-28 23:08:01 +09:00
cambragol 6c13d67921 Update inventory.cc to fix button click sounds for 'Move Items'
Fixed to make buttons work when clicked, or when using key commands.

This makes an imperfect button sound (misses the click release), however, the game is littered with this compromise.

Fixs #88
2025-04-28 23:06:05 +09:00
cambragol aa7bda09d8 Update game_dialog.cc to fix Combat Control buttons/sounds
Fixes everything in #89
2025-04-28 22:11:40 +09:00
Vasilii Rogin 3163319290 Revert "Set MSVC_RUNTIME_LIBRARY in the makefile"
This reverts commit 2e8a65593e.
2025-04-27 18:25:15 +03:00
Vasilii Rogin 252d2ef263 Bump required cmake version 2025-04-27 18:20:39 +03:00
Vasilii Rogin ef09142375 Revert "Use cache string force"
This reverts commit a4ba0240f1.
2025-04-27 18:19:35 +03:00
Vasilii Rogin a4ba0240f1 Use cache string force 2025-04-27 18:13:14 +03:00
Vasilii Rogin 2e8a65593e Set MSVC_RUNTIME_LIBRARY in the makefile 2025-04-27 18:05:42 +03:00
Vasilii Rogin f35d1efab2 Revert "Set MSVC_RUNTIME_LIBRARY in the makefile"
This reverts commit 42a6a16f73.
2025-04-27 18:03:17 +03:00
Vasilii Rogin 42a6a16f73 Set MSVC_RUNTIME_LIBRARY in the makefile 2025-04-27 17:58:12 +03:00
Vasilii Rogin 85389ef2f3 Linking stdlib statically 2025-04-27 14:45:05 +03:00
Vasilii Rogin f7c1ccfada Merge pull request #81 from roginvs/add_label_to_ignore_clang_format_check
Add label to ignore clang format check
2025-04-27 09:24:00 +03:00
Sherief Farouk 767ae9af25 Fixed crash when running out of ammo before clip is full. 2025-04-26 05:36:03 -07:00
Vasilii Rogin 0ba670f0f7 Add debug message when everything is ok 2025-04-25 21:39:26 +03:00
Vasilii Rogin 58fdf2ff9e Empty commit 2025-04-25 21:38:26 +03:00
Vasilii Rogin cb1d2d6ed3 Exit step if label is found 2025-04-25 21:36:57 +03:00
Vasilii Rogin 4ce09d8cdb Debugging 2025-04-25 21:33:34 +03:00
Vasilii Rogin 787fa1b1b1 Show labels for debug 2025-04-25 21:32:09 +03:00
Vasilii Rogin 3d4fcf23ba Check labels before checkout 2025-04-25 21:31:17 +03:00
Vasilii Rogin 74c2125606 Fix env 2025-04-25 21:29:00 +03:00
Vasilii Rogin b1df5a084c Add token 2025-04-25 21:25:31 +03:00
Vasilii Rogin 2a610cf479 Skip code formatting check if skip-formatting label is present 2025-04-25 21:20:37 +03:00
Vasilii Rogin 7d093030e7 Fix find filtering 2025-04-25 21:17:27 +03:00
Sherief Farouk 01be11fce5 Added CMake option for Address Sanitizer builds. 2025-04-25 04:11:46 -07:00
Sherief Farouk 12fe582e6f Fixed AI loading single-rounds in magazines.
IIRC, the "unit" for things like 10mm ammo in F1 used to be a dozen (12x).
In F2CE, the unit of ammo seems to be a single round. Prior to this patch,
AI companions (in my case, the Mercenary in Sonora) would reload a single
round into their weapon when they run out, so turns in combat become a loop
of fire, reload, fire, reload, etc.

With this patch, AI reloading keeps inserting ammo into the weapon until
capacity is reached or the critter runs out of ammo.
2025-04-22 00:35:30 -07:00
Vasilii Rogin 6f321c7882 Merge pull request #62 from roginvs/show_clang_format_version_in_ci
Show clang-format version in CI run
2025-04-21 17:07:39 +03:00
Vasilii Rogin e05dacebca Merge pull request #64 from roginvs/fix_ci_release_names
Fix ci release names
2025-04-21 16:51:02 +03:00
Vasilii Rogin 917c1bc49e Move sleep into separate step 2025-04-21 16:30:07 +03:00
Vasilii Rogin ca9618bf0b Change apk file name 2025-04-21 16:28:34 +03:00
Vasilii Rogin 2112b04c5b Merge pull request #63 from roginvs/fix_ci_release_names
Fix for auto-release: Rename artifact folder
2025-04-21 16:19:28 +03:00
Vasilii Rogin 52e1954aea Rename artifact folder 2025-04-21 16:17:50 +03:00
Vasilii Rogin 2f144fb421 Merge pull request #60 from roginvs/fix_ci_release_names
Fix CI release file names
2025-04-21 16:02:10 +03:00
Vasilii Rogin fe472abc2f Show clang-format version in CI run 2025-04-21 16:00:45 +03:00
cambragol bdb4feedf9 Update loadsave.cc
Clang formatting.
2025-04-21 20:43:54 +09:00
cambragol 5e93479192 Update pipboy.cc
Clang formatting?
2025-04-21 20:39:11 +09:00
Vasilii Rogin 7960b3cb65 Add platform/architecture suffix to executables 2025-04-21 10:42:43 +03:00
Vasilii Rogin 7d0a495ce8 Add duplicate files check 2025-04-21 10:35:04 +03:00
Vasilii Rogin 4e8c3a4815 Merge pull request #53 from cambragol/patch-13
Update skill.cc repair robot message
2025-04-21 10:16:20 +03:00
Vasilii Rogin 55af34472a Merge pull request #50 from sherief/auto-open-doors
QoL: automatically walk through unlocked doors when outside of combat.
2025-04-21 10:16:02 +03:00
cambragol 503695cd4d Update loadsave.cc
Restored the emscripten and touchscreen stuff.
2025-04-21 07:14:42 +09:00
Sherief Farouk 9db0a4d29e Code formatting. 2025-04-20 04:18:58 -07:00
Sherief Farouk 325577db56 If a door has a custom script attached consider it impassable to require player to interact. 2025-04-20 04:18:34 -07:00
Sherief Farouk cf17f42cf8 Replaced magic number with constant. 2025-04-20 04:18:11 -07:00
cambragol cc6d803517 Update loadsave.cc
Small fix to Load/Save descriptions in the info box.

Allows for longer names, and wraps them to second line if they are too long.
2025-04-20 19:19:08 +09:00
cambragol de5ee7d7f8 Update skill.cc repair robot message
Fixes the incorrect message when attempting to repair robots.
2025-04-20 18:55:07 +09:00
cambragol 4dfc7538db Update loadsave.cc
Increases Load/Save slots to 100 - sFall?

Adds pagination and controls to move between slots - previous scrolling/key functions work as normal, and move between pages

No ini setting yet, code it set up to shift based off a single ini setting.
2025-04-20 18:48:58 +09:00
cambragol afeec298bf Update pipboy.cc for full pagination
Adds full pagination to Status, Data and Automaps main and sub pages to prevent overflow.
2025-04-20 18:37:52 +09:00
Sherief Farouk eeed6e87a5 QoL: automatically walk through unlocked doors when outside of combat.
Defaults to off, controllable via SFall config flag.
2025-04-19 06:20:19 -07:00
Vasilii Rogin 0aa0f064e5 Merge pull request #47 from sherief/sherief/node-pathing
QoL: increased node expansion while pathing
2025-04-17 19:49:20 +03:00
Sherief Farouk dd49ddb7c7 Fixed clang-format complaint. 2025-04-16 22:57:19 -07:00
Sherief Farouk 2922162412 QoL: increased path node capacity. 2025-04-16 21:12:23 -07:00
Sherief Farouk 35c59913f0 Path node capacity is a constant instead of magic number. 2025-04-16 21:12:07 -07:00
Vasilii Rogin 5b93794660 Merge pull request #46 from sherief/sherief/sfall-walk-distance
QoL: implemented SFall "UseWalkDistance".
2025-04-16 19:14:43 +03:00
Vasilii Rogin 8f3ab4df6f Merge pull request #11 from JanSimek/sfall-modorder-txt
Sfall: add support for loading mods / mod_order.txt
2025-04-16 19:09:22 +03:00
Sherief Farouk 498bdfcd13 Fixed missing value check. 2025-04-16 03:15:42 -07:00
Sherief Farouk 4f1c239118 QoL: implemented SFall "UseWalkDistance". 2025-04-16 01:11:15 -07:00
Vasilii Rogin b7374ffb24 Merge pull request #44 from roginvs/add_winxp_support
Add Windows XP x86 support
2025-03-22 20:48:24 +02:00
Vasilii Rogin 14e119f014 Remove clang-format off because of following #ifdef 2025-03-22 20:22:12 +02:00
Vasilii Rogin a5de358845 Fix missing lib for 64bit windows 2025-03-22 20:11:26 +02:00
Vasilii Rogin 7957246c73 Fix artifacts 2025-03-22 20:04:55 +02:00
Vasilii Rogin 07da6c53be Use RelWithDebInfo for Windows release 2025-03-22 20:00:35 +02:00
Vasilii Rogin 4020d6a500 Use release config 2025-03-22 19:55:35 +02:00
Vasilii Rogin 6c30ce64bf Use RelWithDebInfo for Windows builds 2025-03-22 19:53:29 +02:00
Vasilii Rogin 53337cbb76 Now trying to fix win64 builds 2025-03-22 19:27:18 +02:00
Vasilii Rogin bc47279a93 Do changes in correct branch instead of wondering why it does not work 2025-03-22 19:23:52 +02:00
Vasilii Rogin 512e403771 Following ChatGPT advices 2025-03-22 19:19:26 +02:00
Vasilii Rogin 2ffdad43fa Add some defines from ChatGPT advice 2025-03-22 19:13:47 +02:00
Vasilii Rogin 0e9fee8cec Add windows.h before timeapi.h 2025-03-22 19:07:13 +02:00
Vasilii Rogin 35e9f71810 Use timeapi.h for win64 2025-03-22 19:04:18 +02:00
Vasilii Rogin 607b95f2c4 Use mmsystem for win32 2025-03-22 18:59:59 +02:00
Vasilii Rogin 3c59f111cd Do clang-format 2025-03-22 18:58:51 +02:00
Vasilii Rogin c981fdc700 Replace windows.h with mmsystem.h 2025-03-22 18:57:24 +02:00
Vasilii Rogin 38b1a01c26 Add algorithm for win xp support 2025-03-22 18:54:08 +02:00
Vasilii Rogin bf3e817a3e Add XP support 2025-03-22 18:46:51 +02:00
Vasilii Rogin 43bb53b2e2 Merge pull request #43 from roginvs/use_coefficients_for_scrolling
Keep original scrolling coefficient for main game scrolling
2025-03-07 15:04:44 +02:00
Vasilii Rogin d55944a8c4 Merge pull request #37 from ololoken/main
Remove some warnings; bump emsdk version;
2025-03-06 17:27:54 +02:00
Roman Turchin 3b23a1cfe0 use __assume(0) for unreachable code in MSVC 2025-03-05 16:02:35 -05:00
Vasilii Rogin d364579925 Keep original scrolling coefficient for main game scrolling 2025-03-05 21:39:03 +02:00
Roman Turchin 25106684ba [emscripten] bump emsdk version; fix review comment 2025-03-05 13:38:07 -05:00
Roman Turchin b25ee43682 Merge remote-tracking branch 'org/main' 2025-03-05 13:23:32 -05:00
Vasilii Rogin 9b6fbeecb9 Merge pull request #42 from roginvs/fallout2-ce-main-fix-ci-release
CI Release: Move files from subfolders
2025-03-05 19:53:22 +02:00
Vasilii Rogin bc25c97e93 Move files from subfolders 2025-03-05 19:52:17 +02:00
Vasilii Rogin f3f92187ae Merge pull request #41 from roginvs/fallout2-ce-main-pick-changes-from-alex-3
Pick the rest from alex
2025-03-05 19:28:20 +02:00
Vasilii Rogin 168f250028 Trying to fix CI release 2025-03-05 19:25:42 +02:00
Vasilii Rogin db6967feb5 Add linux-armhf and linux-arm64 into release dependency 2025-03-05 19:18:21 +02:00
Vasilii Rogin 806ac12a72 Merge commit 'e97087b9582f37075db347a89898887320753f8b' into fallout2-ce-main-pick-changes-from-alex-3 2025-03-05 19:14:31 +02:00
Vasilii Rogin 3c63aa30ee Merge commit '135c62758f018bfe202a0877d18ceeac704e9e04' into fallout2-ce-main-pick-changes-from-alex-3 2025-03-05 19:14:20 +02:00
Vasilii Rogin b4ad5ea8a7 Merge commit '2de74728ce1c9255802cf25d6c264286a23f43a5' into fallout2-ce-main-pick-changes-from-alex-3 2025-03-05 19:14:10 +02:00
Vasilii Rogin 71d56fcf98 Merge pull request #40 from roginvs/fallout2-ce-main-pick-changes-from-alex
Pick commits one-by-one for easier conflict resolving
2025-03-05 19:13:55 +02:00
Vasilii Rogin b3f8abbcbb Merge commit 'd631bfcdd0a1ad50d7c1e214ad03464f58c93260' into fallout2-ce-main-pick-changes-from-alex-3 2025-03-05 19:13:44 +02:00
Vasilii Rogin 16d786bd25 Merge commit '82793d14f4429928175047292e59fd91e9325c82' into fallout2-ce-main-pick-changes-from-alex-3 2025-03-05 19:13:02 +02:00
Vasilii Rogin 91ae593aac Merge commit 'a5d252f19bcacd7487ed82f6275b345f23605842' into fallout2-ce-main-pick-changes-from-alex-3 2025-03-05 19:12:49 +02:00
Vasilii Rogin 03e26a4551 Merge commit 'e5d4d310c053a7f28d219165c00c830c8f326495' into fallout2-ce-main-pick-changes-from-alex-3 2025-03-05 19:12:37 +02:00
Vasilii Rogin acb470f34a Merge commit 'fa1621ff562717377a0b1e7aaee627564724592d' into fallout2-ce-main-pick-changes-from-alex-3 2025-03-05 19:12:22 +02:00
Vasilii Rogin 3c01ff7477 Merge commit 'a1fc68f13a1cc4cdb4ad0146f967621bf2ef3f92' into fallout2-ce-main-pick-changes-from-alex-3 2025-03-05 19:11:51 +02:00
Vasilii Rogin 68d9405a0a Merge commit '58c82f9268018c0a41f2a2c2b1a8bc216534a4af' into fallout2-ce-main-pick-changes-from-alex-2 2025-03-05 19:10:55 +02:00
Vasilii Rogin dd9c521363 Merge commit '8fcdbe0beee659aaa96f04f725ca56e7c55ceeab' into fallout2-ce-main-pick-changes-from-alex-2 2025-03-05 19:10:41 +02:00
Vasilii Rogin 51e8056430 Merge commit 'afff399fcafdfe6042fbe16fe489b1eda2544edb' into fallout2-ce-main-pick-changes-from-alex-2 2025-03-05 19:10:15 +02:00
Vasilii Rogin b336e06401 Merge commit '080f99962681dae5388e11421615d8f371bf9800' into fallout2-ce-main-pick-changes-from-alex-2 2025-03-05 19:09:31 +02:00
Vasilii Rogin fc788a3795 Merge commit '593f80144cb6f92d7198a1c096c67f27cac220d5' into fallout2-ce-main-pick-changes-from-alex 2025-03-05 19:03:29 +02:00
Vasilii Rogin a9878cbe98 Merge commit '4df9ee557d85370219d148bde9ab3e8c368ec6cd' into fallout2-ce-main-pick-changes-from-alex 2025-03-05 18:57:07 +02:00
Vasilii Rogin 5891072346 Merge commit 'f6ba9d38fd156abfef16fb00772bff7feb02fae8' into fallout2-ce-main-pick-changes-from-alex 2025-03-05 18:54:56 +02:00
Alexander Batalov e97087b958 Remove pause window 2025-02-16 11:35:06 +03:00
Alexander Batalov b31cea9331 Remove keyboard settings functions 2025-02-16 11:27:03 +03:00
Alexander Batalov f5ade9fb19 Remove idle func 2025-02-16 10:56:28 +03:00
Alexander Batalov f59637d0cc Remove focus func 2025-02-16 10:52:17 +03:00
Alexander Batalov 236774c7b2 Fix extra delay in loadsave screen 2025-02-16 10:01:08 +03:00
Alexander Batalov f7d4fc4ffe Remove vcr 2025-02-16 09:51:46 +03:00
Alexander Batalov 135c62758f Update installation instructions
Closes #360
2025-02-15 14:50:42 +03:00
Alexander Batalov 2de74728ce Review main (#458) 2025-02-15 12:31:06 +03:00
Alexander Batalov d631bfcdd0 Add linux armhf build (#456) 2025-02-12 22:45:08 +03:00
sonilyanandAlexander Batalov 4382d67c19 Add SFALL_CONFIG_PIPBOY_AVAILABLE_AT_GAMESTART (#314)
Co-authored-by: Alexander Batalov <alex.batalov@gmail.com>
2025-02-12 21:46:10 +03:00
Alexander Batalov e38e7060d4 Review some mve video playback routines 2025-02-12 20:27:06 +03:00
Alexander Batalov d6fc3bb2d8 Remove unused movie callbacks 2025-02-12 08:29:34 +03:00
Alexander Batalov 82793d14f4 Update linux runner (#455) 2025-02-12 08:04:34 +03:00
Alexander Batalov a5d252f19b Remove 16 bpp mve leftovers 2025-02-12 07:07:57 +03:00
Alexander Batalov e5d4d310c0 Fix dialog option bounding box (#454) 2025-02-12 02:50:27 +03:00
Alexander Batalov fa1621ff56 Remove dictionary mem indirection 2025-02-11 20:26:43 +03:00
Alexander Batalov 52e5611e1b Remove color palette stacks 2025-02-11 20:05:52 +03:00
Alexander Batalov d540a9ff04 Remove color mem indirection 2025-02-11 20:03:46 +03:00
Alexander Batalov 1b6fe7e15b Remove color IO indirection 2025-02-11 19:53:41 +03:00
Alexander Batalov 900140f8f7 Make dialog window modal
Fixes #408
2025-02-11 18:40:10 +03:00
Alexander Batalov 14430c4f0a Review mve sync functions 2025-02-11 18:15:39 +03:00
Alexander Batalov a1fc68f13a Review mve palette functions 2025-02-10 22:44:40 +03:00
Alexander Batalov 2e15d01be3 Clarify MveSetShowFrame 2025-02-10 22:28:28 +03:00
Alexander Batalov 96335aebc9 Remove MVE_rmHoldMovie 2025-02-10 22:15:42 +03:00
Alexander Batalov 6ab3c508e6 Clarify MveHeader 2025-02-10 22:14:29 +03:00
Alexander Batalov f790a10e88 Clarify MveMem 2025-02-10 21:40:31 +03:00
Alexander Batalov 6b879e71b8 Remove mve frame save/load 2025-02-10 21:29:06 +03:00
Alexander Batalov 9878e205e6 Remove MVE_rmCallbacks 2025-02-10 21:23:52 +03:00
Alexander Batalov 0a5afd1e18 Clarify MveSetPalette 2025-02-10 21:21:45 +03:00
Alexander Batalov 625bf69b33 Review MVE_rmPrepMovie 2025-02-10 21:13:05 +03:00
Alexander Batalov 48c01eb8a1 Review MVE_rmFrameCounts 2025-02-10 21:07:38 +03:00
Alexander Batalov b105517ab3 Review MveSetScreenSize 2025-02-10 21:02:57 +03:00
Alexander Batalov 7d6371fd1c Remove movieLibSetPan 2025-02-10 20:54:38 +03:00
Alexander Batalov dc9824e2be Review MveSetVolume 2025-02-10 20:53:39 +03:00
Alexander Batalov 60a0d3ab8c Review MveSetIO 2025-02-10 20:52:08 +03:00
Alexander Batalov 58c82f9268 Review MveSetMemory 2025-02-10 20:48:17 +03:00
Alexander Batalov 8fcdbe0bee Add linux arm64 build (#453) 2025-02-10 19:19:06 +03:00
Alexander Batalov afff399fca Get rid of object data array accessor
Fixes #405
2025-02-09 23:05:56 +03:00
Vlad 080f999626 Code deobfuscation/decyphering (3) (#374) 2025-02-09 19:20:53 +03:00
Alexander Batalov 593f80144c Add cmake presets (#452) 2025-02-09 15:00:12 +03:00
Alexander Batalov 4df9ee557d Add option to use vendored vs. system dependencies (#451) 2025-02-09 13:49:04 +03:00
Alexander Batalov f6ba9d38fd Use FetchContent_MakeAvailable (#438) 2025-02-09 13:10:54 +03:00
IronKing24 8ad0067510 2025-02-09 12:51:11 +03:00
IronKing24 894d9aab52 code formatting 2025-02-09 12:47:46 +03:00
IronKing24 043b43d04b Merge branch 'fallout2-ce:main' into code-decryption 2025-02-09 12:24:28 +03:00
Roman Turchin 277faa114e fix code formatting 2025-02-01 02:21:05 -05:00
Roman Turchin 1f91ab4d41 EM_ASM cleanup; silence warnings; add experemental wasm flags 2025-02-01 01:51:46 -05:00
Roman Turchin 0e68bfc280 merge with fallout2-ce org repo 2025-01-31 19:51:12 -05:00
Vasilii Rogin c26488f2a0 Merge pull request #36 from alexbatalov/main
Fix background music not being stopped when playing intro in mainmenu
2025-01-31 21:07:12 +02:00
Roman Turchin bf49e6b7e2 Merge remote-tracking branch 'origin/main' 2025-01-29 17:06:41 -05:00
Alexander Batalov c4cc713272 Fix background music not being stopped when playing intro in mainmenu
Closes #399
2025-01-29 21:57:06 +03:00
Roman Turchin dad514c2a4 Merge remote-tracking branch 'origin/main' 2025-01-29 10:43:22 -05:00
Vasilii Rogin 09ba154dcf Merge pull request #35 from alexbatalov/main
Pick changes from alexbatalov
2025-01-29 17:22:05 +02:00
Alexander Batalov f9af163495 Fix negative weapon ammo (#444) 2025-01-28 22:27:43 +03:00
Ryan Deering 9d6f4d9686 Fix mouse sensitivity (#416) 2025-01-28 22:27:10 +03:00
APAmk2 17042491c6 Code deobfuscation, part 3 #29 2025-01-26 01:23:00 +04:00
APAmk2 cfea9072db Merge branch 'main' into feature/code-readibility-3-new-repo 2025-01-26 01:18:59 +04:00
Vasilii Rogin 3d541f2be3 Merge pull request #34 from roginvs/add_webassembly_build_target
Fix github pages https://fallout2-ce.github.io/fallout2-ce/
2025-01-25 19:34:06 +02:00
Vasilii Rogin d53bda5012 Fix github pages https://fallout2-ce.github.io/fallout2-ce/ 2025-01-25 19:33:35 +02:00
Vasilii Rogin 97a7e4cc6a Merge pull request #33 from roginvs/add_webassembly_build_target
Install rsync
2025-01-25 19:28:25 +02:00
Vasilii Rogin 9b7c48a197 Use default branch name 2025-01-25 19:25:27 +02:00
Vasilii Rogin bf04bec410 Add permissions 2025-01-25 19:24:49 +02:00
Vasilii Rogin 7796238030 Install rsync 2025-01-25 19:23:17 +02:00
Vasilii Rogin e91880c26a Merge pull request #32 from roginvs/add_webassembly_build_target
Add webassembly build target
2025-01-25 19:19:12 +02:00
Vasilii Rogin 321892dd03 Use actions/checkout@v4 for checkout 2025-01-25 19:13:59 +02:00
Vasilii Rogin e42b7ad2c9 Fix flags 2025-01-25 18:43:49 +02:00
Vasilii Rogin c91057ec16 Use EM_ASYNC_JS correctly 2025-01-25 18:38:33 +02:00
Vasilii Rogin ed6930a5e5 Add different function names 2025-01-25 17:59:08 +02:00
Vasilii Rogin edde0470a6 Disable clang-format for JS code 2025-01-25 17:41:41 +02:00
Vasilii Rogin f79cff3565 Fixing clang-format 2025-01-25 17:38:40 +02:00
Vasilii Rogin d0c0a81ec8 Fix steps and branch names 2025-01-25 17:36:28 +02:00
Vasilii Rogin a791930acf Use #if defined( __EMSCRIPTEN__ ) for emscripten 2025-01-25 17:36:10 +02:00
Vasilii Rogin 25b5e9d272 Fix async call 2025-01-25 17:29:39 +02:00
Vasilii Rogin 3f15d3055c Sync idbfs on config save 2025-01-25 17:26:54 +02:00
Vasilii Rogin e611956cb0 Sync idbfs on game save 2025-01-25 17:25:23 +02:00
Vasilii Rogin 2abf530797 Clone web-interface from other repository 2025-01-25 17:20:38 +02:00
Vasilii Rogin 3883b68c86 Add workflow to build wasm version 2025-01-25 17:01:54 +02:00
Vasilii Rogin 090fa331cc Use -O1 optimization for web release builds due to issues with ios 2025-01-25 16:50:24 +02:00
Vasilii Rogin 1f0f08f3e4 Use DWARF for debug build 2025-01-25 16:49:59 +02:00
Vasilii Rogin 1e3aacebdd Fix build cmd 2025-01-25 16:12:21 +02:00
Vasilii Rogin 843e2f515a Update README 2025-01-25 16:08:30 +02:00
Vasilii Rogin 0aaf9e6125 Add Emscripten.cmake 2025-01-25 16:08:25 +02:00
Vasilii Rogin eceb96194c Add webassembly into CMakeLists.txt 2025-01-25 16:07:27 +02:00
Vasilii Rogin c1c143aa43 Update .gitignore 2025-01-25 16:06:38 +02:00
Vasilii Rogin 7fc23de62a Merge pull request #31 from alexbatalov/main
Pull changes from alexbatalov
2025-01-25 16:01:43 +02:00
ololoken bc577641fe Merge branch 'alexbatalov:main' into main 2025-01-24 22:49:45 -05:00
Roman Turchin 31abd327fd emscripten: move options to CMakeLists.txt 2025-01-22 02:49:41 -05:00
Alexander Batalov 2e14e4620e Remove text floaters after moving to another map or elevation
Fixes #401
2025-01-21 22:58:04 +03:00
Alexander Batalov 95d92d8bd0 Fix world map tabs
Closes #419
2025-01-21 21:31:56 +03:00
root acc52383ed emscripten: add CASE_INSENSITIVE_FS, move source map generation to debug mode 2025-01-19 04:12:48 -05:00
Roman Turchin 75c5f777fd emscripten: optimize fs sync; add source map output 2025-01-18 10:54:04 -05:00
Roman Turchin f06eb813e0 Merge remote-tracking branch 'origin/main' 2025-01-18 10:50:33 -05:00
APAmk2 4270ee33cc Improved touchscreen controls #27 2025-01-18 00:30:11 +04:00
Vlad 46c2f460fb Merge branch 'main' into feature/code-readibility-3 2025-01-17 13:15:01 +01:00
APAMk2 a852e88bf8 Clang format fix 2025-01-17 01:05:21 +04:00
APAMk2 178de356f1 Improved touch controls 2025-01-17 00:43:25 +04:00
Vasilii Rogin 04b8c847d3 Merge pull request #26 from alexbatalov/main
Pull changes from alexbatalov
2025-01-14 18:18:05 +02:00
Alexander Batalov d586e81827 Migrate fpattern (#442) 2025-01-14 08:45:02 +03:00
Vasilii Rogin 26574914ff Merge pull request #25 from alexbatalov/main
Update macOS/iOS deployment target (#440)
2025-01-13 21:31:31 +02:00
Alexander Batalov 67375a5857 Update macOS/iOS deployment target (#440) 2025-01-13 21:22:30 +03:00
Vasilii Rogin 9be2e45f43 Merge pull request #24 from alexbatalov/main
Pull changes from alexbatalov
2025-01-13 20:15:26 +02:00
Alexander Batalov 3dbea2e400 Use snprintf in win_get_num_i 2025-01-13 20:33:11 +03:00
Graham GowerandAlexander Batalov bd7321b128 Fix buffer overrun for audio files with 8 char names (#378)
Co-authored-by: Alexander Batalov <alex.batalov@gmail.com>
2025-01-13 20:17:13 +03:00
Vasilii Rogin 7bb9104a7d Merge pull request #23 from roginvs/alexbatalov_main
Pick changes from alexbatalov/main
2025-01-13 18:23:27 +02:00
Vasilii Rogin 18c5ce786e Merge branch 'main' into alexbatalov_main 2025-01-13 18:18:01 +02:00
Vasilii Rogin eb9f745b78 Merge pull request #21 from roginvs/ci_fix_releases
Release only on master push
2025-01-13 18:12:50 +02:00
Vasilii Rogin 3a9f0a500f Remove pull request condition 2025-01-13 18:05:24 +02:00
Vasilii Rogin 38717c9710 Remove close condition 2025-01-13 18:04:20 +02:00
Vasilii RoginandAlexander Batalov ad7b0e56ab Fix default hit location on called shots (#429)
Co-authored-by: Alexander Batalov <alex.batalov@gmail.com>
2025-01-13 18:41:18 +03:00
Alexander V. Nikolaev e770e64a48 Ensure fileFindFirst path is resolved (#369) 2025-01-13 18:05:12 +03:00
Jan Šimek 5956227dcb Fix debug print on non-Windows platforms and Quick-save message (#400) 2025-01-13 02:33:14 +03:00
Condratiy Lenovin f443e365cc Add Epic Games Store link (#420) 2025-01-13 02:19:19 +03:00
Walter Agazzi b443e21c6e Fix wrong variable usage in character_editor (#432) 2025-01-13 02:11:48 +03:00
Vasilii Rogin 19ed168d42 Pvs studio fixes (#434) 2025-01-13 01:55:32 +03:00
Vasilii Rogin 29b8c7bfe5 Merge pull request #20 from roginvs/fix_no_sound_issue
Fix no sound issue
2025-01-12 23:24:24 +02:00
Vasilii RoginandAlexander Batalov 939211d640 Copy sound string because dictionary can re-allocate it (#436)
Co-authored-by: Alexander Batalov <alex.batalov@gmail.com>
2025-01-12 23:59:34 +03:00
Alexander Batalov b5d857547e Review gsound_get_music_path 2025-01-12 23:40:39 +03:00
Alexander Batalov 0a9aaab4d1 Update macos runner (#437) 2025-01-12 22:04:21 +03:00
Vasilii Rogin 5c6e5e826a Copy sound string because dict can re-allocate it 2025-01-12 18:54:27 +02:00
Vasilii Rogin aed3723306 Merge pull request #18 from APAmk2/main
Runtime fix of Splashes wrong pal
2025-01-11 00:57:50 +02:00
APAMk2 319c116048 PR Fix for #18 2025-01-11 02:45:01 +04:00
APAMk2 61da360180 Runtime fix of Splashes wrong pal
The 1-st color always must be black, but never does in F2 splashes.
2025-01-11 02:38:54 +04:00
Vasilii Rogin 9d6134367a Merge pull request #14 from roginvs/pvs_studio_fixes
Pvs studio fixes
2025-01-10 21:55:03 +02:00
APAmk2 9b96e3118d Workflow permissions fix #17 2025-01-10 23:35:14 +04:00
APAMk2 f5507c8c5a Workflow permissions fix 2025-01-10 23:34:06 +04:00
APAmk2 926efeb0c5 Fix for workflow file #16 2025-01-10 23:14:55 +04:00
APAMk2 d3346b5d1b Fix for workflow 2025-01-10 23:13:32 +04:00
Vasilii Rogin b6c2fc02b6 Merge pull request #15 from APAmk2/main
Added creation of continuous releases on every commit to main branch
2025-01-10 19:39:41 +02:00
APAMk2 983092944d Added continuous building 2025-01-10 21:26:07 +04:00
Roman Turchin 68e363429c [WASM] add wasm build target 2025-01-09 21:56:46 -05:00
Vasilii Rogin eaab620c84 src/character_editor.cc 7253 err V783 Dereferencing of the invalid iterator 'gCustomKarmaFolderDescriptions.end()' might take place. 2025-01-07 21:16:31 +02:00
Vasilii Rogin 61742535d5 src/art.cc 636 err V781 The value of the 'type' variable is checked after it was used. Perhaps there is a mistake in program logic. Check lines: 636, 640. 2025-01-07 21:05:34 +02:00
Vasilii Rogin a66618cbff src/art.cc 528 err V547 Expression is always false.
Original function

signed int __usercall art_get_base_name_@<eax>(signed int type@<eax>, int fid@<edx>, char *strBuf@<ebx>)
{
   signed int result; // eax@3
   char *_strBuf; // edi@6
   int dstName; // esi@6
   char c1; // al@7
   char c2; // al@8

   if ( type >= 0 && type < 11 )
   {
      if ( fid < art[type].count )
      {
         _strBuf = strBuf;
         dstName = 13 * fid + art[type].mem;
         do
         {
            c1 = *dstName;
            *_strBuf = *dstName;
            if ( !c1 )
            {
               break;
            }
            c2 = *(dstName + 1);
            dstName += 2;
            _strBuf[1] = c2;
            _strBuf += 2;
         }
         while ( c2 );
         result = 0;
      }
      else
      {
         result = -1;
      }
   }
   else
   {
      result = -1;
   }
   return result;
}
2025-01-07 21:04:00 +02:00
Vasilii Rogin f8b63280f2 Merge pull request #13 from tag2015/main
Fix wrong variable usage in character_editor
2025-01-04 15:48:22 +02:00
Walter Agazzi a24e0630d7 Fix wrong variable usage in character_editor 2025-01-04 12:36:20 +01:00
APAmk2 be11208a88 Engine versioning #12 2025-01-02 14:33:33 +04:00
git 4a2174c8aa Clang warning fix, part 2 2025-01-02 02:42:31 +04:00
git 39733665fc Clang warning fix
Very strange, tbh
2025-01-02 02:41:27 +04:00
git 50467d3296 Added engine versioning 2025-01-02 02:30:24 +04:00
APAmk2 959d40dc06 y0lo PR fixes 2025-01-01 22:31:04 +04:00
git b2efcffec7 Fix to eliminate Clang warnings on old merged PRs 2025-01-01 22:24:54 +04:00
APAmk2 8675d89a39 Fast barter auto calc for money #5 2025-01-01 22:18:20 +04:00
APAmk2 a99a250a37 Clear input envents on combat turn #4 2025-01-01 22:16:10 +04:00
Vasilii Rogin 98cf43438c Merge pull request #9 from roginvs/fix_targeted_attack_on_non_critter
Set hitLocation when return status is not -1
2024-12-25 15:46:05 +02:00
Vasilii Rogin 8eae8a4cb0 Merge pull request #8 from roginvs/fallout2_ce_fix_formatting
Fix CI checks
2024-12-25 15:33:20 +02:00
Vasilii Rogin 1d3b5c1951 Bump macos version 2024-12-25 15:26:49 +02:00
Vasilii Rogin 5786f56606 Fix formatting 2024-12-25 15:20:27 +02:00
Vasilii Rogin ef3f3f3fc9 Set hitLocation when return status is not -1 2024-12-25 15:10:26 +02:00
APAmk2 64a53ff4d0 Merge pull request #1 from avnik/avnik/fix-case-sensitive-findfirst
Fix broken game load/save on Linux due to case sensitive opendir()
2024-11-24 22:58:25 +04:00
Vasilii Rogin 3b211b2d71 Merge pull request #6 from fallout2-ce/use-macos-12-for-mac-build
Use macos-12
2024-11-19 22:46:23 +02:00
Vasilii Rogin c920078f7e Use macos-12 2024-11-19 22:37:08 +02:00
APAmk2 660df2578a Merge pull request #3 from roginvs/add_tile_hires_stencil
Add tile hires stencil
2024-11-18 23:43:56 +04:00
Vasilii Rogin ea02ad0481 Workaround for error C7555: use of designated initializers requires at least '/std:c++20' 2024-11-14 15:33:51 +02:00
Vasilii Rogin 78e577892a Workaround for error C7555: use of designated initializers requires at least '/std:c++20' 2024-11-14 15:32:56 +02:00
Vasilii Rogin 9811069d7b Remove useless includes 2024-11-14 14:32:23 +02:00
Vasilii Rogin 451524e6e0 Remove old TODO 2024-11-14 14:27:10 +02:00
Vasilii Rogin 30cfd0f089 Fix formatting 2024-11-14 14:10:33 +02:00
Vasilii Rogin e44aeb6894 Use config option 2024-11-14 14:09:20 +02:00
Vasilii Rogin 74eb64b594 Disable debug checks 2024-11-14 14:02:57 +02:00
Vasilii Rogin a59bfdb64b Fix debug print message 2024-11-14 14:02:03 +02:00
Vasilii Rogin 1d53594961 Fix initialization place 2024-11-14 14:00:29 +02:00
Vasilii Rogin 6375269f69 Add tiles hires stencil 2024-11-14 13:54:13 +02:00
MADMAN7 144b3beb79 remove side effects from the conditionals 2024-06-24 11:21:31 +03:00
MADMAN7 30bbb3702a Update tile.cc
decrypt tileFromScreenXY based on code from SFall HRP
2024-06-17 17:05:59 +03:00
Jan Šimek 28c3908862 Sfall: add support for loading mods / mod_order.txt 2024-06-04 17:07:17 +02:00
phobos2077 323cc6165c Decyphering inventory.cc + a few other places 2024-06-02 14:11:26 +02:00
phobos2077 dfcf61b184 Misc decyphering 2024-05-31 13:23:45 +02:00
phobos2077 20d55423f7 Decypher Party level 2024-05-31 13:22:07 +02:00
phobos2077 8714d418ac Clang format fixes 2024-05-18 20:08:02 +02:00
phobos2077 6efbe795dc Decyphering in and around proto_instance + fix build 2024-05-18 20:02:03 +02:00
phobos2077 ebb6a6b9d8 Decyphering: perform_drug_effect, MapHeader, perk params
- Remove a few constant conditions in worldmap.cc
2024-05-18 19:07:24 +02:00
phobos2077 26c04ae803 obj_attempt_placement + WM encounter ratioMode naming 2024-05-16 23:30:58 +02:00
phobos2077 da72bc9501 Inventory symbol naming (WIP) 2024-05-16 23:29:46 +02:00
phobos2077 91a502d704 gdialog_scroll_subwin() readability 2024-05-08 23:01:40 +02:00
Alexander V. Nikolaev d843a662b3 Ensure fileFindFirst path is resolved 2024-05-05 16:08:39 +03:00
phobos2077 71f84cbe44 Decypher buildFid (art_id) function 2024-05-03 16:22:18 +02:00
Alexander Batalov 9fb917c357 Bump version to 1.3.0 2024-04-21 12:46:24 +03:00
Alexander Batalov aa31185b35 Update release workflow 2024-04-21 11:23:18 +03:00
Alexander Batalov ec0685ea19 Normalize and resolve asset bundle paths 2024-04-06 16:41:49 +03:00
Alexander Batalov 2c7ab7f5c8 Detect alternative default music directory 2024-04-06 16:33:16 +03:00
Alexander Batalov 8de73ad774 Refactor file find
Fixes #352
2024-04-06 12:47:11 +03:00
Alexander Batalov 3ceacf1001 Fix warning 2024-04-06 12:01:48 +03:00
Alexander Batalov 31afb4d568 Bump actions to v4 2024-03-03 11:27:37 +03:00
Alexander Batalov 95cbba3920 Bump zlib to 1.3.1 2024-03-03 09:39:06 +03:00
sonilyan 16b044ae31 Fix obj_can_see_obj not working in release build (#350) 2024-02-15 05:04:57 +03:00
sonilyan caea9cb4fb Fix yaam no damage (#351) 2024-02-15 05:02:56 +03:00
Alexander Batalov 8325823493 Expose game data files to iOS Files app
Fixes #343
2024-01-16 23:42:25 +03:00
Alexander Batalov 8e1e8d483c Review db_total
Fixes #327
2024-01-16 22:37:06 +03:00
Alexander Batalov 1b18c2baa3 Fix custom patch file name template
Follow-up to #309
2024-01-16 22:35:16 +03:00
Alexander Batalov 70d5830f00 Force LF on .mm 2024-01-16 19:04:14 +03:00
yabisiktir 401df384ef modernize-use-nullptr (#332) 2024-01-16 18:57:49 +03:00
Vlad 59af02cca9 Variable naming, part 2 (#320) 2024-01-16 16:33:08 +03:00
c6 c6565ac96a Sfall: add VersionString, ConfigFile, PatchFile (#309) 2024-01-16 15:56:21 +03:00
Jo 16f4ab7787 Improve pointer comparsion for Nevada and Sonora mods (#291) 2024-01-16 15:42:32 +03:00
Vasilii Rogin e23c4eddda Use delay_ms instead of spinwait (#262) 2024-01-16 15:24:49 +03:00
λP.(P izzy) 601f0c7b44 fix CMake condition to allow build on OpenBSD & FreeBSD (#341) 2024-01-16 15:06:47 +03:00
sonilyan f411d75643 Add overriddenSelf initialization for scriptRead (#329) 2023-10-31 13:46:25 +03:00
Vasilii Rogin 81fce5f4a2 Fix wrong pointer dereferecing in aiFindAttackers (#324) 2023-10-09 20:50:59 +03:00
Eir Nym 0e447c55a8 Upgrade zlib to 1.3 (#323) 2023-09-28 17:26:52 +03:00
Alexander Batalov 91806d8ccb Fix missing include 2023-09-03 22:31:52 +03:00
Alexander Batalov a30fb4cfdd Add mapper_refresh_rotation 2023-09-03 22:21:14 +03:00
Alexander Batalov def8effa9f Add handle_new_map 2023-09-03 21:42:17 +03:00
Alexander Batalov d46ee07583 Add mapper_destroy_highlight_obj 2023-09-03 21:30:59 +03:00
Alexander Batalov ee19238667 Add update_toolname 2023-09-03 20:48:23 +03:00
Alexander Batalov 0d83cff24e Add place_entrance_hex 2023-09-03 20:24:36 +03:00
Alexander Batalov 30a3bf9b71 Add pick_region 2023-09-03 20:23:50 +03:00
Alexander Batalov 8c61b0bd8c Add sort_rect 2023-09-03 19:15:50 +03:00
Alexander Batalov 6e9f1ae517 Add op_set_self 2023-09-03 18:23:19 +03:00
Alexander Batalov ad3e0eb752 Add op_explosions_metarule 2023-09-03 16:51:29 +03:00
Alexander Batalov b40bfcc64a Add some metarules 2023-09-03 16:26:52 +03:00
Alexander Batalov b706756ec9 Add op_get_script 2023-09-03 13:34:16 +03:00
Alexander Batalov 427672741a Add op_list_as_array 2023-09-02 22:06:37 +03:00
Alexander Batalov bb3513956c Add op_force_encounter 2023-09-02 21:34:41 +03:00
Alexander Batalov 84aecfa823 Add draw_rect 2023-09-02 20:07:02 +03:00
Alexander Batalov 7f920fe13b Add erase_rect 2023-09-02 19:57:14 +03:00
Alexander Batalov 9178abc53d Add toolbar_proto 2023-09-02 19:47:15 +03:00
Alexander Batalov 84288612ef Add map_toggle_block_obj_viewing_on 2023-09-02 19:43:56 +03:00
Alexander Batalov 4a94b19f60 Add proto_subdata_setup_pid_button 2023-09-02 19:36:17 +03:00
Alexander Batalov b0b161ceb5 Add proto_subdata_setup_fid_button 2023-09-02 19:31:16 +03:00
Alexander Batalov 1c2fd05bcd Add proto_subdata_setup_int_button 2023-09-02 18:33:32 +03:00
Alexander Batalov e0b18a8785 Add target_exit 2023-09-02 18:08:21 +03:00
Alexander Batalov 8929941d13 Add target_init 2023-09-02 18:07:37 +03:00
Alexander Batalov 8d2d5df65f Add target_new 2023-09-02 17:54:17 +03:00
Alexander Batalov fe47d88035 Add target_remove_tid 2023-09-02 17:47:43 +03:00
Alexander Batalov 29e81f3bf4 Add target_remove 2023-09-02 17:37:21 +03:00
Alexander Batalov 05b4c125e6 Add target_save 2023-09-02 17:19:51 +03:00
Alexander Batalov 96573a7209 Add target_remove_all 2023-09-02 17:14:49 +03:00
Alexander Batalov caf28a7286 Add target_tid_ptr 2023-09-02 17:07:43 +03:00
Alexander Batalov 25a3de62e7 Add target_ptr 2023-09-02 17:05:26 +03:00
Alexander Batalov fd3cd887b6 Add target_load 2023-09-02 16:40:18 +03:00
Alexander Batalov c3a6d07dc4 Add target_find_free_subnode 2023-09-02 16:24:07 +03:00
Alexander Batalov ed7ffac816 Add target_header_load 2023-09-02 15:31:23 +03:00
Alexander Batalov 59c43590cc Add target_header_save 2023-09-02 15:29:59 +03:00
Alexander Batalov f14f37f970 Add target_override_protection 2023-09-02 14:39:31 +03:00
Alexander Batalov cba1fc8f61 Add map_scr_remove_spatial 2023-07-25 11:56:20 +03:00
Alexander Batalov 8329d2fcf6 Add map_scr_remove_all_spatials 2023-07-25 11:14:41 +03:00
Alexander Batalov 1de7ef0151 Add init_mapper_protos 2023-07-24 15:19:18 +03:00
Alexander Batalov f1f4cac316 Add proto_choose_container_flags 2023-07-24 15:15:06 +03:00
Alexander Batalov 6ce6639f10 Add proto_wall_light_str 2023-07-24 10:57:31 +03:00
Alexander Batalov c5ad0c294f Add proto_critter_flags_redraw 2023-07-24 10:53:04 +03:00
Alexander Batalov f780969178 Add proto_critter_flags_modify 2023-07-24 10:46:31 +03:00
Alexander Batalov f3f61abc18 Add critter_flag_unset 2023-07-24 09:07:02 +03:00
Alexander Batalov 369a54f836 Add critter_flag_set 2023-07-24 09:04:11 +03:00
Alexander Batalov e9f3b34888 Add mp_pick_kill_type 2023-07-24 08:55:43 +03:00
Alexander Batalov c1258cbb4c Add proto_pick_ai_packet 2023-07-24 08:43:27 +03:00
Alexander Batalov 49804a52e6 Add combat_ai_name 2023-07-24 08:29:19 +03:00
Alexander Batalov e0e0db219c Add combat_ai_num 2023-07-24 08:27:42 +03:00
Alexander Batalov f93aa710a4 Add target_pick_local_var 2023-07-24 08:20:15 +03:00
Alexander Batalov ca206da4af Add target_pick_map_var 2023-07-24 08:17:04 +03:00
Alexander Batalov f6461a44dc Add target_pick_global_var 2023-07-24 08:13:45 +03:00
Alexander Batalov 3a271a399f Add pick_rot 2023-07-24 08:10:46 +03:00
Alexander Batalov ac1f4477ef Add target_make_path 2023-07-24 08:08:01 +03:00
Alexander Batalov 708862ca24 Add target_overriden 2023-07-24 08:03:25 +03:00
Alexander Batalov 57711cae5f Add mapper_edit_exit 2023-07-24 07:17:21 +03:00
Alexander Batalov f6e9a9d975 Make MapDirErase public 2023-07-24 07:15:58 +03:00
Alexander Batalov 4cd40b33af Add mapper_edit_init 2023-07-24 06:50:07 +03:00
Alexander Batalov 053e70dde4 Add gmouse_set_mapper_mode 2023-07-23 14:27:52 +03:00
Alexander Batalov 4b51b2f29b Add tile_toggle_roof 2023-07-23 14:15:20 +03:00
Alexander Batalov cdfd308193 Add mapper_main 2023-07-23 11:01:03 +03:00
Alexander Batalov 7327588fc3 Add MapperInit 2023-07-23 10:35:16 +03:00
Alexander Batalov d16f0010ac Add bookmarkInit 2023-07-23 10:26:43 +03:00
Alexander Batalov a27b2496d4 Add bookmarkExit 2023-07-23 10:25:58 +03:00
Alexander Batalov a2d61dc7c4 Add bookmarkHide 2023-07-23 10:23:55 +03:00
Alexander Batalov 093d4f23d8 Add bookmarkUnHide 2023-07-23 10:22:42 +03:00
Alexander Batalov 3331ad02b0 Add categoryInit 2023-07-23 10:20:54 +03:00
Alexander Batalov 661c689029 Add categoryExit 2023-07-23 10:19:02 +03:00
Alexander Batalov b1049fceb1 Add categoryToggleState 2023-07-23 10:17:52 +03:00
Alexander Batalov f933bff8ae Add categoryHide 2023-07-23 10:16:59 +03:00
Alexander Batalov 9f08c73b3c Add categoryUnhide 2023-07-23 10:15:51 +03:00
Alexander Batalov 4eaea0e3c0 Add proto_user_is_librarian 2023-07-23 10:10:09 +03:00
Alexander Batalov c652312157 Add print_toolbar_name 2023-07-23 10:01:58 +03:00
Alexander Batalov 8cc48cf52a Add update_high_obj_name 2023-07-23 09:55:58 +03:00
Alexander Batalov 9faa427a28 Add clear_toolname 2023-07-23 09:52:59 +03:00
Alexander Batalov 480094a3eb Add redraw_toolname 2023-07-23 09:49:22 +03:00
Alexander Batalov 1366b050b0 Add mapper_inven_unwield 2023-07-23 09:44:09 +03:00
Alexander Batalov e68c2a4784 Add mapper_mark_exit_grid 2023-07-23 09:39:13 +03:00
Alexander Batalov 78ae0fb3bf Add mapper_mark_all_exit_grids 2023-07-23 09:25:56 +03:00
Alexander Batalov 127de14318 Add win_get_num_i 2023-07-23 07:20:56 +03:00
Alexander Batalov 28d1d410d5 Add get_num_i 2023-07-23 06:08:23 +03:00
Alexander Batalov 4b65bdf021 Add scripts_request_townmap 2023-07-22 17:09:19 +03:00
Alexander Batalov cbb9cbc6fd Clarify some proto params 2023-07-22 17:00:24 +03:00
Alexander Batalov c72d8778ba Add proto_new 2023-07-22 16:53:01 +03:00
Alexander Batalov d6c3d74b3f Clarify proto_make_path address 2023-07-22 15:36:51 +03:00
Alexander Batalov 3c7248af5f Add proto_item_init 2023-07-22 15:34:32 +03:00
Alexander Batalov fd9fa80204 Add proto_item_subdata_init 2023-07-22 15:22:05 +03:00
Alexander Batalov 3d5cb4c3f4 Add proto_scenery_init 2023-07-22 15:07:39 +03:00
Alexander Batalov 01a68af4a4 Add proto_scenery_subdata_init 2023-07-22 15:05:00 +03:00
Alexander Batalov 6a75ec07e9 Add proto_wall_init 2023-07-22 14:59:32 +03:00
Alexander Batalov 1d310eb626 Add proto_tile_init 2023-07-22 14:58:47 +03:00
Alexander Batalov ffc440c809 Add proto_misc_init 2023-07-22 14:53:22 +03:00
Alexander Batalov a4daffa30e Add proto_copy_proto 2023-07-22 14:49:56 +03:00
Alexander Batalov ccabbd7688 Add proto_is_subtype 2023-07-22 14:46:51 +03:00
Alexander Batalov d27eafe03a Fix win_get_str return code 2023-07-21 11:22:57 +03:00
Alexander Batalov 7a45ac72f0 Add reading mapper config 2023-07-21 11:10:15 +03:00
Alexander Batalov f6cfc1fa3a Clarify GNW_check_menu_bars param 2023-07-21 11:02:54 +03:00
Alexander Batalov 6dcbcb97ad Add process_pull_down 2023-07-21 10:50:33 +03:00
Alexander Batalov 769599c463 Fix closing same file twice
Closes #318
2023-07-21 08:04:10 +03:00
Alexander Batalov 50d7c71db1 Clarify dragging flags 2023-07-20 11:13:01 +03:00
Alexander Batalov b07a7bcefd Complete win_drag 2023-07-20 10:20:05 +03:00
Alexander Batalov 867d28ac62 Add rect_clip 2023-07-20 10:13:21 +03:00
Alexander Batalov d9a173678a Cleanup timed msgs code 2023-07-20 09:39:15 +03:00
Alexander Batalov dde3255b07 Fix endless loop while cleaning up timed msgs 2023-07-20 09:21:26 +03:00
Alexander Batalov 1506ae7048 Add win_timed_msg 2023-07-20 08:53:26 +03:00
Alexander Batalov ce5d07e09c Add win_yes_no 2023-07-19 21:27:20 +03:00
Alexander Batalov 2d8a637f7d Force debug window font 2023-07-19 12:05:39 +03:00
Alexander Batalov 8414effc04 Fix GNW color indexes 2023-07-19 12:01:20 +03:00
Alexander Batalov 3a17818ceb Handle debug mode
Closes #298
2023-07-19 11:51:13 +03:00
Alexander Batalov 90d1545bb2 Uninline debug_register_func 2023-07-19 11:45:55 +03:00
Alexander Batalov a7628ccaea Fix bufferDrawLine
Missing 1 pixel in the middle of the vertical line.
2023-07-19 11:43:10 +03:00
Alexander Batalov 3af2a49250 Review debug_register_log 2023-07-19 11:39:01 +03:00
Vlad ffe90eef49 Improve code readability (#315) 2023-07-13 13:35:26 +03:00
Alexander Batalov c4c2806071 Fix game time calculations (#307) 2023-07-13 13:04:31 +03:00
Ivan Sokolov 0e31ac4753 Simplyfy logic to calc suggested amount of barter money 2023-06-22 00:38:18 +08:00
Ivan Sokolov a949178e30 Set recomended ammount of money to be moved for barter
The feature works in any direction to move from/to player/npc and from/to inventory/table
2023-06-21 21:13:06 +08:00
Ivan Sokolov 0e806d9be3 Add feature for automatic calculation of barter money 2023-06-20 17:21:10 +08:00
Ivan Sokolov 2d88189b4c Clear input envents on combat turn
Issue: if a user skips turn by clicking end a combat turn button
the cursor becomes frozen in "watch" mode but all input events are queued.
If a user clicked while the AI turn is not ended then the next user's turn is skipped.

Fix: clear input queue each time before user's turn.
2023-06-16 18:16:53 +08:00
Alexander Batalov fe035d8514 Improve loadsave.cc readability 2023-06-16 08:12:38 +03:00
c6 cf98070cd0 Add Sfall AutoQuickSave (#305) 2023-06-16 08:01:44 +03:00
Austin Hurst 0ffcb107af Implement SCALE_2X for Fallout 2 (#306) 2023-06-16 07:18:15 +03:00
Alexander Batalov cf5f865a23 Add load/save global vars (#296) 2023-06-03 08:06:49 +03:00
Alexander Batalov 37e4822ed5 Add keyboard opcodes (#295) 2023-06-01 19:01:03 +03:00
Alexander Batalov bf639a2c4a Fix copying files on case-sensitive file systems
Closes #273
2023-06-01 17:10:36 +03:00
Alexander Batalov 89839be3af Add global scripts (#294) 2023-05-31 21:48:44 +03:00
Alexander Batalov ec722475b6 Add op_create_message_window
See #200
2023-05-30 14:21:50 +03:00
Alexander Batalov 32ed3c3271 Add FixNamespaceComments 2023-05-30 12:56:51 +03:00
Alexander Batalov 03bf507893 Add ini opcodes (#293) 2023-05-30 12:52:55 +03:00
Alexander Batalov 681b7c388b Fix sfall opcode comments 2023-05-30 09:12:51 +03:00
Vasilii RoginandAlexander Batalov fe0d767521 Add SFall arrays (#269)
Co-authored-by: Alexander Batalov <alex.batalov@gmail.com>
2023-05-30 09:06:55 +03:00
Alexander Batalov 62c5c4757c Fix comparing pointers and integers
See #189
2023-05-24 21:52:50 +03:00
Vasilii RoginandAlexander Batalov 70b0b61664 Delete critter from combat during _partyFixMultipleMembers (#277)
Co-authored-by: Alexander Batalov <alex.batalov@gmail.com>
2023-05-24 21:32:09 +03:00
Vasilii Rogin 53a4437be9 Remove trailing comma after reading strParseIntWithKey (#259) 2023-05-23 23:51:04 +03:00
Vasilii RoginandAlexander Batalov 42c541012c Fix crash in _map_age_dead_critters (#258)
Co-authored-by: Alexander Batalov <alex.batalov@gmail.com>
2023-05-23 23:50:37 +03:00
Vlad 61293bd39c Fix ruined stack in rm_mult_objs_from_inven and name remaining opcodes (#289) 2023-05-23 23:45:18 +03:00
Alexander Batalov d641fefc13 Fix open door sound
See alexbatalov/fallout1-ce#71
2023-05-23 23:43:00 +03:00
Alexander Batalov 666e5cf62d Fix mouse events processing
See alexbatalov/fallout1-ce#55
2023-05-23 23:32:11 +03:00
Alexander Batalov 2565900f90 Fix clang-format args
Looks like clang-format in Ubuntu does not recognize glob pattern as
macOS does. Previous solution without xargs reported status code of
find itself, not clang-format.
2023-05-18 23:32:16 +03:00
Alexander Batalov 6b6fa3f111 Fix code format check 2023-05-09 18:42:47 +03:00
Alexander Batalov a06097aef5 Improve touch controls (#283) 2023-05-09 18:36:20 +03:00
Alexander Batalov efdc2e0199 Bump setup-java to v3 (#278) 2023-05-01 07:54:14 +03:00
Alexander Batalov d6a74468da Use Xcode for macOS builds (#275) 2023-05-01 07:10:04 +03:00
Alexander Batalov fcf8a87603 Ignore channels in acm files (#274) 2023-04-27 10:14:41 +03:00
Alexander Batalov a8815229a0 Add compat_access (#272) 2023-04-26 20:12:22 +03:00
Alexander Arkhipov aa99b2e1d3 Convert file paths to correct case (#214) 2023-04-26 17:45:36 +03:00
Vasilii Rogin 63d8300c61 Add clang format (#270) 2023-04-26 15:35:02 +03:00
Alexander Batalov 81c3ff9b1a Improve iOS icon (#271) 2023-04-26 15:11:24 +03:00
Alexander Batalov a0652e2646 Use Xcode for iOS builds (#267) 2023-04-26 14:11:26 +03:00
Alexander Batalov df3ac30de6 Add blocking objects opcodes 2023-04-20 11:22:47 +03:00
Alexander Batalov 6ca1329720 Add op_get_attack_type 2023-04-20 10:51:20 +03:00
Alexander Batalov 129361836f Add op_get_mouse_buttons 2023-04-20 10:31:32 +03:00
Alexander Batalov cf4921de1e Add op_tile_under_cursor 2023-04-20 10:25:13 +03:00
Alexander Batalov ecc6a8679b Add math opcodes 2023-04-20 09:53:50 +03:00
Alexander Batalov a39f149817 Add date/time opcodes 2023-04-19 19:10:09 +03:00
Alexander Batalov 540cc1e08b Add combat opcodes 2023-04-19 10:03:04 +03:00
Alexander Batalov ef34fdb519 Add proto data opcodes 2023-04-19 09:21:38 +03:00
Alexander Batalov 9b02f600de Add worldmap opcodes 2023-04-19 09:09:17 +03:00
Alexander Batalov 0bb07dbd50 Add pc base stats opcodes 2023-04-19 09:02:54 +03:00
Vasilii Rogin 0a85ce520b Use stack on the heap for roof fill (#263) 2023-04-18 11:06:07 +03:00
Vasilii Rogin 99bc14cf3a Add sFall movie timer options (#261) 2023-04-14 19:03:21 +03:00
Vasilii Rogin 527e152297 Allow messageIndex to be zero (#264) 2023-04-14 18:40:37 +03:00
Alexander Batalov c8d45854ba Normalize line endings when reading text files
Closes #250
2023-04-11 20:00:38 +03:00
Alexander Batalov 11472e8be9 Fix soundOpenData flags 2023-04-11 17:27:34 +03:00
Alexander Batalov 69e4adf5b3 Add HQ music support
See #239
2023-04-11 16:37:01 +03:00
Alexander Batalov a2eabd668b Fix missing speech in some Russian localizations
Closes #246
2023-04-11 14:03:55 +03:00
Alexander Batalov 6d1273d325 Improve button functions readability 2023-04-11 09:01:14 +03:00
TomArnaez e23b39abaa Fix crash in inventory list (#256) 2023-02-28 22:11:08 +03:00
Alexander Batalov 117b1d7b44 Fix iPad settings
Follow-up to alexbatalov/fallout1-ce#29
2023-02-28 20:31:19 +03:00
Alexander Batalov 6398f8a79e Fix itemDropAll
See #253
2023-02-28 16:11:48 +03:00
Alexander Batalov 81b9345303 Update config 2023-02-18 19:06:20 +03:00
Alexander Batalov 249892716e Get rid of mmx stuff 2023-02-18 18:14:30 +03:00
Alexander Batalov 3e8227a62b Extract mainmenu 2023-02-17 15:55:14 +03:00
Alexander Batalov 1570f860e8 Remove unnecessary calls 2023-02-17 15:53:42 +03:00
Alexander Batalov d7c4589a55 Extract preferences 2023-02-17 12:33:26 +03:00
Alexander Batalov 0a9a1dc7ca Fix faulty frms
Closes #235
2023-02-16 15:46:49 +03:00
Alexander Batalov 42346f66b2 Update readme 2023-02-15 12:47:32 +03:00
Alexander Batalov 7ac651b736 Adjust modal dialogs position 2023-02-15 11:37:00 +03:00
Alexander Batalov 0bb822ba60 Fix "Affect player speed" font
Closes #245
2023-02-15 09:23:46 +03:00
Alexander Batalov 075de8f837 Review sound IO functions 2023-02-13 11:51:09 +03:00
Alexander Batalov 36b5ceba8a Improve sound_decoder.cc accuracy 2023-02-13 11:02:17 +03:00
Alexander Batalov f5d3cfb5e3 Fix Fast Metabolism trait 2023-02-12 23:12:36 +03:00
Alexander Batalov 81210f46af Fix storing pointers in game global variables 2023-02-10 11:05:42 +03:00
Alexander Batalov c14f671a0d Add object and string concatenation
Fixes #232
2023-02-10 09:27:10 +03:00
Alexander Batalov 33141672ed Use screen borders for scrolling worldmap 2023-02-10 09:00:59 +03:00
Alexander Batalov 28083cfea9 Fix talking head mood transition 2023-02-09 19:40:25 +03:00
Alexander Batalov c9864741f3 Fix crash in artLockFrameDataReturningSize
Closes #231
2023-02-09 19:27:25 +03:00
Jiří Malák 5a230efd2b Properly handle path with spaces (#228) 2023-01-29 08:56:03 +03:00
Alexander Batalov 3aea6a98ef Fix loading custom interface frms 2023-01-21 15:24:18 +03:00
Alexander Batalov ba49abcea6 Fix some scripts not being properly removed
Closes #224
2023-01-21 13:15:18 +03:00
Alexander Batalov 47f5be8340 Fix HP being used as AP 2023-01-20 14:16:43 +03:00
Alexander Batalov d435185e9e Fix missing melee damage info 2023-01-20 14:12:03 +03:00
Alexander Batalov dcd450a9b7 Bump version to 1.2.0 2023-01-20 10:02:02 +03:00
Alexander Batalov bfbf692cc0 Add iOS release workflow 2023-01-20 09:57:52 +03:00
Alexander Batalov 2714dc1ea1 Fix memory alignment
See #135, #122
2023-01-19 20:27:22 +03:00
Alexander Batalov 8604d9c401 Fix check 2023-01-16 17:33:19 +03:00
Alexander Batalov b9261c3da2 Fix directory name reading 2023-01-16 17:01:52 +03:00
Alexander Batalov ed7176b796 Fix combatai_notify_onlookers 2023-01-16 16:55:31 +03:00
Alexander Batalov 6cac53d20b Rename critter maneuver flags 2023-01-16 16:49:50 +03:00
Alexander Batalov ad3860790c Fix NPCs not joining combat 2023-01-16 16:42:50 +03:00
Alexander Batalov bffe81d0b3 Improve cycle.cc readability 2023-01-05 11:29:00 +03:00
Alexander Batalov 6ab08bd22b Remove some unused db functions 2023-01-05 10:39:46 +03:00
Alexander Batalov 060c79fc20 Remove electronic registration 2023-01-05 10:27:16 +03:00
Alexander Batalov ac64fde502 Fix object rendering
Previous solution did not work well on high resolutions due to
incorrect tile calculations - was not updating edges and sometimes
hanged in endless loop trying to find upper-left or bottom-right
tiles.

New solution follows Sfall's HRP implementation.
2023-01-05 05:59:45 +03:00
Alexander Batalov 7496afa4f8 Clarify textObjectAdd param 2023-01-05 04:06:18 +03:00
Alexander Batalov 66955f893a Review light.cc 2023-01-03 23:56:52 +03:00
Alexander Batalov 9ee4cb4a26 Refactor min/max usage 2023-01-03 23:00:38 +03:00
Alexander Batalov a5cefd6c8b Clear dirty rect during map updates
Previous solution to replace squares was destructive in nature and
could possibly lead to unexpected things (especially with mods where
tile 0x293 might not be opaque black).

New solution follows mapper refresh routines where entire dirty rect
is reset to black as a preparation step.
2023-01-03 21:10:20 +03:00
Alexander Batalov d040ea814a Fix objects being animated while playing movies 2023-01-02 21:15:43 +03:00
Alexander Batalov 03145e4fcd Fix endgame slideshow issues
See #3
Closes #215
2023-01-02 14:34:42 +03:00
Alexander Batalov 812079004c Make credits fullscreen
See #3, #215
2023-01-02 13:09:03 +03:00
Alexander Batalov 6224af6178 Fix help screen issues
Closes #179
2023-01-02 11:13:32 +03:00
Alexander Batalov a8d3cdd148 Improve worldmap.cc readability 2022-12-31 14:12:04 +03:00
Alexander Batalov 95cc863fde Fix special encounter icon blinking 2022-12-30 16:45:49 +03:00
Alexander Batalov cc1562b056 Add fading effects when moving to/from worldmap
Follow-up to #193
2022-12-30 00:41:29 +03:00
Alexander Batalov 07f3c82444 Fix map loading background
Integrated interface bar area remained visible during map loading.
2022-12-29 23:33:09 +03:00
Alexander Batalov 9976728e04 Fix worldmap background
Closes #193
2022-12-29 21:54:40 +03:00
Alexander Batalov 5922d15b1c Fix various dialog box issues
- Better vertical positioning (account for word wrapping)
- Better horizontal positioning (consider both right and left gaps for
calculating available width).
- Prevent vertical text overflow.
2022-12-29 13:02:59 +03:00
Alexander Batalov 248d6dfb92 Add shadow to city labels 2022-12-29 10:43:02 +03:00
Alexander Batalov 73cc93a3e4 Cleanup some interface bar functions 2022-12-29 10:21:15 +03:00
Alexander Batalov 34259269a4 Improve "Whomever is attacking me" targeting
Fixes #197
2022-12-29 09:37:51 +03:00
Alexander Batalov 11217974c6 Improve aiFindAttackers 2022-12-28 19:45:17 +03:00
Alexander Batalov 0e13989f9c Fix critter lists sorting functions 2022-12-28 17:54:09 +03:00
Alexander Batalov 57dcf42b5c Fix custom disposition button 2022-12-28 17:33:01 +03:00
Alexander Batalov c2c26db5d9 Fix max throw range calculation 2022-12-28 12:33:10 +03:00
Alexander Batalov b6ee5fcbe9 Fix configGetIntList 2022-12-28 09:14:30 +03:00
Alexander Batalov 0e11569397 Add ai_check_drugs fixes and improvements (#29) 2022-12-28 02:19:43 +03:00
Alexander Batalov 4b137dac5f Improve graphlib accuracy 2022-12-27 18:59:24 +03:00
Alexander Batalov 1f6d5ebbc9 Improve some color functions readability 2022-12-27 16:27:14 +03:00
Alexander Batalov 462baa0a04 Improve color tables accuracy 2022-12-27 15:51:43 +03:00
Alexander Batalov b74f3c368b Fix warning 2022-12-26 12:03:14 +03:00
Alexander Batalov a05ab09e1b Cleanup audio IO 2022-12-26 11:48:47 +03:00
Alexander Batalov 1b0cd6d757 Improve SoundDecoder readability 2022-12-25 22:30:31 +03:00
Alexander Batalov b8dea116ee Improve Sound readability 2022-12-25 21:56:23 +03:00
Alexander Batalov e11f1af9ae Improve combat_ai.cc readability 2022-12-24 14:30:03 +03:00
Alexander Batalov 9c34b26fec Improve animation.cc readability 2022-12-23 15:49:56 +03:00
Alexander Batalov 9a6d45541f Rename animationRegisterPing 2022-12-23 15:22:53 +03:00
Alexander Batalov f4775775b8 Review dude move/run functions 2022-12-23 15:13:05 +03:00
Alexander Batalov a48d744cde Improve actions.cc readability 2022-12-23 12:44:52 +03:00
Alexander Batalov 16dbe1122e Normalize gradlew.bat 2022-12-23 10:55:15 +03:00
Alexander Batalov b0cb70ffa6 Fix file existence check 2022-12-23 10:34:20 +03:00
Alexander Batalov 512530c653 Fix building file list on non-Windows platforms 2022-12-23 10:33:16 +03:00
Alexander Batalov 982d4cc0f9 Truncate long names in file picker dialog 2022-12-23 10:30:31 +03:00
Alexander Batalov 3b951b8578 Add opSetWeaponAmmoPid 2022-12-22 20:36:31 +03:00
Alexander Batalov 17a4ee8a68 Add Sfall version opcodes (#200) 2022-12-22 20:18:07 +03:00
Alexander Batalov c85cda4b48 Fix rare crash when using grenades
Closes #208
2022-12-22 19:54:04 +03:00
Alexander Batalov c7ca358295 Rename OBJECT_NO_SAVE flag 2022-12-22 16:49:17 +03:00
Alexander Batalov 96296417c6 Rename OBJECT_NO_REMOVE flag 2022-12-22 16:47:11 +03:00
Alexander Batalov 737076a126 Fix getting elevation of freed object 2022-12-22 14:20:37 +03:00
Alexander Batalov c0908cf14f Fix visual artifacts caused by null tiles 2022-12-21 09:18:29 +03:00
Alexander Batalov 343911f736 Fix floor lighting 2022-12-20 18:44:21 +03:00
Alexander Batalov 281c1aa82a Review tileRenderFloorsInRect 2022-12-20 16:22:56 +03:00
Alexander Batalov 18afce71b0 Review tile_fill_roof 2022-12-20 15:10:42 +03:00
Alexander Batalov 9599d63f45 Review roof_fill_off 2022-12-20 15:09:01 +03:00
Alexander Batalov ce351988b5 Review roof_fill_on 2022-12-20 15:01:57 +03:00
Alexander Batalov feb3821565 Fix multiple knockout effects 2022-12-13 23:59:45 +03:00
Alexander Batalov 54eaff26ea Fix partyMemberIncLevels 2022-12-13 23:35:15 +03:00
Alexander Batalov 5a7ffde45e Fix max party member level 2022-12-13 23:29:34 +03:00
Alexander Batalov 1c0385ad11 Remove _obj_fix_combat_cid_for_dude
The same cid-to-object conversion performed by `combatLoad`.
2022-12-13 23:06:52 +03:00
Alexander Batalov 0fe6d88a3a Review combatLoad 2022-12-13 23:03:42 +03:00
Alexander Batalov 7596d4d721 Fix combat_is_shot_blocked 2022-12-13 22:18:12 +03:00
Alexander Batalov 8333e553e2 Add SubtileFill 2022-12-13 22:11:37 +03:00
Alexander Batalov 6f62cfd466 Fix critters dying on exit grids 2022-12-13 16:33:19 +03:00
Alexander Batalov 280b55ab05 Add isExitGridPid 2022-12-13 14:34:49 +03:00
Alexander Batalov e02dcdf69d Fix car disappearing when using town interface 2022-12-13 13:20:55 +03:00
Alexander Batalov b5701fb9b9 Fix worldmap scroll down button 2022-12-13 12:45:39 +03:00
Alexander Batalov c569b879f6 Fix opPrint 2022-12-13 11:35:07 +03:00
Alexander Batalov b36ac50425 Review windowShow 2022-12-13 10:37:52 +03:00
Alexander Batalov 029a84a113 Review gWindowIndexes 2022-12-13 10:18:02 +03:00
Alexander Batalov e6fddd6905 Rename window flags 2022-12-13 10:04:05 +03:00
Alexander Batalov b0b69bd780 Fix wmMapIdxToName 2022-12-09 00:52:03 +03:00
Alexander Batalov 6de4ac87df Use snprintf 2022-12-08 23:05:50 +03:00
Alexander Batalov 502c920656 Add reportOverloaded 2022-12-08 22:05:54 +03:00
Alexander Batalov c383fc6b95 Add mobile keyboard support (#206) 2022-12-08 20:41:59 +03:00
Alexander Batalov 4b03c714b4 Bump libsdl to 2.26.1 2022-12-08 19:48:53 +03:00
Alexander Batalov 0d93279a10 Fix missing include 2022-12-08 19:38:55 +03:00
Alexander Batalov 510d7bfe95 Reorganize includes 2022-12-08 19:18:39 +03:00
Alexander Batalov 19d0d2919f Remove unnecessary includes 2022-12-08 17:29:30 +03:00
Alexander Batalov 42f01c8d45 Remove unused 16bpp code 2022-12-08 17:26:28 +03:00
Alexander Batalov 0474199b5c Remove unnecessary include 2022-12-08 17:13:06 +03:00
Alexander Batalov 8a4ce6c658 Improve splash screen handling (#3)
* Fixes splash screens in Olympus
2022-12-08 16:41:55 +03:00
Alexander Batalov 884034f0bf Refactor stretching blitters
* Fixes skipped pixels
* Improves readability
2022-12-08 16:34:38 +03:00
Alexander Batalov 602ef7c1e1 Increase maps ambient sfx capacity 2022-12-08 14:10:31 +03:00
Alexander Batalov 897ff2bbd2 Add dialog options numbering 2022-12-08 10:58:54 +03:00
Alexander Batalov 9ade107e95 Rename Button fields 2022-12-07 16:42:37 +03:00
Alexander Batalov 1698cfa04b Rename Window fields 2022-12-07 16:39:30 +03:00
Alexander Batalov 59639c60a3 Cleanup 2022-12-07 10:17:48 +03:00
Alexander Batalov f056f0e131 Add opGetGameMode (#200) 2022-12-06 17:46:52 +03:00
Alexander Batalov dc90beb696 Add game mode tracking 2022-12-06 17:22:30 +03:00
Alexander Batalov 90da2164f2 Fix assignment 2022-12-06 17:13:48 +03:00
Alexander Batalov 9d9e09e80f Use MESSAGE_LIST_ITEM_FIELD_MAX_SIZE 2022-12-06 12:37:59 +03:00
sonilyan cd51e0cdd7 Fix crash for msg limit (#203) 2022-12-06 12:32:21 +03:00
drjfaust d49869f45c Fix several combat bugs (#204) 2022-12-06 12:17:11 +03:00
Alexander Batalov 3a541d4b67 Fix endurance label
Closes #201
2022-11-10 23:48:09 +03:00
Alexander Batalov 7471f9cdbe Fix palette fading 2022-11-10 23:43:18 +03:00
Alexander Batalov fe9ba9171e Add custom message lists support
Closes #130
See #200
2022-11-10 18:07:23 +03:00
Alexander Batalov 6c03e4e293 Fix storing pointers in map global variables 2022-11-09 14:35:07 +03:00
Alexander Batalov 3f25c9265b Fix arguments order 2022-11-09 13:54:32 +03:00
Alexander Batalov fa475c754e Add opReadByte
See #200
2022-11-09 13:09:56 +03:00
Alexander Batalov 5e9cf96106 Rename state structs
Fixes UB leading to crash when exiting the game
2022-11-09 11:41:53 +03:00
Alexander Batalov a70912d311 Fix ini section parsing 2022-11-09 11:11:19 +03:00
Alexander Batalov 67351b8b09 Fix player model customization 2022-11-09 10:21:12 +03:00
Alexander Batalov e0e0a1ee7d Add Sfall list functions
See #200
2022-11-08 22:55:25 +03:00
Alexander Batalov fa11122f87 Make spatial script finders public 2022-11-08 22:45:30 +03:00
Alexander Batalov ef54463fcc Add pc bonus stats opcodes
See #200
2022-11-08 18:59:14 +03:00
Alexander Batalov 2255481d50 Add missing header 2022-11-08 18:07:11 +03:00
Alexander Batalov 03a7e2e1b1 Add some Sfall global vars functions
See #200
2022-11-08 18:01:00 +03:00
Alexander Batalov 19bcfebe0d Add ammo/charges opcodes
See #200
2022-11-07 20:41:33 +03:00
Alexander Batalov 393d89f8c4 Add some Sfall opcodes
See #200
2022-11-07 20:03:04 +03:00
Alexander Batalov 9c6286f94a Increase number of opcodes 2022-11-07 19:06:37 +03:00
Alexander Batalov fa058f24b4 Add interface bar side panels
See #3
2022-11-07 16:05:34 +03:00
Alexander Batalov b2420bdc80 Refactor artLock with FrmImage 2022-11-07 13:55:05 +03:00
sonilyan 23bee9fd62 Add IFACE_BAR_WIDTH support (#188) 2022-11-07 13:35:22 +03:00
Alexander Batalov 3ec827d5c1 Fix worldmap position calculation
Closes #192
2022-11-07 10:59:16 +03:00
Alexander Batalov c692fc91af Fix error check
Closes #196
2022-11-03 18:16:50 +03:00
Alexander Batalov a38151bf2c Reorganize control flow in gdCustomSelect
Fixes #198
2022-11-03 18:08:49 +03:00
Alexander Batalov b689b3a757 Fix combat control fields not being cleared
Closes #194
2022-11-03 17:48:34 +03:00
Alexander Batalov e7d68c4f72 Get rid of PreferenceDescription packing
Fixes pointer alignment warnings.
2022-10-30 13:00:43 +03:00
Alexander Batalov bc43bdc99c Rename some variables in objectSetLocation 2022-10-30 09:39:43 +03:00
Alexander Batalov e5aa4a3518 Fix square tiles initial lookup 2022-10-30 09:31:09 +03:00
Alexander Batalov 4e98093d6c Fix crash when removing all scripts 2022-10-30 09:03:24 +03:00
Alexander Batalov 1342fd3ecf Fix warning 2022-10-30 08:45:04 +03:00
Alexander Batalov 3015f39368 Review interfaceFontGetStringWidthImpl 2022-10-30 08:41:00 +03:00
Alexander Batalov 37f7ecc1c3 Review SlotMap2Game 2022-10-29 21:27:08 +03:00
Alexander Batalov bdf2c219ab Fix error check 2022-10-29 21:09:53 +03:00
Alexander Batalov 3488833c2e Use SDL for logging 2022-10-29 20:57:11 +03:00
Alexander Batalov 4821cab724 Review tileSetCenter flags 2022-10-29 18:52:22 +03:00
Alexander Batalov 0851354c8a Rename _square_y 2022-10-29 18:25:28 +03:00
Alexander Batalov 2f42818a33 Review square coords math 2022-10-29 18:23:53 +03:00
Alexander Batalov 12367acb33 Fix byte swapping warnings 2022-10-29 18:17:57 +03:00
Alexander Batalov caa8b06d4f Fix UB when parsing encounter table 2022-10-29 18:14:49 +03:00
Alexander Batalov 2b63360b95 Fix memory alignment 2022-10-29 17:26:46 +03:00
Alexander Batalov 8dd8d1c312 Replace random generator 2022-10-29 17:21:54 +03:00
Alexander Batalov 8ee0f478ad Fix setting managed button procs 2022-10-28 11:02:53 +03:00
Alexander Batalov 9c6daa4abe Fix selecting managed window 2022-10-28 10:59:38 +03:00
Alexander Batalov 01f264e0c2 Fix color setters 2022-10-28 10:35:22 +03:00
Alexander Batalov 1bbd586cbb Fix trimming line ending in .lst files 2022-10-26 10:17:39 +03:00
Alexander Batalov 223930c464 Get rid of goto 2022-10-25 17:37:45 +03:00
Alexander Batalov 40510539ee Fix interface font loading 2022-10-25 15:57:31 +03:00
Alexander Batalov c47113ca29 Force screen redraw after playing movies
Fixes #180
2022-10-25 13:05:09 +03:00
Alexander Batalov ad9b8586e9 Fix testing pointers for nulls in Nevada
Closes #178
2022-10-25 09:57:13 +03:00
sonilyan 5b151634a5 Fix memory alignment (#187) 2022-10-25 09:12:54 +03:00
Martin Janiczek 7627092478 Make sfall key naming consistent (#172) 2022-10-25 09:05:09 +03:00
Martin Janiczek b60fe43b06 Refactor: use enum instead of magic numbers (#176) 2022-10-25 09:04:42 +03:00
Alexander Batalov 21aec548af Add iOS support (#167) 2022-10-14 11:40:11 +03:00
Alexander Batalov beb010cd0f Normalize fade duration
See #165
2022-10-11 17:58:02 +03:00
Alexander Batalov b23d05f850 Fix called shot window freeze
See #165
2022-10-10 11:42:10 +03:00
Alexander Batalov e16659d96d Fix key processing
Fixes buffer-underwrite crash on macOS when scancode is remapped to -1.
2022-10-08 12:32:50 +03:00
Alexander Batalov 4c1020af5f Fix path handling in _gsound_get_music_path 2022-10-08 10:56:46 +03:00
Alexander Batalov a4105d5826 Decouple drawing and rendering (#165) 2022-10-08 00:54:27 +03:00
Alexander Batalov ddae4df4ab Fix red dialog buttons 2022-10-07 23:31:17 +03:00
Alexander Batalov 74a9a9e530 Add audio engine initialization check
Fixes various bugs when movie system attemps to create audio buffer with
sound system being disabled via fallout2.cfg.
2022-10-07 15:17:07 +03:00
Alexander Batalov 223d214f57 Review lsgSaveGame
* Add scrolling
* Rename variables
2022-10-07 12:04:30 +03:00
Alexander Batalov a52fd4e70a Review lsgLoadGame
* Add missing cleanup
* Fixes double click handling
* Rename variables
2022-10-07 11:28:42 +03:00
Alexander Batalov 266c727870 Extract renderPresent 2022-10-06 19:10:01 +03:00
Alexander Batalov 54d230432b Refactor game config with Settings (#164) 2022-10-06 16:32:46 +03:00
Alexander Batalov 9663532e44 Add missing elevator ids 2022-10-05 18:29:21 +03:00
Alexander Batalov a4e9123bcc Fix crash in obj_use_item_on 2022-10-05 17:55:54 +03:00
Alexander Batalov 08691ce319 Fix incorrect death animation in opKillCritterType 2022-10-05 16:58:57 +03:00
Alexander Batalov d03fd5e43f Review opGetMessageString 2022-10-05 16:07:55 +03:00
Alexander Batalov 7ddd8f2894 Fix itemGetQuantity 2022-10-05 15:44:00 +03:00
Alexander Batalov 93a341bbaa Fix arguments order 2022-10-05 14:59:00 +03:00
Alexander Batalov d2c4538656 Fix obj_can_see_obj elevation check 2022-10-05 14:56:29 +03:00
Alexander Batalov 8a5c3bc97b Fix obj_can_hear_obj implementation 2022-10-05 14:38:19 +03:00
Alexander Batalov db57fe6a5e Review isWithinPerception 2022-10-05 14:25:36 +03:00
Alexander Batalov 56d798dd12 Display encounter description in one line 2022-10-05 14:20:32 +03:00
Alexander Batalov 90942c46b2 Uninline obj_set_seen 2022-10-05 13:49:18 +03:00
Alexander Batalov 1cda2beef7 Fix looting corpses with NoSteal flag 2022-10-05 13:26:13 +03:00
Alexander Batalov 8754a5d6c9 Rename critter flags 2022-10-05 13:06:49 +03:00
Alexander Batalov 65f43804b3 Rename core 2022-10-05 10:35:05 +03:00
Alexander Batalov 9b150257fb Rename some input functions 2022-10-05 10:11:47 +03:00
Alexander Batalov 32c7883f82 Cleanup input.h 2022-10-05 09:54:46 +03:00
Alexander Batalov 1c73fb7240 Extract input 2022-10-05 09:23:27 +03:00
Alexander Batalov cce1bb223e Handle window size change (#163) 2022-10-04 13:15:54 +03:00
Alexander Batalov 624076ae9b Fix Doctor skill usage 2022-10-04 09:23:17 +03:00
Alexander Batalov 8d61a19dbe Remove declarations 2022-10-03 18:11:55 +03:00
Alexander Batalov 0264c00ab8 Extract keyboard 2022-10-03 16:42:34 +03:00
Alexander Batalov e1f22b8218 Review game state functions 2022-10-03 15:54:18 +03:00
Alexander Batalov fe4c125474 Fix crash when dialog speaker destroys itself
See #162
2022-10-03 15:04:30 +03:00
Alexander Batalov 56d27400ac Add missing include 2022-10-03 14:52:47 +03:00
Alexander Batalov b5681984cd Extract mouse 2022-10-03 12:41:33 +03:00
Alexander Batalov a541d0f24a Fix type warnings 2022-10-03 10:19:22 +03:00
Alexander Batalov 20a41088c6 Remove trap.cc 2022-10-03 10:01:42 +03:00
Alexander Batalov 16ab9cb958 Fix lock check 2022-10-03 09:38:43 +03:00
Alexander Batalov 5f9ceb7f5d Extract vcr 2022-10-03 09:37:05 +03:00
Alexander Batalov a1c1e03da0 Refactor artLockFrameData with FrmImage 2022-09-26 16:09:22 +03:00
Alexander Batalov ac0a044a32 Refactor artLockFrameData with FrmImage 2022-09-26 15:17:22 +03:00
Alexander Batalov 4aae167bd8 Refactor artLockFrameData with FrmImage 2022-09-26 11:55:06 +03:00
Alexander Batalov 2e5be31ed4 Refactor artLockFrameData with FrmImage 2022-09-26 11:14:11 +03:00
Alexander Batalov 45278f66a5 Refactor artLockFrameData with FrmImage 2022-09-26 10:36:54 +03:00
Alexander Batalov 2205077d36 Refactor artLockFrameData with FrmImage 2022-09-26 10:28:44 +03:00
Alexander Batalov 67f966f7a9 Refactor artLockFrameData with FrmImage 2022-09-24 22:53:25 +03:00
Alexander Batalov 463968d798 Refactor artLockFrameData with FrmImage 2022-09-24 21:29:50 +03:00
Alexander Batalov 109dc6680c Refactor artLockFrameData with FrmImage 2022-09-24 21:22:40 +03:00
Alexander Batalov 23c5f070fa Refactor artLockFrameData with FrmImage 2022-09-24 21:04:32 +03:00
Alexander Batalov fd9843f8dc Fix type warning 2022-09-24 19:43:27 +03:00
Alexander Batalov 443070226f Refactor artLockFrameData with FrmImage 2022-09-24 19:41:25 +03:00
Alexander Batalov db63d8a085 Refactor artLockFrameData with FrmImage 2022-09-24 18:15:52 +03:00
Alexander Batalov f203cfcc83 Refactor artLockFrameData with FrmImage 2022-09-24 17:31:13 +03:00
Alexander Batalov 9ceb490f72 Refactor artLockFrameData with FrmImage 2022-09-24 17:03:50 +03:00
Alexander Batalov 5b7a676b35 Refactor artLockFrameData with FrmImage 2022-09-24 16:51:16 +03:00
Alexander Batalov e50e26cf87 Refactor artLockFrameData with FrmImage 2022-09-24 16:39:15 +03:00
Alexander Batalov f59c072d68 Add FrmImage 2022-09-24 16:14:54 +03:00
Alexander Batalov 79c396c1a0 Uninline characterSelectorWindowFatalError 2022-09-24 10:28:30 +03:00
Alexander Batalov 9bb053b3ba Add namespace (#155) 2022-09-23 15:43:44 +03:00
Alexander Batalov 3168c2ec09 Improve some combat functions readability 2022-09-23 14:01:39 +03:00
Alexander Batalov cb9c72d1db Bump version to 1.1.0 2022-09-23 09:42:47 +03:00
Edgar Miró 7a455dcad5 Update readme (#143) 2022-09-23 09:33:03 +03:00
Alexander Batalov cacbecb324 Update license 2022-09-22 13:23:09 +03:00
Alexander Batalov c521dcaf57 Fix storing pointers in map local variables
Closes #152
2022-09-22 12:45:58 +03:00
Alexander Batalov b89c06008b Add Windows icon 2022-09-22 10:13:28 +03:00
Alexander Batalov c20e40652d Add Android icon 2022-09-15 22:06:36 +03:00
Alexander Batalov 2fe74627bd Add macOS icon 2022-09-15 20:59:02 +03:00
Alexander Batalov 9864a2551d Uninline mapSetEnteringLocation 2022-09-15 19:59:16 +03:00
Alexander Batalov dea8c98399 Decompile square_init 2022-09-15 18:25:48 +03:00
Alexander Batalov 108a20ef27 Decompile mapLocalVariablesLoad 2022-09-15 18:22:27 +03:00
Alexander Batalov 0adc65054c Decompile mapLocalVariablesInit 2022-09-15 18:19:50 +03:00
Alexander Batalov d72a74f6c3 Decompile mapGlobalVariablesLoad 2022-09-15 18:17:16 +03:00
Alexander Batalov 1d05bac7a1 Decompile mapGlobalVariablesInit 2022-09-15 18:16:46 +03:00
Alexander Batalov 980b40dcdd Review mapNewMap 2022-09-15 17:49:40 +03:00
Alexander Batalov b1a8707fb2 Review isoExit 2022-09-15 17:45:35 +03:00
Alexander Batalov 382de999cc Review isoReset 2022-09-15 17:43:33 +03:00
Alexander Batalov 06618d9e21 Uninline wmAreaSetVisibleState 2022-09-15 14:25:21 +03:00
Alexander Batalov 1b6e29acc0 Reorder includes 2022-09-15 12:38:23 +03:00
Alexander Batalov e5992779f3 Reconcile worldmap.cc 2022-09-15 11:42:02 +03:00
Alexander Batalov d7bc8e4176 Rename worldmap.cc 2022-09-15 09:00:11 +03:00
Alexander Batalov 629978d7a6 Reconcile with reference edition 2022-09-01 18:41:37 +03:00
Alexander Batalov 039ad65557 Add getFileSize 2022-09-01 07:37:00 +03:00
Alexander Batalov 26e5104a96 Add compat_strdup 2022-09-01 06:48:26 +03:00
Alexander Batalov d39276fe3a Update fpattern config 2022-09-01 06:24:01 +03:00
Alexander Batalov 2a17a07784 Fix AI behaviour for Snipe distance preference 2022-08-31 22:02:08 +03:00
Alexander Batalov 56d35bef0d Add more checks for AI to pick secondary hit mode 2022-08-31 20:25:40 +03:00
Alexander Batalov 676098dc5f Fix weapon safety check 2022-08-31 19:56:09 +03:00
Alexander Batalov 857d3902bb Fix AI weapon switching 2022-08-31 19:53:12 +03:00
Alexander Batalov 7803378d82 Fix some warnings 2022-08-31 18:52:01 +03:00
Alexander Batalov 893a116fb4 Fix getting random target 2022-08-31 18:31:23 +03:00
Alexander Batalov 916bf40602 Add CombatBadShot enum 2022-08-31 18:29:46 +03:00
Alexander Batalov 40d6348b09 Fix incorrect AP cost when AI reloads a weapon 2022-08-31 17:41:50 +03:00
Alexander Batalov 1e5047cd48 Improve aiHaveAmmo 2022-08-31 12:05:56 +03:00
Alexander Batalov 7750006127 Fix warnings 2022-08-31 10:11:01 +03:00
Alexander Batalov 1b69c97ce4 Improve aiAttemptWeaponReload 2022-08-31 10:05:00 +03:00
Alexander Batalov b3431fadf7 Fix some warnings 2022-08-29 23:58:03 +03:00
Alexander Batalov 2a0d0633f1 Fix images for scroll buttons 2022-08-29 23:42:36 +03:00
Alexander Batalov 4ed86be78e Add missing worldmap button sounds 2022-08-29 23:35:58 +03:00
Alexander Batalov db13317613 Fix default worldmap font 2022-08-29 23:33:03 +03:00
Alexander Batalov 8deb855b12 Fix Pathfinder perk 2022-08-29 17:37:58 +03:00
Alexander Batalov 24277424d2 Fix typo 2022-08-29 16:08:23 +03:00
Alexander Batalov c593eceaaf Add pip-boy automaps patch 2022-08-29 16:07:34 +03:00
Alexander Batalov e3a811c83d Add a flashing icon to the Horrigan encounter 2022-08-29 15:14:16 +03:00
Alexander Batalov 89fd83012a Fix quick destinations positioning 2022-08-24 13:11:46 +03:00
Alexander Batalov e71447a3d3 Use pop-up message box about death from radiation 2022-08-19 20:25:14 +03:00
Alexander Batalov b89d6dfd72 Fix crash when opening bag on the bartering table 2022-08-19 19:54:39 +03:00
Alexander Batalov 3878be0d09 Fix items disappearing when using bag 2022-08-19 19:42:21 +03:00
Alexander Batalov 21d550ad1e Fix attackDetermineToHit 2022-08-19 18:58:18 +03:00
Alexander Batalov 134ab451e3 Fix item name separator position 2022-08-19 18:07:12 +03:00
Alexander Batalov 25fc67fec1 Add mouse support on Android
Closes #116
2022-08-19 13:36:14 +03:00
Alexander Batalov a41780caa2 Rename some item functions 2022-08-18 08:41:15 +03:00
Edgar MiróandAlexander Batalov 4eb5e39946 Add loading dialog (#125)
Co-authored-by: Alexander Batalov <alex.batalov@gmail.com>
2022-08-17 09:32:08 +03:00
Alexander Batalov 354b0812c9 Fix missing Android signing configs in forks/PRs 2022-08-17 00:01:20 +03:00
Alexander Batalov bee34bfdf4 Add items weight summary 2022-08-16 23:06:40 +03:00
Alexander Batalov d31e367870 Tweak inventory scroller positions 2022-08-16 22:19:23 +03:00
Alexander Batalov 16f0be1a45 Add more inventory UI constants 2022-08-16 21:08:04 +03:00
Alexander Batalov ebba548206 Use inventory slot size constants 2022-08-16 16:26:21 +03:00
Alexander Batalov c9fa9a4765 Fix inventory defines misuse 2022-08-16 16:09:13 +03:00
Alexander Batalov cfca07f7f2 Add idle func 2022-08-16 14:24:57 +03:00
Alexander Batalov 0f60556b73 Decompile some input functions 2022-08-16 14:14:53 +03:00
Nikola Đurinec a1521049b5 Fix interface button positions (#131) 2022-08-16 11:52:37 +03:00
Alexander Batalov 1128813bf0 Fix testing pointers for nulls in Sonora 2022-08-16 11:35:21 +03:00
Alexander Batalov 1f6339b3b3 Uncollapse _db_select 2022-08-16 11:25:56 +03:00
Alexander Batalov 79f5e00f6e Fix town map hotkeys 2022-08-15 00:16:36 +03:00
Alexander Batalov 957c5af66b Fix pcx extension check 2022-08-14 23:22:37 +03:00
Alexander Batalov c5c5ecd499 Fix for Jet antidote not being removed 2022-08-14 23:06:11 +03:00
Alexander Batalov df4382f2e0 Fix Silent Death bonus for critical hits 2022-08-14 22:46:28 +03:00
Alexander Batalov 8700d0c601 Remove unreferenced label 2022-08-14 22:16:48 +03:00
Alexander Batalov 27c5beea01 Fix max items quantity added via scripting 2022-08-14 22:15:13 +03:00
Alexander Batalov 52af5cfc1f Fix object search when loading game in combat mode 2022-08-14 22:07:22 +03:00
Alexander Batalov 5a47f74023 Fix base EMP damage resistance 2022-08-14 21:45:58 +03:00
Alexander Batalov c35ea77c59 Fix ammo details when examining in barter screen 2022-08-14 20:45:26 +03:00
Alexander Batalov b10c580d6f Fix displaying xp gained with Swift Learner bonus 2022-08-14 18:46:02 +03:00
Alexander Batalov 7096116296 Fix best weapon calculations 2022-08-14 17:48:59 +03:00
Alexander Batalov 330edde003 Fix radiation bugs 2022-08-14 17:30:45 +03:00
Alexander Batalov cac96bfc13 Add gender-specific text improvements (#130) 2022-08-14 13:06:51 +03:00
Alexander Batalov 31edb19379 Use English as fallback language 2022-08-14 12:52:13 +03:00
Alexander Batalov d482f0e610 Add healing items improvements (#29) 2022-08-14 12:42:18 +03:00
Alexander Batalov c3bffa6777 Increase script message lists capacity 2022-08-12 15:49:43 +03:00
Alexander Batalov 140234f40e Add game dialog fix 2022-08-12 15:03:06 +03:00
Alexander Batalov 13b76287f8 Add science/repair on critters patch 2022-08-12 14:55:36 +03:00
Alexander Batalov a55feb9301 Add custom mouse mode frms 2022-08-12 14:19:16 +03:00
Alexander Batalov d86a887cf9 Add damage mod (#29) 2022-08-12 13:54:18 +03:00
Alexander Batalov 5b2a1d13a1 Fix displaying secondary weapon mode stats 2022-08-11 14:30:06 +03:00
Alexander Batalov 1ca08cb97a Fix unarmed attack mode reset when using inventory 2022-08-11 14:12:29 +03:00
Alexander Batalov ca78b94a7d Fix sprintf warning 2022-08-11 13:41:06 +03:00
Alexander Batalov dcb53393c1 FIx opFloatMessage string arg handling
Closes #129
2022-08-11 13:34:37 +03:00
Alexander Batalov 4ece7d1188 Workaround for wrong animate_rotation usage
Closes #128
2022-08-11 13:25:43 +03:00
Alexander Batalov 87289a34c0 Add unarmed hits improvements (#29) 2022-08-10 20:46:09 +03:00
Alexander Batalov 2859410d4b Fix character selector not being reset 2022-08-08 12:04:03 +03:00
Alexander Batalov 9d53496521 Fix premade characters data freed too early 2022-08-08 11:34:36 +03:00
Alexander Batalov 4a8d5b13a8 Fix queue clearing 2022-08-08 11:01:52 +03:00
Alexander Batalov 8ba4fa309d Add shortcuts to close game windows 2022-08-07 21:49:53 +03:00
Alexander Batalov 0cab26227a Fix holodisk highlighting 2022-08-07 21:05:42 +03:00
Alexander Batalov 1694c68ebc Fix rest clickability exploit 2022-08-07 19:54:04 +03:00
Alexander Batalov 6c74c461c2 Review pipboyOpen 2022-08-07 19:03:43 +03:00
Alexander Batalov 0ec5306de5 Fix Barter button 2022-08-07 15:52:28 +03:00
Alexander Batalov ba2ae3c303 Uninline gameDialogHighlightsExit 2022-08-07 15:38:47 +03:00
Alexander Batalov 019dbbb56e Add mouse wheel support 2022-08-07 14:52:44 +03:00
Alexander Batalov a47918a83c Fix Pipboy screensaver on non-Windows platforms
Closes #115
2022-08-06 22:46:13 +03:00
Alexander Batalov 25e07fb597 Fix flags on non-door objects 2022-08-06 20:33:53 +03:00
Alexander Batalov 43ad927817 Fix dead critters reload weapons when combat ends 2022-08-06 20:12:23 +03:00
Alexander Batalov d7966cdab2 Fix updating armor class 2022-08-06 20:05:33 +03:00
Alexander Batalov 33bda1612c Fix withdrawal perk crash 2022-08-06 18:45:44 +03:00
Alexander Batalov f3eef3fe6c Fix negative Skilldex values 2022-08-06 18:21:47 +03:00
Alexander Batalov d8ae5fbd32 Fix car charging bugs 2022-08-06 17:49:24 +03:00
Alexander Batalov 02e83a1989 Fix Sharshooter bonus 2022-08-06 17:07:07 +03:00
Alexander Batalov 5c8f7c4b00 Fix negate operator 2022-08-06 16:57:43 +03:00
Alexander Batalov 3592a7232c Add town reputation improvements (#29) 2022-08-06 15:50:33 +03:00
Alexander Batalov ef067cd954 Reconcile with reference edition 2022-08-06 13:48:16 +03:00
Alexander Batalov 17382d7c7e Fix poping uninitialized pointer
Closes #113
2022-08-06 12:46:05 +03:00
Alexander Batalov 5170948588 Add explosions improvements (#29) 2022-08-05 17:43:00 +03:00
Alexander Batalov 3ccb087d20 Add burst mod (#29) 2022-08-03 17:23:24 +03:00
Alexander Batalov 3f9145b745 Remove varargs.h 2022-08-03 16:13:18 +03:00
Alexander Batalov 5b79d8ca79 Add premade characters improvements (#29) 2022-08-03 16:06:44 +03:00
Alexander Batalov 25c1eeee5c Add display monitor improvements (#29) 2022-08-03 13:54:26 +03:00
Alexander Batalov f5060c301b Add elevators improvements (#29) 2022-08-03 12:34:13 +03:00
Alexander Batalov 8a2ca4b733 Add books improvements (#29) 2022-08-02 21:52:32 +03:00
Alexander Batalov 9610de0a66 Add criticals config defaults 2022-08-02 21:04:58 +03:00
Alexander Batalov 64627ddde9 Fix sprintf_s 2022-08-02 19:46:44 +03:00
Alexander Batalov 63bcb2d009 Add critical hits improvements (#29) 2022-08-02 19:37:31 +03:00
Alexander Batalov df5bceaf2a Reconcile with reference edition 2022-08-02 13:31:26 +03:00
Alexander Batalov 66d46bd8a5 Fix skills usage slots
Closes #110
2022-08-02 12:09:33 +03:00
Alexander Batalov 28a433ea76 Fix parentesis warnings 2022-08-01 19:47:09 +03:00
Alexander Batalov 2c69834a12 Fix unequipped armor flags
Closes #108
2022-08-01 07:17:01 +03:00
Alexander Batalov 00ee53efca Fix CI branch 2022-07-31 23:06:27 +03:00
Alexander Batalov 4989cf6d5a Update CI workflow trigger events 2022-07-31 23:05:30 +03:00
Alexander Batalov 0d5aa705f0 Add activity to import game assets on Android
Fixes #105
2022-07-31 22:52:26 +03:00
Alexander Batalov 307b032118 Fix movie decoding on x64
Closes #107
2022-07-31 22:32:50 +03:00
Alexander Batalov ab8279078e Fix party member level up message
Closes #104
2022-07-31 12:09:39 +03:00
Alexander Batalov b7ac80e684 Fix floating point division
Closes #103
2022-07-31 12:03:43 +03:00
Alexander Batalov 6064a4bc79 Add Android controls (#101) 2022-07-29 20:04:37 +03:00
Alexander Batalov e41a4b8e16 Reconcile with reference edition (#100) 2022-07-29 16:04:05 +03:00
Alexander Batalov 39057fd1fb Fix missing result on stack
Closes #95
Closes #96
2022-07-27 23:22:06 +03:00
Alexander Batalov cbdb0eeba4 Make configGetInt compatible with atoi
Fixes #94
2022-07-27 10:24:45 +03:00
Alexander Batalov 73b6a16551 Fix loading save game crash on Windows 2022-07-27 10:11:33 +03:00
Alexander Batalov 42376b7172 Format workflows 2022-07-26 16:49:10 +03:00
Alexander Batalov 6a6d691b8d Fix release workflow 2022-07-26 16:34:07 +03:00
Alexander Batalov e457fc1383 Remove Android builds 2022-07-26 16:23:36 +03:00
Alexander Batalov cf844e6224 Provide release workflow for Android 2022-07-26 10:49:47 +03:00
Alexander Batalov 684d943062 Add Android support (#92) 2022-07-26 04:30:17 +03:00
Alexander Batalov 23d37621d5 Backport to OS X 10.11 (#91) 2022-07-26 00:58:02 +03:00
Alexander Batalov 8bd75e9737 Fix splitpath/makepath issues
See #68
2022-07-25 20:48:35 +03:00
Alexander Batalov 8ef9b66950 Get rid of std::filesystem
See #68
2022-07-25 20:38:11 +03:00
Alexander Batalov 8a006d2818 Rewrite fileCopy
See #68
2022-07-25 18:37:22 +03:00
Alexander Batalov a60382e044 Fix type 2022-07-25 00:02:54 +03:00
Alexander Batalov a20e2a8b50 Fix unsigned checks 2022-07-24 22:58:01 +03:00
Alexander Batalov 032969ce5b Add Apple Silicon support (#86) 2022-07-24 15:52:29 +03:00
Alexander Batalov 365805afe8 Fix opRemoveObjectFromInventory arguments order
Closes #83
2022-07-24 11:11:56 +03:00
Alexander Batalov da75a76ed9 Update macOS installation instructions 2022-07-24 09:26:45 +03:00
Alexander Batalov 757330bff4 Add pointer vs int equality check 2022-07-23 07:42:33 +03:00
Alexander Batalov f3869e0acf Fix pointer comparison
See #82
2022-07-23 07:25:39 +03:00
Alexander Batalov cee3af7cc4 Fix opAdd concatenating string and pointer
Closes #78
2022-07-22 16:43:40 +03:00
Alexander Batalov 8ab7f8493a Fix kills folder
Closes #76
2022-07-15 16:58:58 +03:00
Alexander Batalov 1e5cda5dde Update contributing notes 2022-07-13 09:20:46 +03:00
Alexander Batalov f1006d981c Update installation instructions 2022-07-12 22:10:20 +03:00
374 changed files with 62421 additions and 32256 deletions
+1
View File
@@ -1,2 +1,3 @@
BasedOnStyle: WebKit
AllowShortIfStatementsOnASingleLine: WithoutElse
FixNamespaceComments: true
+11 -1
View File
@@ -2,14 +2,24 @@
*.c text eol=lf
*.cc text eol=lf
*.cmake text eol=lf
*.gradle text eol=lf
*.h text eol=lf
*.md text eol=lf
*.java text eol=lf
*.json text eol=lf
*.md text eol=lf
*.mm text eol=lf
*.plist text eol=lf
*.pro text eol=lf
*.properties text eol=lf
*.xml text eol=lf
*.yml text eol=lf
.clang-format text eol=lf
.editorconfig text eol=lf
.gitattributes text eol=lf
.gitignore text eol=lf
gradlew text eol=lf
CMakeLists.txt text eol=lf
LICENSE text eol=lf
# Force CRLF
*.bat text eol=crlf
+31
View File
@@ -0,0 +1,31 @@
### Description
<!--- Clearly describe the changes introduced by this PR. What was fixed, added, or updated? --->
### Reproduction Steps and Savefile (if available)
<!--- Provide detailed steps to reproduce the issue. Include a savefile if applicable, preferrably for Sonora --->
### Screenshots
<!--- If the PR includes visual changes, add screenshots here. --->
<!---
**Important Notes**
- *Preview builds are not available for pull requests from forked repositories.* To enable preview builds, submit the PR from a branch within this repository.
- *Formatting issues? You have two options:*
1. **Fix formatting automatically** using the following Docker command: *(If you're using Windows, remove `--user $(id -u):$(id -g)`)*
```bash
docker run --rm \
-v $(pwd):/app --workdir /app \
--user $(id -u):$(id -g) silkeh/clang:18 \
bash -c 'find src -type f -name \*.cc -o -name \*.h | xargs clang-format -i'
```
2. **Skip formatting check** by adding the `skip-formatting` label to this PR.
--->
-183
View File
@@ -1,183 +0,0 @@
name: Build
on:
push:
paths:
- '.github/workflows/Build.yml'
- 'src/**.cc'
- 'src/**.h'
- '**/CMakeLists.txt'
- '**/*.cmake'
pull_request:
paths:
- '.github/workflows/Build.yml'
- 'src/**.cc'
- 'src/**.h'
- '**/CMakeLists.txt'
- '**/*.cmake'
defaults:
run:
shell: bash
jobs:
static-analysis:
name: Static analysis
runs-on: ubuntu-latest
steps:
- name: Install
run: |
sudo apt update
sudo apt install cppcheck
- name: Clone
uses: actions/checkout@v3
- name: cppcheck
run: cppcheck --std=c++17 src/
linux:
name: Linux (${{ matrix.arch }})
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
arch:
- x86
- x64
steps:
- name: Clone
uses: actions/checkout@v3
- name: Dependencies (x86)
if: matrix.arch == 'x86'
run: |
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install --allow-downgrades libpcre2-8-0=10.34-7
sudo apt install g++-multilib libsdl2-dev:i386 zlib1g-dev:i386
- name: Dependencies (x64)
if: matrix.arch == 'x64'
run: |
sudo apt update
sudo apt install libsdl2-dev zlib1g-dev
- name: Cache cmake build
uses: actions/cache@v3
with:
path: build
key: linux-${{ matrix.arch }}-cmake-v1
- name: Configure (x86)
if: matrix.arch == 'x86'
run: |
cmake \
-B build \
-D CMAKE_BUILD_TYPE=RelWithDebInfo \
-D CMAKE_TOOLCHAIN_FILE=cmake/toolchain/Linux32.cmake \
# EOL
- name: Configure (x64)
if: matrix.arch == 'x64'
run: |
cmake \
-B build \
-D CMAKE_BUILD_TYPE=RelWithDebInfo \
# EOL
- name: Build
run: |
cmake --build build -j $(nproc)
- name: Upload
uses: actions/upload-artifact@v3
with:
name: fallout2-ce-linux-${{ matrix.arch }}
path: build/fallout2-ce
retention-days: 7
macos:
name: macOS
runs-on: macos-11
steps:
- name: Clone
uses: actions/checkout@v3
- name: Dependencies
run: |
brew install sdl2
- name: Cache cmake build
uses: actions/cache@v3
with:
path: build
key: macos-cmake-v1
- name: Configure
run: |
cmake -B build -D CMAKE_BUILD_TYPE=RelWithDebInfo
- name: Build
run: |
cmake --build build -j $(sysctl -n hw.physicalcpu) --target package
- name: Upload
uses: actions/upload-artifact@v3
with:
name: fallout2-ce-macos.dmg
path: build/_CPack_Packages/Darwin/DragNDrop/fallout2-ce/fallout2-ce.dmg
retention-days: 7
windows:
name: Windows (${{ matrix.arch }})
runs-on: windows-2019
strategy:
fail-fast: false
matrix:
include:
- arch: x86
generator-platform: Win32
- arch: x64
generator-platform: x64
steps:
- name: Clone
uses: actions/checkout@v3
- name: Cache cmake build
uses: actions/cache@v3
with:
path: build
key: windows-${{ matrix.arch }}-cmake-v1
- name: Configure
run: |
cmake \
-B build \
-G "Visual Studio 16 2019" \
-A ${{ matrix.generator-platform }} \
# EOL
- name: Build
run: |
cmake \
--build build \
--config RelWithDebInfo \
# EOL
- name: Upload
uses: actions/upload-artifact@v3
with:
name: fallout2-ce-windows-${{ matrix.arch }}
path: build/RelWithDebInfo/fallout2-ce.exe
retention-days: 7
+42
View File
@@ -0,0 +1,42 @@
name: Auto Format with Clang
on:
pull_request:
types: [opened, synchronize]
push:
branches: [main]
jobs:
format:
runs-on: ubuntu-latest
if: github.actor != 'github-actions[bot]' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository)
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref || github.ref_name }}
token: ${{ secrets.PAT_FOR_ACTIONS }}
- name: Run clang-format via Docker
run: |
docker run --rm \
-v ${{ github.workspace }}:/app --workdir /app \
--user $(id -u):$(id -g) silkeh/clang:18 \
bash -c 'find src -type f \( -name "*.cc" -o -name "*.h" \) -print0 | xargs -0 clang-format -i'
# https://github.com/actions/checkout?tab=readme-ov-file#push-a-commit-to-a-pr-using-the-built-in-token
- name: Check and commit changes if needed
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
if ! git diff --quiet; then
git diff
git commit -am "chore: auto-format with clang-format"
git push
else
echo "No formatting changes"
fi
+100
View File
@@ -0,0 +1,100 @@
name: Build and deploy webassembly version
on:
push:
branches:
- main
pull_request:
types:
- opened
- synchronize
jobs:
build_webassembly_version:
name: Build webassembly version
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Clone
uses: actions/checkout@v4
- name: Install Emscripten SDK
run: |
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install 4.0.4
./emsdk activate 4.0.4
- name: Build fallout2 wasm module
run: |
source emsdk/emsdk_env.sh
git config --global --add safe.directory "*"
mkdir -p build
cd build
emcmake cmake ../ -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain/Emscripten.cmake -DCMAKE_BUILD_TYPE=Release && emmake make VERBOSE=1 -j 4
cd ..
- name: Add node
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository)
uses: actions/setup-node@v2
with:
node-version: '22'
- name: Checkout web interface
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository)
uses: actions/checkout@v4
with:
repository: fallout2-ce/fallout2-ce-ems
ref: 8dc61ba6e8e62116f4810ffe89d0cece00f508d7
path: fallout2-ce-ems
- name: Set deployment path
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository)
id: set-path
run: |
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
echo "DEST_DIR=PR-${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT
echo "SITE_BASE=/fallout2-ce/PR-${{ github.event.pull_request.number }}/" >> $GITHUB_OUTPUT
else
echo "DEST_DIR=." >> $GITHUB_OUTPUT
echo "SITE_BASE=/fallout2-ce/" >> $GITHUB_OUTPUT
fi
echo ===============================
cat $GITHUB_OUTPUT
- name: Build web interface
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository)
run: |
cd fallout2-ce-ems
npm install
cp ../build/fallout2-ce.js src/assets/fallout2ce
cp ../build/fallout2-ce.wasm src/assets/fallout2ce
export F2_WEB_INFO=Web=$(git rev-parse HEAD)
echo "F2_WEB_INFO=$F2_WEB_INFO"
echo "F2_GAME_VERSION=$F2_GAME_VERSION"
npm run build
env:
SITE_BASE: ${{ steps.set-path.outputs.SITE_BASE }}
F2_GAME_VERSION: Game=${{github.event.pull_request.head.sha || github.sha }}
- name: Install rsync (required for the next step)
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository)
run: |
sudo apt-get update && sudo apt-get install -y rsync
- name: Deploy PR preview or main site
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository)
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
folder: fallout2-ce-ems/dist
target-folder: ${{ steps.set-path.outputs.DEST_DIR }}
clean: false
single-commit: true
- name: Comment preview URL on PR
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
run: |
gh pr comment ${{ github.event.pull_request.number }} \
--body "🚀 WebAssembly PR Preview for ${{github.event.pull_request.head.sha || github.sha }} is available at: https://${{ github.repository_owner }}.github.io/fallout2-ce/PR-${{ github.event.pull_request.number }}/"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+435
View File
@@ -0,0 +1,435 @@
name: Build
on:
push:
branches:
- main
pull_request:
types:
- opened
- synchronize
defaults:
run:
shell: bash
jobs:
static-analysis:
name: Static analysis
runs-on: ubuntu-latest
steps:
- name: Install
run: |
sudo apt update
sudo apt install cppcheck
- name: Clone
uses: actions/checkout@v4
- name: cppcheck
run: cppcheck --std=c++17 src/
code-format:
name: Code format check
runs-on: ubuntu-latest
steps:
- name: Clone
uses: actions/checkout@v4
- name: Show clang-format version
run: |
clang-format --version
- name: clang-format
run: |
if [[ "$GITHUB_EVENT_NAME" == "pull_request" ]]; then
echo "Showing PR labels..."
gh pr view ${{ github.event.pull_request.number }} --repo "${{ github.repository }}" --json labels
echo "Checking labels on PR..."
if gh pr view ${{ github.event.pull_request.number }} --repo "${{ github.repository }}" --json labels --jq '.labels[].name' | grep -q "skip-formatting"; then
echo "skip-formatting label found - do not raise error"
echo "==============================="
find src -type f \( -name \*.cc -o -name \*.h \) | xargs clang-format --dry-run
exit 0
fi
echo "skip-formatting label not found - raise error if formatting is not correct"
else
echo "Not a PR, do not check labels"
fi
find src -type f \( -name \*.cc -o -name \*.h \) | xargs clang-format --dry-run --Werror
echo "Code is formatted correctly"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
android:
name: Android
runs-on: ubuntu-latest
steps:
- name: Clone
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 11
cache: gradle
- name: Cache cmake build
uses: actions/cache@v4
with:
path: os/android/app/.cxx
key: android-cmake-v2
- name: Setup signing config
if: env.KEYSTORE_FILE_BASE64 != '' && env.KEYSTORE_PROPERTIES_FILE_BASE64 != ''
run: |
cd os/android
echo "$KEYSTORE_FILE_BASE64" | base64 --decode > debug.keystore
echo "$KEYSTORE_PROPERTIES_FILE_BASE64" | base64 --decode > debug-keystore.properties
env:
KEYSTORE_FILE_BASE64: ${{ secrets.ANDROID_DEBUG_KEYSTORE_FILE_BASE64 }}
KEYSTORE_PROPERTIES_FILE_BASE64: ${{ secrets.ANDROID_DEBUG_KEYSTORE_PROPERTIES_FILE_BASE64 }}
- name: Build
run: |
cd os/android
./gradlew assembleDebug
- name: Change apk file name
run: |
mv os/android/app/build/outputs/apk/debug/app-debug.apk os/android/app/build/outputs/apk/debug/fallout2-ce.apk
- name: Upload
uses: actions/upload-artifact@v4
with:
name: fallout2-ce-debug.apk
path: os/android/app/build/outputs/apk/debug/fallout2-ce.apk
retention-days: 7
ios:
name: iOS
runs-on: macos-14
steps:
- name: Clone
uses: actions/checkout@v4
- name: Cache cmake build
uses: actions/cache@v4
with:
path: out
key: ios-cmake-v5
- name: Configure
run: |
cmake --preset ios
- name: Build
run: |
cmake --build --preset ios-debug
- name: Pack
run: |
cd out/build/ios
cpack -C Debug
- name: Upload
uses: actions/upload-artifact@v4
with:
name: fallout2-ce.ipa
path: out/build/ios/fallout2-ce.ipa
retention-days: 7
linux:
name: Linux (${{ matrix.arch }})
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
arch:
- x86
- x64
steps:
- name: Clone
uses: actions/checkout@v4
- name: Dependencies (x86)
if: matrix.arch == 'x86'
run: |
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install g++-multilib libsdl2-dev:i386 zlib1g-dev:i386
- name: Dependencies (x64)
if: matrix.arch == 'x64'
run: |
sudo apt update
sudo apt install libsdl2-dev zlib1g-dev
- name: Cache cmake build
uses: actions/cache@v4
with:
path: out
key: linux-${{ matrix.arch }}-cmake-v3
- name: Configure
run: |
cmake --preset linux-${{ matrix.arch }}-debug
- name: Build
run: |
cmake --build --preset linux-${{ matrix.arch }}-debug
- name: Change executable file name
run: |
mv out/build/linux-${{ matrix.arch }}-debug/fallout2-ce out/build/linux-${{ matrix.arch }}-debug/fallout2-ce-linux-${{ matrix.arch }}
- name: Upload
uses: actions/upload-artifact@v4
with:
name: fallout2-ce-linux-${{ matrix.arch }}
path: out/build/linux-${{ matrix.arch }}-debug/fallout2-ce-linux-${{ matrix.arch }}
retention-days: 7
linux-armhf:
name: Linux (armhf)
runs-on: ubuntu-22.04-arm
steps:
- name: Clone
uses: actions/checkout@v4
- name: Dependencies
run: |
sudo dpkg --add-architecture armhf
sudo apt update
sudo apt install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libsdl2-dev:armhf zlib1g-dev:armhf
- name: Configure
run: |
cmake \
-B build \
-D CMAKE_BUILD_TYPE=Debug \
-D FALLOUT_VENDORED=OFF \
-D CMAKE_SYSTEM_PROCESSOR=arm \
-D CMAKE_C_COMPILER=arm-linux-gnueabihf-gcc \
-D CMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++ \
# EOL
- name: Build
run: cmake --build build
- name: Change executable file name
run: |
mv build/fallout2-ce build/fallout2-ce-linux-armhf
- name: Upload
uses: actions/upload-artifact@v4
with:
name: fallout2-ce-linux-armhf
path: build/fallout2-ce-linux-armhf
retention-days: 7
linux-arm64:
name: Linux (arm64)
runs-on: ubuntu-22.04-arm
steps:
- name: Clone
uses: actions/checkout@v4
- name: Dependencies
run: |
sudo apt update
sudo apt install libsdl2-dev zlib1g-dev
- name: Configure
run: cmake -B build -D CMAKE_BUILD_TYPE=Debug -D FALLOUT_VENDORED=OFF
- name: Build
run: cmake --build build
- name: Change executable file name
run: |
mv build/fallout2-ce build/fallout2-ce-linux-arm64
- name: Upload
uses: actions/upload-artifact@v4
with:
name: fallout2-ce-linux-arm64
path: build/fallout2-ce-linux-arm64
retention-days: 7
macos:
name: macOS
runs-on: macos-14
steps:
- name: Clone
uses: actions/checkout@v4
- name: Cache cmake build
uses: actions/cache@v4
with:
path: out
key: macos-cmake-v6
- name: Configure
run: |
cmake --preset macos
- name: Build
run: |
cmake --build --preset macos-debug
- name: Pack
run: |
cd out/build/macos
cpack -C Debug
- name: Upload
uses: actions/upload-artifact@v4
with:
name: fallout2-ce-macos.dmg
path: out/build/macos/Fallout II Community Edition.dmg
retention-days: 7
windows:
name: Windows (${{ matrix.arch }})
runs-on: windows-2025
strategy:
fail-fast: false
matrix:
include:
- arch: x86
generator-platform: Win32
- arch: x64
generator-platform: x64
steps:
- name: Clone
uses: actions/checkout@v4
- name: Install Visual Studio 2019 Build Tools with v141_xp
shell: cmd
run: |
choco install visualstudio2019buildtools -y --package-parameters="'--add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Component.VC.v141.x86.x64 --add Microsoft.VisualStudio.Component.VC.v141.xp --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.Windows10SDK.10240 --add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.WinXP --add Microsoft.VisualStudio.Component.WinXP'"
- name: Cache cmake build
uses: actions/cache@v4
with:
path: out
key: windows-${{ matrix.arch }}-cmake-v3
- name: Configure
shell: cmd
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\Tools\VsDevCmd.bat" ^
&& cmake --preset windows-${{ matrix.arch }}
- name: Build
shell: cmd
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\Tools\VsDevCmd.bat" ^
&& cmake --build --preset windows-${{ matrix.arch }}-release
- name: Change executable file name
run: |
mv out/build/windows-${{ matrix.arch }}/RelWithDebInfo/fallout2-ce.exe out/build/windows-${{ matrix.arch }}/RelWithDebInfo/fallout2-ce-${{ matrix.arch }}.exe
- name: Upload
uses: actions/upload-artifact@v4
with:
name: fallout2-ce-windows-${{ matrix.arch }}
path: out/build/windows-${{ matrix.arch }}/RelWithDebInfo/fallout2-ce-${{ matrix.arch }}.exe
retention-days: 7
release:
name: Release Continuous build
runs-on: ubuntu-latest
needs: [android, ios, linux, linux-armhf, linux-arm64, macos, windows]
permissions: write-all
steps:
- name: Fetch artifacts
if: ${{ always() && github.ref == 'refs/heads/main' && github.event_name == 'push' }}
uses: actions/download-artifact@v4.1.7
with:
path: artifacts/
- name: Remove old release
if: ${{ always() && github.ref == 'refs/heads/main' && github.event_name == 'push' }}
uses: dev-drprasad/delete-tag-and-release@v0.2.1
with:
delete_release: true
tag_name: continious
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Move unpacked artifacts to root folder
if: ${{ always() && github.ref == 'refs/heads/main' && github.event_name == 'push' }}
run: |
ls -Rlah .
find .
cd artifacts/
for folder in *; do
if [[ -d "$folder" && "$folder" != "." ]]; then
echo "Processing $folder"
mv "$folder" "$folder.dir"
cd "$folder.dir"
for file in *; do
if [ -f "$file" ]; then
if [ -f "../$file" ]; then
echo "ERROR: Duplicate artifact file name $file"
exit 1
fi
if [ -d "../$file" ]; then
echo "ERROR: Duplicate artifact folder $file"
exit 1
fi
echo "Moving $file"
mv "$file" "../$file"
fi
done
cd ..
rm -rf "$folder.dir"
fi
done
ls -Rlah .
find .
cd ../
- name: Allow GitHub to process removed release for few seconds
if: ${{ always() && github.ref == 'refs/heads/main' && github.event_name == 'push' }}
run: |
sleep 20s
- name: Upload new release
if: ${{ always() && github.ref == 'refs/heads/main' && github.event_name == 'push' }}
uses: softprops/action-gh-release@v0.1.15
with:
token: ${{ secrets.GITHUB_TOKEN }}
files: artifacts/*
tag_name: continious
draft: false
prerelease: true
name: Fallout2-CE Continuous Build
@@ -0,0 +1,46 @@
name: Cleanup PR Preview
on:
pull_request:
types:
- closed
jobs:
delete_pr_preview:
name: Delete PR preview from gh-pages
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout gh-pages branch
uses: actions/checkout@v4
with:
ref: gh-pages
token: ${{ secrets.GITHUB_TOKEN }}
- name: Remove PR preview folder
run: |
PR_FOLDER="PR-${{ github.event.pull_request.number }}"
echo "Removing preview folder: $PR_FOLDER"
git rm -r --ignore-unmatch "$PR_FOLDER" || true
- name: Commit and push changes
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
echo "Current branch: $CURRENT_BRANCH"
if [ "$CURRENT_BRANCH" != "gh-pages" ]; then
echo "❌ Refusing to force-push to non-gh-pages branch: $CURRENT_BRANCH"
exit 1
fi
if git diff --cached --quiet; then
echo "No changes to commit"
else
git commit --amend -m "🚮 Remove preview for closed PR #${{ github.event.pull_request.number }}"
git push --force
fi
+143 -45
View File
@@ -10,6 +10,100 @@ defaults:
shell: bash
jobs:
android:
name: Android
runs-on: ubuntu-latest
steps:
- name: Clone
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 11
cache: gradle
- name: Cache cmake build
uses: actions/cache@v4
with:
path: os/android/app/.cxx
key: android-cmake-v1
- name: Setup signing config
if: env.KEYSTORE_FILE_BASE64 != '' && env.KEYSTORE_PROPERTIES_FILE_BASE64 != ''
run: |
cd os/android
echo "$KEYSTORE_FILE_BASE64" | base64 --decode > release.keystore
echo "$KEYSTORE_PROPERTIES_FILE_BASE64" | base64 --decode > release-keystore.properties
env:
KEYSTORE_FILE_BASE64: ${{ secrets.ANDROID_RELEASE_KEYSTORE_FILE_BASE64 }}
KEYSTORE_PROPERTIES_FILE_BASE64: ${{ secrets.ANDROID_RELEASE_KEYSTORE_PROPERTIES_FILE_BASE64 }}
- name: Build
run: |
cd os/android
./gradlew assembleRelease
- name: Upload
run: |
cd os/android/app/build/outputs/apk/release
cp app-release.apk fallout2-ce-android.apk
gh release upload ${{ github.event.release.tag_name }} fallout2-ce-android.apk
rm fallout2-ce-android.apk
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ios:
name: iOS
runs-on: macos-14
steps:
- name: Clone
uses: actions/checkout@v4
- name: Cache cmake build
uses: actions/cache@v4
with:
path: build
key: ios-cmake-v1
- name: Configure
run: |
cmake \
-B build \
-D CMAKE_TOOLCHAIN_FILE=cmake/toolchain/ios.toolchain.cmake \
-D ENABLE_BITCODE=0 \
-D PLATFORM=OS64 \
-G Xcode \
-D CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY='' \
# EOL
- name: Build
run: |
cmake \
--build build \
--config RelWithDebInfo \
-j $(sysctl -n hw.physicalcpu) \
# EOL
- name: Pack
run: |
cd build
cpack -C RelWithDebInfo
- name: Upload
run: |
cd build
cp fallout2-ce.ipa fallout2-ce-ios.ipa
gh release upload ${{ github.event.release.tag_name }} fallout2-ce-ios.ipa
rm fallout2-ce-ios.ipa
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
linux:
name: Linux (${{ matrix.arch }})
@@ -24,7 +118,7 @@ jobs:
steps:
- name: Clone
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Dependencies (x86)
if: matrix.arch == 'x86'
@@ -41,7 +135,7 @@ jobs:
sudo apt install libsdl2-dev zlib1g-dev
- name: Cache cmake build
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: build
key: linux-${{ matrix.arch }}-cmake-v1
@@ -65,13 +159,16 @@ jobs:
- name: Build
run: |
cmake --build build -j $(nproc)
cmake \
--build build \
-j $(nproc) \
# EOL
- name: Upload
run: |
cd build
tar -czvf fallout2-ce-linux-${{ matrix.arch }}.tar.gz fallout2-ce
gh release upload ${{ github.ref_name }} fallout2-ce-linux-${{ matrix.arch }}.tar.gz
gh release upload ${{ github.event.release.tag_name }} fallout2-ce-linux-${{ matrix.arch }}.tar.gz
rm fallout2-ce-linux-${{ matrix.arch }}.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -83,63 +180,62 @@ jobs:
steps:
- name: Clone
uses: actions/checkout@v3
- name: Dependencies
run: |
brew install sdl2
uses: actions/checkout@v4
- name: Import code signing certificates
uses: apple-actions/import-codesign-certs@v1
uses: apple-actions/import-codesign-certs@v2
with:
p12-file-base64: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_P12_FILE_BASE64 }}
p12-password: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_P12_PASSWORD }}
- name: Cache cmake build
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: build
key: macos-cmake-v1
key: macos-cmake-v3
- name: Configure
run: |
cmake \
-B build \
-D CMAKE_BUILD_TYPE=RelWithDebInfo \
-D CPACK_BUNDLE_APPLE_CERT_APP="${{ secrets.APPLE_DEVELOPER_CERTIFICATE_IDENTITY }}" \
-G Xcode \
-D CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY="${{ secrets.APPLE_DEVELOPER_CERTIFICATE_IDENTITY }}" \
-D CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_INJECT_BASE_ENTITLEMENTS="NO" \
-D CMAKE_XCODE_ATTRIBUTE_OTHER_CODE_SIGN_FLAGS="--options=runtime --timestamp" \
# EOL
- name: Build
run: |
cmake \
--build build \
--config RelWithDebInfo \
-j $(sysctl -n hw.physicalcpu) \
--target package \
# EOL
- name: Pack
run: |
cd build
cpack -C RelWithDebInfo
- name: Notarize
run: |
brew install mitchellh/gon/gon
cat << EOF > config.json
{
"notarize": {
"path": "build/fallout2-ce.dmg",
"bundle_id": "$(/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" build/fallout2-ce.app/Contents/Info.plist)",
"staple": true
}
}
EOF
gon config.json
rm config.json
env:
AC_USERNAME: ${{ secrets.APPLE_DEVELOPER_AC_USERNAME }}
AC_PASSWORD: ${{ secrets.APPLE_DEVELOPER_AC_PASSWORD }}
xcrun notarytool submit \
"build/Fallout II Community Edition.dmg" \
--apple-id "${{ secrets.APPLE_DEVELOPER_AC_USERNAME }}" \
--team-id "${{ secrets.APPLE_DEVELOPER_AC_TEAM }}" \
--password "${{ secrets.APPLE_DEVELOPER_AC_PASSWORD }}" \
--wait
- name: Staple
run: |
xcrun stapler staple \
"build/Fallout II Community Edition.dmg"
- name: Upload
run: |
cd build
cp fallout2-ce.dmg fallout2-ce-macos.dmg
gh release upload ${{ github.ref_name }} fallout2-ce-macos.dmg
cp "Fallout II Community Edition.dmg" fallout2-ce-macos.dmg
gh release upload ${{ github.event.release.tag_name }} fallout2-ce-macos.dmg
rm fallout2-ce-macos.dmg
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -147,7 +243,7 @@ jobs:
windows:
name: Windows (${{ matrix.arch }})
runs-on: windows-2019
runs-on: windows-2025
strategy:
fail-fast: false
@@ -160,34 +256,36 @@ jobs:
steps:
- name: Clone
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install Visual Studio 2019 Build Tools with v141_xp
shell: cmd
run: |
choco install visualstudio2019buildtools -y --package-parameters="'--add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Component.VC.v141.x86.x64 --add Microsoft.VisualStudio.Component.VC.v141.xp --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.Windows10SDK.10240 --add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.WinXP --add Microsoft.VisualStudio.Component.WinXP'"
- name: Cache cmake build
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: build
key: windows-${{ matrix.arch }}-cmake-v1
- name: Configure
shell: cmd
run: |
cmake \
-B build \
-G "Visual Studio 16 2019" \
-A ${{ matrix.generator-platform }} \
# EOL
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\Tools\VsDevCmd.bat" ^
&& cmake -B build -G "Visual Studio 16 2019" -A ${{ matrix.generator-platform }}
- name: Build
shell: cmd
run: |
cmake \
--build build \
--config RelWithDebInfo \
# EOL
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\Tools\VsDevCmd.bat" ^
&& cmake --build build --config RelWithDebInfo
- name: Upload
run: |
cd build/RelWithDebInfo
7z a fallout2-ce-windows-${{ matrix.arch }}.zip fallout2-ce.exe
gh release upload ${{ github.ref_name }} fallout2-ce-windows-${{ matrix.arch }}.zip
gh release upload ${{ github.event.release.tag_name }} fallout2-ce-windows-${{ matrix.arch }}.zip
rm fallout2-ce-windows-${{ matrix.arch }}.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+8
View File
@@ -9,6 +9,7 @@
*.user
*.userosscache
*.sln.docstates
.DS_Store
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
@@ -388,6 +389,13 @@ FodyWeavers.xsd
.idea/
*.sln.iml
# VSCode
.vscode
# CMake
/out
/build
# versioning header
src/platform/git_version.h
CMakeUserPresets.json
+243 -52
View File
@@ -1,16 +1,37 @@
cmake_minimum_required(VERSION 3.13)
cmake_minimum_required(VERSION 3.18)
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
set(EXECUTABLE_NAME fallout2-ce)
if(APPLE)
if(IOS)
set(CMAKE_OSX_DEPLOYMENT_TARGET "12" CACHE STRING "")
set(CMAKE_OSX_ARCHITECTURES "arm64" CACHE STRING "")
else()
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13" CACHE STRING "")
set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64" CACHE STRING "")
endif()
endif()
project(${EXECUTABLE_NAME})
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED YES)
set(CMAKE_CXX_EXTENSIONS NO)
add_executable(${EXECUTABLE_NAME} WIN32 MACOSX_BUNDLE
option(FALLOUT_VENDORED "Use vendored third-party libraries" ON)
if(ANDROID)
add_library(${EXECUTABLE_NAME} SHARED)
else()
add_executable(${EXECUTABLE_NAME} WIN32 MACOSX_BUNDLE)
endif()
# Git Info
include("cmake/gitver.cmake")
target_sources(${EXECUTABLE_NAME} PUBLIC
"src/actions.cc"
"src/actions.h"
"src/animation.cc"
@@ -41,8 +62,6 @@ add_executable(${EXECUTABLE_NAME} WIN32 MACOSX_BUNDLE
"src/combat.h"
"src/config.cc"
"src/config.h"
"src/core.cc"
"src/core.h"
"src/credits.cc"
"src/credits.h"
"src/critter.cc"
@@ -69,8 +88,6 @@ add_executable(${EXECUTABLE_NAME} WIN32 MACOSX_BUNDLE
"src/display_monitor.h"
"src/draw.cc"
"src/draw.h"
"src/electronic_registration.cc"
"src/electronic_registration.h"
"src/elevator.cc"
"src/elevator.h"
"src/endgame.cc"
@@ -93,8 +110,6 @@ add_executable(${EXECUTABLE_NAME} WIN32 MACOSX_BUNDLE
"src/game_mouse.h"
"src/game_movie.cc"
"src/game_movie.h"
"src/game_palette.cc"
"src/game_palette.h"
"src/game_sound.cc"
"src/game_sound.h"
"src/game_vars.h"
@@ -104,10 +119,10 @@ add_executable(${EXECUTABLE_NAME} WIN32 MACOSX_BUNDLE
"src/geometry.h"
"src/graph_lib.cc"
"src/graph_lib.h"
"src/grayscale.cc"
"src/grayscale.h"
"src/heap.cc"
"src/heap.h"
"src/input.cc"
"src/input.h"
"src/interface.cc"
"src/interface.h"
"src/interpreter_extra.cc"
@@ -120,6 +135,8 @@ add_executable(${EXECUTABLE_NAME} WIN32 MACOSX_BUNDLE
"src/inventory.h"
"src/item.cc"
"src/item.h"
"src/kb.cc"
"src/kb.h"
"src/light.cc"
"src/light.h"
"src/lips.cc"
@@ -128,6 +145,8 @@ add_executable(${EXECUTABLE_NAME} WIN32 MACOSX_BUNDLE
"src/loadsave.h"
"src/main.cc"
"src/main.h"
"src/mainmenu.cc"
"src/mainmenu.h"
"src/map_defs.h"
"src/map.cc"
"src/map.h"
@@ -138,10 +157,10 @@ add_executable(${EXECUTABLE_NAME} WIN32 MACOSX_BUNDLE
"src/memory.h"
"src/message.cc"
"src/message.h"
"src/mmx.cc"
"src/mmx.h"
"src/mouse_manager.cc"
"src/mouse_manager.h"
"src/mouse.cc"
"src/mouse.h"
"src/movie_effect.cc"
"src/movie_effect.h"
"src/movie_lib.cc"
@@ -159,6 +178,8 @@ add_executable(${EXECUTABLE_NAME} WIN32 MACOSX_BUNDLE
"src/palette.h"
"src/party_member.cc"
"src/party_member.h"
"src/pcx.cc"
"src/pcx.h"
"src/perk_defs.h"
"src/perk.cc"
"src/perk.h"
@@ -181,8 +202,6 @@ add_executable(${EXECUTABLE_NAME} WIN32 MACOSX_BUNDLE
"src/scripts.h"
"src/select_file_list.cc"
"src/select_file_list.h"
"src/selfrun.cc"
"src/selfrun.h"
"src/skill_defs.h"
"src/skill.cc"
"src/skill.h"
@@ -201,17 +220,19 @@ add_executable(${EXECUTABLE_NAME} WIN32 MACOSX_BUNDLE
"src/stat.h"
"src/string_parsers.cc"
"src/string_parsers.h"
"src/svga.cc"
"src/svga.h"
"src/text_font.cc"
"src/text_font.h"
"src/text_object.cc"
"src/text_object.h"
"src/tile.cc"
"src/tile.h"
"src/tile_hires_stencil.cc"
"src/tile_hires_stencil.h"
"src/trait_defs.h"
"src/trait.cc"
"src/trait.h"
"src/trap.cc"
"src/trap.h"
"src/version.cc"
"src/version.h"
"src/widget.cc"
@@ -226,8 +247,8 @@ add_executable(${EXECUTABLE_NAME} WIN32 MACOSX_BUNDLE
"src/window.h"
"src/word_wrap.cc"
"src/word_wrap.h"
"src/world_map.cc"
"src/world_map.h"
"src/worldmap.cc"
"src/worldmap.h"
"src/xfile.cc"
"src/xfile.h"
)
@@ -235,53 +256,174 @@ add_executable(${EXECUTABLE_NAME} WIN32 MACOSX_BUNDLE
target_sources(${EXECUTABLE_NAME} PUBLIC
"src/audio_engine.cc"
"src/audio_engine.h"
"src/delay.cc"
"src/delay.h"
"src/fps_limiter.cc"
"src/fps_limiter.h"
"src/platform_compat.cc"
"src/platform_compat.h"
"src/pointer_registry.cc"
"src/pointer_registry.h"
"src/preferences.cc"
"src/preferences.h"
"src/settings.cc"
"src/settings.h"
"src/sfall_config.cc"
"src/sfall_config.h"
"src/sfall_ext.cc"
"src/sfall_ext.h"
"src/sfall_global_vars.cc"
"src/sfall_global_vars.h"
"src/sfall_global_scripts.cc"
"src/sfall_global_scripts.h"
"src/sfall_ini.cc"
"src/sfall_ini.h"
"src/sfall_kb_helpers.cc"
"src/sfall_kb_helpers.h"
"src/sfall_lists.cc"
"src/sfall_lists.h"
"src/sfall_metarules.cc"
"src/sfall_metarules.h"
"src/sfall_opcodes.cc"
"src/sfall_opcodes.h"
"src/sfall_arrays.cc"
"src/sfall_arrays.h"
"src/touch.cc"
"src/touch.h"
)
if(IOS)
target_sources(${EXECUTABLE_NAME} PUBLIC
"src/platform/ios/paths.h"
"src/platform/ios/paths.mm"
)
endif()
if(WIN32)
target_compile_definitions(${EXECUTABLE_NAME} PUBLIC
_CRT_SECURE_NO_WARNINGS
_CRT_NONSTDC_NO_WARNINGS
)
else()
target_compile_definitions(${EXECUTABLE_NAME} PRIVATE
$<$<CONFIG:Debug>:_DEBUG>
$<$<CONFIG:RelWithDebInfo>:_DEBUG>
NOMINMAX
WIN32_LEAN_AND_MEAN
_STATIC_CPPLIB
)
endif()
if(WIN32)
target_link_libraries(${EXECUTABLE_NAME}
winmm
libcpmt
)
endif()
if(WIN32)
target_sources(${EXECUTABLE_NAME} PUBLIC
"os/windows/fallout2-ce.ico"
"os/windows/fallout2-ce.rc"
)
endif()
if(APPLE)
set_target_properties(${EXECUTABLE_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/os/macos/Info.plist")
if(IOS)
set(RESOURCES
"os/ios/AppIcon.xcassets"
"os/ios/LaunchScreen.storyboard"
)
target_sources(${EXECUTABLE_NAME} PUBLIC ${RESOURCES})
set_source_files_properties(${RESOURCES} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
set_target_properties(${EXECUTABLE_NAME} PROPERTIES
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/os/ios/Info.plist"
XCODE_ATTRIBUTE_ASSETCATALOG_COMPILER_APPICON_NAME "AppIcon"
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.alexbatalov.fallout2-ce"
XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2"
)
set(MACOSX_BUNDLE_BUNDLE_NAME "${EXECUTABLE_NAME}")
set(MACOSX_BUNDLE_DISPLAY_NAME "Fallout 2")
else()
set(RESOURCES
"os/macos/fallout2-ce.icns"
)
target_sources(${EXECUTABLE_NAME} PUBLIC ${RESOURCES})
set_source_files_properties(${RESOURCES} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
set_target_properties(${EXECUTABLE_NAME} PROPERTIES
OUTPUT_NAME "Fallout II Community Edition"
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/os/macos/Info.plist"
XCODE_ATTRIBUTE_EXECUTABLE_NAME "${EXECUTABLE_NAME}"
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.alexbatalov.fallout2-ce"
)
set(MACOSX_BUNDLE_ICON_FILE "fallout2-ce.icns")
set(MACOSX_BUNDLE_BUNDLE_NAME "Fallout II: Community Edition")
set(MACOSX_BUNDLE_DISPLAY_NAME "Fallout II")
endif()
set(MACOSX_BUNDLE_GUI_IDENTIFIER "com.alexbatalov.fallout2-ce")
set(MACOSX_BUNDLE_BUNDLE_NAME "${EXECUTABLE_NAME}")
set(MACOSX_BUNDLE_DISPLAY_NAME "Fallout 2")
set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0")
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "1.3.0")
set(MACOSX_BUNDLE_BUNDLE_VERSION "1.3.0")
endif()
if((NOT ${CMAKE_SYSTEM_NAME} MATCHES "Emscripten"))
if(FALLOUT_VENDORED)
add_subdirectory("third_party/zlib")
add_subdirectory("third_party/sdl2")
else()
find_package(ZLIB)
find_package(SDL2)
endif()
else()
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} \
--use-port=sdl2 \
--use-port=sdl2_mixer \
--use-port=zlib" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
--use-port=sdl2 \
--use-port=sdl2_mixer \
--use-port=zlib \
-std=c++17" )
set( CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g")
set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g")
set( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O1")
set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O1")
if(OPTION_WASM_64)
target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sMEMORY64" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -sMEMORY64" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -sMEMORY64" )
add_compile_options( -sMEMORY64 )
endif()
if(OPTION_WASM_JSPI)
target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sJSPI" )
else()
target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sASYNCIFY" )
target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sASYNCIFY_STACK_SIZE=20480" )
endif()
target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sENVIRONMENT=web" )
target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sALLOW_MEMORY_GROWTH" )
target_link_options( ${EXECUTABLE_NAME} PRIVATE "-MEMORY_GROWTH_LINEAR_STEP=32mb" )
target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sNO_DISABLE_EXCEPTION_CATCHING" )
target_link_options( ${EXECUTABLE_NAME} PRIVATE "-lidbfs.js" )
target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sCASE_INSENSITIVE_FS" )
target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sMODULARIZE" )
target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sEXPORTED_RUNTIME_METHODS=callMain,addRunDependency,removeRunDependency" )
target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sEXPORT_ALL" )
target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sEXPORT_NAME=fallout2ce" )
target_link_options( ${EXECUTABLE_NAME} PRIVATE "-sEXIT_RUNTIME" )
target_link_options( ${EXECUTABLE_NAME} PRIVATE "$<$<CONFIG:DEBUG>:-g>" )
endif()
add_subdirectory("third_party/fpattern")
target_link_libraries(${EXECUTABLE_NAME} ${FPATTERN_LIBRARY})
target_include_directories(${EXECUTABLE_NAME} PRIVATE ${FPATTERN_INCLUDE_DIR})
if(NOT APPLE AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
add_subdirectory("third_party/zlib")
add_subdirectory("third_party/sdl2")
else()
find_package(ZLIB)
find_package(SDL2)
endif()
target_link_libraries(${EXECUTABLE_NAME} fpattern::fpattern)
target_link_libraries(${EXECUTABLE_NAME} ${ZLIB_LIBRARIES})
target_include_directories(${EXECUTABLE_NAME} PRIVATE ${ZLIB_INCLUDE_DIRS})
@@ -290,23 +432,72 @@ target_link_libraries(${EXECUTABLE_NAME} ${SDL2_LIBRARIES})
target_include_directories(${EXECUTABLE_NAME} PRIVATE ${SDL2_INCLUDE_DIRS})
if(APPLE)
install(TARGETS ${EXECUTABLE_NAME} DESTINATION .)
install(CODE "
include(BundleUtilities)
fixup_bundle(${CMAKE_BINARY_DIR}/${MACOSX_BUNDLE_BUNDLE_NAME}.app \"\" \"\")
"
COMPONENT Runtime)
if(IOS)
install(TARGETS ${EXECUTABLE_NAME} DESTINATION "Payload")
if (CPACK_BUNDLE_APPLE_CERT_APP)
install(CODE "
execute_process(COMMAND codesign --deep --force --options runtime --sign \"${CPACK_BUNDLE_APPLE_CERT_APP}\" ${CMAKE_BINARY_DIR}/${MACOSX_BUNDLE_BUNDLE_NAME}.app)
"
COMPONENT Runtime)
set(CPACK_GENERATOR "ZIP")
set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY OFF)
set(CPACK_PACKAGE_FILE_NAME "fallout2-ce")
set(CPACK_ARCHIVE_FILE_EXTENSION "ipa")
else()
install(TARGETS ${EXECUTABLE_NAME} DESTINATION .)
set(CPACK_GENERATOR "DragNDrop")
set(CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK ON)
set(CPACK_PACKAGE_FILE_NAME "Fallout II Community Edition")
endif()
set(CPACK_GENERATOR "DragNDrop")
set(CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK ON)
set(CPACK_PACKAGE_FILE_NAME "fallout2-ce")
include(CPack)
endif()
# Add option to enable AddressSanitizer
option(ENABLE_ASAN "Enable AddressSanitizer for debug builds" OFF)
# Set C++ standard and other existing settings
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED YES)
set(CMAKE_CXX_EXTENSIONS NO)
# Define ASan flags for supported compilers (GCC, Clang, MSVC)
if(ENABLE_ASAN)
if(CMAKE_SYSTEM_NAME MATCHES "Emscripten|Android|iOS")
message(WARNING "AddressSanitizer is not supported on ${CMAKE_SYSTEM_NAME}. Disabling ASan.")
set(ENABLE_ASAN OFF)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
message(STATUS "Enabling AddressSanitizer for debug build (GCC/Clang)")
set(ASAN_FLAGS "-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${ASAN_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${ASAN_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${ASAN_FLAGS}")
set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} ${ASAN_FLAGS}")
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
# Check if using clang-cl or native MSVC
if(CMAKE_CXX_COMPILER MATCHES "clang-cl")
message(STATUS "Enabling AddressSanitizer for debug build (clang-cl)")
set(ASAN_FLAGS "-fsanitize=address -fno-omit-frame-pointer")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${ASAN_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${ASAN_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -fsanitize=address")
set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} -fsanitize=address")
else()
message(STATUS "Enabling AddressSanitizer for debug build (MSVC)")
set(ASAN_FLAGS "/fsanitize=address")
# MSVC requires /Zi or /Z7 for debug info with ASan
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${ASAN_FLAGS} /Zi")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${ASAN_FLAGS} /Zi")
# No additional linker flags needed for MSVC ASan
# Disable incremental linking as it's incompatible with ASan
string(REPLACE "/INCREMENTAL" "/INCREMENTAL:NO" CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG}")
string(REPLACE "/INCREMENTAL" "/INCREMENTAL:NO" CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG}")
endif()
else()
message(WARNING "AddressSanitizer is not supported with ${CMAKE_CXX_COMPILER_ID}. Disabling ASan.")
set(ENABLE_ASAN OFF)
endif()
endif()
# Existing debug flags for Emscripten (ensure ASan doesn't conflict)
if(CMAKE_SYSTEM_NAME MATCHES "Emscripten")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g")
endif()
+205
View File
@@ -0,0 +1,205 @@
{
"version": 6,
"cmakeMinimumRequired": {
"major": 3,
"minor": 19,
"patch": 0
},
"configurePresets": [
{
"name": "base",
"hidden": true,
"binaryDir": "${sourceDir}/out/build/${presetName}"
},
{
"name": "windows-base",
"hidden": true,
"inherits": [
"base"
],
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "windows-x86",
"inherits": [
"windows-base"
],
"generator": "Visual Studio 16 2019",
"architecture": "Win32",
"cacheVariables": {
"CMAKE_GENERATOR_TOOLSET": "v141_xp",
"CMAKE_C_FLAGS": "/D_WIN32_WINNT=0x0501",
"CMAKE_CXX_FLAGS": "/D_WIN32_WINNT=0x0501 /D_STATIC_CPPLIB",
"CMAKE_MSVC_RUNTIME_LIBRARY": "MultiThreaded$<$<CONFIG:Debug>:Debug>"
}
},
{
"name": "windows-x64",
"inherits": [
"windows-base"
],
"generator": "Visual Studio 16 2019",
"architecture": "x64",
"cacheVariables": {
"CMAKE_MSVC_RUNTIME_LIBRARY": "MultiThreaded$<$<CONFIG:Debug>:Debug>"
}
},
{
"name": "linux-base",
"hidden": true,
"inherits": [
"base"
],
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Linux"
},
"cacheVariables": {
"FALLOUT_VENDORED": "OFF"
}
},
{
"name": "linux-x86-base",
"hidden": true,
"inherits": [
"linux-base"
],
"cacheVariables": {
"CMAKE_C_FLAGS": "-m32",
"CMAKE_CXX_FLAGS": "-m32",
"CMAKE_SYSTEM_NAME": "Linux",
"CMAKE_SYSTEM_PROCESSOR": "i386"
}
},
{
"name": "linux-x86-debug",
"inherits": [
"linux-x86-base"
],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
}
},
{
"name": "linux-x86-release",
"inherits": [
"linux-x86-base"
],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
}
},
{
"name": "linux-x64-debug",
"inherits": [
"linux-base"
],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
}
},
{
"name": "linux-x64-release",
"inherits": [
"linux-base"
],
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
}
},
{
"name": "darwin-base",
"hidden": true,
"inherits": [
"base"
],
"generator": "Xcode",
"cacheVariables": {
"CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY": ""
},
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Darwin"
}
},
{
"name": "macos",
"inherits": [
"darwin-base"
]
},
{
"name": "ios",
"inherits": [
"darwin-base"
],
"cacheVariables": {
"CMAKE_SYSTEM_NAME": "iOS"
}
}
],
"buildPresets": [
{
"name": "windows-x86-debug",
"configurePreset": "windows-x86",
"configuration": "Debug"
},
{
"name": "windows-x86-release",
"configurePreset": "windows-x86",
"configuration": "RelWithDebInfo"
},
{
"name": "windows-x64-debug",
"configurePreset": "windows-x64",
"configuration": "Debug"
},
{
"name": "windows-x64-release",
"configurePreset": "windows-x64",
"configuration": "RelWithDebInfo"
},
{
"name": "linux-x86-debug",
"configurePreset": "linux-x86-debug"
},
{
"name": "linux-x86-release",
"configurePreset": "linux-x86-release"
},
{
"name": "linux-x64-debug",
"configurePreset": "linux-x64-debug"
},
{
"name": "linux-x64-release",
"configurePreset": "linux-x64-release"
},
{
"name": "macos-debug",
"configurePreset": "macos",
"configuration": "Debug"
},
{
"name": "macos-release",
"configurePreset": "macos",
"configuration": "RelWithDebInfo"
},
{
"name": "ios-debug",
"configurePreset": "ios",
"configuration": "Debug"
},
{
"name": "ios-release",
"configurePreset": "ios",
"configuration": "RelWithDebInfo"
}
]
}
-50
View File
@@ -1,50 +0,0 @@
{
"configurations": [
{
"name": "x86-Debug",
"generator": "Visual Studio 16 2019",
"configurationType": "Debug",
"inheritEnvironments": [ "msvc_x86" ],
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": ""
},
{
"name": "x86-Release",
"generator": "Visual Studio 16 2019",
"configurationType": "Release",
"inheritEnvironments": [ "msvc_x86" ],
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": ""
},
{
"name": "x64-Debug",
"generator": "Visual Studio 16 2019 Win64",
"configurationType": "Debug",
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "msvc_x64_x64" ],
"variables": []
},
{
"name": "x64-Release",
"generator": "Visual Studio 16 2019 Win64",
"configurationType": "Release",
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "msvc_x64_x64" ],
"variables": []
}
]
}
+51
View File
@@ -0,0 +1,51 @@
# Sustainable Use License
Version 1.0
## Acceptance
By using the software, you agree to all of the terms and conditions below.
## Copyright License
The licensor grants you a non-exclusive, royalty-free, worldwide, non-sublicensable, non-transferable license to use, copy, distribute, make available, and prepare derivative works of the software, in each case subject to the limitations below.
## Limitations
You may use or modify the software only for your own internal business purposes or for non-commercial or personal use. You may distribute the software or provide it to others only if you do so free of charge for non-commercial purposes. You may not alter, remove, or obscure any licensing, copyright, or other notices of the licensor in the software. Any use of the licensors trademarks is subject to applicable law.
## Patents
The licensor grants you a license, under any patent claims the licensor can license, or becomes able to license, to make, have made, use, sell, offer for sale, import and have imported the software, in each case subject to the limitations and conditions in this license. This license does not cover any patent claims that you cause to be infringed by modifications or additions to the software. If you or your company make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company.
## Notices
You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms. If you modify the software, you must include in any modified copies of the software a prominent notice stating that you have modified the software.
## No Other Rights
These terms do not imply any licenses other than those expressly granted in these terms.
## Termination
If you use the software in violation of these terms, such use is not licensed, and your license will automatically terminate. If the licensor provides you with a notice of your violation, and you cease all violation of this license no later than 30 days after you receive that notice, your license will be reinstated retroactively. However, if you violate these terms after such reinstatement, any additional violation of these terms will cause your license to terminate automatically and permanently.
## No Liability
As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim.
## Definitions
The "licensor" is the entity offering these terms.
The "software" is the software the licensor makes available under these terms, including any portion of it.
"You" refers to the individual or entity agreeing to these terms.
"Your company" is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. Control means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect.
"Your license" is the license granted to you for the software under these terms.
"Use" means anything you do with the software requiring your license.
"Trademark" means trademarks, service marks, and similar rights.
+121 -22
View File
@@ -1,8 +1,14 @@
# Fallout 2 Community Edition
Fallout 2 Community Edition is a fully working re-implementation of Fallout 2, with the same original gameplay, engine bugfixes, and some quality of life improvements, that works (mostly) hassle-free on multiple platforms. This is a fork of the original project, which isn't getting regular updates.
Popular Fallout 2 total conversion mods are partially supported. Original versions of Nevada and Sonora (that do not rely on extended features provided by Sfall) work. [Fallout 2 Restoration Project](https://github.com/BGforgeNet/Fallout2_Restoration_Project), [Fallout Et Tu](https://github.com/rotators/Fo1in2) and [Olympus 2207](https://olympus2207.com) are not yet supported. Other mods (particularly Resurrection and Yesterday) are not tested.
There is also [Fallout Community Edition](https://github.com/alexbatalov/fallout1-ce) (not affiliated with this fork).
## Installation
You must own the game to play. Purchase your copy on [GOG](https://www.gog.com/game/fallout_2) or [Steam](https://store.steampowered.com/app/38410). Download latest build or build from source.
You must own the game to play. Purchase your copy on [GOG](https://www.gog.com/game/fallout_2), [Epic Games](https://store.epicgames.com/p/fallout-2) or [Steam](https://store.steampowered.com/app/38410). Download latest [release](https://github.com/fallout2-ce/fallout2-ce/releases) or build from source.
### Windows
@@ -12,14 +18,16 @@ Download and copy `fallout2-ce.exe` to your `Fallout2` folder. It serves as a dr
- Use Windows installation as a base - it contains data assets needed to play. Copy `Fallout2` folder somewhere, for example `/home/john/Desktop/Fallout2`.
- Download and copy `fallout2-ce` to this folder.
- Fix permissions (GitHub artifacts issue):
- Alternatively you can extract the needed files from the GoG installer:
```console
$ chmod a+x /home/john/Desktop/Fallout2/fallout2-ce
$ sudo apt install innoextract
$ innoextract ~/Downloads/setup_fallout2_2.1.0.18.exe -I app
$ mv app Fallout2
```
- Download and copy `fallout2-ce` to this folder.
- Install [SDL2](https://libsdl.org/download-2.0.php):
```console
@@ -30,37 +38,128 @@ $ sudo apt install libsdl2-2.0-0
### macOS
> **NOTE**: macOS 11 or higher is required. The app is not universal. It should run on Apple Silicon under Rosetta 2, but I haven't tried it. The app is neither signed, nor notarized.
> **NOTE**: macOS 10.11 (El Capitan) or higher is required. Runs natively on Intel-based Macs and Apple Silicon.
- Use Windows installation as a base - it contains data assets needed to play. Copy `Fallout2` folder somewhere, for example `/Applications/Fallout2`.
- Alternatively you can use Fallout 2 from Macplay/The Omni Group as a base - you need to extract game assets from the original bundle. Mount CD/DMG, right click `Fallout 2` -> `Show Package Contents`, navigate to `Contents/Resources`. Copy `GameData` folder somewhere, for example `/Applications/Fallout2`.
- Or if you're a Terminal user and have Homebrew installed you can extract the needed files from the GoG installer:
```console
$ brew install innoextract
$ innoextract ~/Downloads/setup_fallout2_2.1.0.18.exe -I app
$ mv app /Applications/Fallout2
```
- Download and copy `fallout2-ce.app` to this folder.
- Run `fallout2-ce.app`.
- When running for the first time, macOS will complain that the app is not signed and you'll be present two options - `Move to bin`, and `Cancel`. Click `Cancel`, open `System Preferences`, go to `Security & Privacy`. The pane at the bottom will say `fallout2-ce was blocked from use because it is not from an identified developer`. Click `Open Anyway`. Confirm once again. Alternatively you can remove quarantine attribute from terminal:
### Android
```console
$ xattr -d com.apple.quarantine /Applications/Fallout2/fallout2-ce.app
> **NOTE**: Fallout 2 was designed with mouse in mind. There are many controls that require precise cursor positioning, which is not possible with fingers. Current control scheme resembles trackpad usage:
- One finger moves mouse cursor around.
- Tap one finger for left mouse click.
- Tap two fingers for right mouse click (switches mouse cursor mode).
- Move two fingers to scroll current view (map view, worldmap view, inventory scrollers).
> **NOTE**: From Android standpoint release and debug builds are different apps. Both apps require their own copy of game assets and have their own savegames. This is intentional. As a gamer just stick with release version and check for updates.
- Use Windows installation as a base - it contains data assets needed to play. Copy `Fallout2` folder to your device, for example to `Downloads`. You need `master.dat`, `critter.dat`, `patch000.dat`, and `data` folder. Watch for file names - keep (or make) them lowercased (see [Configuration](#configuration)).
- Download `fallout2-ce.apk` and copy it to your device. Open it with file explorer, follow instructions (install from unknown source).
- When you run the game for the first time it will immediately present file picker. Select the folder from the first step. Wait until this data is copied. A loading dialog will appear, just wait for about 30 seconds. If you're installing total conversion mod or localized version with a large number of unpacked resources in `data` folder it can take up to 20 minutes. Once copied, the game will start automatically.
### iOS
> **NOTE**: See Android note on controls.
- Download `fallout2-ce.ipa`. Use sideloading applications ([AltStore](https://altstore.io/) or [Sideloadly](https://sideloadly.io/)) to install it to your device. Alternatively you can always build from source with your own signing certificate.
- Run the game once. You'll see error message saying "Couldn't find/load text fonts". This step is needed for iOS to expose the game via File Sharing feature.
- Use Finder (macOS Catalina and later) or iTunes (Windows and macOS Mojave or earlier) to copy `master.dat`, `critter.dat`, `patch000.dat`, and `data` folder to "Fallout 2" app ([how-to](https://support.apple.com/HT210598)). Watch for file names - keep (or make) them lowercased (see [Configuration](#configuration)).
### Browser
> **NOTE**: WebAssebly build with emscripten
```
docker run --rm -v $(pwd):/src emscripten/emsdk:3.1.74 sh -c 'git config --global --add safe.directory "*" && mkdir -p build && cd build && emcmake cmake ../ -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain/Emscripten.cmake && emmake make'
```
- Demo available at https://github.com/ololoken/fallout2-ce-ems.git
## Configuration
The main configuration file is `fallout2.cfg`. There are several important settings you might need to adjust for your installation. Depending on your Fallout distribution main game assets `master.dat`, `critter.dat`, `patch000.dat`, and `data` folder might be either all lowercased, or all uppercased. You can either update `master_dat`, `critter_dat`, `master_patches` and `critter_patches` settings to match your file names, or rename files to match entries in your `fallout2.cfg`.
The `sound` folder (with `music` folder inside) might be located either in `data` folder, or be in the Fallout folder. Update `music_path1` setting to match your hierarchy, usually it's `data/sound/music/` or `sound/music/`. Make sure it matches your path exactly (so it might be `SOUND/MUSIC/` if you've installed Fallout from CD). Music files themselves (with `ACM` extension) should be all uppercased, regardless of `sound` and `music` folders.
The second configuration file is `f2_res.ini`. Use it to change game window size, enable/disable fullscreen mode and configure IFACE settings (the control bar at the bottom of the game screen).
```ini
[MAIN]
SCR_WIDTH=1280
SCR_HEIGHT=720
WINDOWED=1 ; 0 = fullscreen
SCALE_2X=1 ; 0 = original scale, 1 = 2x - requires increasing the minimum resolution from 640x480 to 1280x960.
[IFACE]
; if IFACE_BAR_MODE=0 - the bottom of the map view window sits at the top of the IFACE Bar.
; if IFACE_BAR_MODE=1 - the bottom of the map view window extends to the base of the screen and is overlapped by the IFACE Bar.
IFACE_BAR_MODE=0
;if IFACE_BAR_SIDE_ART=0 - Black, No Iface-bar side art used.
;if IFACE_BAR_SIDE_ART=1 - Metal (grey) look Iface-bar side art used.
;if IFACE_BAR_SIDE_ART=2 - Leather look Iface-bar side art used.
;if IFACE_BAR_SIDE_ART=3-6 - Alternative Metal look Iface-bar side art used.
;if IFACE_BAR_SIDE_ART=7 - Alternative Leather look Iface-bar side art used.
;if IFACE_BAR_SIDE_ART=8 - Metal (brown) look Iface-bar side art used.
IFACE_BAR_SIDE_ART=2
;if IFACE_BAR_SIDES_ORI=0 - Iface-bar side graphics extend from the Iface-Bar to the Screen edges.
;if IFACE_BAR_SIDES_ORI=1 - Iface-bar side graphics extend from the Screen edges to the Iface-Bar.
IFACE_BAR_SIDES_ORI=0
;This will increase the width of the interface bar expanding the area used to display text.
;if IFACE_BAR_WIDTH=640 - Interface bar will remain at it's original width.
;if IFACE_BAR_WIDTH=800 - Interface bar will use 800pix wide asset from f2_res.dat.
;IFACE_BAR_WIDTH=640
```
Recommendations:
- **Desktops**: Use any size you see fit.
- **Tablets**: Set these values to logical resolution of your device, for example iPad Pro 11 is 1668x2388 (pixels), but it's logical resolution is 834x1194 (points).
- **Mobile phones**: Set height to 480, calculate width according to your device screen (aspect) ratio, for example Samsung S21 is 20:9 device, so the width should be 480 * 20 / 9 = 1067.
In time this stuff will receive in-game interface, right now you have to do it manually. For a sample f2_res.ini configuration file, containing all currently working settings use this link: [f2_res.ini](https://raw.githubusercontent.com/fallout2-ce/fallout2-ce/refs/heads/mainmenu/files/f2_res.ini)
*Note*: use of the IFACE_BAR settings requires the f2_res.dat file, which contains graphical assets. Various versions are available, but one compatible with the above f2_res.ini be found here: [f2_res.dat](https://github.com/fallout2-ce/fallout2-ce/raw/refs/heads/mainmenu/files/f2_res.dat)
The third configuration file is `ddraw.ini` (part of Sfall). There are dozens of options that adjust or override engine behaviour and gameplay mechanics. This file is intended for modders and advanced users.
For a sample ddraw.ini configuration file, containing all currently working settings use this link: [ddraw.ini](https://raw.githubusercontent.com/fallout2-ce/fallout2-ce/refs/heads/main/files/ddraw.ini)
## Quality of life benefits over vanilla Fallout
* High resolution support
* Increased pathfinding nodes 5x for more accurate pathfinding
* Ctrl-click to quickly move items when bartering, looting, or stealing
* _a_ to select "all" when selecting item quantity
* _a_ to `Take All` when looting
* When bartering, caps default to the right amount to balance the trade (if possible)
* Music continues playing between maps (requires config)
* Auto open doors (requires config)
## Contributing
For now there are three major areas.
Integrating Sfall goodies is the top priority. Quality of life updates are OK too. Please no large scale refactorings at this time as we need to reconcile changes from Reference Edition, which will make this process slow and error-prone. In any case open up an issue with your suggestion or to notify other people that something is being worked on.
### Intergrating Sfall
### Integrating Sfall
There are literally hundreds if not thousands of fixes and features in sfall. I guess not all of them are needed in Community Edition, but for the sake of compatibility with big mods out there, let's integrate them all.
### SDL
## License
Migrate DirectX stuff to SDL. This is the shortest path to native Linux version.
### Prepare to 64-bit
Modern macOS requires apps to be 64-bit, so even if we have SDL, the scripting part of the game will not work, because of builtin SSL interpreter. It stores pointers (both functions and variables) as 32-bit integers, so 64-bit pointers will not fit into stack. Since the stack is shared for both instructions and data, it needs some attention.
## Legal & License
See [Fallout 2 Reference Edition](https://github.com/alexbatalov/fallout2-re). Same conditions apply until the source code in this repository is changed significantly.
The source code is this repository is available under the [Sustainable Use License](LICENSE.md).
+48
View File
@@ -0,0 +1,48 @@
# Get author name
execute_process(
COMMAND git log -1 --pretty=format:%an
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE AUTHOR
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# Get current branch
execute_process(
COMMAND git branch --show-current
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE BRANCH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# Get hash of the latest commit
execute_process(
COMMAND git log --pretty=format:%h -n 1
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# Get last tag
execute_process(
COMMAND git describe --tags --abbrev=0
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE LATEST_TAG
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# Get date of the latest commit
execute_process(
COMMAND git log -1 --date=format:"%b %d %Y %H:%M:%S" --pretty=format:%cd
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE DATE
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# Define a variable for CI_BUILD
set(CI_BUILD 0)
# Create git_version.h file
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/src/platform/git_version.h.in
${CMAKE_CURRENT_SOURCE_DIR}/src/platform/git_version.h
)
+18
View File
@@ -0,0 +1,18 @@
set( CMAKE_SYSTEM_NAME "Emscripten" )
add_compile_definitions("DEBUG=$<CONFIG:Debug>")
set( CMAKE_C_COMPILER "emcc" )
set( CMAKE_CXX_COMPILER "em++" )
set( EXECUTABLE_NAME fallout2-ce.js )
option(OPTION_WASM_64 "Build wasm64 module" OFF)
option(OPTION_WASM_JSPI "Build wasm with JSPI support instead of asyncify module" OFF)
# Touch toolchain variable to suppress "unused variable" warning.
# This happens if CMake is invoked with the same command line the second time.
if(CMAKE_TOOLCHAIN_FILE)
endif()
-4
View File
@@ -1,4 +0,0 @@
set( CMAKE_SYSTEM_NAME "Linux" )
set( CMAKE_SYSTEM_PROCESSOR "i386" )
set( CMAKE_C_FLAGS "-m32" )
set( CMAKE_CXX_FLAGS "-m32" )
+208
View File
@@ -0,0 +1,208 @@
;sfall configuration settings for Fallout 2 CE
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[Main]
;Set to one to hide areas outside map bounds when using higher than 640x480 resolution, and to zero to disable
;EnableHighResolutionStencil=1
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[Misc]
;Uncomment these lines to change the timers of how many days after the game starts Hakunin dream sequences will occur
;MovieTimer_artimer1=5000
;MovieTimer_artimer2=5000
;MovieTimer_artimer3=5000
;MovieTimer_artimer4=5000
;To start a new game somewhere other than artemple.map, uncomment the next line and set it to the map you want to load
;StartingMap=V13ent.map
;To change the 'FALLOUT II v1.02d' version string on the main menu, uncomment the next line
;You can use up to 2 %d's in this if you want to include Fallout's version number somewhere
;VersionString=FALLOUT II v1.02d
;To use a config file other than fallout2.cfg, uncomment the next line and add the name of your new file
;ConfigFile=
;To use a patch file other than patch000.dat, uncomment the next line and add your new file name
;If you want to load multiple patch files (up to 1000) at once, you can include a %d in the file name (sprintf syntax)
;PatchFile=patch%03d.dat
;Set to 1 to allow using the caret character '^' in dialog msg files to specify alternative text in dialogue based on the player's gender
;The text must be enclosed in angle brackets (example: <MaleText^FemaleText>)
;DialogGenderWords=0
;To change the default and starting player models, uncomment the next four lines.
;The default models can also be changed in-game via script
;MaleStartModel=hmjmps
;MaleDefaultModel=hmjmps
;FemaleStartModel=hfjmps
;FemaleDefaultModel=hfjmps
;To change the starting year, month or day, uncomment the next 3 lines
;Both StartMonth and StartDay are 0-indexed (i.e. 0 is January or the first day of a month)
;StartYear=2241
;StartMonth=01
;StartDay=01
;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=1
;Choose the damage formula used to calculate combat damage.
;Don't set this to anything other than 0 unless another mod you're using explicitly tells you to!
;0 - Fallout default
;1 - Glovz's Damage Fix
;2 - Glovz's Damage Fix with Damage Multiplier tweak
;5 - Haenlomal's Yet Another Ammo Mod
;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 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)
;Set to 3 to use a new format CriticalOverrides.ini file, with preadded bug fixes
;If the ExtraKillTypes option is enabled, this should be set to 3, with containing entries for any new types
;Must be non-zero to use the edit/get/reset_critical script functions
;OverrideCriticalTable=2
;Set to 1 to get notification of karma changes in the notification window
DisplayKarmaChanges=0
;Set to 1 to skip the 3 opening movies
;Set to 2 to also skip the splash screen
SkipOpeningMovies=0
;Change the Skilldex cursor FRM numbers
;Default is 293 for all skills
Lockpick=293
Steal=293
Traps=293
FirstAid=293
Doctor=293
Science=293
Repair=293
;Uncomment these lines to control the premade characters offered when starting a new game
;Multiple options should be separated by commas, and there must be the same number of entries in both lines
;Each name in PremadePaths is limited to 11 characters
;PremadePaths=combat,diplomat,stealth
;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.
;CityRepsList=0:5001,2:5003,3:5004,4:5005,5:5006,6:5007,7:5008,8:5009,10:5011,11:5012,60:1640
;Set this to a valid path to save a copy of the console contents
;ConsoleOutputPath=console.txt
;Set to 1 to add additional pages of save slots !!! can be implemented !!!
;ExtraSaveSlots=1
;To use more than one save slot for quick saving (F6 key) without picking a slot beforehand, set the next two lines
;Quick save will cyclically overwrite saves from the first slot on the specified page to the last slot on the n-th page
;AutoQuickSave sets how many pages you want to use for quick saving (valid range: 1..10)
;Set to 0 to disable
AutoQuickSave=0
;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
;Set to 1 to fix the bug that caused bonus HtH damage to not be applied correctly.
BonusHtHDamageFix=1
;Set to 1 to display additional points of damage from Bonus HtH/Ranged Damage perks in the inventory
;DisplayBonusDamage=1
;Set to 1 to remove the limits that stop the game from rolling critical successes/failures in the first few days of game time
RemoveCriticalTimelimits=0
;Change the colour of the font used on the main menu for the Fallout/sfall version string and copyright text
;It's the last byte ('3C' by default) that picks the colour used. The first byte supplies additional flags for this option
;1 - change the colour for the version string only
;2 - underline text for the version string
;4 - use monospace font for the version string
;MainMenuFontColour=0x000055
;Change the colour of the font used on the main menu for the button text
;MainMenuBigFontColour=0x3C
;Uncomment the next four lines to move the main menu buttons and credit text (the 'Copyright(c)' line on the main menu)
;MainMenuOffsetX=392
;MainMenuOffsetY=26
;MainMenuCreditsOffsetX=0
;MainMenuCreditsOffsetY=0
;These options modify the bullet distribution of burst attacks
;All the bullets are divided into three groups: center, left, and right
;These 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 center group, and the remaining are divided equally to the left and right sides
;TargetMult/Div set the ratio of how many bullets in the center group will attack the primary target directly
;Multiplier values are capped at divisor values
;ComputeSpray_CenterMult=1
;ComputeSpray_CenterDiv=3
;ComputeSpray_TargetMult=1
;ComputeSpray_TargetDiv=2
;Set to 1 to make explosions and projectiles emit light
;ExplosionsEmitLight=1
;Uncomment these lines to change explosives damage. DmgMax can be set to 9999 at max, and DmgMin is capped at DmgMax
;Dynamite_DmgMax=50
;Dynamite_DmgMin=30
;PlasticExplosive_DmgMax=80
;PlasticExplosive_DmgMin=40
;To add additional game msg files, uncomment the next line and set a comma delimited list of filenames without .msg extension
;By default, the files will have consecutive numbers assigned beginning with 0
;You can use the syntax 'filename:number' to manually assign numbers to specific msg files, with each pair separated by a comma
;If a file after the specified pair does not have a number assigned, it will have the next consecutive number from the last pair
;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
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
; Configuration ini files
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;To change the path and filename of the critical table file, uncomment the next line
;OverrideCriticalFile=config\CriticalOverrides.ini
;To add additional books to the game, uncomment the next line and point to a file containing book information
;See the Books.ini in the modders pack for an example file
;BooksFile=sfall\Books.ini
;Point to an ini file containing elevator data
;ElevatorsFile=config\Elevators.ini
;Allows you to change the requirements and effects of unarmed attacks
;See the Unarmed.ini in the modders pack for an example file
;UnarmedFile=sfall\Unarmed.ini
;To change some engine parameters for the game mechanics, uncomment the next line
;TweaksFile=sfall\Tweaks.ini
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[Scripts]
;Comma-separated list of masked paths to load global scripts from
;Only use single backslash \ as the directory separator
;Paths outside of scripts folder are supported
;GlobalScriptPaths=scripts\gl_*.int,scripts\sfall\gl*.int
;Uncomment the option to specify an additional directory for ini files used by scripts
;The game will search for ini files first relative to this directory and then relative to the root directory if not found
;The path length is limited to 61 characters
;IniConfigFolder=mods\iniConfigs
BIN
View File
Binary file not shown.

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