# BG1EE Voiceover Project Context (v0.3) ## 1. Project Overview **Project Name:** bg1-ee-voiceover **Goal:** Create a robust dual-language (German/English) data foundation and game integration hook for *Baldur's Gate: Enhanced Edition*. **Current Scope (v0.3):** * **Focus:** Data Extraction, Parsing, and Logging Hook. * **Excluded:** Active TTS generation and HTTP API (deferred to later phases). * **Objective:** Establish a clean, bilingual `dialogs.json` database and a working `Infinity_Log` trigger from within the game. ## 2. Architecture (v0.3) The system is reduced to three core components: 1. **Extraction (Near Infinity):** * **Source:** `dialog.tlk` (DE & EN), `*.dlg`, `*.2da`. * **Output:** JSON files in `data/raw/`. 2. **Parser (Python):** * **Input:** Raw JSONs (`tlk` and `dlg`). * **Logic:** Match IDs across languages, link dialog nodes, map speakers. * **Output:** `data/processed/dialogs.json`. 3. **Lua Hook (Mod):** * **Location:** `lua-hook/bg1ee_tts_hook/`. * **Events:** `OnDialogStart`, `OnDialogNodeChange`. * **Action:** Write ID to `Infinity_Log`. ## 3. Technology Stack * **Extraction:** Near Infinity (Java Tool). * **Processing:** Python 3.10+ (Standard Library + `json`). * **Game Modding:** Lua (embedded in BG1EE). ## 4. Immediate Roadmap (Phases) * **Phase 1: Extract (NOW):** * Export `dialog.tlk` (DE) -> `data/raw/tlk/dialog_de.json`. * Export `dialog.tlk` (EN) -> `data/raw/tlk/dialog_en.json`. * Export all `*.dlg` -> `data/raw/dlg/*.json`. * (Optional) Export `npc.2da` -> `data/mappings/npc_map.json`. * **Phase 2: Parser (NEXT):** * Implement Python parser to merge these inputs into `dialogs.json`. * **Phase 3: Hook (PARALLEL):** * Create `dialog.lua` to log dialog events. * **Phase 4: Offline Rendering Prep (OPTIONAL):** * Define WAV naming convention and folder structure. ## 5. Directory Structure * `docs/`: detailed specs (Architecture, Extraction, Project Plan). * `data/`: * `raw/`: Raw exports. * `processed/`: Final `dialogs.json`. * `scripts/`: Python ETL scripts. * `lua-hook/`: The game modification files.