Skip to content

Releases: ricker72/ricker72.github.io

Clientes

Choose a tag to compare

@ricker72 ricker72 released this 22 Sep 08:01

Version 15.30 y 15.33 assets

LegacyX version 1.9.6

Choose a tag to compare

@ricker72 ricker72 released this 05 Sep 00:37

LegacyX Editor

πŸ—ΊοΈ LegacyX Editor β€” Release Notes

v1.9.8 β€” Search / Jump RME Parity + Ctrl+G Cleanup

Tibia 10.98 Β· .NET 10 Β· Windows Forms Β· C# Β· D3D11 / GDI+

Version
Tibia
Runtime
Language
Build
Parity

LegacyX Editor is crafted exclusively by @Ricker β€” 100% C# / .NET 10 / Windows Forms.
No second runtime Β· No C++ in production Β· No invented IDs Β· No vibe coding.
RME hampusborgos/rme@da7152e source/ is the only external authority.

πŸ“… Release Date: 2026-09-04 Β |Β  πŸ“¦ Distribution: Release-Latest/ (single build) Β |Β  πŸ”– Commit: da7152ec94031c76732e997de4624c8f1c010225


πŸ“‘ Table of Contents


✨ Executive Summary

LegacyX has surpassed RME. The classic parity (P0/P1) is Certified, and the editor now operates at evolved level: an ingame emulator Sim+GOD (OTClient src/client + framework) embedded in the editor itself, plus NPC MAKER, Spell Creator, Theme & Language, God Mode, Planner and Live Collaboration β€” all in a single C# runtime.

RME is the authority for classic behavior. Proprietary enhancements never break OTBM, official materials, or the single Brush Engine transaction route.

Area Status
Client DAT/SPR/OTB/XML 10.98 🟒 Certified
OTBM + XML roundtrip 🟒 Certified
Ground / AutoBorder / Wall / Doodad 🟒 Certified
Render GDI+ / D3D11 / Texture2DArray 🟒 Certified
Palettes (7) + RAW 577 🟒 Certified
Ingame Simulation Sim+GOD 🟒 Certified v1.8.1
Global Map Operations (Γ—4) 🟒 Certified
Live Collaboration 🟒 Certified

🎯 Highlights v1.9.8

πŸ”

Find RME 4-Column
find_item_window.cpp

πŸ“

Jump to Item
Same UI, RAW brush

⌨️

Ctrl+G = Go To Position
God Mode β†’ Menu only

🎨

Theming 100% Dark
No more white popups

+ Search for Item  β€” 800Γ—600 Β· 5 modes Β· 9 Types Β· 15 Props Β· live filter 800ms
+ Jump to Item     β€” same dialog, commits RAW brush at click
! Ctrl+G           β€” now ONLY Go To Position (RME parity) β€” God Mode via menu
# Close Map        β€” custom dark dialog ES/EN/PT instead of white MessageBox
# 459/460          β€” hardcoded yellow/red tint RME map_drawer.cpp:1091
# Camera picking   β€” floor offset (7-ViewZ)*32 β€” paint under cursor on low floors

πŸ“‹ Detailed Changelog

● 1.9.8 β€” Search / Jump RME Parity + Ctrl+G Cleanup

Parity target: source/find_item_window.cpp Β· Dialog: SharpMapTracker/FindItemDialog.cs Β· Wiring: SharpMapTracker/MainForm.cs:2618 / 5419

πŸ” FindItemDialog β€” 4 columns, 800Γ—600 β€” Exact RME Replica
Column Content RME Source
Left GroupBox 5 RadioButton β€” Server IDs / Client IDs / Name / Types / Properties + SpinCtrl 0-65535 + TextCtrl Name + OK/Cancel StdDialogButtonSizer find_item_window.cpp: FindItemDialog
Types GroupBox 9 radios β€” Depot Mailbox Trash Container Door Magic Field Teleport Bed Key find_item_window.cpp: Types
Properties GroupBox 15 CheckBox β€” Unpassable Unmovable Block Missiles Block Pathfinder Readable Writeable Pickupable Stackable Rotatable Hangable Hook East Hook South Has Elevation Ignore Look Floor Change + onlyPickupables gate find_item_window.cpp: Properties
Result GroupBox ListBox 230Γ—512 + info label β€” filtered list + Timer 800ms for Name mode find_item_window.cpp: Result

Logic β€” FindItemDialog.cs:

  • setSearchMode() enables/disables groups per radio β€” identical to FindItemDialog::setSearchMode in RME.
  • RefreshContentsInternal() iterates g_items.getMinID() β†’ maxID + raw_brush catalog, filters by OtItemType flags β€” byte-identical predicate chain.
  • inputTimer 800ms debounce on txtSearch.TextChanged β€” matches RME wxTimer for Name search.
  • onlyPickupables gates Pickupable property when Types=Container etc β€” RME conditional.

Dual entry points β€” MainForm.cs:

// MainForm.cs:2618 β€” Search for Item
findItemToolStripMenuItem_Click => new FindItemDialog(otItems, tibiaItems, "Search for Item")
    => ShowMapSearch(ItemId)   // highlights on map, no brush change

// MainForm.cs:5419 β€” Jump to Item
jumpToItemMenuItem_Click => new FindItemDialog(otItems, tibiaItems, "Jump to Item")
    => new RawBrush(itemId)    // commits RAW brush, ready to paint

Same dialog, same screenshots as RME β€” separated functions, identical UI. Screenshots in RME show indistinguishable Search/Jump windows.

⌨️ Ctrl+G β€” Only Go To Position (RME map_display.cpp parity)
Before After Reason
Ctrl+G β†’ ToggleGodMode (custom) Ctrl+G β†’ Go To Position source/map_display.cpp + CMakeLists β€” RME binds Ctrl+G to Go To Position
MainForm.cs:1408 ProcessCmdKey + menu ShortcutKeys=Ctrl+G for God Mode Removed β€” godModeToggle.ShortcutKeys = None, text "Toggle God Mode" without (Ctrl+G) God Mode only via Ingame Simulation > God Mode / View > Ingame Simulation > God Mode
MainForm.Designer.cs:651 gotoPositionMenuItem.ShortcutKeys = Ctrl+G Kept β€” sole owner of Ctrl+G Parity restored

No silent fallback β€” disabled shortcut shows no hint, menu clearly states new location.

Files: FindItemDialog.cs (new, 800Γ—600, 4-column), MainForm.cs:2618,5419,752,806,1408, MainForm.Designer.cs:651 Β· Validation: visual A/B vs RME find_item_window.cpp + Ctrl+G manual test.


● 1.9.7 β€” Theming Fixes β€” Close Map oscuro + BrushComposition splitter

πŸŒ‘ Close Map β€” No more white MessageBox
  • Problem: MessageBox.Show("Close Map?") rendered white on dark theme + English only + invisible on themed hosts.
  • Fix β€” MainForm.cs:4323:
    // Before: MessageBox.Show("This map has unsaved changes...")
    // After:  Form dark 45,45,48 + Warning icon + LanguageManager keys
    // dialog.closeMap.title / message / yes / no
    // ES: "Cerrar Mapa / Este mapa tiene cambios sin guardar. ΒΏCerrar de todas formas? / SΓ­ / No"
  • Uses LegacyXStyles.CreateAdaptiveButton + CreateCenteredButtonPanel + StyleDialog + ThemeManager.ApplyTheme β€” consistent with Theme & Language v1.8.0.
  • Bilingual Data/Lang/{es,en,pt}.json β€” all three languages.
  • Crash report closed: 2026-09-04T10:54:07Z β€” white dialog was the trigger for user confusion.
πŸ”§ BrushCompositionDialog β€” SplitterDistance crash fix
  • Crash: InvalidOperationException: SplitterDistance when opening Edit composition... on earth brush β€” Panel1MinSize/Panel2MinSize + SplitterDistance = 0.58*Width set in constructor before Handle created.
  • Fix β€” Viewport/BrushCompositionDialog.cs:43:
    // Moved to Shown event + clamp min/max + try/catch
    Shown += (s,e) => { splitter.SplitterDistance = Math.Clamp((int)(Width*0.58), Panel1MinSize, Width-Panel2MinSize); }
  • Theming fix: OwnerDraw header DrawColumnHeader text 232,229,218 on 45,45,48, detailBox same, compositionList.ForeColor fixed. Applied LegacyXStyles.StyleDialog + ThemeManager in Load.
  • Context menu fix β€” Viewport/PalettePanel.cs:360: Editar composiciΓ³n... now uses LegacyXTheme.ApplyContextMenu (Surface 24,23,20 / White text) instead of ToolStripProfessionalRenderer (black on dark = invisible).

● 1.9.6 β€” RME Hardcoded Stairs + Camera Picking

πŸŸ‘πŸ”΄ Ugly Hack da7152e β€” map_drawer.cpp:1091 β€” 459/460 tint

RME comment: // ugly hack for stairs β€” hardcoded overlay for item 459 (yellow) and 460 (red) to visualize stair direction.

| ...

Read more