Compare commits

...
Author SHA1 Message Date
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
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 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
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
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
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
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
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
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
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
Jan Ĺ imek 28c3908862 Sfall: add support for loading mods / mod_order.txt 2024-06-04 17:07:17 +02:00
Alexander V. Nikolaev d843a662b3 Ensure fileFindFirst path is resolved 2024-05-05 16:08:39 +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
92 changed files with 2145 additions and 3960 deletions
+96
View File
@@ -0,0 +1,96 @@
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: ololoken/fallout2-ce-ems
ref: 0764f9fdd0abf27bd9b0d3997ca0a8e61f380058
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
sed -i 's/Starting wasm module/Starting wasm module ${{github.event.pull_request.head.sha || github.sha }}/' src/pages/Launcher.tsx
npm run build
env:
SITE_BASE: ${{ steps.set-path.outputs.SITE_BASE }}
- 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
- 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 }}
+204 -74
View File
@@ -40,8 +40,26 @@ jobs:
- name: Clone
uses: actions/checkout@v4
- name: Show clang-format version
run: |
clang-format --version
- name: clang-format
run: find src -type f -name \*.cc -o -name \*.h | xargs clang-format --dry-run --Werror
run: |
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 — skipping job."
exit 0
fi
echo "skip-formatting label not found — continuing job."
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
@@ -63,7 +81,7 @@ jobs:
uses: actions/cache@v4
with:
path: os/android/app/.cxx
key: android-cmake-v1
key: android-cmake-v2
- name: Setup signing config
if: env.KEYSTORE_FILE_BASE64 != '' && env.KEYSTORE_PROPERTIES_FILE_BASE64 != ''
@@ -80,17 +98,21 @@ jobs:
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/app-debug.apk
path: os/android/app/build/outputs/apk/debug/fallout2-ce.apk
retention-days: 7
ios:
name: iOS
runs-on: macos-12
runs-on: macos-14
steps:
- name: Clone
@@ -99,44 +121,33 @@ jobs:
- name: Cache cmake build
uses: actions/cache@v4
with:
path: build
key: ios-cmake-v2
path: out
key: ios-cmake-v5
- 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
cmake --preset ios
- name: Build
run: |
cmake \
--build build \
--config RelWithDebInfo \
-j $(sysctl -n hw.physicalcpu) \
# EOL
cmake --build --preset ios-debug
- name: Pack
run: |
cd build
cpack -C RelWithDebInfo
cd out/build/ios
cpack -C Debug
- name: Upload
uses: actions/upload-artifact@v4
with:
name: fallout2-ce.ipa
path: build/fallout2-ce.ipa
path: out/build/ios/fallout2-ce.ipa
retention-days: 7
linux:
name: Linux (${{ matrix.arch }})
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
strategy:
fail-fast: false
@@ -154,7 +165,6 @@ jobs:
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)
@@ -166,44 +176,103 @@ jobs:
- name: Cache cmake build
uses: actions/cache@v4
with:
path: build
key: linux-${{ matrix.arch }}-cmake-v1
path: out
key: linux-${{ matrix.arch }}-cmake-v3
- name: Configure (x86)
if: matrix.arch == 'x86'
- name: Configure
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
cmake --preset linux-${{ matrix.arch }}-debug
- name: Build
run: |
cmake \
--build build \
-j $(nproc) \
# EOL
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: build/fallout2-ce
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-11
runs-on: macos-14
steps:
- name: Clone
@@ -212,35 +281,27 @@ jobs:
- name: Cache cmake build
uses: actions/cache@v4
with:
path: build
key: macos-cmake-v4
path: out
key: macos-cmake-v6
- name: Configure
run: |
cmake \
-B build \
-G Xcode \
-D CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY='' \
# EOL
cmake --preset macos
- name: Build
run: |
cmake \
--build build \
--config RelWithDebInfo \
-j $(sysctl -n hw.physicalcpu) \
# EOL
cmake --build --preset macos-debug
- name: Pack
run: |
cd build
cpack -C RelWithDebInfo
cd out/build/macos
cpack -C Debug
- name: Upload
uses: actions/upload-artifact@v4
with:
name: fallout2-ce-macos.dmg
path: build/Fallout II Community Edition.dmg
path: out/build/macos/Fallout II Community Edition.dmg
retention-days: 7
windows:
@@ -264,27 +325,96 @@ jobs:
- name: Cache cmake build
uses: actions/cache@v4
with:
path: build
key: windows-${{ matrix.arch }}-cmake-v1
path: out
key: windows-${{ matrix.arch }}-cmake-v2
- name: Configure
run: |
cmake \
-B build \
-G "Visual Studio 16 2019" \
-A ${{ matrix.generator-platform }} \
# EOL
cmake --preset windows-${{ matrix.arch }}
- name: Build
run: |
cmake \
--build build \
--config RelWithDebInfo \
# EOL
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: build/RelWithDebInfo/fallout2-ce.exe
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,33 @@
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"
git commit -am "đźš® Remove preview for closed PR #${{ github.event.pull_request.number }}"
git push
+1 -1
View File
@@ -59,7 +59,7 @@ jobs:
ios:
name: iOS
runs-on: macos-12
runs-on: macos-14
steps:
- name: Clone
+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
+66 -15
View File
@@ -6,10 +6,10 @@ set(EXECUTABLE_NAME fallout2-ce)
if(APPLE)
if(IOS)
set(CMAKE_OSX_DEPLOYMENT_TARGET "11" CACHE STRING "")
set(CMAKE_OSX_DEPLOYMENT_TARGET "12" CACHE STRING "")
set(CMAKE_OSX_ARCHITECTURES "arm64" CACHE STRING "")
else()
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.11" CACHE STRING "")
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13" CACHE STRING "")
set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64" CACHE STRING "")
endif()
endif()
@@ -20,12 +20,17 @@ set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED YES)
set(CMAKE_CXX_EXTENSIONS NO)
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"
@@ -197,8 +202,6 @@ target_sources(${EXECUTABLE_NAME} PUBLIC
"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"
@@ -225,11 +228,11 @@ target_sources(${EXECUTABLE_NAME} PUBLIC
"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/vcr.cc"
"src/vcr.h"
"src/version.cc"
"src/version.h"
"src/widget.cc"
@@ -267,6 +270,8 @@ target_sources(${EXECUTABLE_NAME} PUBLIC
"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"
@@ -360,18 +365,64 @@ if(APPLE)
set(MACOSX_BUNDLE_BUNDLE_VERSION "1.3.0")
endif()
add_subdirectory("third_party/fpattern")
target_link_libraries(${EXECUTABLE_NAME} ${FPATTERN_LIBRARY})
target_include_directories(${EXECUTABLE_NAME} PRIVATE ${FPATTERN_INCLUDE_DIR})
if((NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux") AND (NOT ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") AND (NOT ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD"))
add_subdirectory("third_party/zlib")
add_subdirectory("third_party/sdl2")
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()
find_package(ZLIB)
find_package(SDL2)
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::fpattern)
target_link_libraries(${EXECUTABLE_NAME} ${ZLIB_LIBRARIES})
target_include_directories(${EXECUTABLE_NAME} PRIVATE ${ZLIB_INCLUDE_DIRS})
+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",
"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": []
}
]
}
+25 -1
View File
@@ -8,7 +8,7 @@ There is also [Fallout Community Edition](https://github.com/alexbatalov/fallout
## 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 [release](https://github.com/alexbatalov/fallout2-ce/releases) or build from source. You can also check latest [debug](https://github.com/alexbatalov/fallout2-ce/actions) build intended for testers.
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/alexbatalov/fallout2-ce/releases) or build from source. You can also check latest [debug](https://github.com/alexbatalov/fallout2-ce/actions) build intended for testers.
### Windows
@@ -18,6 +18,14 @@ 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`.
- Alternatively you can extract the needed files from the GoG installer:
```console
$ 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):
@@ -36,6 +44,14 @@ $ sudo apt install libsdl2-2.0-0
- 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`.
@@ -66,6 +82,14 @@ $ sudo apt install libsdl2-2.0-0
- 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`.
+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" )
File diff suppressed because it is too large Load Diff
+20 -7
View File
@@ -463,7 +463,7 @@ void _show_damage_to_object(Object* defender, int damage, int flags, Object* wea
if ((flags & DAM_DEAD) != 0) {
// TODO: Get rid of casts.
animationRegisterCallbackForced(defender, (void*)anim, (AnimationCallback*)_show_death, -1);
animationRegisterCallbackForced(defender, (void*)(uintptr_t)anim, (AnimationCallback*)_show_death, -1);
}
}
@@ -1030,7 +1030,9 @@ int _action_climb_ladder(Object* a1, Object* a2)
reg_anim_begin(animationRequestOptions);
int tile = tileGetTileInDirection(a2->tile, ROTATION_SE, 1);
if (actionPoints != -1 || objectGetDistanceBetween(a1, a2) < 5) {
int walkDistance = 5;
configGetInt(&gSfallConfig, SFALL_CONFIG_MISC_KEY, SFALL_CONFIG_USE_WALK_DISTANCE, &walkDistance);
if (actionPoints != -1 || objectGetDistanceBetween(a1, a2) < walkDistance) {
animationRegisterMoveToTile(a1, tile, a2->elevation, actionPoints, 0);
} else {
animationRegisterRunToTile(a1, tile, a2->elevation, actionPoints, 0);
@@ -1097,7 +1099,9 @@ int _action_use_an_item_on_object(Object* user, Object* targetObj, Object* item)
reg_anim_begin(animationRequestOptions);
if (actionPoints != -1 || objectGetDistanceBetween(user, targetObj) < 5) {
int walkDistance = 5;
configGetInt(&gSfallConfig, SFALL_CONFIG_MISC_KEY, SFALL_CONFIG_USE_WALK_DISTANCE, &walkDistance);
if (actionPoints != -1 || objectGetDistanceBetween(user, targetObj) < walkDistance) {
animationRegisterMoveToObject(user, targetObj, actionPoints, 0);
} else {
animationRegisterRunToObject(user, targetObj, -1, 0);
@@ -1167,12 +1171,15 @@ int actionPickUp(Object* critter, Object* item)
}
}
int walkDistance = 5;
configGetInt(&gSfallConfig, SFALL_CONFIG_MISC_KEY, SFALL_CONFIG_USE_WALK_DISTANCE, &walkDistance);
if (isInCombat()) {
reg_anim_begin(ANIMATION_REQUEST_RESERVED);
animationRegisterMoveToObject(critter, item, critter->data.critter.combat.ap, 0);
} else {
reg_anim_begin(critter == gDude ? ANIMATION_REQUEST_RESERVED : ANIMATION_REQUEST_UNRESERVED);
if (objectGetDistanceBetween(critter, item) >= 5) {
if (objectGetDistanceBetween(critter, item) >= walkDistance) {
animationRegisterRunToObject(critter, item, -1, 0);
} else {
animationRegisterMoveToObject(critter, item, -1, 0);
@@ -1272,13 +1279,16 @@ int _action_loot_container(Object* critter, Object* container)
}
}
int walkDistance = 5;
configGetInt(&gSfallConfig, SFALL_CONFIG_MISC_KEY, SFALL_CONFIG_USE_WALK_DISTANCE, &walkDistance);
if (isInCombat()) {
reg_anim_begin(ANIMATION_REQUEST_RESERVED);
animationRegisterMoveToObject(critter, container, critter->data.critter.combat.ap, 0);
} else {
reg_anim_begin(critter == gDude ? ANIMATION_REQUEST_RESERVED : ANIMATION_REQUEST_UNRESERVED);
if (objectGetDistanceBetween(critter, container) < 5) {
if (objectGetDistanceBetween(critter, container) < walkDistance) {
animationRegisterMoveToObject(critter, container, -1, 0);
} else {
animationRegisterRunToObject(critter, container, -1, 0);
@@ -1476,13 +1486,16 @@ int actionUseSkill(Object* user, Object* target, int skill)
}
}
int walkDistance = 5;
configGetInt(&gSfallConfig, SFALL_CONFIG_MISC_KEY, SFALL_CONFIG_USE_WALK_DISTANCE, &walkDistance);
if (isInCombat()) {
reg_anim_begin(ANIMATION_REQUEST_RESERVED);
animationRegisterMoveToObject(performer, target, performer->data.critter.combat.ap, 0);
} else {
reg_anim_begin(user == gDude ? ANIMATION_REQUEST_RESERVED : ANIMATION_REQUEST_UNRESERVED);
if (target != gDude) {
if (objectGetDistanceBetween(performer, target) >= 5) {
if (objectGetDistanceBetween(performer, target) >= walkDistance) {
animationRegisterRunToObject(performer, target, -1, 0);
} else {
animationRegisterMoveToObject(performer, target, -1, 0);
@@ -1504,7 +1517,7 @@ int actionUseSkill(Object* user, Object* target, int skill)
animationRegisterAnimate(performer, anim, -1);
// TODO: Get rid of casts.
animationRegisterCallback3(performer, target, (void*)skill, (AnimationCallback3*)_obj_use_skill_on, -1);
animationRegisterCallback3(performer, target, (void*)(uintptr_t)skill, (AnimationCallback3*)_obj_use_skill_on, -1);
return reg_anim_end();
}
+9 -11
View File
@@ -33,7 +33,6 @@
#include "text_object.h"
#include "tile.h"
#include "trait.h"
#include "vcr.h"
#include "worldmap.h"
namespace fallout {
@@ -305,8 +304,10 @@ static bool _anim_in_bk = false;
// 0x530014
static AnimationSad gAnimationSads[ANIMATION_SAD_LIST_CAPACITY];
#define PATH_NODE_CAPACITY 10000
// 0x542FD4
static PathNode gClosedPathNodeList[2000];
static PathNode gClosedPathNodeList[PATH_NODE_CAPACITY];
// 0x54CC14
static AnimationSequence gAnimationSequences[32];
@@ -315,7 +316,7 @@ static AnimationSequence gAnimationSequences[32];
static unsigned char gPathfinderProcessedTiles[5000];
// 0x562B9C
static PathNode gOpenPathNodeList[2000];
static PathNode gOpenPathNodeList[PATH_NODE_CAPACITY];
// 0x56C7DC
static int gAnimationDescriptionCurrentIndex;
@@ -1741,7 +1742,7 @@ int pathfinderFindPath(Object* object, int from, int to, unsigned char* rotation
gOpenPathNodeList[0].estimate = _tile_idistance(from, to);
gOpenPathNodeList[0].cost = 0;
for (int index = 1; index < 2000; index += 1) {
for (int index = 1; index < PATH_NODE_CAPACITY; index += 1) {
gOpenPathNodeList[index].tile = -1;
}
@@ -1789,7 +1790,8 @@ int pathfinderFindPath(Object* object, int from, int to, unsigned char* rotation
closedPathNodeListLength += 1;
if (closedPathNodeListLength == 2000) {
if (closedPathNodeListLength == PATH_NODE_CAPACITY) {
// Search path node capacity exhausted
return 0;
}
@@ -1810,7 +1812,7 @@ int pathfinderFindPath(Object* object, int from, int to, unsigned char* rotation
}
int v25 = 0;
for (; v25 < 2000; v25++) {
for (; v25 < PATH_NODE_CAPACITY; v25++) {
if (gOpenPathNodeList[v25].tile == -1) {
break;
}
@@ -1818,7 +1820,7 @@ int pathfinderFindPath(Object* object, int from, int to, unsigned char* rotation
openPathNodeListLength += 1;
if (openPathNodeListLength == 2000) {
if (openPathNodeListLength == PATH_NODE_CAPACITY) {
return 0;
}
@@ -3036,10 +3038,6 @@ void _dude_fidget()
return;
}
if (vcrGetState() != VCR_STATE_TURNED_OFF) {
return;
}
if ((gDude->flags & OBJECT_HIDDEN) != 0) {
return;
}
+1 -1
View File
@@ -92,7 +92,7 @@ typedef enum AnimationType {
LAST_SF_DEATH_ANIM = ANIM_FALL_FRONT_BLOOD_SF,
} AnimationType;
#define FID_ANIM_TYPE(value) ((value)&0xFF0000) >> 16
#define FID_ANIM_TYPE(value) ((value) & 0xFF0000) >> 16
// Signature of animation callback accepting 2 parameters.
typedef int(AnimationCallback)(void* a1, void* a2);
+3 -3
View File
@@ -525,7 +525,7 @@ int artCopyFileName(int objectType, int id, char* dest)
{
ArtListDescription* ptr;
if (objectType < OBJ_TYPE_ITEM && objectType >= OBJ_TYPE_COUNT) {
if (objectType < OBJ_TYPE_ITEM || objectType >= OBJ_TYPE_COUNT) {
return -1;
}
@@ -633,11 +633,11 @@ char* artBuildFilePath(int fid)
v5 = (v2 & 0xF000) >> 12;
type = FID_TYPE(v2);
if (v3 >= gArtListDescriptions[type].fileNamesLength) {
if (type < OBJ_TYPE_ITEM || type >= OBJ_TYPE_COUNT) {
return nullptr;
}
if (type < OBJ_TYPE_ITEM || type >= OBJ_TYPE_COUNT) {
if (v3 >= gArtListDescriptions[type].fileNamesLength) {
return nullptr;
}
-8
View File
@@ -95,10 +95,6 @@ static void audioEngineMixin(void* userData, Uint8* stream, int length)
bool audioEngineInit()
{
if (SDL_InitSubSystem(SDL_INIT_AUDIO) == -1) {
return false;
}
SDL_AudioSpec desiredSpec;
desiredSpec.freq = 22050;
desiredSpec.format = AUDIO_S16;
@@ -122,10 +118,6 @@ void audioEngineExit()
SDL_CloseAudioDevice(gAudioEngineDeviceId);
gAudioEngineDeviceId = -1;
}
if (SDL_WasInit(SDL_INIT_AUDIO)) {
SDL_QuitSubSystem(SDL_INIT_AUDIO);
}
}
void audioEnginePause()
+2
View File
@@ -320,6 +320,7 @@ void automapShow(bool isInGame, bool isUsingScanner)
int oldFont = fontGetCurrent();
fontSetCurrent(101);
touch_set_touchscreen_mode(true);
int automapWindowX = (screenGetWidth() - AUTOMAP_WINDOW_WIDTH) / 2;
int automapWindowY = (screenGetHeight() - AUTOMAP_WINDOW_HEIGHT) / 2;
@@ -492,6 +493,7 @@ void automapShow(bool isInGame, bool isUsingScanner)
windowDestroy(window);
fontSetCurrent(oldFont);
touch_set_touchscreen_mode(false);
}
// Renders automap in Map window.
+10 -10
View File
@@ -995,7 +995,7 @@ int characterEditorShow(bool isCreationMode)
}
} else if (characterEditorSelectedItem >= 61 && characterEditorSelectedItem < 79) {
if (gCharacterEditorIsCreationMode) {
_win_button_press_and_release(gCharacterEditorTagSkillBtns[gCharacterEditorIsCreationMode - 61]);
_win_button_press_and_release(gCharacterEditorTagSkillBtns[characterEditorSelectedItem - 61]);
windowRefresh(gCharacterEditorWindow);
} else {
characterEditorHandleAdjustSkillButtonPressed(keyCode);
@@ -1003,7 +1003,7 @@ int characterEditorShow(bool isCreationMode)
}
} else if (characterEditorSelectedItem >= 82 && characterEditorSelectedItem < 98) {
if (gCharacterEditorIsCreationMode) {
_win_button_press_and_release(gCharacterEditorOptionalTraitBtns[gCharacterEditorIsCreationMode - 82]);
_win_button_press_and_release(gCharacterEditorOptionalTraitBtns[characterEditorSelectedItem - 82]);
windowRefresh(gCharacterEditorWindow);
}
}
@@ -1018,7 +1018,7 @@ int characterEditorShow(bool isCreationMode)
}
} else if (characterEditorSelectedItem >= 61 && characterEditorSelectedItem < 79) {
if (gCharacterEditorIsCreationMode) {
_win_button_press_and_release(gCharacterEditorTagSkillBtns[gCharacterEditorIsCreationMode - 61]);
_win_button_press_and_release(gCharacterEditorTagSkillBtns[characterEditorSelectedItem - 61]);
windowRefresh(gCharacterEditorWindow);
} else {
characterEditorHandleAdjustSkillButtonPressed(keyCode);
@@ -1026,7 +1026,7 @@ int characterEditorShow(bool isCreationMode)
}
} else if (characterEditorSelectedItem >= 82 && characterEditorSelectedItem < 98) {
if (gCharacterEditorIsCreationMode) {
_win_button_press_and_release(gCharacterEditorOptionalTraitBtns[gCharacterEditorIsCreationMode - 82]);
_win_button_press_and_release(gCharacterEditorOptionalTraitBtns[characterEditorSelectedItem - 82]);
windowRefresh(gCharacterEditorWindow);
}
}
@@ -1877,7 +1877,7 @@ static void characterEditorWindowFree()
fontSetCurrent(gCharacterEditorOldFont);
if (gCharacterEditorIsCreationMode == 1) {
if (gCharacterEditorIsCreationMode) {
skillsSetTagged(gCharacterEditorTempTaggedSkills, 3);
traitsSetSelected(gCharacterEditorTempTraits[0], gCharacterEditorTempTraits[1]);
characterEditorSelectedItem = 0;
@@ -2366,7 +2366,7 @@ static void characterEditorDrawPcStats()
char formattedValueBuffer[16];
char stringBuffer[128];
if (gCharacterEditorIsCreationMode == 1) {
if (gCharacterEditorIsCreationMode) {
return;
}
@@ -2930,7 +2930,7 @@ static void characterEditorDrawSkills(int a1)
selectedSkill = characterEditorSelectedItem - EDITOR_FIRST_SKILL;
}
if (gCharacterEditorIsCreationMode == 0 && a1 == 0) {
if (!gCharacterEditorIsCreationMode && a1 == 0) {
buttonDestroy(gCharacterEditorSliderPlusBtn);
buttonDestroy(gCharacterEditorSliderMinusBtn);
gCharacterEditorSliderMinusBtn = -1;
@@ -4868,7 +4868,7 @@ static void characterEditorRestorePlayer()
}
}
if (gCharacterEditorIsCreationMode == 1) {
if (gCharacterEditorIsCreationMode) {
v3 -= gCharacterEditorIsCreationMode;
}
@@ -5373,7 +5373,7 @@ static void characterEditorDrawOptionalTraits()
double step;
double y;
if (gCharacterEditorIsCreationMode != 1) {
if (!gCharacterEditorIsCreationMode) {
return;
}
@@ -7250,7 +7250,7 @@ static int customKarmaFolderGetFrmId()
return entry.frmId;
}
}
return gCustomKarmaFolderDescriptions.end()->frmId;
return gCustomKarmaFolderDescriptions.back().frmId;
}
static void customTownReputationInit()

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