Also, I thought that it would be that slow, because I thought the Ab computers ran at 30 Hz(which would mean... up to 20*pixel count frames)(yet i made it 10*pixel count SECONDS)(and that was hugely wrong math on my side)
Also, thanks for answering a question I had(but didnt ask why). When I tried rendering testimg.uif, the first three pixels were uhh "@@#" or on lines 3-5 of the image we got:
[Pixels -4 - -2: Other than 5, 4, 3, 2 or 1.]
Pixel -1: 5(img width)
Pixel 0: 5(img height)
Pixel 1(START RENDERING HERE...): 4
ERROR! ERROR! Turns out that something was wrong. When I inputted my image(testimg.uif), I expected:
#####
# #
# @ #
# #
#####
, but got:
#####
# #
# @ #
# ###
###
(Nevermind. Seems like I setted up testimg.uif incorrectly :l)
Copying it and expanding it's currently VERY LIMITED features is a good goal I'd say... I created a square version and then created a square bouncing animation. With enough circles, *hopefully* anything is possible!
Turns out that the AHOX Writer recreation's menu library uhh DOESN'T WORK. Can you move the program counter to a variable (e.g. goto var0) or move the program counter to an item of a list(e.g. goto k(2))? That's the main problem I'm having. The failedCommand is:
IF key("E")=1 then goto k(3)
IF you can't tell, k(3) is the 4th item of a list called k.
@Little I'm gonna give you what I forgot/didn't know that made those bugs.
But before that, just know that .UIF Viewer wasn't tested that much.
1. I forgot to create the function "failedRender".
2. I accidentally reversed it and forgot to change it to make it correct.
3. I do not even know why that happened.(P.S. Installation should work fine on an AHOX Lithium, as there is a version check there, and that leads to another downloader(with function lithiumdownload) that just uses install.)
Please specify where basicNOTEPAD crashes when you press enter. Is it after you inputted an "opcode"?
Fixing(except the last one.)
Okay I figured out why no.3 doesn't work. Turns out that you are just supposed to input the function name rather than the entire line where the function is.
Fixing "goto" was very simple! All I did was change the "goto" function to:
opcode == "goto" ? {
_isANumber(_solve(parts(1))) ? {
numb = (math.toInt(parts(1)) / 10);
numb + 0.0 == (math.toInt(parts(1)) / 10.0) ? {
_pc = (math.toInt(parts(1)) / 10) - 2
} : {
_error("Invalid GOTO expression", 1, 1)
}
} : {
_jpFunc(parts(1))
}
You may have noticed that the ONLY change I made was at the starting if statement, where I changed parts(1) to _solve(parts(1))
And, I BARELY changed _jpFunc too. The changed line is:
funcLoc = _findFunction(_solve(funct));