I thought it was kinda strange too, until I actually looked at how the MoF cut-ins move. They really do do that weird quick movement from the top right corner to the bottom, then rise up slowly. I think it's more noticeable/looks weird due to the level of opacity in the initial part, but the movement itself is pretty much spot on.
Yeah, I realize MoF cut ins do move like that, but I think it moves too fast or something. I dunno.
ANYWAYS, time for a rant about the idiocies of Danmakufu because I'm super frustrated at this thing I was working on that became impossible to do. Period. No work arounds will save you here. My goal was to make a function called StringToNumber. It was supposed to take a string that has only numbers and one or no decimal points and convert it into the corresponding float. However, I came across two issues, one of which I overcame and one of which completely stumped me and caused me to give up and rage at Danmakufu.
Issue 1: The Character Data TypeMost of you should be familiar with how Danmakufu stores integers are floats and, therefore, all numbers are stored as the same data type and can be freely compared with each other. You may also be aware of the boolean data type which stores only true or false, as well as the string data type which stores letters (and numbers and symbols). What you may not know if you only worked with Danmakufu is that there is also a character data type. The string data type is actually an array of characters, which means that you can do stuff like "this is a string lol"[3] and it will give you the character "s". That's pretty neat and all, but the issue comes up when you try to do if("this is a string lol"[3] == "s"), or in other words, see if a specific character in a string is a certain character. At first glance, that looks fine, but when you try to run it, Danmakufu will throw an error. This would likely stump a lot of Danmakufu users who never touched another scripting/programming language, and it even stumped me for a bit until I realized that "this is a string lol"[3] gave me a character and that I was comparing this character to a 1-character-long-string "s". I was doing the equivalent of if([1, 2, 3, 4][3] == [4]) which would compare a number to an array. What I really had to do was this: if("this is a string lol"[3] == "s"[00]).
What the hell, right? Well this was the least of my problems.
Issue 2: WTF Fail MathHey, what's 1*10000000000? It should be 10000000000, right? Well, not according to Danmakufu! What's that you say? Danmakufu can't possibly be that stupid? Well guess what? It is. It reallly is THAT stupid. If I used OutputDebugString to output just 10000000000, it would output it just fine. However, if I outputted 10000000000*1, it would give me 9999997952. That's 2048 off from what it should be, by the way. Likewise, multiplying 10000000000 with 2 would multiply the inaccuracy by 2. Just for no apparent reason, multiplication with large numbers becomes extremely inaccurate. I have found no way to solve this problem. The engine is just that bad.
In all the times I've been working with Danmakufu, I've always thought that it was a weak language and that it had some rather strange and somewhat annoying quirks. I also thought that some of its features could use some polishing, However, I had never thought I'd encounter a big enough problem that would prevent me from doing something I wanted to do. I always thought that there would be a workaround to get around or somewhat fix the problem. And now I've been proven wrong. Thanks Danmakufu for being a pain in the ass. I can't wait for Musuu to become as useable as Danmakufu without all of its idiocies.