Commit Graph
1765 Commits
Author SHA1 Message Date
jirik2077 d63f293291 fix typo 2026-07-18 07:01:41 +02:00
jirik2077 71eaabc957 unify the flag usage between text_font.h and window_manager.h.. deobfuscate more draw text flags usages 2026-07-18 06:59:35 +02:00
jirik2077 47156d2e45 deobfuscate the font transparency flag 2026-07-18 00:09:13 +02:00
github-actions[bot] 33744ecf2e chore: auto-format with clang-format 2026-07-17 21:19:31 +00:00
jirik2077 20e80d4bb3 fix the spaces and make rgb to rgb555 color conversion constexpre function 2026-07-17 23:02:48 +02:00
jirik2077 a756bc2700 convert to hexa 2026-07-17 21:51:54 +02:00
jirik2077 de73c90a89 create macros for the color usages 2026-07-17 21:51:26 +02:00
Mike Klaas 41f09fa343 Fix elevator cancelation in RPU (#546)
* Fix elevator cancelation in RPU

If you step into an elevator in RPU and cancel the floor selection, the door closes behind you (sometimes with glitchy graphics).  This is a latent bug in the elevators code that vanilla doesn't hit

  - elevator_select_ mutates the caller’s elevation to a UI/display level before the modal loop.
  - Escape/cancel returns 0 without writing a destination tile.
  - Caller then sees map == current map and elevation != current elevation, so it closes the nearby door.
  - tile is still -1.

* NovaRains approach

* dont default to first floor if not found
2026-07-16 20:06:48 -07:00
Mike Klaas 44067b1933 Avoid non-critter sneak check in obj_can_see_obj (#560)
* We call skillGetValue(gDude, SKILL_SNEAK) for every target
* For non-critters, that can result in OOB memory reads
* We only need it for gDude for sneaking

So let's only call it when dude is sneaking and is the target
2026-07-16 20:05:31 -07:00
alpacacommunist-cmdandCopilot Autofix powered by AI 68d7bd0668 Fix heap corruption in wmWorldMap_load when save file has more cities than current config (#533)
* Fix out-of-bounds write in wmWorldMap_load when numCities exceeds wmMaxAreaNum

* use ENTRANCE_LIST_CAPACITY to properly isolate city entrances

And read a rest to dummy struct

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* adds debug print warning regarding extra data in .sav

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-07-15 22:11:42 -07:00
Mike Klaas 799184ab96 HOOK_REMOVEINVENOBJ (#540)
* HOOK_REMOVEINVENOBJ

* PR feedback
2026-07-15 21:14:11 -07:00
Mike Klaas 5774372924 Implement set_object_data, and add memory safety and correct offsets (#547)
* Correct `get_object_data` indexes

Currently they are raw offset pointers.  This does not work with CE since pointers are wide (64bit) on some (most) platforms.  So, we can treat these offsets like constants and return the appropriate fields instead.

There are already used for the most part as enum constants:
2026-07-15 21:12:33 -07:00
jirik2077 e90b68837d fix an opposite scroll direction in towns list (#550) 2026-07-15 07:50:06 +02:00
Mike Klaas ceecc3ebdb Two crash fixes (#552)
* Sfall fix for > 160 maps for automap code (RPU triggers this)
* Logic fix for action menu, where actionIndex was incremented unconditionally and could go out of bounds.  This was a regression from vanilla
2026-07-14 22:08:18 -07:00
jirik2077 83b6e081b7 Support for EPA gender change operation (#542)
* support for EPA gender change operation

* fix unintented return
2026-07-13 10:44:01 +02:00
Mike Klaas 083bd4a4cc Implement Sfall npc level cap (10) (#545)
Also, fix off-by-one error that can cause proto corruption
2026-07-12 21:10:23 -07:00
Mike Klaas 27ae59578a Implement real_dude_obj (#537)
This is used by scripts which are party-control aware.  Implementing this means they won't crash and should still work properly
2026-07-12 20:21:33 -07:00
jirik2077 fdee9914e3 Fix division by zero in objectExamineFunc (#541) 2026-07-12 18:25:06 +02:00
Mike Klaas 258de7c21e Increase animation cap (Sfall) (#539)
Fixes #538
2026-07-11 14:26:34 -07:00
jirik2077 feb0cd61ff fix healing revision op_tokenize (#536) 2026-07-11 05:49:44 +02:00
Mike Klaas cbbe2f00f1 Normalize ini paths that start with \ to game root (#501)
* Normalize ini paths that start with `\` to game root

Sfall does this, and we were missing it. https://github.com/sfall-team/sfall/blob/master/sfall/Modules/Scripting/Handlers/IniFiles.cpp#L61-L78

An example is InventoryFilter, which starts its ini path with `\`: https://github.com/rotators/InventoryFilter/blob/master/source/gl_InvenFilter.ssl#L19

* Normalize cache key
2026-07-10 15:10:05 -07:00
Mike Klaas bf1d35b2de Fix possible double-free in animation_free (#513)
* Fix possible double-free in animation_free

Port of roughly: https://github.com/cambragol/fission-ce/commit/7fafbb11c7daf5fe7f5ae05b92a3bffaaaa7b5a4

Not sure how to trigger it in CE, but seems plausibly possible
2026-07-10 15:09:33 -07:00
Mike Klaas 4a9e822e82 Fix "Uncontrolled format string" Code Scanning results (#512)
* Fix "Uncontrolled format string" Code Scanning results

https://github.com/fallout2-ce/fallout2-ce/security/code-scanning

* PR comments

* fix missing early return in programExecuteProcedureAsync path
2026-07-10 15:09:15 -07:00
Mike Klaas 843803e26a Party member equipment management (#528)
Add equipment slots to the companion loot screen.

Items can be equipped directly from player or companion inventory. This also allows switching between party members so you can manage all companion's inventories easily. Does not allow equipping items that would otherwise be disallowed.

Also:

    Calls HOOK_UNWIELD when adding/removing equipment, meaning mods like npc armor work
    Uses HOOK_CANUSE for weapon use checks

Ctrl-click to equip is not implemented since it already transfers items between the two inventories. I tried making it work only for equippable items (and otherwise transfer), but that felt awkward and random. Ctrl-click unequip is implemented.
2026-07-10 15:08:44 -07:00
Mike Klaas ef0085dcca Support Sfall extra animation codes (#535)
Fixes #534
2026-07-10 12:37:03 -07:00