A Huge Step Forward for a Little HiddenChest!
Really, I am not mocking of anything regarding space travel. It just happens that I have come back to let you know that something amazing has happened to the HiddenChest engine. What is it? Err, well, it is not something really new for VX Ace or MV users but it is for XP forumers indeed!
Chapter 1: The Introduction Without Any Explanation
Melana: But what is it then? I don't like it when you get mysterious about new features.
Me: Err, that's on purpose I guess!?
Nyakuya: He won't tell you till you press him long enough to start blabbing about it.
Me: Ha... Ha...
DerVVulfman: But you know, they're right about that! Come on! Go tell us what you did to your engine this time!
Lani: Yeah! Go ahead!
Me: Fine, fine...
This time HiddenChest allows you to play XP games with the window openness feature included a la VX Ace!
DerVVulfman: Yeah, they were right about it, that's nothing new... Wait a second! Did you say XP a moment ago? Is that an RGSS1 based game?
Melana: Yes, he did! He mentioned XP back then!
Nyakuya: Nah, you probably copied and pasted the code from VX Ace over to XP code and enabled it by default.
Me: Say what!? How dare you! That's not funny even as a yoke.
DerVVulfman: Well, you gotta admit he's got a point here.
Me: You too!? For your information I didn't borrow such code! The only things they got in common are the openness method and the need to animate their target windows.
KDC: Huh? I'm thinking I'm missing your point here, kyonides.
Chapter 2: The First Attempt to Explain What the New Version Actually Does
Me: Right... Let me explain it in a little more detailed way... I Did Not Pick The Easy Way or Take The Shortcut! OK, I know, it sounds hard to understand... The thing is that I just couldn't do that for a simple reason even if I was tempted to do so.
Melana: Is it true? Then explain to me how did you manage to overcome such a enticing temptation.
Me: Huh!? Enticing? Really Melana? Nah, it wasn't that bad at all. You see, once I had copied and pasted such a code I would have broken a few things in XP for sure. What kind of stuff? Err, well, I think the way the window graphics are distributed since VX and VX Ace use their own versions of the windowskin. I even think they don't have the same size...
Melana: Oh! Then what did you do then?
Nyakuya: Good question! He just didn't answer the question as he always do.
Me: Well, you've seen the screenshots. A window now opens when the scene begins or closes after exiting the current scene. An hypothetical third screenshot would look like one of my previous A Short Odyssey game snapshot...
DerVVulfman: And you didn't waste any time to advertise your very own game, didn't you sharkie?
Me: Hey! Stop pointing out such stuff, Wulfo!
Lani: wulfie's likes + 1
Me: As if he had said or done anything relevant here... Anyway, that's not the end of the story!
Melana: That's not all!? Then tell us more! Don't keep us waiting!
Chapter 3: The Mysterious Improvement is Better than You First Thought
Me: OK, OK, you might also need to know it's far better than VX Ace's window openness...
Nyakuya: Oh really? Wait till I unknowingly find a way to break it!
Me: Right... Well, what makes it a great asset for HiddenChest is that It Has 4 Modes!
Well, I gotta admit VX Ace offered two by default, namely animated and non animated, where animated equals a window that opens and closes on its own...
Siletrea: I don't fully grasp of all this stuff but I suspect there's some sort of AI involved here!
Me: Huh!? AI!? Err, well, Silly, let's keep it simple and down to earth. I just added useful code that will handle most of the actions in C++ plus their respective Ruby wrappers... OK, some of the CRuby code isn't that basic because it also handles stuff BEFORE the window finishes its initialization aka creation step and gets displayed on screen.
Melana: But that's amazing indeed! Don't underestimate your achievements!
Me: Err... Thanks, Melana... OK, let's talk about those two missing options or modes I haven't mentioned on this post. They are the top-down and the bottom-upwards openings! Fine, I didn't find the right words to phrase it as clear as to let even Silly get the whole picture. Even so it's true, you've got more than just the window opening in the middle of its current X Y coordinates. It could stretch downwards or upwards as well!
DerVVulfman: OK, at first I didn't think that what you'd say next would be impressive at all, but that does sound like hitting the jackpot to me. Did you really implement it yourself?
Chapter 4: Some Details and Revelations
Me: Well, I actually reused some existing code to make it happen. You see, there was only one way to display any changes on screen, but the arrangement was not that obvious as I first thought. I did try several options till I had finally found the best one! You wouldn't even imagine how many times it seemed like I had to give up because that was beyond the reach of my current Ruby, CRuby and C++ programming skills.
Melana: Poor you! Take a long break, please!
Me: Nah, now I'm just feeling great for breaking another wall, achieving another goal, etc. Still, you should know I was forced to carefully test my engine hundreds of times to make sure that changes in Ruby, CRuby and C++ code didn't break the gaming experience. Though I do have one more thing to add here...
HiddenChest will also try to prevent you from calling a few default and newly added methods from making your game crash abruptly. I know, they aren't a lot of them but now it will try to inform you of what's the default value for that specific attribute or function or it won't let you get a strange bug showing up right in your face because the window hasn't been created fully by then.
Me: What does that actually mean?
Melana: Yeah, let me know!
Me: Fine, fine... It means you can call the some_window.open_mode = :center method and it won't matter if you do it inside the current window's initialize method, before or after the super call to Window_Selectable superclass, HiddenChest will process it instead of failing to do so! Then you can call the some_window.open method to tell the scene that it should be opened once it can be updated as usual. Guess what? You can even call them outside the initialize method, like right in your current scene script!
Inside the initialize method, the first call should start with self.open_mode = option to make sure it will be processed accordingly and use the open method after the contents are created and they get refreshed. Outside like in a scene script you would be able to call them after the line where that window was created. The name of the variable should precede the method calls. Of course, you only need to call them once!
Chapter 5: And Melana Had to Ask About It...
Melana: What happens if you call them several times in a row or in different places?
Me: Well, that's easy to find out! Only the last call of open_mode will be valid for it would have overridden the previous calls settings. Concerning the open method, you only need to call it once. Really, just once!
Nyakuya: Hey! Wait for me! I need to take notes of all of these things to keep them in mind later on.
Me: Oh well, go ahead but you should know I won't stop talking just because of that.
One last thing you should know about it. You SHOULD call the close method from outside your window script, like in the scene, I don't know... Probably you would do it whenever you hit a button because you need to close the window to open another menu or close the scene.
Then you would need to add a Window#closing to the line right above Graphics.freeze to make sure the first or last window menu will not be ignored before leaving the scene so it can get enough time to get animated.
Happy Game Testing!
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9
Maranatha!
The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.
My Original Stories (available in English and Spanish)
List of Compiled Binary Executables I have published...
HiddenChest & Roole
Give me a free copy of your completed game if you include at least 3 of my scripts!
Just some scripts I've already published on the board...
KyoGemBoost XP VX & ACE, RandomEnkounters XP, KSkillShop XP, Kolloseum States XP, KEvents XP, KScenario XP & Gosu, KyoPrizeShop XP Mangostan, Kuests XP, KyoDiscounts XP VX, ACE & MV, KChest XP VX & ACE 2016, KTelePort XP, KSkillMax XP & VX & ACE, Gem Roulette XP VX & VX Ace, KRespawnPoint XP, VX & VX Ace, GiveAway XP VX & ACE, Klearance XP VX & ACE, KUnits XP VX, ACE & Gosu 2017, KLevel XP, KRumors XP & ACE, KMonsterPals XP VX & ACE, KStatsRefill XP VX & ACE, KLotto XP VX & ACE, KItemDesc XP & VX, KPocket XP & VX, OpenChest XP VX & ACE
Maranatha!
The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.
My Original Stories (available in English and Spanish)
List of Compiled Binary Executables I have published...
HiddenChest & Roole
Give me a free copy of your completed game if you include at least 3 of my scripts!
Just some scripts I've already published on the board...
KyoGemBoost XP VX & ACE, RandomEnkounters XP, KSkillShop XP, Kolloseum States XP, KEvents XP, KScenario XP & Gosu, KyoPrizeShop XP Mangostan, Kuests XP, KyoDiscounts XP VX, ACE & MV, KChest XP VX & ACE 2016, KTelePort XP, KSkillMax XP & VX & ACE, Gem Roulette XP VX & VX Ace, KRespawnPoint XP, VX & VX Ace, GiveAway XP VX & ACE, Klearance XP VX & ACE, KUnits XP VX, ACE & Gosu 2017, KLevel XP, KRumors XP & ACE, KMonsterPals XP VX & ACE, KStatsRefill XP VX & ACE, KLotto XP VX & ACE, KItemDesc XP & VX, KPocket XP & VX, OpenChest XP VX & ACE