2074 Commits
Author SHA1 Message Date
Martin Haye b76af75a61 Merge branch 'master' of https://github.com/badvision/lawless-legends 2026-09-27 10:14:54 -07:00
Martin Haye 7d7e2ab778 Fixed moveWayBackward to render first - otherwise, obstruction checking reads from null pointers since map isn't loaded during portrait display 2026-09-27 10:14:47 -07:00
Martin Haye 79c2fdeb22 Made tilesets smaller to reduce memory pressure at 2D map corners 2026-09-27 10:02:46 -07:00
Martin Haye dfd25a8475 Fixed crash when giving an item to player outside of combat/store/etc. - was unloading util3d not not reloading it. 2026-09-27 06:49:18 -07:00
Brendan Robert 4e2d294d70 Bump version to 3.11 OutlawEditor-3.11 2026-09-25 13:08:47 -05:00
Brendan Robert 3358998b59 Fix script editor not reopening after abort from a script list
Double-clicking a row in an editable script list starts an in-place edit
session on that cell. The map list's onEditStart handler opened the Mythos
editor window but never ended the session, leaving the row stuck in editing
state with the list's editing index pinned: a second double-click on the same
row was a no-op unless another row was selected first.

- MapEditorTabControllerImpl: open the editor from a cell startEdit()
  override and clear the list's editing index (an EDIT_START event handler
  cannot do this; ListCell.startEdit re-asserts the index after firing it).
- GlobalEditorTabControllerImpl: same latent defect in the global script
  list; its no-op cancelEdit/updateItem calls are replaced with edit(-1).
- Add MythosEditorAbortReopenTest covering open, abort, and reopen of the
  same row for both lists (red before the fix, green after), plus a
  package-private EditorRegistry.get(Script) test seam.
2026-09-25 12:52:02 -05:00
Brendan Robert 192ca19fa7 Update Apple JACE build properties
Record the current build timestamp, macOS ARM64 LWJGL natives, and JaCoCo agent argument present in the working tree.
2026-09-24 10:11:32 -05:00
Brendan Robert 2f2772e643 Keep Blockly workspace sizing synchronized and notify root renames
Wire the root-only rename listener and persistently converge workspace dimensions after late JavaFX layout, without repeated resizing at stable size.
2026-09-24 10:11:24 -05:00
Brendan Robert 9a949a7d40 Refresh map script cells and enable editor regression tests
Repaint the list after in-place script renames while retaining the same Script instances. Configure Surefire for classpath tests and cover map list refresh and reopen bookkeeping.
2026-09-24 10:11:16 -05:00
Brendan Robert 19874540dc Scope Mythos renames and Apply to script root
Gate live NAME notifications on the imported root block. Serialize only that root when extra top-level blocks exist, warn through the JavaFX dialog bridge, and leave the model untouched when the root is missing. Add Node and JUnit coverage for rename and Apply behavior. Include editor reopen bookkeeping and root-name synchronization.
2026-09-24 10:00:35 -05:00
Brendan Robert 0a8ca56491 Merge pull request #49 from WizardOfWor1969/master
Fix GluonFX native-image link failure with newer GraalVM builds
2026-09-19 13:10:55 -05:00
Brendan Robert 506c28a445 Use early access builder version OutlawEditor-3.10 2026-09-19 13:02:57 -05:00
Adam HallandClaude Sonnet 5 15d1e04a39 Fix GluonFX native-image link failure with newer GraalVM builds
Newer GraalVM native-image versions (25.x) require libsvm_container
for container-awareness support, but gluonfx-maven-plugin 1.0.26 (and
its underlying substrate library, even at its latest 0.0.69 release)
predates this and never adds -l:libsvm_container.a to the generated
link command, causing undefined references to
svm_container_physical_memory/initialize/active_processor_count.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-19 10:48:30 -07:00
Brendan Robert c125c3b9fb Update cloud runner to use JDK 27 2026-09-19 12:21:11 -05:00
Brendan Robert c5c8b55332 Update Outlaw to 3.10 2026-09-19 12:10:37 -05:00
Brendan Robert 1fb539e432 Change JDK to 27 2026-09-19 12:10:02 -05:00
Brendan Robert e6dcb1871a Upgrade to JDK 27 dependencies, fix custom types block error in blockly editor. 2026-09-19 12:07:27 -05:00
Brendan Robert 73a0ee9efe Merge pull request #48 from badvision/appmod/java-upgrade-20260919163142
Appmod/java upgrade 20260919163142
2026-09-19 11:44:06 -05:00
Brendan Robert 96afc06cc5 resolve minor compiler warnings 2026-09-19 11:43:24 -05:00
Brendan Robert 5e51356975 Step 3: Upgrade Java Compiler Target - Compile: SUCCESS
Set Maven compiler source and target to Java 25. Baseline Java 17 tests and Java 25 test compilation succeeded.
2026-09-19 11:36:17 -05:00
Martin Haye 7f18da1da0 A little tweak so advancing time doesn't change the seed - this caused diffs between autoplay and Virtual II 2026-09-17 08:26:30 -07:00
Martin Haye 7a3e0cefe9 Fix for execute-after-free bug when returning from random encounters: moved some functions out of util3d since they have to stay resident during combat. Also, added a render call to fix incorrect clock rendering after traveling. 2026-09-11 06:17:27 -07:00
Martin Haye bf7dc978dc Fixed some bugs in the spelling correction text extractor 2026-09-05 05:29:18 -07:00
Martin Haye 8a07aad2df Merge branch 'master' of https://github.com/badvision/lawless-legends 2026-09-02 09:09:59 -07:00
Martin Haye 7dc59febee Fixed a giant bug in the buffer digest algorithm, and re-enabled it. Also added some nice mixing that I hadn't thought of before. This speeds up floppy mode alot. It ain't fast, but it's a lot faster than without the digest. 2026-09-01 13:24:03 -07:00
Martin Haye 467911b7f5 Fixed floppy mode - ProRWTS was re-prepping drive in subdirectory mode, but prepdrive isn't safe to call twice because it clears the drive select bit of reqcmd 2026-09-01 12:28:40 -07:00
Martin Haye 22649d0b2b Added comments explaining dbgrwts 2026-09-01 12:27:35 -07:00
Martin Haye e486ae0db1 Removed unused debug jsr 0 2026-09-01 12:27:14 -07:00
Brendan Robert caa6349358 Re-apply the JavaFX UA-override O(n) import fix on top of Blockly v12.5.1
The v12 revert restored the pre-v13 editor.html, which also removed the
user-agent fix that had been proven against the saloon O(n^2) import
(329 blocks, ~6.5s synchronous re-render per queueRender in JavaFX's
immediate-render mode). Blockly v12 has the same userAgent.JavaFx /
alwaysImmediatelyRender mechanism, so strip the JavaFX token from
navigator.userAgent before Blockly loads; the import then goes through
the standard rAF-batching path. Verified on JDK 17 / JavaFX 21.0.7:
saloon loads in ~275ms, 329/329 blocks rendered, engine alive. The
v12-era BLOCK_CREATE workaround stays (redundant under batching,
harmless). No-op on non-JavaFX browsers.
2026-09-01 12:15:20 -05:00
Brendan Robert df9065dced Upgrade blockly_compressed.js to official v12.5.1
The core was previously a v12.4.1 build (815 bytes smaller). Upgrade
to the official npm package 12.5.1 to match blocks_compressed.js and
msg/en.js which were already at v12.5.1.
2026-09-01 09:05:25 -05:00
Brendan Robert 7e9c225749 Revert Blockly to v12 and restore the browser workarounds
Restore blockly_compressed.js, blocks_compressed.js, and msg/en.js
from the last v12 release. Remove the v13-only drop.mp3 media file.

The pre-v13 editor.html contained three workarounds that are now
restored:
  - BLOCK_CREATE re-render: re-queues descendants after creation
    to fix white-blip/missing-shadow issues in JavaFX immediate
    render mode
  - Cross-window clipboard bridge: bridges copy/paste across
    WebView's isolated JS contexts using getLastCopiedData/
    setLastCopiedData
  - Undo-delete monkeypatch: records parent connections before
    unplug() so undo can reconnect restored blocks properly

The mythos_uncompressed.js is also reverted to its pre-v13 state.
2026-09-01 08:41:34 -05:00
Brendan Robert 1edb8482c3 JACE IDE: replace CodeMirror WebView editor with native RichTextFX editor
- Add NativeEditorControl built on RichTextFX CodeArea with CSS-class
  syntax highlighting (no canvas overlay), plus DARK/LIGHT EditorTheme
  with WCAG AA contrast
- Syntax definitions: AppleSoftBasicSyntax (from Command.TOKEN values)
  and MOS65C02AssemblySyntax (ACME 65C02 mnemonics, label forms,
  $hex/0x/&octal/%binary numerics); MarkerRenderer surfaces
  error/warning lines and is unit-testable without the FX thread
- Rewire IdeController/Program/editor.fxml to the native control, add
  cut/copy/paste and symbol-table menu items; drop WebView (javafx.web
  no longer required, org.fxmisc.richtext 0.11.7 added)
- Remove the vendored CodeMirror bundle (129 files, ~22k lines)
- Disk upgrade: validate the image is a Lawless Legends disk before
  offering an upgrade, and verify save-game writes by re-reading them
- Add unit tests for the syntax definitions, marker renderer, and
  editor control

Note: version.properties (local build overrides: mac lwjgl natives,
jacoco agent) is intentionally left uncommitted.
2026-09-01 01:02:12 -05:00
Brendan Robert dd69921423 Update version number to 3.9 OutlawEditor-3.9 2026-09-01 00:33:02 -05:00
Brendan Robert bbc296d86a Upgrade Blockly to v13.2.1 and fix the saloon import O(n^2) render loop
- Blockly v12.4.1 -> v13.2.1 (blockly_compressed.js, blocks_compressed.js,
  msg/en.js, new media/drop.mp3)
- Fix v13 validation errors: nameless value input on set_<type> blocks,
  guard null names in the variable/attribute dropdowns and create_<type>
  inputs, ARIA label on the text-field editor textarea
- Fix O(n^2) import (the Windows-only 'JavaScript execution terminated'
  crash): hide the JavaFX token from navigator.userAgent before Blockly
  loads so render management uses the requestAnimationFrame batching path
  instead of alwaysImmediatelyRender; domToWorkspace now renders once.
  Saloon import drops from ~6.5s to ~250ms (329/329 blocks, verified on
  macOS)
- Add init/load timing logs and a JS-engine liveness probe to the editor
  controller for diagnosing WebView-level failures
2026-08-31 23:13:43 -05:00
Badvision 669f45130e Fix Saloon script freeze: wrap executeScript in Platform.runLater, guard updateToolbox for Blockly v12
- Wrap all WebView executeScript calls in Platform.runLater() in
  MythosScriptEditorController.setEditor() to fix thread-safety issue
  where WebKit I/O thread calls silently failed on Windows
- Add typeof guard for removed Blockly v12 updateToolbox() API
- Fix Application.java package import (data.Global -> data.xml.Global)
- Add detailed freeze analysis documentation
2026-08-30 20:56:02 -05:00
Martin Haye e88f47723c Updated to use nestedvm image that is compatible with modern docker. Also added a rebuild script that really rebuilds everything from scratch including plasm. 2026-08-30 10:40:53 -07:00
Martin Haye 729e47265f For now, don't restore recorded seed. Once Forrest has switched over to the seed-saving version, we can restore this 2026-08-30 06:21:15 -07:00
Martin Haye 500ea051ea Removed, at least temporarily, the buffer digest optimization, which was mainly to speed up floppy mode. 2026-08-30 06:19:34 -07:00
Martin Haye 6778ee68f0 Only print out map, facing, seed, etc. when in auto-play mode - speeds up regular record mode 2026-08-30 06:18:58 -07:00
Martin Haye 325d2ac3fb Shortened a bit of text in combat to prevent scrolling when player has 14:16 bullets 2026-08-30 06:18:25 -07:00
Martin Haye 1399950ffa Removed a forgotten debug log print 2026-08-27 09:49:13 -07:00
Martin Haye 3ec9b45b56 Save and restore random seed in record mode 2026-08-27 09:37:00 -07:00
Martin Haye 6bd26830e7 Tiny optimization 2026-08-25 17:35:25 -07:00
Martin Haye 09a765bceb In record mode, automap needs to record the signal that it's waiting for a key. 2026-08-25 17:31:19 -07:00
Martin Haye 7d2a2f8605 In FIND_IN_MEM, don't treat inactive resource as found - caller is checking for active only 2026-08-25 17:11:09 -07:00
Martin Haye e96b3d333d When returning from engine, don't load textures unless we're about to render. Fixes out-of-mem when returning from buy/sell to merchant portrait. 2026-08-25 16:40:25 -07:00
Martin Haye 6a957fa69d Merge branch 'master' into autoplay 2026-08-25 11:43:39 -07:00
Martin Haye dfd3d527b8 Merge branch 'master' of https://github.com/badvision/lawless-legends 2026-08-25 11:43:10 -07:00
Martin Haye 610fcea58c Allow for keys without seed in xformScript.rb 2026-08-25 11:42:58 -07:00
Brendan Robert cad87273d7 Bump OutlawEditor version to 3.8 OutlawEditor-3.8 2026-08-24 14:37:02 -05:00