mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
Removed all single-player/offline mode functionality: - Removed ~2,200 lines of SQLite database code - Removed 11 public SP methods from GameHandler - Removed SP member variables and state flags - Removed SP UI elements (auth screen button, game settings) - Removed SQLite3 build dependency - Deleted docs/single-player.md - Updated documentation (README, FEATURES, CHANGELOG) Files modified: - src/game/game_handler.cpp: 2,852 lines (down from 4,921) - include/game/game_handler.hpp: Removed SP API - src/core/application.cpp/hpp: Removed startSinglePlayer() - src/ui/*: Removed SP UI logic - CMakeLists.txt: Removed SQLite3 All online multiplayer features preserved and tested.
209 lines
9.5 KiB
Markdown
209 lines
9.5 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to the Wowee project are documented here.
|
|
|
|
## Recent Development (2024-2026)
|
|
|
|
### Architecture Changes
|
|
- **Removed single-player mode**: Removed offline/single-player functionality to focus exclusively on multiplayer. This includes removal of SQLite persistence, local combat simulation, and all single-player UI elements.
|
|
|
|
### Quest System
|
|
- **Quest markers**: Added ! (quest available) and ? (quest complete) markers above NPCs
|
|
- **Minimap integration**: Quest markers now appear on minimap for easy navigation
|
|
- **Quest log**: Full quest log UI with objectives, progress tracking, and rewards
|
|
- **Quest details dialog**: Rich quest details window with description and objectives
|
|
- **Quest turn-in flow**: Complete quest workflow from accept to turn-in with reward selection
|
|
- **Quest giver status**: Automatic CMSG_QUESTGIVER_STATUS_QUERY when NPCs spawn
|
|
- **Status re-query**: Re-query quest status after accepting or completing quests
|
|
|
|
### Spellbook & Action Bar
|
|
- **Class specialty tabs**: Spellbook organized by SkillLine specialties using SkillLine.dbc and SkillLineAbility.dbc
|
|
- **General tab**: Separate tab for universal spells
|
|
- **Spell icons**: Loaded from SpellIcon.dbc with proper rendering
|
|
- **Drag-drop system**: Drag spells from spellbook to action bar slots
|
|
- **Click-to-cast**: Click action bar slots to cast spells
|
|
- **Spell targeting**: Proper spell targeting implementation
|
|
- **Error messages**: Clear error messages for spell cast failures
|
|
- **Cooldown tracking**: Visual cooldown indicators on action bar
|
|
- **Keybindings**: 1-9, 0, -, = for quick action bar access
|
|
- **Window behavior**: Fixed spellbook window dragging and escape-from-bounds issues
|
|
|
|
### Inventory & Equipment
|
|
- **Equipment slots**: 23 slots (head, shoulders, chest, legs, feet, wrist, hands, waist, back, mainhand, offhand, ranged, etc.)
|
|
- **Backpack**: 16-slot backpack storage
|
|
- **Item icons**: Loaded from ItemDisplayInfo.dbc
|
|
- **Drag-drop**: Drag items between inventory, equipment, and action bar
|
|
- **Auto-equip**: Automatic equipment slot detection and equipping
|
|
- **Item tooltips**: Rich tooltips with item stats and information
|
|
- **Online sync**: Proper GUID resolution and inventory enrichment
|
|
- **Slot mapping**: Fixed online equipment slot mapping and backpack offsets
|
|
|
|
### Vendor System
|
|
- **Buy items**: Purchase items from vendors with gold
|
|
- **Sell items**: Sell items back to vendors (online and offline)
|
|
- **Gold tracking**: Proper coinage field (PLAYER_FIELD_COINAGE at index 1170)
|
|
- **Inventory errors**: Handle sell/inventory errors gracefully
|
|
- **UI improvements**: Clean vendor interface with item lists
|
|
|
|
### Loot System
|
|
- **Loot window**: Visual loot window with item icons
|
|
- **Gold looting**: CMSG_LOOT_MONEY packet for online gold pickup
|
|
- **Item pickup**: Automatic item transfer to inventory
|
|
- **Corpse looting**: Loot from defeated enemies
|
|
|
|
### Combat System
|
|
- **Auto-attack**: Automatic attack on targeted enemies
|
|
- **Spell casting**: Full spell casting with resource costs (mana/rage/energy)
|
|
- **Attack animations**: Proper NPC and player attack animations
|
|
- **Damage calculation**: Server-side damage processing
|
|
- **Death handling**: Player death, corpse creation, resurrection
|
|
- **Faction hostility**: Faction.dbc-based hostility using base reputation
|
|
- **Race-aware factions**: Proper faction checking for all player races
|
|
- **Neutral-flagged hostile**: Support for neutral-flagged hostile mobs (Monster faction group)
|
|
- **Level-based coloring**: WoW-canonical mob level colors (gray, green, yellow, orange, red)
|
|
|
|
### Character System
|
|
- **Character creation**: Full creation flow with race, class, gender, appearance
|
|
- **Character screen**: 3D animated character preview
|
|
- **Stats panel**: Display level, race, class, location on character screen
|
|
- **Model preview**: 3D character model on creation and selection screens
|
|
- **All races**: Support for all Alliance and Horde races
|
|
- **Texture support**: Race-aware skin, hair, and feature textures
|
|
- **Auto-select**: Auto-select single realm or single character
|
|
- **Logout cleanup**: Clear character state on logout to prevent stale models
|
|
|
|
### M2 Model Rendering
|
|
- **Particle emitters**: Enabled M2 particle emitters with WotLK struct parsing
|
|
- **FBlock format**: Correct FBlock format and struct size for particle data
|
|
- **Safety caps**: Overflow guards and safety caps for emitter parameters
|
|
- **Glow rendering**: Billboarded light sprites for M2 glow batches
|
|
- **Blend modes**: Skip additive/mod blend batches for correct rendering
|
|
- **Unlit rendering**: Unlit shader path for glow and additive batches
|
|
- **Lantern glow**: Fixed lantern and torch glow rendering
|
|
|
|
### NPCs & Gossip
|
|
- **Gossip system**: NPC dialogue with options
|
|
- **Gossip packets**: CMSG_GOSSIP_SELECT_OPTION with proper opcode
|
|
- **Duplicate prevention**: Clear gossip options before re-parsing
|
|
- **Reopen guard**: Prevent gossip window conflicts
|
|
- **Combat animations**: NPCs play combat animations during attacks
|
|
- **Creature spawning**: Camera intro animation on all creature spawns
|
|
- **Display lookups**: Pre-load CreatureDisplayInfo DBC at startup
|
|
|
|
### Movement & Navigation
|
|
- **WASD movement**: Smooth WASD character movement
|
|
- **Camera orbit**: Mouse-based camera orbit around character
|
|
- **Spline movement**: Follow server-side spline paths
|
|
- **Fall time**: Correct movement packet format (unconditional fallTime write)
|
|
- **Position updates**: Smooth position interpolation
|
|
- **Respawn handling**: Fixed respawned corpse movement
|
|
|
|
### Terrain & World
|
|
- **Async loading**: Asynchronous terrain streaming to prevent hang
|
|
- **Streaming loop**: Fixed terrain streaming loop for continuous loading
|
|
- **Multi-tile support**: Load multiple ADT tiles simultaneously
|
|
- **Auto-load**: Load terrain as player moves through world
|
|
- **Height maps**: Proper height calculation for player positioning
|
|
|
|
### UI Improvements
|
|
- **Loading screen**: Loading screen with progress bar during world entry
|
|
- **Resize handling**: Proper resize handling during loading
|
|
- **Progress tracking**: Visual progress percentage
|
|
- **UI opacity**: Slider to adjust UI opacity in settings
|
|
- **ImGui frame conflict**: Fixed ImGui frame management issues
|
|
- **Popup positioning**: Fixed popup window positioning
|
|
- **ID conflicts**: Resolved ImGui widget ID conflicts
|
|
- **Both-button clicks**: Suppress simultaneous left+right mouse clicks
|
|
- **Player name display**: Fixed player name rendering in UI
|
|
- **Target frame**: Display targeted entity name, level, health
|
|
|
|
### Chat System
|
|
- **Chat window**: Scrollable chat window with message history
|
|
- **Message formatting**: Proper chat message formatting with colors
|
|
- **Chat commands**: /say, /yell, /whisper support
|
|
- **Chat input**: Press Enter to open chat, type and send
|
|
|
|
### Minimap
|
|
- **Quest markers**: Show quest givers and turn-in NPCs
|
|
- **Player position**: Display player position and direction
|
|
- **Zoom**: Minimap zoom levels
|
|
|
|
### Rendering Improvements
|
|
- **WMO distance cull**: Increased WMO group distance cull from 80 to 160 units
|
|
- **Hair textures**: Fixed hair texture loading and rendering
|
|
- **Skin textures**: Proper skin color and texture application
|
|
- **Action bar icons**: Spell and item icons on action bar
|
|
- **Targeting visuals**: Visual targeting indicators
|
|
|
|
### Network & Protocol
|
|
- **Opcode fixes**: Corrected loot and gossip opcodes for 3.3.5a
|
|
- **Movement packets**: Fixed MOVE_* packet format
|
|
- **Quest opcodes**: Added quest-related opcodes
|
|
- **Item queries**: Proper CMSG_ITEM_QUERY_SINGLE parsing
|
|
- **Sell item packets**: CMSG_SELL_ITEM with correct uint32 count
|
|
|
|
### Performance
|
|
- **Frame stalls**: Eliminated stalls from terrain loading (async)
|
|
- **Startup optimization**: Load DBC lookups at startup
|
|
- **Log truncation**: Truncate log file on start to prevent bloat
|
|
- **Memory efficiency**: Proper cleanup and resource management
|
|
|
|
### Bug Fixes
|
|
- **Vendor bugs**: Fixed vendor gold calculation and item display
|
|
- **Loot bugs**: Fixed loot window showing incorrect items
|
|
- **Hair bugs**: Fixed hair texture selection and rendering
|
|
- **Critter hostility**: Fixed neutral critters not being attackable
|
|
- **Faction bugs**: Fixed Monster faction group bit (use 8 not 4)
|
|
- **XP calculation**: Proper level-based XP from mob kills
|
|
- **Respawn bugs**: Fixed corpse movement after respawn
|
|
- **Camera bugs**: Fixed camera orbit and deselect behavior
|
|
- **Spell targeting**: Fixed spell targeting for ranged abilities
|
|
- **Action bar**: Fixed drag-drop and right-click removal
|
|
- **Character screen**: Various character screen display bugs
|
|
- **Stale models**: Prevent stale player model across logins
|
|
|
|
### Single-Player Mode
|
|
- **Offline play**: Full offline mode without server
|
|
- **Local persistence**: SQLite-based character and settings storage
|
|
- **Simulated combat**: Local XP and damage calculation
|
|
- **Settings sync**: Save and load settings locally
|
|
|
|
## Future Roadmap
|
|
|
|
### Planned Features
|
|
- Talent system implementation
|
|
- Guild system
|
|
- Auction house
|
|
- Mail system
|
|
- Crafting and professions
|
|
- Achievements
|
|
- Dungeon finder
|
|
- Battlegrounds and PvP
|
|
- Mount system
|
|
- Pet system
|
|
|
|
### Rendering Improvements
|
|
- LOD (Level of Detail) system
|
|
- Improved shadow quality
|
|
- SSAO (Screen Space Ambient Occlusion)
|
|
- Better water caustics
|
|
- Improved particle effects
|
|
|
|
### Performance Optimizations
|
|
- Multi-threaded asset loading
|
|
- Occlusion culling improvements
|
|
- Texture compression
|
|
- Model instancing
|
|
- Shader optimizations
|
|
|
|
### Quality of Life
|
|
- Keybinding customization UI
|
|
- Graphics settings menu
|
|
- Audio volume controls
|
|
- Addon support
|
|
- Macros
|
|
- UI customization
|
|
|
|
---
|
|
|
|
See [GitHub commit history](https://github.com/yourname/wowee/commits) for detailed commit messages and technical changes.
|