From 5b2e014e30c8183b59e5967dfe4aae2d70cc0a58 Mon Sep 17 00:00:00 2001 From: Treeki Date: Mon, 16 May 2011 20:40:27 +0200 Subject: preliminary HUD updating, with too much debugging code atm --- src/wm_hud.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ src/worldmap.cpp | 2 ++ 2 files changed, 44 insertions(+) (limited to 'src') diff --git a/src/wm_hud.cpp b/src/wm_hud.cpp index 670683c..62ebb99 100644 --- a/src/wm_hud.cpp +++ b/src/wm_hud.cpp @@ -29,6 +29,8 @@ int dWMHud_c::onCreate() { layout.build("banner.brlyt"); + layout.findTextBoxByName("T_area_01")->AllocStringBuffer(100); + layoutLoaded = true; } @@ -55,3 +57,43 @@ int dWMHud_c::onDraw() { return true; } + +void dWMHud_c::updateText() { + u16 newPointName[120]; + + OSReport("Updating text.\n"); + + // figure this out... + WMPathPoint *point = dScNewerWorldMap_c::instance->currentPoint; + OSReport("Obtained point: %p\n", point); + + if (point->type == WMPathPoint::LEVEL_TYPE) { + OSReport("It's a level: %d, %d\n", point->params[0], point->params[1]); + + LevelInfo *li = &dScNewerWorldMap_c::instance->levelInfo; + LevelInfo::Entry *entry = li->search(point->params[0] - 1, point->params[1] - 1); + + OSReport("Got entry: %p\n", entry); + + char *levelName = li->getNameForLevel(entry); + + OSReport("Got name: %s\n", levelName); + OSReport("Length: %d\n", entry->nameLength); + + // copy it + // I need to make this into a function. + for (int i = 0; i < 120 && i < entry->nameLength; i++) { + newPointName[i] = levelName[i]; + } + newPointName[entry->nameLength] = 0; + } else { + OSReport("No name!\n"); + newPointName[0] = 0; + } + + nw4r::lyt::TextBox *t = layout.findTextBoxByName("T_area_01"); + OSReport("TextBox: %p\n", t); + layout.findTextBoxByName("T_area_01")->SetString((wchar_t*)newPointName); + OSReport("Set it to T_area_01\n"); +} + diff --git a/src/worldmap.cpp b/src/worldmap.cpp index 4f8b0c5..33bda60 100644 --- a/src/worldmap.cpp +++ b/src/worldmap.cpp @@ -887,6 +887,8 @@ void dScNewerWorldMap_c::MoveThroughPath() { SaveBlock *save = GetSaveFile()->GetBlock(-1); //save->current_world = newPage; ? save->current_path_node = pathData.getPointID(this->currentPoint); + + dWMHud_c::instance->updateText(); } else { this->MoveToSegment(nextSegment); } -- cgit v1.2.3