You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)
Full read/write support of data (can come later, probably only with new XML parser)
Full support for editing this
<SpecialRoomnames>
<staticx="0"y="0"flag="2">This shows if flag 2 is on!</static>
<glitchx="0"y="0"flag="1">
<text>On the Waterfront</text>
<text>On the Vaterfront</text>
</glitch>
<transformx="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)
The text was updated successfully, but these errors were encountered:
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
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)
setactivitycolour()
,setactivitytext
,setactivityposition(y)
,changerespawncolour()
,iflang(lang,script)
,loadtext(lang)
,textcase(n)
,setfont(font)
,textbuttons
,textboxtimer(n)
,setroomname
,textimage
andtextsprite
. These are trivial to add to the syntax highlighter, the only thing is thatsetactivitytext
andsetroomname
use text on the next line, so there would need to be a special case to handle them likesay
,reply
ortext
.r
can be set to more arbitrary values usingcreatecrewman
by passing in a number for the colordestroy(moving)
anddestroy(disappear)
were added (simplified scripting reference)transparent
textbox color was addediftrinkets()
or similar. This affects all current lowercasing/space-removing of script names, and the "Unsuitable script name!" warning lightiflang(lang,script)
<font>
tag<rtl>
tagsetrtl(on/off)
Not as important, but should be done for full support
say(50)
limit was removed, sotext
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 atext
and the correspondingspeak
/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.L
syntax likesay(26L)
Not very important, but nice to have
Little to do with support
The text was updated successfully, but these errors were encountered: