Compare commits

..
Author SHA1 Message Date
Vasilii Rogin a470bdc6af Enable workarounds only if address sanitizer is enabled 2026-01-25 12:03:13 +02:00
Vasilii Rogin 22ba94eca3 Merge remote-tracking branch 'origin/main' into delay_objects_deallocation 2026-01-25 11:58:04 +02:00
Vasilii Rogin 7e49ed8545 Check that script still exists 2026-01-25 11:57:47 +02:00
Vasilii Rogin 3249b7dc07 Merge pull request #276 from fallout2-ce/improvements_for_map_edge
Disable hi-res stencil if ignoreMapEdges is enabled
2026-01-25 10:37:23 +02:00
Vasilii Rogin f291f52a61 Merge pull request #275 from fallout2-ce/click_through_fix
Click through fix
2026-01-25 10:32:57 +02:00
Vasilii Rogin 4bc2ed5d0d Show message only once 2026-01-25 10:30:14 +02:00
Vasilii Rogin b6a522a065 Disable stencil on tile_hires_stencil_init 2026-01-25 10:28:40 +02:00
github-actions[bot] bbb01398ef chore: auto-format with clang-format 2026-01-20 18:11:36 +00:00
Vasilii Rogin fb5e1f9c07 Auto-disable stencil if gTileIgnoreMapEdges is enabled 2026-01-20 20:08:50 +02:00
Vasilii Rogin 625928265e Merge pull request #274 from JanSimek/ignore-map-edges
Ignore map edges
2026-01-20 20:03:56 +02:00
Jan Ĺ imek a6ccac2a58 Added IGNORE_MAP_EDGES configuration option to f2_res.ini 2026-01-19 19:23:50 +01:00
cambragol 19e72a5b6d Update inventory.cc
The block here prevents clicking triggering on window close.
2026-01-19 07:42:34 +09:00
cambragol 44f5477ee5 Update input.h
Define the global
2026-01-19 07:40:01 +09:00
cambragol 8d0587566f Update input.cc
Defined the global
2026-01-19 07:38:21 +09:00
cambragol 0ed3725124 Update game_mouse.cc
Adding block for mouse left mouse button up
2026-01-19 07:36:25 +09:00
Jan Ĺ imek 86787e2c97 correct SSL function names in comments 2026-01-18 21:46:20 +01:00
Vasilii Rogin f60b773ed4 Merge pull request #273 from fallout2-ce/add_cities_limit_fix_fallout2-ce
Add sfall CitiesLimitFix to fix Resurrection startup
2026-01-18 22:44:51 +02:00
Vasilii Rogin b6384ce8e9 Merge remote-tracking branch 'roginvs/add_cities_limit_fix' into add_cities_limit_fix_fallout2-ce 2026-01-18 20:11:20 +02:00
Vasilii Rogin 15aa1db286 Revert initialization order of gTownMapHotkeysFix 2026-01-18 20:09:17 +02:00
Vasilii Rogin 763169f33e Merge branch 'main' into add_cities_limit_fix 2026-01-18 19:57:07 +02:00
Vasilii Rogin 58b811f2ae Fix overlapping memory copy (#265) 2025-12-26 15:57:39 +02:00
Vasilii Rogin bfcfaa9540 Fix negative ammo for Mega Power Fist (#267)
* Add non-negative check for ammo

* Rename variables
2025-12-23 20:09:03 +02:00
github-actions[bot] 491806686b chore: auto-format with clang-format 2025-12-23 10:55:39 +00:00
Vasilii Rogin 245705c468 Update comment 2025-12-23 12:55:07 +02:00
github-actions[bot] 43c0b79f3f chore: auto-format with clang-format 2025-12-22 20:31:08 +00:00
Vasilii Rogin 216710f86c Delay object deallocation 2025-12-22 22:26:29 +02:00
Vasilii Rogin a478bad7fa Merge pull request #260 from fallout2-ce/allow_lower_mouse_sensivity
Allow lower mouse sensitivity
2025-09-11 18:21:15 +03:00
Vasilii Rogin 9a3ec752dd Fix typo 2025-09-09 20:45:03 +03:00
Vasilii Rogin f940766379 Allow 0.25-2.5 for mouse sensivity 2025-09-09 17:46:42 +03:00
Vasilii Rogin 87e1d1f11b Merge pull request #256 from fallout2-ce/ci_add_wait_for_deployment
Mark CI as done when preview is actually deployed
2025-09-08 08:04:44 +03:00
Vasilii Rogin 5d17e0ef89 Update deployment status AFTER website is actually deployed 2025-09-07 13:05:33 +03:00
Vasilii Rogin 2bf08228c5 Add step to ensure that deployment went well 2025-09-07 12:46:33 +03:00
Mike Klaas 571b43410d Fix crash during encounter (#254)
Initial report: https://github.com/BGforgeNet/Fallout2_Restoration_Project/issues/350, first fixed in sfall.

h/t @NovaRain for the fix!

Fixes #253
2025-08-26 08:36:43 -07:00
APAmk2 f0e6002df9 Merge pull request #252. SFall callbacks implementation. 2025-08-18 21:07:58 +04:00
APAMk2 d593c481f2 Clang-format fix & proper variable name 2025-08-18 21:01:26 +04:00
APAMk2 76f3d82679 Clang-format fixes 2025-08-17 23:26:49 +04:00
APAMk2 0e1270a606 Renamed sfall_behaviours to sfall_callbacks 2025-08-17 23:17:00 +04:00
APAMk2 55a32a00ab SFall callbacks implementation (EXPERIMENTAL) 2025-08-17 20:55:09 +04:00
Vasilii Rogin 7b9b545baa Merge pull request #251 from fallout2-ce/minor-more-deobfus
Yet more deobfuscation
2025-08-17 18:42:10 +03:00
Mike Klaas a96edd9f0c one more 2025-08-17 07:36:45 -07:00
Mike Klaas 55c528f346 fixes 2025-08-17 07:22:45 -07:00
Mike Klaas 5c28dc798f Yet more deobfuscation
Focusing on the files that are "almost" fully deobfuscated.  As usual, no semantic changes
2025-08-17 07:17:45 -07:00
APAmk2 7ef6943588 Merge pull request #249 from APAmk2/png-screenshots
PNG Screenshots implementation
2025-08-17 18:07:41 +04:00
Mike Klaas 40bbd6c02a Minor deobfuscation of function parameters (#250)
No semantic changes, just chipping away at removing placeholder function parameters
2025-08-17 06:56:21 -07:00
APAMk2 45c491c11f Added lodepng license file 2025-08-17 17:02:50 +04:00
APAMk2 18c05d438e Fixed clang-format error
Want to believe
2025-08-17 16:58:51 +04:00
APAMk2 c3a501a644 Changed PngScreenshots option to ScreenshotsFormat for new formats in future 2025-08-17 16:54:09 +04:00
APAMk2 2767a399c5 Moved lodepng to third_party folder 2025-08-17 16:39:31 +04:00
APAMk2 1237d8561d Use std::vector, instead of c-style array 2025-08-17 16:07:04 +04:00
APAMk2 89b6812711 Typo fix 2025-08-17 15:50:51 +04:00
APAMk2 339146c5b3 PNG Screenshots implementation 2025-08-17 15:30:06 +04:00
Vasilii Rogin 3949c5d7c1 Merge pull request #248 from fallout2-ce/use-precise-distance-for-walking
Use path length instead of tile distance for determining walk vs run
2025-08-17 10:16:49 +03:00
github-actions[bot] 84a64035e8 chore: auto-format with clang-format 2025-08-16 11:41:39 +00:00
Mike Klaas 164be5105a Use path length instead of tile distance for determining walk vs run
Fallout tries to be smart about walking vs running: if an object you're interacting with is "close" (<5 tiles), the PC will walk, otherwise, they'll run.

The problem with this is that the distance is calculated "as the crow flies" and doesn't take into account the path length.  So not rarely, your character will end up slowly walking a long distance to interact with an object.

This PR fixes that by using path length instead of tile distance.  This is slightly less performant, but extremely unlikely to ever be noticable.  Regardless, I used actual pathfinding only when the tile distance is short, so it is very unlikely to generate long paths (which, in any case, can happen just by trying to move to that tile).

To test, load the given save file.  Interacting with things on the other side of the wall usually triggers annoying walk behaviour.  E.g.:
* Looting the shelves on the other side of the wall
* Using Steal on the shelves / on an NPC
* Dropping an item on one side then picking it up from the other side.
2025-08-16 04:36:02 -07:00
Vasilii Rogin d532e4c398 Merge pull request #244 from fallout2-ce/fix_uncompressed_database_seek
Fix uncompressed database seek
2025-08-06 08:44:28 +03:00
Vasilii Rogin 950c12dbf7 Merge pull request #245 from fallout2-ce/fix_indexes_in_file_list_init
Fix off-by-one error in duplicates cleanup
2025-08-06 08:41:57 +03:00
Vasilii Rogin 2be9b7db65 Fix off-by-one error in duplicates cleanup 2025-08-05 22:43:27 +03:00
github-actions[bot] 138ce8be9b chore: auto-format with clang-format 2025-08-05 19:14:10 +00:00
Vasilii Rogin 96b9323a97 Add assertion about elements count 2025-08-05 22:09:27 +03:00
Vasilii Rogin 7c6d339e3d Do not initialize zlib on non-compressed files 2025-08-05 22:04:40 +03:00
Vasilii Rogin 2ec8240820 Merge pull request #239 from fallout2-ce/fix_gMapGlobalPointers_resize
Resize gMapGlobalPointers if inconsistency between .map and .gam file
2025-08-05 17:57:45 +03:00
Vasilii Rogin ca72573c14 Merge branch 'main' into fix_gMapGlobalPointers_resize 2025-08-05 09:47:15 +03:00
Vasilii Rogin 9974a23c1e Merge pull request #243 from fallout2-ce/fix-deployments-cleanup
Fix deployments cleanup
2025-08-05 08:39:47 +03:00
Vasilii Rogin cd6cce3f34 Update ci-delete-pr-preview.yml 2025-08-05 08:25:26 +03:00
Vasilii Rogin 361b9a0b30 Merge pull request #242 from fallout2-ce/try_to_use_github_deploy_field
Use deployment action instead of comment
2025-08-05 08:04:39 +03:00
Vasilii Rogin 7c7cb87f65 Merge pull request #238 from fallout2-ce/fix_memory_overlap_with_sound
Do not copy the same string, prevent sanitizer crash
2025-08-05 08:02:29 +03:00
Vasilii Rogin 20bcb2360c Fix env, add prune 2025-08-04 20:48:12 +03:00
Vasilii Rogin 75dbc98321 Add debug: true 2025-08-04 20:38:46 +03:00
Vasilii Rogin d792cfa32e add status 2025-08-04 20:38:16 +03:00
Vasilii Rogin e81a07dcaf Add ref, add deployment_id 2025-08-04 20:33:28 +03:00
Vasilii Rogin 0d78119680 Use deployment action instead of comment 2025-08-04 20:27:47 +03:00
github-actions[bot] 79d0fcfcaa chore: auto-format with clang-format 2025-08-04 16:57:36 +00:00
Vasilii Rogin 2d5e69d740 Resize gMapGlobalPointers if inconsistency between .map and .gam file 2025-08-04 19:51:31 +03:00
Vasilii Rogin b5cf3ee148 Do not copy the same string 2025-08-04 19:16:54 +03:00
Mike Klaas a571a985c6 Use FID_ROTATION macro to remove manual bit shifting (#236)
* Use `FID_ROTATION` macro to remove manual bit shifting

This is a mechanical change.

Note: this uncovered what I'm almost certain is a bug in the interpreter code.  I can fix it based on code inspection... this is how it's used everywhere else.  I'm not confident about reproducing it in game though, so open to thoughts on how to preceed here.

* Fix bugs
2025-07-30 21:27:01 -07:00
cambragol 6ccba74836 Merge pull request #230 from fallout2-ce/cambragol-patch-1
Full Transparency Fix
2025-07-23 11:22:25 +09:00
cambragol 30c3af01f5 Merge pull request #231 from fallout2-ce/cambragol-patch-2
Button Fix for Loadsave.cc
2025-07-23 11:22:01 +09:00
Vasilii Rogin fd25944a9e Merge pull request #235 from fallout2-ce/deobfus-iextra
Deobfuscate one function in interpreter_extra.cc
2025-07-22 21:01:48 +03:00
Vasilii Rogin 41c5d77f89 Merge branch 'main' into deobfus-iextra 2025-07-22 20:55:18 +03:00
cambragol 75513058a5 Merge branch 'main' into cambragol-patch-1 2025-07-23 02:07:04 +09:00
cambragol 0cf55eca75 Merge branch 'main' into cambragol-patch-2 2025-07-23 02:06:51 +09:00
Vasilii Rogin e6cbdd5466 Merge pull request #234 from fallout2-ce/test-cache-bust
Test ci cache busting
2025-07-22 18:48:47 +03:00
github-actions[bot] 90f634b285 chore: auto-format with clang-format 2025-07-22 05:23:02 +00:00
Mike Klaas 666ee6f41c Deobfuscate one function in interpreter_extra.cc
Introduces FID_WEAPON_CODE and FID_ROTATION.  In future PRs we can use these to eliminate a lot of inlined bit shifts
2025-07-21 22:21:06 -07:00
Mike Klaas 4342aefa5d Test ci cache busting 2025-07-21 21:55:00 -07:00
cambragol 7224c7d7fb Button Fix for Loadsave.cc
Fixes two missing button sounds for loadsave
2025-07-20 19:02:56 +09:00
cambragol dff7529707 Full Transparency Fix
Fix to restore full transparency. Without this, transparent windows leave a 'trail' within their frame.
2025-07-20 18:51:55 +09:00
Mike Klaas 2435b33480 Fix missing cursor on the right (mirrored) context menu (#227)
* Fix missing cursor on the right (mirrored) context menu

Fixes #226

* Additional deobfuscation + missing artUnlock)
2025-07-13 20:30:37 -07:00
Vasilii Rogin c4652d799a Merge pull request #220 from fallout2-ce/message-box
`message_box` metarule
2025-07-12 10:46:28 +03:00
Mike Klaas 5140b00ccf Implement show/hide_iface_tag,is_iface_tag_active for vanilla tags (#217)
* Implement `show/hide_iface_tag,is_iface_tag_active` for vanilla tags

This is all that is used by RPU (absent partycontrol mod)
2025-07-10 21:39:28 -07:00
Vasilii Rogin f1ba068d05 Merge pull request #198 from fallout2-ce/add_sfall_metarule_exists_metarule
Add opcode_exists metarule
2025-07-10 19:44:59 +03:00
Mike Klaas 01db7078c7 Decrypt some of tile.cc/h (#211)
Mostly functional changes, but did un-inline one function that Alex indicated likely should be uninlined.
2025-07-10 19:34:18 +03:00
Mike Klaas 64fd857da6 Update README.md for clearer OS X instructions (#223) 2025-06-29 20:47:48 -03:00
cambragol 555652d9c3 Merge pull request #216 from fallout2-ce/window-transparent
Window transparent
2025-06-25 16:11:02 +09:00
cambragol 8c35203b7d Merge branch 'main' into window-transparent 2025-06-24 17:33:06 +09:00
cambragol 0303a00299 Merge pull request #219 from fallout2-ce/trade-and-barter-glitch-fix
Trade/Barter background fix
2025-06-24 14:48:16 +09:00
cambragol dd16e374ee Update main.cc
fixed spelling typo
2025-06-24 14:40:27 +09:00
cambragol ce4495589b Update window_manager.cc
removed unneeded comments
2025-06-24 14:39:36 +09:00
github-actions[bot] af350914ef chore: auto-format with clang-format 2025-06-24 05:14:13 +00:00
Mike Klaas 8dd2afc4fa message_box metarule
This is used by Et Tu and RPU.

Also: some decyption of the underlying dialog box code
2025-06-23 22:11:51 -07:00
github-actions[bot] 240aa8a212 chore: auto-format with clang-format 2025-06-23 22:14:36 +00:00
cambragol c58b5eac1d Update window_manager.cc
Removed unneeded if/else switch.
2025-06-24 07:14:09 +09:00
cambragol 0bd8a76b05 Update inventory.cc
Fix background blits positions for moved inventory items
2025-06-23 22:13:23 +09:00
cambragol 853266b380 Merge branch 'main' into window-transparent 2025-06-23 20:55:44 +09:00
Mike Klaas 0adc9c9e77 Prevent pop-in by drawing city circles/names to temp buffer (#178)
* Draw city/name to a temp buffer to prevent pop-in
2025-06-22 22:48:08 -07:00
github-actions[bot] 150e734955 chore: auto-format with clang-format 2025-06-23 05:27:35 +00:00
cambragol d0ba0151d1 Update window_manager.cc
initialised _buffering as false, and put the switch to true in the if statement for the flag from the game init.
2025-06-23 14:27:07 +09:00
cambragol 67c70661a6 Update window_manager.cc
made _buffering conditional on the gameInitWithOptions flag for allocating _screen_buffer
2025-06-22 12:56:20 +09:00
cambragol 9c4efeb59d Merge branch 'main' into window-transparent 2025-06-22 11:18:20 +09:00
cambragol ea0afc84fa Merge pull request #215 from fallout2-ce/decrypt-win-refresh
Decryption of `_GNW_win_refresh`
2025-06-22 11:03:10 +09:00
Mike Klaas c663d79b97 fix bug(?) 2025-06-21 14:43:10 -07:00
cambragol 8bd87be687 Update window_manager.cc
removed unused bool
2025-06-21 13:51:54 +09:00
cambragol 8101c78e78 Update window_manager.cc
cleaning up from testing code
2025-06-21 13:46:20 +09:00
cambragol 9b5737a14e Update automap.cc
Added WINDOW_TRANSPARENT | WINDOW_DRAGGABLE_BY_BACKGROUND temporarily for testing. The automap window default texture has transparency built in.
2025-06-21 11:31:58 +09:00
cambragol 3d4c073856 Update window_manager.cc
Set _buffering to true, add refresh for transparent windows
2025-06-21 10:19:33 +09:00
cambragol f868ac0e1a Update main.cc
Change game ini options to turn on _screen_buffer allocation
2025-06-21 10:09:19 +09:00
Mike Klaas eaa9091bcd one omre 2025-06-19 23:48:01 -07:00
Mike Klaas 76ab99cf73 add a few more notes 2025-06-19 23:47:42 -07:00
github-actions[bot] bed9555f9a chore: auto-format with clang-format 2025-06-20 06:10:55 +00:00
Mike Klaas 9c5294ca88 Decryption of _GNW_win_refresh 2025-06-19 23:09:16 -07:00
cambragol 781d8ab282 Merge pull request #177 from fallout2-ce/dat-error-handling
Update xfile.cc
2025-06-20 08:44:44 +09:00
cambragol 34ef1c2f26 Merge pull request #213 from fallout2-ce/disappearing-inventory-item-fix
Update inventory.cc
2025-06-18 14:17:52 +09:00
cambragol fdc54cfd0b Update inventory.cc
Restoring fix to make items disappear when selecting in inventory #160
2025-06-18 07:53:59 +09:00
Mike Klaas a63aff09ce (sfall) Implement set_map_time_multi (#207)
* (sfall) Implement `set_map_time_multi`
2025-06-16 12:02:40 -07:00
cambragol 3d2aced2f7 Merge pull request #149 from fallout2-ce/worldmap-fallout1-trail-feature
Worldmap Fallout1 trail Feature
2025-06-12 14:26:27 +09:00
cambragol 1d6111b89f Merge pull request #202 from fallout2-ce/fix-for-splash-screens
Fix for Splash Screens
2025-06-12 14:24:04 +09:00
Mike Klaas 21c906cc5c Implement op_get_world_map_x/y_pos (#205) 2025-06-11 22:16:55 -07:00
Vasilii Rogin a67fe7ead1 Merge pull request #191 from fallout2-ce/scan_scripts_for_unknown_opcodes_2
Scanner of not implemented opcodes, metarules, config options
2025-06-11 16:18:21 +03:00
Vasilii Rogin f0691d2c24 Fix for hooks 2025-06-11 16:00:55 +03:00
github-actions[bot] fb30648e2e chore: auto-format with clang-format 2025-06-11 12:53:54 +00:00
Vasilii Rogin 216cbb3861 Add hooks scan 2025-06-11 15:52:41 +03:00
github-actions[bot] be63df4bf6 chore: auto-format with clang-format 2025-06-11 12:10:59 +00:00
Vasilii Rogin 4cf35fd946 Enable scanner of unimplemented by command line argument 2025-06-11 15:10:27 +03:00
Vasilii Rogin dd418ee0f5 Merge branch 'main' into scan_scripts_for_unknown_opcodes_2 2025-06-11 14:47:56 +03:00
Mike Klaas eb5cc7be4f QoL: Ctrl-click to equip in inventory screen (#175)
Very similar to sfall's implementation.
2025-06-10 22:27:22 -07:00
Vasilii Rogin 8c6f28b018 Merge pull request #193 from fallout2-ce/update_sdl2_into_2_32_8
Update SDL2 into 2.32.8
2025-06-10 11:17:26 +03:00
Vasilii Rogin 2e36030389 Merge branch 'main' into update_sdl2_into_2_32_8 2025-06-09 23:19:02 +03:00
Mike Klaas a88ca9f7e7 Fix build warnings introduced by sfall opcodes/metarules (#201) 2025-06-09 08:26:47 -07:00
Mike Klaas 72d9ae85c8 sfall: get_ini_section(s) (#199)
Implements get_ini_section, needed for Et Tu, and get_ini_sections. Fixes buggy set_ini_setting.

Also includes tests for existing ini functions, and moves them all to sfall_init.cc. (opcodes and metarules files were getting long, and this matches sfall's structure)
2025-06-09 08:26:30 -07:00
cambragol a8f2de1a56 Update xfile.cc
removed redundant chdir and added final cleanup for failure
2025-06-09 21:09:15 +09:00
github-actions[bot] 51b82ac1ac chore: auto-format with clang-format 2025-06-09 11:37:04 +00:00
cambragol 0d97222797 Update game.cc
Load options before show splash, so brightness is correct
2025-06-09 20:34:22 +09:00
cambragol b30463ab01 Update svga.cc
Missing fix for Splash Screens courtesy of Alex
2025-06-09 20:31:29 +09:00
github-actions[bot] 9d932b0d2c chore: auto-format with clang-format 2025-06-09 10:25:20 +00:00
Vasilii Rogin 8d76b9655c Use custom to_lower 2025-06-09 13:24:51 +03:00
Vasilii Rogin 0e6c4d9684 Use custom comparator 2025-06-09 13:01:03 +03:00
Vasilii Rogin 02c5efac26 Merge remote-tracking branch 'fallout2-ce/main' into scan_scripts_for_unknown_opcodes_2 2025-06-09 12:52:29 +03:00
cambragol b7933f6b80 Merge pull request #159 from fallout2-ce/inventory-character-display-fix
Fix Backgrounds on Spinning Characters
2025-06-09 17:03:46 +09:00
cambragol fcb1680db2 Merge pull request #144 from fallout2-ce/Localize-Fonts
Localize fonts
2025-06-09 17:03:23 +09:00
github-actions[bot] ea4d978bc1 chore: auto-format with clang-format 2025-06-08 06:48:28 +00:00
Vasilii Rogin 22548a3c70 Merge branch 'main' into scan_scripts_for_unknown_opcodes_2 2025-06-08 09:47:58 +03: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
github-actions[bot] cd6ca76988 chore: auto-format with clang-format 2025-06-07 15:27:27 +00:00
Vasilii Rogin 5d3cbd567a Add test for OP_WRITE_INT opcode 2025-06-07 18:24:56 +03:00
Vasilii Rogin 70ef1d4009 Add opcode_exists metarule 2025-06-07 18:21:50 +03:00
Vasilii Rogin 3acf0ac6c4 Add assert for opcode_exists 2025-06-07 18:12:43 +03:00
Vasilii Rogin a73c336ead Add tests for metarule_exist/opcode_exists 2025-06-07 18:08:47 +03:00
Vasilii Rogin d46aea53bd Add initial test 2025-06-07 17:59:18 +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 3dc89d49e2 Merge branch 'main' into scan_scripts_for_unknown_opcodes_2 2025-06-07 12:43:50 +03:00
Vasilii Rogin 822d5dfd7d Do not use build-in directory_iterator for android 2025-06-07 12:37:14 +03:00
Vasilii Rogin 879634bf9c Remove import of dirent 2025-06-07 12:28:29 +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
Vasilii Rogin 795ef54d70 fix formatting 2025-06-07 12:21:45 +03:00
Vasilii Rogin 14b06d2dcc Add scan for windows 2025-06-07 12:21:20 +03:00
Vasilii Rogin ed959edbbb Split scanned by files 2025-06-07 12:15:26 +03:00
Vasilii Rogin 7940ea791c Add polyfill for directory_iterator 2025-06-07 11:19:53 +03:00
Vasilii Rogin 3f270aa4cc Merge branch 'main' into scan_scripts_for_unknown_opcodes_2 2025-06-07 11:10:41 +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
Vasilii Rogin b8769fded1 Bump CI cache 2025-06-06 21:30:38 +03:00
Vasilii Rogin 43d5b6028d Update SDL2 into 2.32.8 2025-06-06 21:21:53 +03:00
Mike Klaas b2675ad1ac Add toggle_active_hand (sfall) 2025-06-06 00:34:36 -07:00
Vasilii Rogin da3f1cc426 Fixes 2025-06-04 21:25:47 +03:00
github-actions[bot] a892461dac chore: auto-format with clang-format 2025-06-04 17:56:15 +00:00
Vasilii Rogin 209d2d027b Add TODO 2025-06-04 20:52:25 +03:00
Vasilii Rogin b8385d7775 Do not exit 2025-06-04 20:45:16 +03:00
Vasilii Rogin a3c365f9fe Rename scanner 2025-06-04 20:44:53 +03:00
Vasilii Rogin 87d4a4b8ca Scan f2_res.ini 2025-06-04 20:41:37 +03:00
Vasilii Rogin 1aa53a4720 Add scan for fallout2.cfg 2025-06-04 20:31:32 +03:00
Vasilii Rogin 6bcf2952f6 Add config scan 2025-06-04 20:26:40 +03:00
Vasilii Rogin e2927e1d0e Some intermedite progress 2025-06-04 20:00:26 +03:00
Vasilii Rogin bb839cd6c1 some fixes & improvements 2025-06-04 19:34:56 +03:00
Vasilii Rogin caa0e1bf1a Add scan in .dat files 2025-06-04 19:08:27 +03:00
Vasilii Rogin f3759d07a5 Adding .dat files scan 2025-06-04 18:58:43 +03:00
Vasilii Rogin 604fde895f Split by funcs 2025-06-04 18:45:46 +03:00
Vasilii Rogin f46c391e5d Merge remote-tracking branch 'fallout2-ce/main' into scan_scripts_for_unknown_opcodes_2 2025-06-03 23:06:35 +03: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 1e45b0184b Merge remote-tracking branch 'fallout2-ce/main' into scan_scripts_for_unknown_opcodes_2 2025-06-02 21:10:35 +03: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
Vasilii Rogin 447ea23862 Merge remote-tracking branch 'fallout2-ce/main' into scan_scripts_for_unknown_opcodes_2 2025-06-02 17:55:56 +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 72786c4d43 Merge remote-tracking branch 'fallout2-ce/main' into scan_scripts_for_unknown_opcodes_2 2025-06-01 20:04:07 +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 3d3e47c9db Scan for .int.expected too 2025-06-01 11:56:22 +03:00
Vasilii Rogin a9726cab56 Show by-file 2025-06-01 11:21:18 +03:00
Vasilii Rogin 400aa4d8a3 Update visual 2025-06-01 11:11:46 +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 599d3ab392 Merge remote-tracking branch 'fallout2-ce/main' into scan_scripts_for_unknown_opcodes_2 2025-06-01 10:46:24 +03:00
Vasilii Rogin 84336d4655 Fix warning 2025-06-01 10:45:49 +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 696e926177 Add note 2025-05-31 22:57:37 +03:00
Vasilii Rogin 30babd7e1f Improvements 2025-05-31 22:47:51 +03:00
Vasilii Rogin 6ff0b411e4 Show opcode cmd name 2025-05-31 22:26:16 +03:00
Vasilii Rogin 9f623f3f3e Add sfall human-readable opcodes 2025-05-31 22:09:52 +03:00
Vasilii Rogin d8bee457f4 Improve scanner 2025-05-31 22:04:14 +03:00
Vasilii Rogin fcabd63561 Still scanning for strings 2025-05-31 22:00:18 +03:00
Vasilii Rogin 73c024c705 Make kMetarules available 2025-05-31 21:09:19 +03:00
Vasilii Rogin 27da084b65 Scanning opcodes 2025-05-31 21:00:59 +03:00
Vasilii Rogin dfa610f352 Adding script scanner 2025-05-31 20:57:27 +03:00
Vasilii Rogin a0a597725a Fix extensions scan 2025-05-31 20:47:23 +03:00
Vasilii Rogin 7ae194a8ee Adding .ssl scanner 2025-05-31 20:44:30 +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 7f7e103465 Update xfile.cc
This removes the creation of a 'dat' folder when opening or path finding fails. This may have been a leftover from development, or part of the mapper, however, in practice it prevents users getting correct error messages when opening the app with missing dats or incorrect dat paths.

With this fix, missing dats or paths should give a popup message to the user, instead of the ubiquitous 'cannot find fonts error'
2025-05-31 10:58:28 +09: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 721e40f784 Merge branch 'main' into inventory-character-display-fix 2025-05-31 09:56:20 +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
github-actions[bot] 59c64451ff chore: auto-format with clang-format 2025-05-28 22:40:35 +00:00
cambragol 965f360578 Update worldmap.cc
Enclosed trail logic in config option
2025-05-29 07:40:09 +09:00
cambragol 3f79d79f25 Update sfall_config.h
Config option for worldmap trails. Name is from an Sfall option (I believe): WorldMapTravelMarkers
2025-05-29 07:19:31 +09:00
github-actions[bot] cad023a73e chore: auto-format with clang-format 2025-05-28 22:18:21 +00:00
cambragol 7490c900b3 Update sfall_config.cc
adding config option for the worldmap trail
2025-05-29 07:17:55 +09: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
github-actions[bot] 67a6119f34 chore: auto-format with clang-format 2025-05-26 07:36:34 +00:00
cambragol aa036c574e Update inventory.cc
Added some comments regarding which window is which
2025-05-26 16:36:06 +09:00
github-actions[bot] a17d7fb7d5 chore: auto-format with clang-format 2025-05-25 11:07:47 +00:00
cambragol 8ed777ba83 Merge branch 'main' into Localize-Fonts 2025-05-25 19:53:57 +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 7c182b66a6 Update worldmap.cc
tweaked the drop parameters - looks closer to Fallout 1, paths more clearly defined (speeds).
2025-05-23 23:15:44 +09:00
cambragol f6320d3a66 Update worldmap.cc
Removed 'scaled' variables (leftover from my personal builds)
scaledViewWidth, scaledViewHeight, scaledWidth, scaledViewY, and scaledViewX
2025-05-23 20:03:32 +09:00
cambragol 5dbcfd997c Fixes slightly misaligned buttons in the pipboy (#147) 2025-05-22 23:17:07 -07:00
cambragol ec2ecd17d9 Update inventory.cc
First pass on fix for #148 

Adds correct blitting backgrounds for behind the spinning character
2025-05-23 15:13:07 +09:00
cambragol de06827c01 Update worldmap.cc
First draft (after many different tries) of worldmap trail enhancement, like in Fallout 1. Meant to be optional in the end.
2025-05-23 14:45:09 +09:00
cambragol e3437a8d0e Merge branch 'main' into Localize-Fonts 2025-05-21 09:26:38 +09:00
cambragol 88205ded62 Merge pull request #129 from fallout2-ce/Locations-Scroll-Menu
Update worldmap.cc
2025-05-20 20:40:37 +09:00
cambragol f12babe525 Update text_font.cc 2025-05-20 14:45:07 +09:00
cambragol cb990ac154 Update font_manager.cc 2025-05-20 14:44:33 +09:00
cambragol a3fc8d21be Update text_font.cc 2025-05-20 14:36:33 +09:00
cambragol cc805db194 Update font_manager.cc 2025-05-20 14:35: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
Vasilii Rogin 41a7c97e69 Show warning if cities amount differs 2024-06-04 20:56:42 +03:00
Vasilii Rogin 2ca921c525 Revert "Remove cities amount check on game load"
This reverts commit e676089f83.
2024-06-04 20:50:03 +03:00
Vasilii Rogin e676089f83 Remove cities amount check on game load 2024-06-04 19:43:37 +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
Vasilii Rogin e119aa4c4d Use cities limit patch by default 2024-04-19 12:55:51 +03:00
Vasilii Rogin ea66287551 Load gCitiesLimitFix state before it is used 2024-04-18 23:23:41 +03:00
Vasilii Rogin db07e95f5b Use gCitiesLimitFix variable 2024-04-18 23:10:56 +03:00
Vasilii Rogin acd0413626 Check that save file have the same amount of cities 2024-04-18 23:02:22 +03:00
Vasilii Rogin 196ad2267f Fix formatting 2024-04-18 22:59:24 +03:00
Vasilii Rogin 22a864a0c9 Ignore cities count if CitiesLimitFix is enabled 2024-04-18 22:55:17 +03:00
Vasilii Rogin 252d7fe83e Add CitiesLimitFix into sFall config with default=true 2024-04-18 22:51:45 +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
266 changed files with 36248 additions and 15303 deletions
+1
View File
@@ -1,2 +1,3 @@
BasedOnStyle: WebKit
AllowShortIfStatementsOnASingleLine: WithoutElse
FixNamespaceComments: true
+1
View File
@@ -7,6 +7,7 @@
*.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
+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.
--->
+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
+141
View File
@@ -0,0 +1,141 @@
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: start deployment
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
uses: bobheadxi/deployments@v1
id: deployment
with:
ref: ${{ github.event.pull_request.head.sha }}
step: start
debug: true
env: preview-${{ github.event.pull_request.number }}
- 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: Place hash file
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository)
run: echo "$GITHUB_SHA" > fallout2-ce-ems/dist/site_hash.txt
- 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: Check that site is deployed
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository)
run: |
URL="$SITE_ORIGIN""$SITE_BASE""site_hash.txt"
echo "Expecting $GITHUB_SHA from $URL"
for i in `seq 1 80`; do
got="$(curl -fsSL --max-time 10 "$URL" | tr -d '\r\n' || true)"
if [ "$got" = "$GITHUB_SHA" ]; then
echo "âś… Match on attempt $i: ${got}"
exit 0
fi
echo "Received $got, waiting"
sleep 5
done
exit 1
env:
SITE_ORIGIN: https://${{ github.repository_owner }}.github.io
SITE_BASE: ${{ steps.set-path.outputs.SITE_BASE }}
- name: Update deployment status
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
uses: bobheadxi/deployments@v1
with:
step: finish
status: success
debug: true
env: ${{ steps.deployment.outputs.env }}
deployment_id: ${{ steps.deployment.outputs.deployment_id }}
ref: ${{ github.event.pull_request.head.sha }}
env_url: https://${{ github.repository_owner }}.github.io/fallout2-ce/PR-${{ github.event.pull_request.number }}/
+253 -89
View File
@@ -26,11 +26,47 @@ jobs:
sudo apt install cppcheck
- name: Clone
uses: actions/checkout@v3
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
@@ -38,20 +74,20 @@ jobs:
steps:
- name: Clone
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v2
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 11
cache: gradle
- name: Cache cmake build
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: os/android/app/.cxx
key: android-cmake-v1
key: android-cmake-v101
- name: Setup signing config
if: env.KEYSTORE_FILE_BASE64 != '' && env.KEYSTORE_PROPERTIES_FILE_BASE64 != ''
@@ -68,62 +104,56 @@ 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@v3
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-11
runs-on: macos-14
steps:
- name: Clone
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Cache cmake build
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: build
key: ios-cmake-v1
path: out
key: ios-cmake-v101
- name: Configure
run: |
cmake \
-B build \
-D CMAKE_BUILD_TYPE=RelWithDebInfo \
-D CMAKE_TOOLCHAIN_FILE=cmake/toolchain/ios.toolchain.cmake \
-D ENABLE_BITCODE=0 \
-D PLATFORM=OS64 \
# EOL
cmake --preset ios
- name: Build
run: |
cmake \
--build build \
-j $(sysctl -n hw.physicalcpu) \
--target package \
# EOL
cmake --build --preset ios-debug
# TODO: Should be a part of packaging.
- name: Prepare for uploading
- name: Pack
run: |
cp build/fallout2-ce.zip build/fallout2-ce.ipa
cd out/build/ios
cpack -C Debug
- name: Upload
uses: actions/upload-artifact@v3
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
@@ -134,14 +164,13 @@ jobs:
steps:
- name: Clone
uses: actions/checkout@v3
uses: actions/checkout@v4
- 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)
@@ -151,83 +180,140 @@ 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
path: out
key: linux-${{ matrix.arch }}-cmake-v101
- 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@v3
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
macos:
name: macOS
linux-armhf:
name: Linux (armhf)
runs-on: macos-11
runs-on: ubuntu-22.04-arm
steps:
- name: Clone
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Cache cmake build
uses: actions/cache@v3
with:
path: build
key: macos-cmake-v3
- 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=RelWithDebInfo \
-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: |
cmake \
--build build \
-j $(sysctl -n hw.physicalcpu) \
--target package \
# EOL
mv build/fallout2-ce build/fallout2-ce-linux-armhf
- name: Upload
uses: actions/upload-artifact@v3
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-v101
- 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: build/fallout2-ce.dmg
path: out/build/macos/Fallout II Community Edition.dmg
retention-days: 7
windows:
name: Windows (${{ matrix.arch }})
runs-on: windows-2019
runs-on: windows-2025
strategy:
fail-fast: false
@@ -240,32 +326,110 @@ 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
path: out
key: windows-${{ matrix.arch }}-cmake-v101
- 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 --preset windows-${{ matrix.arch }}
- 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 --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@v3
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,55 @@
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
deployments: 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
- name: mark environment as deactivated
uses: bobheadxi/deployments@v1
with:
step: deactivate-env
env: preview-${{ github.event.pull_request.number }}
desc: Environment was pruned
debug: true
+61 -50
View File
@@ -17,17 +17,17 @@ jobs:
steps:
- name: Clone
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v2
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 11
cache: gradle
- name: Cache cmake build
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: os/android/app/.cxx
key: android-cmake-v1
@@ -51,7 +51,7 @@ jobs:
run: |
cd os/android/app/build/outputs/apk/release
cp app-release.apk fallout2-ce-android.apk
gh release upload ${{ github.ref_name }} 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 }}
@@ -59,14 +59,14 @@ jobs:
ios:
name: iOS
runs-on: macos-11
runs-on: macos-14
steps:
- name: Clone
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Cache cmake build
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: build
key: ios-cmake-v1
@@ -75,25 +75,31 @@ jobs:
run: |
cmake \
-B build \
-D CMAKE_BUILD_TYPE=RelWithDebInfo \
-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) \
--target package \
# EOL
- name: Pack
run: |
cd build
cpack -C RelWithDebInfo
- name: Upload
run: |
cd build
cp fallout2-ce.zip fallout2-ce-ios.ipa
gh release upload ${{ github.ref_name }} fallout2-ce-ios.ipa
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 }}
@@ -112,7 +118,7 @@ jobs:
steps:
- name: Clone
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Dependencies (x86)
if: matrix.arch == 'x86'
@@ -129,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
@@ -162,7 +168,7 @@ jobs:
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 }}
@@ -174,16 +180,16 @@ jobs:
steps:
- name: Clone
uses: actions/checkout@v3
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-v3
@@ -192,41 +198,44 @@ jobs:
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 }}
@@ -234,7 +243,7 @@ jobs:
windows:
name: Windows (${{ matrix.arch }})
runs-on: windows-2019
runs-on: windows-2025
strategy:
fail-fast: false
@@ -247,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
+189 -53
View File
@@ -1,15 +1,15 @@
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(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)
if (ANDROID)
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"
@@ -140,6 +145,8 @@ target_sources(${EXECUTABLE_NAME} PUBLIC
"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"
@@ -150,8 +157,6 @@ target_sources(${EXECUTABLE_NAME} PUBLIC
"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"
@@ -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"
@@ -253,24 +256,48 @@ target_sources(${EXECUTABLE_NAME} PUBLIC
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/sfall_callbacks.cc"
"src/sfall_callbacks.h"
"src/touch.cc"
"src/touch.h"
"src/scan_unimplemented.cc"
"third_party/lodepng/lodepng.cpp"
)
target_include_directories(${EXECUTABLE_NAME} PUBLIC "third_party/lodepng")
if(IOS)
target_sources(${EXECUTABLE_NAME} PUBLIC
"src/platform/ios/paths.h"
@@ -282,21 +309,20 @@ 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)
if(WIN32)
target_sources(${EXECUTABLE_NAME} PUBLIC
"os/windows/fallout2-ce.ico"
"os/windows/fallout2-ce.rc"
@@ -304,37 +330,106 @@ if (WIN32)
endif()
if(APPLE)
target_sources(${EXECUTABLE_NAME} PUBLIC "os/macos/fallout2-ce.icns")
set_source_files_properties("os/macos/fallout2-ce.icns" PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
if(IOS)
target_sources(${EXECUTABLE_NAME} PUBLIC "os/ios/LaunchScreen.storyboard")
set_source_files_properties("os/ios/LaunchScreen.storyboard" PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
set_target_properties(${EXECUTABLE_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/os/ios/Info.plist")
set_target_properties(${EXECUTABLE_NAME} PROPERTIES XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2")
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_target_properties(${EXECUTABLE_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/os/macos/Info.plist")
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_ICON_FILE "fallout2-ce.icns")
set(MACOSX_BUNDLE_DISPLAY_NAME "Fallout 2")
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "1.2.0")
set(MACOSX_BUNDLE_BUNDLE_VERSION "1.2.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 ${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})
@@ -349,25 +444,66 @@ if(APPLE)
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 .)
install(CODE "
include(BundleUtilities)
fixup_bundle(${CMAKE_BINARY_DIR}/${MACOSX_BUNDLE_BUNDLE_NAME}.app \"\" \"\")
"
COMPONENT Runtime)
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)
endif()
set(CPACK_GENERATOR "DragNDrop")
set(CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK ON)
set(CPACK_PACKAGE_FILE_NAME "fallout2-ce")
set(CPACK_PACKAGE_FILE_NAME "Fallout II Community Edition")
endif()
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": []
}
]
}
+115 -6
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 release 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,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):
@@ -30,19 +44,33 @@ $ 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. **Note**: You must use "Offline backup game installer", not the main game 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`.
### Android
> **NOTE**: Fallout 2 was designed with mouse in mind. There are many controls that require precise cursor positioning, which is not possible with fingers. When playing on Android you'll use fingers to move mouse cursor, not a character, or a map. Double tap to "click" left mouse button in the current cursor position, triple tap to "click" right mouse button. It might feel awkward at first, but it's super handy - you can play with just a thumb. This is not set in stone and might change in the future.
> **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).
- 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.
> **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. The game will start automatically.
- 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
@@ -52,13 +80,94 @@ $ sudo apt install libsdl2-2.0-0
- 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)).
- 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
[STATIC_SCREENS]
;if SPLASH_SCRN_SIZE=0 - Splash screen shows at original size if it fits, otherwise scales down while preserving aspect ratio.
;if SPLASH_SCRN_SIZE=1 - Splash screen scales to fit the screen while preserving aspect ratio.
;if SPLASH_SCRN_SIZE=2 - Splash screen stretches to fill the entire screen.
SPLASH_SCRN_SIZE=0
[MAPS]
;if IGNORE_MAP_EDGES=0 - Hi-Res map scroll edges are enabled.
;if IGNORE_MAP_EDGES=1 - Hi-Res map scroll edges are ignored.
IGNORE_MAP_EDGES=0
```
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
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.
+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
+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.
+50
View File
@@ -0,0 +1,50 @@
;hi-res configuration settings for Fallout 2 CE
;##################################################################################################################
[MAIN]
; Set SCALE_2X=1 to scale the game x2.
; Note: This will increase the minimum resolution to from 640x480 to 1280x960.
SCALE_2X=1
; Set the Fullscreen resolution here.
SCR_WIDTH=640
SCR_HEIGHT=480
; Set WINDOWED=1 to enable windowed mode.
WINDOWED=1
;##################################################################################################################
[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. Note
IFACE_BAR_WIDTH=640
;##################################################################################################################
[STATIC_SCREENS]
; if set to 0 - background image will display at its original size.
; if set to 1 - background image will stretch to fit the screen while maintaining its aspect ratio.
; if set to 2 - background image will stretch to fill the screen.
SPLASH_SCRN_SIZE=2

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