Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VVVVVV 2.4 support todo #150

Open
28 of 33 tasks
Daaaav opened this issue Oct 28, 2023 · 0 comments
Open
28 of 33 tasks

VVVVVV 2.4 support todo #150

Daaaav opened this issue Oct 28, 2023 · 0 comments

Comments

@Daaaav
Copy link
Owner

Daaaav commented Oct 28, 2023

This is just a checklist to keep track of what changes still need to be made to Ved to accommodate VVVVVV 2.4 changes. Most of these points were things taken from the 2.4 changelog that were relevant for Ved in some way.

Not all items listed here may end up being important enough to be implemented anytime soon, so this issue may be closed with an incomplete checklist, once enough of the items have been completed and the others have little demand and are stuck in todo list land.

Was already done

  • "Preloaded" playtesting: playtesting can be started up faster by launching VVVVVV and only passing the level (along with starting attributes) via stdin once ready (at which point it will create the window). 2.4 can also be recognized with the new -version flag (and older versions can be identified by their behavior when given that flag)

Important (should have priority once 2.4 comes out)

  <TextboxColours>
      <colour r="170" g="47" b="88" name="test"></colour>
  </TextboxColours>
        <SpecialRoomnames>
            <static x="0" y="0" flag="2">This shows if flag 2 is on!</static>
            <glitch x="0" y="0" flag="1">
                <text>On the Waterfront</text>
                <text>On the Vaterfront</text>
            </glitch>
            <transform x="1" y="0" loop="0" flag="1">
                <text>Television Newsveel</text>
                <text>Television Newsvel</text>
                ...
                <text>The 9 O'Cvovk Newv</text>
                <text>The 9 O'Clock News</text>
            </transform>
        </SpecialRoomnames>
  • New scripting commands: setactivitycolour(), setactivitytext, setactivityposition(y), changerespawncolour(), iflang(lang,script), loadtext(lang), textcase(n), setfont(font), textbuttons, textboxtimer(n), setroomname, textimage and textsprite. These are trivial to add to the syntax highlighter, the only thing is that setactivitytext and setroomname use text on the next line, so there would need to be a special case to handle them like say, reply or text.
  • Update scripting references with new commands
  • Textbox r can be set to more arbitrary values using createcrewman by passing in a number for the color
  • destroy(moving) and destroy(disappear) were added (simplified scripting reference)
  • transparent textbox color was added
  • Script names containing spaces or capitals were made possible to be jumped to via iftrinkets() or similar. This affects all current lowercasing/space-removing of script names, and the "Unsuitable script name!" warning light
  • Script context for jumping to script in iflang(lang,script)
  • Discuss with Ved translators whether any translations in Ved need to be changed to be consistent with VVVVVV's new translations (like how trinkets are called)
  • Support for the new font system (font-rewrite/Font.cpp):
    • Keep around the <font> tag
    • .fontmeta files
    • Colored glyphs
    • Distinguishing level-specific font (PR_FONT_LEVEL) and interface font (PR_FONT_INTERFACE or 0)
    • Position CJK fonts (centered unless PR_CJK_LOW or PR_CJK_HIGH) at least in custom levels (rest of interface can be done gradually unless a CJK translation of Ved is made)
    • Allow level font selection like in the main editor
    • Fallback fonts
  • RTL/Arabic support:
    • Keep around the <rtl> tag
    • New scripting command setrtl(on/off)
    • Add the Arabic font in
    • Actual bidi and reshaping support. I'll probably just integrate SheenBidi into Ved as well as a DLL. I already ship SOs on both macOS on Linux, so the only first-time thing would be also shipping a DLL on Windows (actually both a 32-bit and a 64-bit one)
    • Support right-aligned roomtext (p1=1)
  • Improved autotiling

Not as important, but should be done for full support

  • Localization support for custom levels, specifically translated roomnames and cutscenes. This could range from very basic to very elaborate, but I wonder how many people will have the means or desire to make their level in more than one or two languages. I don't expect multilingual custom levels to become a big thing, but who knows? Once support for CJK fonts is in, that'll be another point, and definitely belong in the Important category.
  • The say(50) limit was removed, so text with 48 lines or more is now possible. My idea is to not (immediately) make internal scripting mode start using larger blocks all the time, just when it's forced to (i.e. when it currently gives an error due to too many lines between a text and the corresponding speak/speak_active) to not make opening scripts inherently and silently break the compatibility they had. This is a problem for :target() however (fakecommand for AEM usage), so it's not just artificially engineered scripts to break Ved's limit, people are getting the "split failed miserably" message because they're trying to use AEM on too high entity numbers.
  • Syntax coloring for textbox L syntax like say(26L)

Not very important, but nice to have

  • (none yet)

Little to do with support

  • (none yet)
@Daaaav Daaaav pinned this issue Oct 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant