promotional bannermobile promotional banner

RC-Diablo Orbs

Mistra's Diablo Orbs is a World of Warcraft addon that provides players with an attractive and functional interface element for monitoring their character's health and mana resources.

File Details

RCDiabloOrbs_1.12.zip

  • R
  • Jan 24, 2026
  • 8.67 MB
  • 159
  • 5.5.3+4
  • Classic + 2

File Name

RCDiabloOrbs_1.12.zip

Supported Versions

  • 5.5.3
  • 4.4.2
  • 3.4.5
  • 2.5.5
  • 1.15.8

# RC Diablo Orbs - Changelog

## Version 1.1 - January 2026

### 🐛 Bug Fixes

#### Protected Function Error Fix
- **Issue:** `[ADDON_ACTION_BLOCKED] AddOn 'RCDiabloOrbs' tried to call the protected function 'PlayerFrame:Hide()'`
- **Cause:** Blizzard restricts direct `Hide()` and `Show()` calls on the default PlayerFrame
- **Solution:** Replaced direct Hide/Show calls with a workaround that:
  - Sets alpha to 0 (invisible)
  - Disables mouse interaction
  - Moves the frame off-screen (-9999, 9999)
  - Saves and restores original position when re-enabled

#### Color Data Corruption Fix
- **Issue:** `bad argument #2 to '?' (Usage: self:SetVertexColor(color [, a]))` with `g = nil`
- **Cause:** Saved character data had corrupted color tables with missing RGB components
- **Solution:** 
  - Added `safeColor()` helper function that provides fallback values for any nil color components
  - Updated `updateColorsFromMemory()` to use safe color access
  - Updated `RC32UpdateOrbColor()` to use safe color access
  - Updated combat event handlers to use safe color access
  - Added `validateColorTable()` in `checkDefaultsFromMemory()` to automatically repair corrupted color tables on load

#### ColorPicker API Fix
- **Issue:** `attempt to call field 'swatchFunc' (a nil value)` when opening color picker
- **Cause:** MoP Remix (Interface 50401) uses a newer ColorPickerFrame API that requires `SetupColorPickerAndShow()` with a configuration table instead of directly setting `ColorPickerFrame.func`
- **Solution:**
  - Updated `RC32ColorPicker()` to use `ColorPickerFrame:SetupColorPickerAndShow()` with proper `swatchFunc`, `opacityFunc`, and `cancelFunc`
  - Updated `TryNewColors()` to handle alpha correctly from the new API using `GetColorAlpha()`
  - Added fallback for older API versions for compatibility
  - Added nil validation for all color values

---

### ✨ New Features

#### Welcome/Info Popup System
A comprehensive welcome popup that introduces users to the addon and explains all features.

**Popup Features:**
- Appears automatically 1.5 seconds after login
- Scrollable content area for all information
- Draggable window
- Professional gold-bordered design

**Content Includes:**
- Welcome message and addon description
- **Features Section:**
  - Health & Mana Orbs (colors, textures, animations, scaling)
  - Pet Orb (combined health/mana display)
  - Combat Color Change functionality
  - Power Tracker (combo points, chi, holy power, etc.)
  - Decorative Artwork (angel/demon frames)
- **Menu Options Section:**
  - Health/Mana Orb customization buttons
  - All checkbox options explained
  - Slider controls explained
  - Menu theme options
- **How to Use Section:**
  - Opening the menu (/rc32 or minimap button)
  - Moving orbs
  - Customization workflow

**User Controls:**
- **"Don't show this on login"** checkbox - Saves preference account-wide
- **"Open Menu"** button - Closes popup and opens main menu
- **"Got it!"** button - Closes popup

#### Info Button on Main Menu
- Added "Info" button next to "Close" button at bottom of main menu
- Click anytime to re-open the welcome popup
- Useful for returning users who want to review features

---

### 📁 Files Modified

- `RCDiabloOrbs.lua` - All bug fixes and welcome popup system
- `RCDiabloOrbs.xml` - Added Info button to main menu

### 💾 SavedVariables Changes

New account-wide setting in `RC32AccountData`:
- `hideWelcomePopup` (boolean) - Stores user preference for hiding popup on login

---

### 🔧 Technical Details

#### New Functions Added:
- `safeColor(colorTable, defaultR, defaultG, defaultB, defaultA)` - Safe color extraction with fallbacks
- `validateColorTable(colorTable, defaultColor)` - Repairs corrupted color tables
- `CreateWelcomePopup()` - Creates the welcome popup frame
- `RC32_ShowWelcomePopup()` - Shows the popup (always)
- `RC32_ShowWelcomePopupOnLogin()` - Shows popup respecting user preference

#### Modified Functions:
- `handlePlayerFrame(show)` - Now uses alpha/position instead of protected Hide/Show
- `updateColorsFromMemory()` - Uses safeColor() for all color access
- `RC32UpdateOrbColor()` - Uses safeColor() for all color parameters
- `checkDefaultsFromMemory()` - Added color table validation/repair
- `RC32ColorPicker()` - Updated for new ColorPickerFrame API
- `TryNewColors()` - Updated for new ColorPickerFrame API
- `eventFrame:OnEvent()` - Added welcome popup trigger on ADDON_LOADED

---

## Version 1.0-MoP - Original Release

- Initial release for MoP Remix (Interface 50401)
- Diablo-style health and mana orbs
- Pet orb with combined health/mana display
- Power tracker for combo points and similar resources
- Combat color change feature
- Customizable colors, textures, and animations
- Angel and demon decorative artwork
- Multiple menu background themes