Jump to content
The Dark Mod Forums

Geep

Contributor
  • Posts

    1293
  • Joined

  • Last visited

  • Days Won

    64

Posts posted by Geep

  1. After pausing to work on an Carleton 24pt font update, I'm back on Air Pocket. I've been testing inventory names... some translations are too long and the names are clipped.

    Related to that, I just added a short section to the wiki's "Inventory" page called "Length of Inventory Display Names".

    • Like 2
  2. So with this update, Carleton 24pt joins Stone 24pt in having the full set of TDM-defined characters for the TDM-supported languages. For translations, this mainly benefits the main menu, but also the body text of any FM readables using Carleton.

    I need to update the Carleton font wiki article soon about this.

    • Like 2
    • Thanks 1
  3. Ah, sorry. Let me copy the content here...

    All -

    Recall that the Carleton 24pt font is widely used throughout the main menu. In some cases, a particular text string is indicated as selected (or being moused-over), by showing each character in white with a red background "glow", offset to the right (and often below).

    I'm wrapping up a revision cycle for Carleton 24pt, and now have to deal with the corresponding carleton_glow bitmaps. It would save me considerable time if I could just use a dup of (revised) carleton 24pt itself to do this, instead of creating custom bitmaps and DAT files.

    Using a dup for carleton_glow would simply rely on existing GUI offsets to show a red drop-shadow. That is how the /russian/ version of carleton 24pt implements red glow.

    Visual Examples

    We'll start with existing TDM 2.14, looking at the main menu's Settings/Video/Language page. (You can run TDM to see this comparison live.) Two screen shot snippets are shown, from page top and (with mouse-over) bottom. Here's English, which uses custom bitmaps with "blurred/feathered" glow:

    TDM2.14Carleton24ptEnglishSettingsGlow1.png.2eb3392875895aca1c8c34e295a68339.png

    TDM2.14Carleton24ptEnglishSettingsGlow2.png.b27596d9cfec4bd81035fab0b3a2e447.png

    Then here's the same page after Russian is selected as the language and TDM restarted:

    TDM2.14Carleton24ptRussianSettingsGlow1.png.c3961e00652e3487e132c32da3a0d6fe.png

    TDM2.14Carleton24ptRussianSettingsGlow2.png.bd243012f1278384f9d9b6f88ee2d571.png

    There's not a lot of difference. The white part of English is a little crisper, but may be attributable to...

    • English carleton 24pt has 512x512 bitmaps, while Russian has the traditional 256x256.
    • English carleton 24pt glyphs have edge-darkenting (i.e., thin black border), which was not done for Russian.

    Thus, I think the difference is not due to the different red glow treatments.

    The English glow has hints of red to the left of some characters, and more feathered red glow in character interiors, e.g., within the arms of the E, or extending further down from the top stroke of G. But it also shows some artifacting, where the feathering would like to extend further but is cut off by the character's bounding box. See the lower right corner of D and O in "Video", where the red is somewhat squared off due to this clipping.

    Now here are similar shots from an experimental FM with my revised carleton 24pt font, and also using the revised DAT and DDS files dup'd for carteton_glow:

    testCarletonDropShadow24ptSettings1.png.392f96977d44625237e9c603e9219342.png

    testCarletonDropShadowSettings2.png.bb7355bce90fb79ed4f7a75e7f1f741e.png

    As with 2.14 carleton, the revised carleton retains glyph edge-darkening for definition. This edge-darkening didn't seem to hurt anything when carleton bitmaps was dup'd to carleton_glow.

    So, I'm proposing to use this "dup" approach, using red drop shadows, going forward. This would save me a bunch of time and effort (which I can expand on if necessary), and simplify the system.

    Thoughts?

  4. I dunno, but looking at the TDM Script Reference, there's a few things you might try from a triggered script. Like <entity>.stopSound(channel), where channel might be SND_CHANNEL_ANY. Don't know if this works with AI.

    Or maybe <ai>.bark(sound), where sound could be a short silence clip. Or even just null?

    Other possibilities I guess:

    <emitter>.Off(); <emitter>.On();

    startSound(...);

    playAndLipSync(...);

  5. If the automation could do a screenshot, that would be another approach. You'd puppet to each target, frob it, take the screenshot (and in the case of my custom readables, wait some seconds and screenshot again). Then review the translations from the screenshots. Would be even better if it was possible for the script to pass a meaningful filename for each screenshot.

  6. 16 hours ago, datiswous said:

    This starts the mission away1 (if it's installed and tdm is booted to mainmenu), teleports to the first readable, frobs it, then goes to all the pages with a pause on every page so you can review the look of the pages, then it teleports to the second readable (which is just 1 page) and frobs that.

    Interesting, and maybe worthwhile to develop something like this for larger missions than Away 1: Air Pocket.

    In practice you'd want a much longer pause than 3 seconds to do a careful analysis of a translation. Or some way to pause indefinitely at each stop, then signal to resume... can the automation do that? While at a stop, you might want to switch back and forth between English and your language (that my custom Air Pocket readables allow).

    For a long mission, you could probably accomplish much if the FM author just provided a doc with an ordered list of teleport targets and what to do or check at each stop. This could include stops whose sole purpose was to trigger something. Mechanical-puzzle solving might still be an issue.

  7. @datiswous, all good points. I did use teleport in that manner extensively when developing and testing Away0: Stolen Heart, as well as layers. I haven't used the DR-TDM sync technique.

    One difficulty I foresaw for the current endeavor, when testing translations of Messages and Objectives, is there were various triggers, conditions, and sequence dependencies. So my pseudoFM really stripped all that away.

  8. That's all true, there's no automatic text flow between pages in TDM. With Air Pocket (for which I hope to release the i18n beta next week), the text Briefing upon inspection did need an extra page for some languages. Fortunately, since the Briefing comes at the very start, the inspection didn't take much time. For the readables, I used scaling, so no extra pages. But still inspection. And particularly for popup messages, because they occurred later in the FM, I hand-made a pseudoFM with just those assets, so I could get to them fast. Still a lot of pain for the gain.

    It's unfortunate that the support for translation in DR is so weak.

  9. I used the AirPocket all.lang to roundtrip test rebuild_all_lang version 1.1. The latter is confirmed to work, including for the previously-failing Romanian. (Built-in Windows support relies on a library that doesn't cover ISO-8859-16.)

    There's a bit of trickiness to this roundtrip business, because, in order to do a file comparison (using fc /t), you have to strip most comments from both the source and rebuilt all.lang. Also, the language blocks are in different orders. And the way gen_lang programs work, if a translated string is not provided in a particular language block, the english content is substituted. The latter in rebuild will be propagated back into the language block, where it didn't exist in the original. So editing fixup needed before comparison. Further problems with trailing whitespace, and spaces getting substituted for tabs. Whew.

    • Like 1
  10. Thanks for the details. Clearly from what you report, some sequences of your actions can make it act funny - in both the haha and weird sense. 🤪

    I think you should be able to do stuff on the inn's ground floor without causing problems upstairs, but once you start to climb the stairs, there are triggers involved. It now occurs to me too that you can adjust the game's overall frob distance with a cvar, and (since I never tested for that) that could mess up some aspects.

    For now, I'm so glad you were able to find ways to get it to work as intended.

     

  11. 18 hours ago, Knüppelaufdierübe said:

    How do you take the map and gold pouch from the fence? Neither can be frobbed

    I'm sorry this didn't work for you. As @datiswous mentioned, it might have to do with the route you took, or where you stand when the door is open, and whether that route or position bypasses triggers (or conversely triggers prematurely). I recall there were also issues about how many frobable items could be on the platter and close to each other. I did try to improve all that, but I guess couldn't make it bulletproof.

    If it's easy for you to make a short video of this behavior, I could take a look at it, see if I can reproduce it.

  12. To summarize the various findings regarding character-level problems and their workarounds -

    Recommended Platform
    The 2024 improvements in character coverage of Stone 24pt were not distributed with TDM 2.13, but now in TDM 2.14. So the Air Pocket update's i18n will work best wtih 2.14.

    Mapping Error Fixed
    [Romanian] Due to an old romanian.map error, the Romanian character  ș was rendered as Ș. Reported & fixed in bugtracker 6661, committed to dev 2.14 Rev 17437 build.


    Special (hacked) handling of readables in Air Pocket, to ovecome the shortcomings of mainly-ASCII fonts

    A system has been proposed to show the text first in English (where font is fine) and then (when current language is not English) switch over to the current language,
    but in the Stone font, which [at least for 24pt body font] has all 256 characters. This would require new C++functionality, not yet developed.

    In the meantime, the workaround implementation is to embed a copy of the English text (without #str_) within custom readable sheet GUIs. Specifically for Air Pocket, the fonts and scalings used are as follows.

    For pg1...

    • Mac Humaine [with English title and body textscales of 0.40 and .31, both invoking 48pt].
    • Stone [with non-English title and body textscales of 0.30 and 0.23, respectively invoking 48pt and 24pt].

    For pg2...

    • Shoppinglist [with English title and body textscales of 1.0 and 0.5, both invoking 48pt].
    • Stone [with non-English title and body textscales of 0.52 and 0.26, respectively invoking 48pt and 24pt].

    For more about this, besides earlier in this topic, see bugtracker proposal "0006638: Feature request: Provide Minimal Engine Support for Fade-In Translations in Readables".
    For planned improvements to Stone 48pt (as well as Carleton 24pt), see bugtracter 6656, 6657.


    Changes to English mission_briefing.xd
    Some pg_1 and pg_2 sentences are slightly altered from airpocket 1.0, to generate more-valid translations. And pg_3 is introduced, to handle language overflows.

    Unsupported characters in the TDM Char Map
    [Spanish] Can't do leading "¡", so drop it and replace trailing "!" with "."

    Missing characters in the Font used for Briefing & Objectives, Carleton 24pt
    The correct full translation is retained in all.lang as a comment, but the real text has the missing character substituted by its base character without accent. Specifically:
    [Polish]  character ń (0x9c in TDM charmap) --> n
    [Danish] charactera å (0xe5 in TDM charmap) --> a
    [Romanian] characters ș and ț (0x9d & 0x9e in TMD charmap; and probably not upper case versions either) --> s and t, S and T.

    Wrong-sized character in the the Font used for Briefing & Objectives, Carleton 24pt
    [German] lower-case "ß" (Eszett) is shown with upper case height.  Left as is in Air Pocket (although replacement with "ss" would also be OK). Needs a system-level font fix, e.g., down-scaling in the DAT file.

    Missing characters in the Font used for Messages (tdm_message_no_art), Stone 48pt
    [Polish]  character ń (0x9c in TDM charmap) --> n

    Missing characters in the Font used for Title of Stone Readables, Stone 48pt
    Because under TDM 2.13/2.14,  Romanian character ț is not available in Stone 48pt, (used in title), only Stone 24pt (used in body) , we do a work-around, namely, suppress use of title. (Other chars also missing from Stone 48pt: ș, Ș, T+hook.

    • Like 1
  13. On 6/26/2025 at 2:05 AM, covert_caedes said:

    Anyway, what I was gonna add: This was a great mission and I already played Away1 - I'm really looking forward to Away2, want to see how the story goes on :)

    @covert_caedes, besides your interest last summer (and I'm glad you liked it), I was asked recently if there's going to be an Away2. I haven't decided yet in the long run. It won't be a 2026 project, tho.

×
×
  • Create New...